er

Berbagai Tutorial dan Info Menarik

Belajar, Berjuang, dan Bertaqwa

Sunday 20 October 2013

Ringkasan Materi Logika Informatika

Ringkasan materi mata kuliah Logika Informatika untuk jurusan Ilmu Komputer bisa di download di sini

Contoh Soal Sifat – Sifat Operasi String Dasar

contoh sifat – sifat operasi string dasar :
dapat di download di sini

Download Materi Mata Kuliah Aljabar Linear Elementer

Catatan materi kuliah untuk matakuliah Aljabar Linear Elementer :
bisa didownload di sini

semoga bermanfaat :)

SOAL TEORI BAHASA DAN AUTOMATA (Mesin Pengenal Bahasa)

 
1.      Carilah seluruh string pada L((a|b)*b(a|ab)*) dengan panjang string kurang dari 4
Jawab :
{L((a|b)*b(a|ab)*) ,|x|= 4}
            L((a|b)*b(a|ab)*) : himpunan string yang mengandung paling sedikit satu substring ‘b’
Dengan jumlah string kurang dari 4, makamaksimaldari 3 digit
             0 digit= -
            1 digit = b
            2 digit = ab; ba
            3 digit = baa; aba; aab;
String pada L((a|b)*b(a|ab)*) = b;ab;ba;aab;aba;baa;
.
2.      Tentukan ekspresi reguler pembentuk bahasa pada ∑= {a,b,c}, yaitu
a.       L(r) = { w Ñ” ∑* | w memiliki tepat sebuah simbol ‘a’ }
b.      L(r) = { w Ñ” ∑* | w mengandung tepat 3 buah simbol ‘a’}
c.       L(r) = { w Ñ” ∑* | w mengandung kemunculan masing-masing simbol minimal satu kali}
Jawab      :
a.       L(r) = { w Ñ” ∑* | w memiliki tepat sebuah simbol ‘a’ }
Jawab  :
r = a (b|c) (b|c)*
b.      L(r) = { w Ñ” ∑* | w mengandung tepat 3 buah simbol ‘a’}
Jawab  :
r = aaa (b|c) (b|c)*
c.       L(r) = { w Ñ” ∑* | w mengandung kemunculan masing masing simbol minimal satu kali}
Jawab  :
r = abc

3.      Tentukan ekspresi reguler pembentuk bahasa pada  = {0,1}, yaitu
a.       L(r) ={ w Ñ” ∑* | w diakhiri dengan string 01 }
b.      L(r) ={ w Ñ” ∑ * | w tidak diakhiri dengan string 01 }
c.       L(r) ={ w Ñ” ∑ * | w mengandung simbol ‘0’ sebanyak genap }
d.      L(r) ={ w Ñ” ∑ * | kemunculan string ’00’ pada w sebanyak kelipatan 3 }
Jawab      :
a.       L(r) = { w ÃŽ∑* | w diakhiridengan string 01 }
Jawab : (0|1)*01, ekspresi regular diakhiri dengan 01
                  ER: 111101;00001;10101001;
b.      L(r) ={ w ÃŽ∑* | w tidak diakhiri dengan string 01 }
Jawab :ekspresi regular tidak di akhiri dengan string 01
                  ER: 1110; 0011; 0110;
c.       L(r) ={ w ÃŽ∑* | w mengandung simbol ‘0’ sebanyakgenap }
Jawab :ekspresi regular dengan mengandung 0 sebanyak genap, bisaada 2, 4 ,6, ….
Mengandung 0 sebanyak 2, ER: 1010;
                  Mengandung 0 sebanyak 4, ER : 011000; 00001;0000;
                  Mengandung 0 sebanyak 6, ER : 001001001;
d.      L(r) ={ w ÃŽ∑* | kemunculan string ’00’ pada w sebanyak kelipatan 3 }

