Membuat Kamus sederhana Inggris - Indonesia dengan PHP dan MySQL

Sabtu, 27 Februari 2010

Untuk tutorial selanjutnya gw pengen bikin kamus. hal yang bisa kita pelajari di sini adalah:

  1. bagaimana membuat proyek sederhana,
  2. export csv ke MySQL
  3. bagaimana menghubungkan dengan database mySQL,
  4. bagaimana menampilkan data dan
  5. memanfaatkan pencarian dengan PHP.

Untuk mempermudah mereka yang ingin belajar maka proyek ini saya buat sesederhana mungkin agar mudah dipahami. Apabila Anda ingin mengembangkannya silahkan dan alangkah baiknya kalo Anda share di sini.

PERSIAPAN

Baiklah mari kita mulai, tapi sebelumnya siapkan siapkan alat dan bahan berikut:

  1. server PHP dan server mysql / appserv / xamps : baca artikel instalasi webserver (Appserv)
  2. text editor (notepad++, scite, ultraedit, dll) atau Dreamweaver.
  3. database dari gkamus (gkamus-en.dict dan gkamus-id.dict)

Hal paling penting di kamus adalah databasenya.Setelah nanya-nanya om google akhirnya nemu databasenya gkamus (http://gkamus.sourceforge.net). Syukurlah databasenya public domain, artinya bisa kita pakai di tutorial ini. Makasih buat saudara Ardhan Madras, Firmansyah dan Hantarto Gunawan.

EXPORT DATABASE KE CSV

Database di sini ada dua macam yaitu:

  1. gkamus-en.dict : kamus English ke bahasa Indonesia
  2. gkamus-id.dict : kamus bahasa Indonesia ke English

Selanjutnya database ini kita convert (ubah) menjadi bentuk mysql. Nantinya kita buat dua tabel yakni tabel english dan tabel indonesia.

Mari kita obok-obok database. pertama kita export menjadi bentuk *.CSV lewat excel. Buka aja file gkamus-en.dict dan gkamus-id.dict tadi. tapi satu-satu ajah biar ga ribet. Kalo ga bisa buka sini gw ajarin buka. caranya klik kanan open trus pilih "select program from list" klik OK dan pilih "Microsoft office excel".

Ini screen shotnya.

membuat kamus screen shot database kamus

Kemudian hapus yang tidak berguna. Hapus baris 1 sampai dengan 5. delete rows. Ok siap diexport ke *.csv.
Pilih file | save as another format | di bagian save as type pilih "CSV (comma delimited)". Kasih nama english. Klik save apabila ada prompt klik yes

PENTING:
lakukan juga search an replace karakter " (double quote) menjadi ` (back quote)
ini penting agar waktu import ke mySQL tidak mengalami error.
Catatan: backquote bukanlah quote. Kalo di keyboard gw letaknya di bawah tilde (~)

simpan database kamus jadi csv file
Lakukan juga pada file satunya kemudian export ke *.csv dengan nama indonesia

Apabila ingin tahu hasil exportnya ini gw share: indonesia.csv dan english.csv.

EXPORT CSV KE MySQL

Untuk export dari csv ke MySql kita pakai phpmyadmin. Omong-omong phpmyadmin ini udah ada di bundle phpmyadmin. buka http://localhost dan ada akan mendapatinya di situ.

klik phpmyadmin

Klik link tersebut. kalo diminta password, masukkan user dan password Anda, apabila phpmyadmin-nya belum ada set biasanya user: root dan passwordnya kosong. Kemudian buat database dengan nama kamus.Klik tombol ciptakan.

buat database

Kemudian buat tabel dengan nama "english" jumlahnya 2 fields.

buat tabel di phpmyadmin

Klik go.

Kemudian isikan propertynya. Set seperti ini:

kata : VARCHAR : 100
arti : TEXT :

properti tabel kamus.english

Kemudian klik save.

Struktur tabel english sudah jadi. Sekarang mari kita import file CSV kita.

  1. klik Import di menu atas phpmyadmin.
  2. klik browse dan arahkan ke english.csv
  3. klik go.

Data sudah diimport tinggal tambah kolom id , jadikan primary key dan auto increement.

  1. klik tabel english di bagian kiri
  2. pilih add 1 field. letaknya pilih at beginning of table
  3. klik go
  4. isi dengan
    Field : id
    type : INT
    extra : auto_increement
    pilih primary key

primary dan auto increement

Jadi deh tabel english kita.
Tinggal bikin tabel indonesia. langkahnya sama seperti tadi. field-fieldnya juga sama seperti tadi.
Jangan lupa import seperti tadi dan jangan lupa pula untuk search and repalce karakter double quote (") menjadi back quote(`) biar sewaktu importnya ga error.

Kalo bingung navigasi di phpmyadmin coba klik kata kamus di kiri. Itu akan membawa kita kembali ke halaman depan database kita; yakni database kamus.

Kalo sudah jadi akan tampak seperti inilah database kita.

database kamus

Menampilkan database Kamus dengan PHP

Sekedar mengingat kembali, kita tadi sudah membuat:

  • database dengan nama kamus,
  • dua buah tabel yang masing-masing namanya english dan indonesia
  • kemudian masing-masing tabel berisi field id, kata dan arti

Ok mari kita mulai koding.
Penulis menggunakan appserv untuk servernya. Untuk xamp atau lainnya bisa menyesuaikan.

Pertama kita buat folder dengan nama kamus di folder www. Path lengkapny adalah "C:AppServwwwkamus"
nantinya kita dapat mengakses kamus kita melalui browser dengan alamat "http://localhost/kamus"

Ke dua kita buat file tampil.php
dan isi dengan script berikut untuk koneksi ke database.

  1. // SETTING
  2. $db_host = "localhost";
  3. $db_user = "root"; // isi sesuai user mysql Anda
  4. $db_pass = "sipit"; // isi sesuai password mysql Anda
  5. $db_name = "kamus"; // nama database anda
  6. // KONEKSI KE DATABASE
  7. $link = mysql_pconnect ($db_host, $db_user, $db_pass) or die ("Ga bisa connect");
  8. mysql_select_db ($db_name) or die ("Ga bisa select database");
  9. ?>

Ke tiga tambahkan script untuk menampilkan database. Script lengkapnya seperti ini

  1. // SETTING
  2. $db_host = "localhost";
  3. $db_user = "root"; // isi sesuai user mysql Anda
  4. $db_pass = "sipit"; // isi sesuai password mysql Anda
  5. $db_name = "kamus"; // nama database anda
  6. // KONEKSI KE DATABASE
  7. $link = mysql_pconnect ($db_host, $db_user, $db_pass) or die ("Ga bisa connect");
  8. mysql_select_db ($db_name) or die ("Ga bisa select database");
  9. // MENAMPILKAN SEMUA DATA
  10. // - masih menampilkan data tanpa pemisah
  11. $sql = mysql_query("SELECT * from english") or die(mysql_error());
  12. while ($res=mysql_fetch_array($sql)) {
  13. echo $res['id'];
  14. echo $res['kata'];
  15. echo $res['arti'];
  16. }
  17. ?>

Script di atas akan menampilkan semua data di tabel english dan tanpa pemisah.

Untuk memisahkan per data coba tambahkan
pada akhir script, dan untuk memisahkan per field kita bisa pakai dash (-) seperti contoh di bawah ini:
Atau terserah Anda untuk menampilkan data seperti yang Anda kehendaki.

  1. $sql = mysql_query("SELECT * from english") or die(mysql_error());
  2. while ($res=mysql_fetch_array($sql)) {
  3. echo $res['id'];
  4. echo $res['kata'];
  5. echo $res['arti'];
  6. echo '
  7. ';
  8. }

Ke empat misalkan kita ingin menampilkan data yang cocok dengan kata gecko.
Kita tinggal memodifikasi SQLnya. seperti ini:

  1. $sql = mysql_query("SELECT * from english where kata = 'gecko' ") or die(mysql_error());
  2. while ($res=mysql_fetch_array($sql)) {
  3. echo $res['id'] . ' - ';
  4. echo $res['kata'] . ' - ';
  5. echo $res['arti'];
  6. echo '
    '
    ;
  7. }

Cermati kode SELECT * from english where kata = 'gecko'

hasil pertama kamus

Ke empat bagaimana apabila kita ingin melakukan kata yang mendekati / mirip?
jawabnya gampang. tinggal tambahkan % di awal dan atau akhir kata yang dicari dan mengubah = dengan LIKE

contohnya seperti ini

  1. SELECT * from english where kata LIKE 'ge%'

Coba ganti dengan '%ge%' atau '%ge' maka Anda akan mendapatkan hasil yang berbeda.

Hasilnya seperti ini:

hasil kamus

Cuman seperti itu. Gampang khan?

Membuat Form Pencarian

Sekarang kita buat form pencariannya.

buat file berikut dan simpan dengan nama cari.php

  1. "post" action="tampil.php">
  2. Kata yang dicari: "text" name="cari" id="cari" />

  3. "submit" name="submit" id="submit" value="Submit" />

Form sederhana di atas apabila diklik akan mengarah ke file tampil.php dengan membawa nilai post cari ($_POST['cari'])

Memodifikasi Tampil.php untuk Menghandle Form Pencarian

tampil.php kita edit seperti di bawah ini agar bisa menangkap variabel post ($_POST['cari'])

  1. ari = $_POST['cari']; // menangkap inputan dari fiel cari di form pada file cari.php
  2. // SETTING
  3. $db_host = "localhost";
  4. $db_user = "root"; // isi sesuai user mysql Anda
  5. $db_pass = "sipit"; // isi sesuai password mysql Anda
  6. $db_name = "kamus"; // nama database anda
  7. // KONEKSI KE DATABASE
  8. $link = mysql_pconnect ($db_host, $db_user, $db_pass) or die ("Ga bisa connect");
  9. mysql_select_db ($db_name) or die ("Ga bisa select database");
  10. // MENAMPILKAN SEMUA DATA
  11. // - masih menampilkan data tanpa pemisah
  12. $sql = mysql_query("SELECT * from english where kata LIKE '$cari' ") or die(mysql_error());
  13. while ($res=mysql_fetch_array($sql)) {
  14. echo $res['id'] . ' - ';
  15. echo $res['kata'] . ' - ';
  16. echo $res['arti'];
  17. echo '
    '
    ;
  18. }
  19. gt;

Kemudian apabila ingin menampilkan form dan hasil pencarian dalam satu halaman bisa menggunakan satu file berikut.

  1. "post" action="">
  2. Kata yang dicari: "text" name="cari" id="cari" />

  3. "submit" name="submit" id="submit" value="Submit" />

  4. $cari = $_POST['cari']; // menangkap inputan dari fiel cari di form pada file cari.php
  5. If (isset($cari)) {
  6. // SETTING
  7. $db_host = "localhost";
  8. $db_user = "root"; // isi sesuai user mysql Anda
  9. $db_pass = "sipit"; // isi sesuai password mysql Anda
  10. $db_name = "kamus"; // nama database anda
  11. // KONEKSI KE DATABASE
  12. $link = mysql_pconnect ($db_host, $db_user, $db_pass) or die ("Ga bisa connect");
  13. mysql_select_db ($db_name) or die ("Ga bisa select database");
  14. // MENAMPILKAN SEMUA DATA
  15. // - masih menampilkan data tanpa pemisah
  16. $sql = mysql_query("SELECT * from english where kata LIKE '$cari' ") or die(mysql_error());
  17. while ($res=mysql_fetch_array($sql)) {
  18. echo $res['id'] . ' - ';
  19. echo $res['kata'] . ' - ';
  20. echo $res['arti'];
  21. echo '
    '
    ;
  22. }
  23. }
  24. ?>

perubahannya adalah :

untuk redirect ke halamannya sendiri.
Atau bisa kita ubah menjadi "

kemudian untuk mengecek apakah inputannya sudah di set ataukah belum menggunakan:

  1. if (isset($cari)) {
  2. // kode isinya di sini
  3. //
  4. // kode isinya di sini
  5. }

Finaly

Akhirnya selesai sudah. Project kamus dengan PHP kita sudah selesai dan cuman diwakili oleh satu buah file kamus.php

Tentunya itu untuk keperluan belajar aja. Untuk aplikasi sebenarnya perlu beberapa opsi security dan tambahan fungsi. Mungkin ada yang nanya. Tabel indonesia-nya mo diapain?? Hehe itu untuk PR bikin kamus yang versi English ke bahasa Indonesia.

Yup PRnya dikumpulin lusa dan ga boleh kopas OK. Met belajar

0 komentar:

Posting Komentar

Related Posts with Thumbnails
 
 
 
 
Copyright © My Blog