4.      Tentukan ekspresi reguler pembentuk bahasa pada ∑ = {a,b}, yaitu L(r) = { w Ñ” ∑* | |w| mod 3 = 0 }
Jawab :
Membuat contoh ekspresi regular yang terdiri dari {a,b} dengan panjang string kelipatan 3, karna |w| mod 3 = 0.
Maka, denganpanjang string 3 = ER: aba; aab; bba; bab;….
Jika dengan panjang string 6= ER; aabbab; babbaa; abbaab;……
Jika dengan panjang string 9= ER: aababaaab; babbaabba;…..
Dan seterusnya ,…
Latihan 3.2
Buktikan kesamaan ekspresi regular berikut :

1.      (a*| b)* = (a | b)*
Jawab :
(a|b)*  = {ε, "a", "b", "aa", "ab", "ba", "bb", "aaa", ...}
Dengan diketahui a*= ε| a| aa| aaa| aaaa| …..,
Sedangkan b* = ε|b|bb|bbb|bbbb|…
Jadi(a|b)*  yang merupakan gabungan concate dari a* dan b* maka
(a|b)*  =(ε | a| b| aa| ab| ba| bb | aaa| ...)

Dengan diketahui: a*= ε| a| aa| aaa| aaaa| …..,
Maka(a*|b)*    = (ε| a| aa| aaa| aaaa| …..|b)*
                        = (ε| a|b | aa|bb | aaa|bbb | aaaa| bbbb …..)
Maka terbukti, (a*|b)* = (a|b)*


2.      (a | b*)* = (a | b)*
Jawab :
Diketahui (a|b)*          = ε| a| b| aa| bb| aaa| bbb| ab| abb| aab| ba ....
            Dengan b* = ε| b| bb| bbb| bbbb| …..
(a|b*)= (a| ε| b| bb| bbb| bbbb| …..)
Maka (a|b*)*   = (a| ε| b| bb| bbb| bbbb| …..)*
= ε| a| b| aa| bb| aaa| bbb| ab| abb| aab| ba ....
Maka terbukti, (a|b*)* = (a|b)*


3.      (a* b)* a* = a* (b a*)*
Jawab : Dengan a* = ε| a| aa| aaa| aaaa| …..
·         (a b)*=  (eï(ab)ï(abab)ï…) 
            maka (a* b)     = (ε b| ab| aab| aaab| aaaab| …..,)
                        = (b| ab| aab| aaab| aaaab|...)
            (a* b)* = (b| ab| aab| aaab| aaaab|...)*
                        = (eïa|b | abïaabï…) 
(a* b)* a*        =(eïa|b | abïaabï…)   a*
                        = (eïa|b | abïaabï…)  (ε| a| aa| aaa| aaaa| …..)
                        = (e | a | b | aa | aaa | ab | aab | …)

·         (b a)*=  (eï(ba)ï(baba)ï…) 
Maka (b a*)*   = (eï(ba)ï(baba)ï…)  *
                                    =  (eïb | a | ba ïbaaï…) 
a* (b a*)*        = a*  (eïa|b | abïaabï…)  
            =  (ε| a| aa| aaa| aaaa| …..) (eïb | a | ba ïbaaï…) 
            = (e | a | b | aa | aaa | ab | aab | …)


4. (a a*) ( Ñ” | a) = a*
Jawab  :
Dengan diketahui a* = ε| a| aa| aaa| aaaa| …..,
Dan (a a*)       = a(ε| a| aa| aaa| aaaa| …..) (Ô‘|a)
                                    = (ε a| aa| aaa|aaaa|…) (Ô‘|a)
                                    = (a|aa|aaa|aaaa|…) (Ô‘|a)
= (ε| a| aa| aaa| aaaa| …..) =>a*


Maka terbukti, (a a*) (Ô‘|a) = a* 

Cara Membuat Database dengan Menggunakan Xampp

Masih berada di seri artikel Cara Membuat Website. Setelah kita belajar cara menginstal XAMPP dan menjalankannya, sekarang saatnya kita belajar bagaimana membuat database di XAMPP dan cara install WordPress di localhost. Artinya kita menginstal WordPress di komputer kita sendiri atau menginstal WordPress secara offline.
Diasumsikan Anda sudah bisa menjalankan aplikasi XAMPP. Sehingga sekarang komputer Anda sudah bisa dijadikan server. Oia, jangan lupa untuk memastikan bahwa aplikasi XAMPP bisa berjalan dengan baik ya. Cek kembali dengan mengetikhttp://localhost/xampp di browser, lalu cek status. Detilnya bisa dilihat pada gambar di bawah ini.
12-status-xampp

MEMBUAT DATABASE DAN USER DI XAMPP

Sebelum kita menginstal WordPress, kita harus membuat database dan user terlebih dahulu. Ini harus kita lakukan karena WordPress merupakan aplikasi website yang membutuhkan database untuk menyimpan data-data yang kita gunakan.
  1. Pertama-tama kita harus masuk ke phpmyadmin di XAMPP. Ketik di browser alamat http://localhost/phpmyadmin sehingga muncul tampilan seperti ini..
    membuat database di xampp, phpmyadmin, xampp
  2. Pada menu Database, silahkan masukkan nama database yang diinginkan, kemudian klik Create. Ingat-ingat nama database tersebut ya, karena kita akan menggunakannya nanti. Jika perlu, tuliskan di aplikasi notepad supaya mudah bagi kita untuk mengingatnya.
    buat database di xampp, membuat database
    NB: Di sini saya menggunakan nama database “blogku“.
  3. Sekarang saatnya kita menambahkan nama user untuk database yang baru saja kita buat. Silahkan masuk ke database yang sudah dibuat, Anda bisa menemukannya di bagian sebelah kiri. Begitu masuk, lihat menu Privileges. Kemudian klik Add user.
    menambah user database di xampp
  4. Begitu Anda klik Add User maka akan muncul form pembuatan user baru. Isikan username, Anda bisa mengisikannya dengan nama apapun teserah Anda, yang penting Anda hafal. Kemudian isikan juga host, gunakan use text field saja, lalu isikan dengan localhost. Selanjutnya isikan password 2 kali dan harus sama. Terakhir, centang grant all privileges on database.
    form tambah user di phpmyadmin xampp, membuat database xampp
  5. Eits, tunggu dulu, belum selesai. Scroll ke bawah, dan Anda akan menemukan opsi Global Privileges guna memberikan hak akses kepada user untuk mengelola semua database, klik Check All saja. Setelah itu, pencet tombol Add User.
    check privileges phpmyadmin xampp, membuat database xampp
Ya, langkah membuat database dengan XAMPP dan user di phpmyadmin sudah selesai. Secara default, aplikasi XAMPP mempunyai default user bernama “root” dan tanpa password. Jika kita hendak menggunakan user tersebut juga tidak masalah. Namun ada baiknya kita gunakan user sendiri.
Nah, untuk ilustrasi bagaimana menginstal WordPress di localhost, silahkan baca panduan cara install WordPress di localhost menggunakan XAMPP yang akan saya bahas di postingan lainnya.
Semoga bermanfaat.

Apache di Mysql Tidak Jalan? ini Solusinya

Sebelumnya saya pernah menuliskan tentangcara menginstal XAMPP di komputer. Namun entah mengapa, terkadang Apache tidak bisa running di XAMPP. Padahal itu sangat diperlukan untuk membuat website ataupun aplikasi berbasis PHP.
Bingung? Tenang, pasti ada solusinya …
apache tidak bisa running
Biasanya hal ini terjadi karena ada aplikasi lain yang menggunakan port yang sama dengan aplikasi Apache XAMPP ini sehingga tidak memungkinkan untuk menjalankannya secara bersamaan.
Untuk itu, solusi yang bisa kita lakukan adalah dengan merubah settingan port Apache XAMPP kita supaya bisa tetap running.
Berikut ini langkah-langkahnya:
  1. Lakukan perubahan pada file httpd.conf 
  2. Buka file httpd.conf di folder C:\xampp\apache\conf\ dengan menggunakan aplikasi notepad.
  3. Cari kata “Listen 80” dan ubahlah menjadi “Listen 8080“.
  4. Masih di file yang sama, carilah kata “ServerName localhost:80” kemudian ubahlah menjadi “ServerNamelocalhost:8080“.
  5. Lalu Simpan.
  6. Selanjutnya, buka file httpd-ssl.conf di C:\xampp\apache\conf\extra\.
  7. Carilah kata “Listen 443” dan ubah menjadi “Listen 4499“.
  8. Masih di file yang sama, dan carilah kata “virtualhost_default_:443” kemudian ubahlah menjadi “virtualhost_default_:4499
  9. Masih di file yang sama, carilah kata “ServerName localhost:443” dan ubahlah menjadi “ServerName localhost:4499
  10. Sekarang jalankan XAMPP Contol Panel, lalu klik Start pada Apache. Jika muncul peringatan di kotak detail bagian bawah “Apache started [port 80]“, maka bukalah browser dan arahkan ke alamat http://localhost:8080/xampp. Jika berhasil maka Web Service Apache tersebut telah berjalan di port 8080.
Nah, kira-kira begitulah cara mengatasi Apache XAMPP yang tidak bisa running. Semoga ini bisa menjadi solusi bagi Anda yang mengalami kesulitan saat menjalankan XAMPP.
Jika sudah menggunakan langkah-langkah di atas ternyata masih tidak bisa berjalan, silahkan sampaikan tanggapan Anda pada kolom komentar di bawah ini, saya akan coba bantu mencari solusinya.

Merelasikan Tabel dengan Join di Mysql

MEMBUAT TABLE DALAM DATABASE
1.      Masuk ke xampp MySQL. Yaitu dengan masuk ke folder xampp – mysql – bin lalu mengetikkan syntak sesuai gambar di bawah.
2.      Membuat database.
3.      Membuat table pertama yaitu table member.
4.      Melihat struktur table member.
5.      Menginputkan data pada table member.
6.      Melihat isi table member.
7.      Membuat table kedua (pinjam).
8.      Melihat struktur table pinjam.
9.      Menginputkan data pada table pinjam.
10.  Melihat isi table pinjam.

MERELASIKAN TABEL
1.      INNER JOIN – ON
Penggunaan relasi INNER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan record – record yang bersesuaian saja. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti contoh di bawah.
Syntak :
select*from [Tabel_1] inner join [Tabel_2] on [Tabel_1].[field yang berelasi] = [Tabel_2].[field yang berelasi];


2.      INNER JOIN – USING
Sama seperti keterangan diatas, penggunaan relasi INNER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan record – record yang bersesuaian saja. Sedangkan syntak USING berfungsi menampilkan kedua table dengan field yang direlasikan hanya ditampilkan satu kali di awal table atau terletak paling kiri seperti pada contoh di bawah.

Syntak :
select*from [Tabel_1] inner join [Tabel_2] using([field yang berelasi]);

3.      LEFT OUTER JOIN – ON
Penggunaan relasi LEFT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KIRI. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti pada gambar di bawah.
Syntak :
select*from [Tabel_1] left outer join [Tabel_2] on [Tabel_1].[field yang berelasi] = [Tabel_2].[field yang berelasi];

4.      LEFT OUTER JOIN – USING
Sama seperti keterangan sebelumnya, penggunaan relasi LEFT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KIRI. Sedangkan syntak USING berfungsi menampilkan kedua table lengkap dengan field yang direlasikan hanya ditampilkan satu kali saja di awal table atau di sebelah kiri seperti pada gambar di bawah.

Syntak :
select*from [Tabel_1] left outer join [Tabel_2] using([field yang berelasi]);

5.      NATURAL LEFT OUTER JOIN
Seperti keterangan sebelumnya, penggunaan relasi LEFT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KIRI. Sedangkan syntak NATURAL mempunyai fungsi sama dengan USING yaitu menampilkan field yang bersesuaian satu kali saja di awal table seperti pada gambar di bawah.
Syntak :
select*from [Tabel_1] natural left outer join [Tabel_2];

6.      RIGHT OUTER JOIN - ON
Penggunaan relasi RIGHT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KANAN dan table kedua (dituliskan setelah join) ditampilkan lebih dulu setelah field yang direlasikan. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti pada gambar di bawah.
Syntak :
select*from [Tabel_1] right outer join [Tabel_2] on [Tabel_1].[field yang berelasi] = [Tabel_2].[field yang berelasi];

7.      RIGHT OUTER JOIN – USING
Penggunaan relasi RIGHT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KANAN dan table kedua (dituliskan setelah join) ditampilkan lebih dulu setelah field yang direlasikan. Sedangkan syntak USING berfungsi menampilkan kedua table lengkap dengan field yang direlasikan hanya ditampilkan satu kali saja di awal table atau di sebelah kiri seperti pada gambar di bawah.

Syntak :
select*from [Tabel_1] right outer join [Tabel_2] using([field yang berelasi]);

8.      NATURAL RIGHT OUTER JOIN
Penggunaan relasi RIGHT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KANAN dan table kedua (dituliskan setelah join) ditampilkan lebih dulu setelah field yang direlasikan. Sedangkan syntak NATURAL mempunyai fungsi sama dengan USING yaitu menampilkan field yang bersesuaian satu kali saja di awal table seperti pada gambar di bawah.
Syntak :
select*from [Tabel_1] natural right outer join [Tabel_2];

9.      WHERE
Penggunaan syntak WHERE sama dengan penggunaan INNER JOIN – ON yaitu menampilkan kedua table yang direlasikan dengan menampilkan record – record yang bersesuaian saja dan menampilkan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti pada gambar di bawah. Keuntungannya dibandingkan dengan INNER JOIN – ON adalah dengan penggunaan WHERE penulisan syntak untuk relasi dengan banyak table lebih mudah.

Syntak :
select*from [Tabel_1],[Tabel_2] where [Tabel_1].[field yang berelasi] = [Tabel_2].[field yang berelasi];

10.  STRAIGHT JOIN
Penggunaan relasi STRAIGHT JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record adalah hasil kali jumlah record table pertama dengan jumlah record tapi kedua seperti pada gambar di bawah.
Syntak :
select*from [Tabel_1] straight join [Tabel_2];



11.  CROSS JOIN
Penggunaan relasi CROSS JOIN sama dengan STRAIGHT JOIN yaitu untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record adalah hasil kali jumlah record table pertama dengan jumlah record tapi kedua seperti pada gambar di bawah.
Syntak :
select*from [Tabel_1] cross join [Tabel_2];

12.  UNION
Penggunaan relasi UNION adalah untuk menggabung hasil dari syntak LEFT OUTER JOIN dengan RIGHT OUTER JOIN seperti pada gambar di bawah.

Syntak :
select*from [Tabel_1] natural left outer join [Tabel_2]
union
select*from [Tabel_1] natural right outer join [Tabel_2]
;

13.  FULL JOIN
Penggunaan FULL JOIN adalah untuk menampilkan kedua table dengan record – record yang bersesuaian saja. Field yang berelasi ditampilkan sekali di awal table atau paling kiri. Lihat gambar di bawah.
Syntak :
            select*from [Tabel_1] full join [Tabel_2] using([field yang berelasi]);

Penggunaan FULL JOIN juga bisa seperti gambar di bawah.
Syntak :
            select*from [Tabel_1] full join [Tabel_2];
Hasil dari syntak di atas sama seperti pada penggunaan STRAIGHT JOIN dan CROSS JOIN.