Bab-7 Basis Data dengan MySQL Pengolahan file basis data telah dibahas pada bab sebelumnya yaitu dengan menggunakan perintah-perintah IDC yang dibantu dengan ODBC untuk menghubungkan dengan file basis data access. Untuk tahap selanjutnya maka akan dicoba untuk menggunakan server basis data MySQL guna mendukung proses pengolahan basis data yang lebih handal, cepat dan akurat. PHP telah mendukung berbagai server basis data dan menyediakan fungsi-fungsi yang digunakan untuk pengolahan basis data tersebut. 7.1 Pemasangan Server Basis Data Untuk melakukan akses pada suatu basis data, maka diperlukan cara yang umum digunakan pada semua system basis data, yaitu melakukan koneksi ke server basis data (dengan menyertakan nama server dan bila perlu nama user dan password), memilih basis data yang akan diproses, memilih/ membuka table yang akan diproses dengan menjalankan perintah SQL, melakukan proses penambahan; pembetulan; penghapusan dan menampilkan data, melakukan penutupan hubungan (koneksi) ke server (opsi). Sebelum dapat melakukan akses ke basis data, maka terlebih dulu perlu dilakukan pemasangan server basis data yaitu disini menggunakan MySQL server sebagai berikut: Klik disini Gambar 7.1 Program MySQL 121
Maka akan ditampilkan dialog WinZip sebagai berikut: Gambar 7.2 Dialog WinZip saat akan membongkar file mysql-3.23.44-win.zip Klik Next terus sampai ditampilkan dialog seperti dibawah ini: Gambar 7.3 Dialog WinZip saat melakukan pembongkaran ke file sementara 122
Gambar 7.4 Dialog WinZip untuk memilih tipe setup Klik next terus sampai pemasangan berhasil, kemudian lihat pada direktori dimana MySQL berada, defaultnya pada direktori c:\mysql yang berisi direktoridirektori sebagai berikut: Gambar 7.5 Isi direktori MySQL Direktori bin adalah berisi file-file program yang digunakan untuk keperluan proses basis data dan berisi program utama, service dan admin dari MySQL. Untuk pertama kali menjalankan MySQL adalah klik pada file winmysqladmin.exe. 123
Klik disini Gambar 7.6 Menjalankan program winmysqladmin.exe 1. Klik disini 2. Klik disini Gambar 7.7 Tampilan menu awal WinMySQLadmin Untuk melihat user dan password maka klik pada pilihan my.ini setup, kemudian untuk melihat basis data yang telah ada maka klik pada piliha Database. Untuk membuat user baru lakukan perubahan pada user dan password, kemudian 124
simpan dengan mengklik save modification, kemudian tutup menu WinMySQLadmin dan buka kembali. Gambar 7.8 Menu WinMySQLadmin pada pilihan my.ini setup Klik disini Gambar 7.9 Menjalankan program interaktif mysql.exe 125
Perubahan dari user dan password disimpan pada table user dari basis data mysql. Untuk melihat data user dan password yang telah dimasukkan pada basis data mysql dapat dilakukan dengan memanggil program interaktif mysql sebagai berikut: Gambar 7.10 Program Interaktif MySQL Dengan perintah SQL use mysql dan select, akan didapatkan tampilan seperti dibawah, yaitu ada 2 (dua) user root dengan password kosong dan 1 (satu) user kosong dengan password kosong serta user wasista dengan password rahasia, untuk keamaan data maka user root dan user kosong dapat dihapus. Gambar 7.11 Tampilan tabel user 126
Gambar 7.11 Tambahan user baru 7.2 Membuat Basis Data MySQL Program dibawah ini adalah digunakan untuk melakukan pembuatan basis data dan tabel, dengan melakukan koneksi dengan server basis data menggunakan fungsi mysql_connect(), dilanjutkan dengan membuat basis data dengan nama AKADEMIK, kemudian membuat table MAHASISWA yang berisi NRP, NAMA, ALAMAT, KOTA, GENDER dan TELPON. <? mysql_connect("localhost","","") or exit("mysql tidak terhubung!"); print "MySQL telah terhubung!<br>"; $basisdata="akademik"; $terbuat=mysql_create_db($basisdata); if($terbuat) print "Basis Data berhasil dibuat!<br>"; else { printf("basis Data gagal dibuat! (%s)", mysql_error()); mysql_drop_db($basisdata); exit(); } $query="create table MAHASISWA (NRP varchar(10) primary key, NAMA varchar(25), ALAMAT varchar(30), KOTA varchar(20), GENDER varchar(15), TELPON varchar(15))"; mysql_select_db("akademik"); mysql_query($query) or exit("tabel gagal dibuat!"); print "Tabel berhasil dibuat!";?> 127
Gambar 7.12 Tampilan Koneksi yang berhasil 7.3 Mengakses Basis Data MySQL Setelah basis data dan table dibuat, maka dapat dilakukan pengolahan dari table tersebut, misalkan menambah, memperbaiki dan menghapus dan menampilkan data record. 7.3.1 Menambah data Berikut ini adalah program untuk menambah data: <? mysql_connect("localhost","","") or exit("mysql tidak terhubung!"); print "MySQL telah terhubung!<br>"; mysql_select_db("akademik"); $query1="insert into mahasiswa (NRP,NAMA,ALAMAT,KOTA,GENDER,TELPON) values ('11990008','Eko Prasetyo','Basuki Rahmat 08', 'Surabaya','Pria','3001819')"; $query2="insert into mahasiswa (NRP,NAMA,ALAMAT,KOTA,GENDER,TELPON) values ('11990015','Yosi Aprilius','Simpang Dukuh 11', 'Surabaya','Pria','3011819')"; $query3="insert into mahasiswa (NRP,NAMA,ALAMAT,KOTA,GENDER,TELPON) values ('11990022','Andi Suharianto','Kertajaya 22', 'Surabaya','Pria','3021819')"; mysql_query($query1) or exit("insert data 1 gagal dilakukan!"); print "Insert data 1 berhasil!<br>"; mysql_query($query2) or exit("insert data 2 gagal dilakukan!"); print "Insert data 2 berhasil!<br>"; mysql_query($query3) or exit("insert data 3 gagal dilakukan!"); print "Insert data 3 berhasil!<br>";?> 128
Gambar 7.13 Memasukkan data 1, 2 dan 3 berhasil Gambar 7.14 Tampilan Isi Tabel mahasiswa Selanjutnya setelah program diatas berhasil, maka dapat dibuat program untuk penambahan data menggunakan memanfaatkan tag-tag dari HTML yaitu tag <form> dan tag <input>, sehingga didapatkan data entry yang dapat memasukkan data melalui keyboard secara langsung (tidak melalui pemrograman). Untuk keperluan tersebut maka diperlukan dua program file, yaitu file program pertama digunakan untuk mengirimkan data yang dimasukkan melalui keyboard dan file program kedua digunakan untuk menangkap data yang dikirimkan tersebut, kemudian melakukan proses koneksi ke server basis data MySQL, untuk selanjutnya melakukan penyimpanan data record yang telah ditangkap tersebut kedalam table yang bersesuaian. File program pertama bernama entry.html sedangkan file program kedua bernama entry.php, file program pertama akan memanggil file program kedua melalui tag <form>. 129
<HTML> <HEAD><TITLE>Menambah data Records</TITLE></HEAD> <BODY> <H2>ENTRY DATA SISWA</H2> <FORM ACTION="ENTRY.PHP" METHOD=POST> <TABLE> <TR><TD><B>NRP</B></TD> <TD><INPUT TYPE=text NAME=NRP size=15> </TD></TR><TR><TD><B>Nama</B></TD> <TD><INPUT TYPE=TEXT NAME=NAMASW SIZE=25> </TD></TR><TR><TD><B>Alamat</B></TD> <TD><INPUT TYPE=TEXT NAME=ALAMATSW SIZE=50> </TD></TR><TR><TD><B>Kota</B></TD> <TD><INPUT TYPE=TEXT NAME=KOTASW SIZE=15> </TD></TR><TR><TD><B>Telpon</B></TD> <TD><INPUT TYPE=TEXT NAME=TELPON SIZE=10> </TD></TR><TR><TD><B>Gender</B></TD> <TD><INPUT TYPE=RADIO NAME=GENDERSW VALUE="Pria">Pria </TD></TR><TR><TD></TD><TD> <INPUT TYPE=RADIO NAME=GENDERSW VALUE="Wanita">Wanita</TD></TR> <TR><TD></TD><TD ALIGN=RIGHT> <INPUT TYPE=SUBMIT NAME=TOMBOL VALUE=Kirim> <INPUT TYPE=RESET NAME=TOMBOL VALUE=Batal></TD></TR> </TABLE> </FORM> </FORM> </BODY> </HTML> <? if($_post["tombol"]=="kirim") { mysql_connect("localhost","","") or exit("server MySQL tidak terhubung!"); print "Server MySQL telah terhubung!<br>"; mysql_select_db("akademik"); $nrp=$_post["nrp"]; $nama=$_post["namasw"]; $alamat=$_post["alamatsw"]; $kota=$_post["kotasw"]; $gender=$_post["gendersw"]; $telpon=$_post["telpon"]; $query="insert into MAHASISWA (NRP,NAMA,ALAMAT,KOTA,GENDER,TELPON) values (\"$nrp\",\"$nama\",\"$alamat\",\"$kota\",\"$gender\",\"$telpon\")"; mysql_query($query) or exit("menambah data record GAGAL dilakukan!"); print "Menambah data record BERHASIL!<br>"; }?> 130
Gambar 7.15 Tampilan Entry Data Siswa Gambar 7.16 Tampilan setelah menambah data Gambar 7.17 Tampilan Isi data table mahasiswa 131
7.3.2 Memperbaiki data Berikut ini adalah program untuk memperbaiki data, seperti pada Bab-5 bahwa untuk dapat melakukan perbaikan data maka harus ditemukan dulu data yang akan diperbaiki, sehingga dapat digunakan program pada Bab-5 yang dimodifikasi menjadi find-rec.html sebagai berikut: <HTML> <HEAD> <TITLE>Mencari Data Records </TITLE> </HEAD> <BODY> <H2>MENCARI RECORD SISWA</H2> <FORM ACTION="FIND-REC.PHP" METHOD=POST> <TABLE> <TR><TD><B>NRP*</B></TD> <TD><INPUT TYPE=text NAME=NRP size=15> (* Kunci Primer) </TD></TR> <TR><TD><B>Nama</B></TD> <TD><INPUT TYPE=TEXT NAME=NAMASW SIZE=25> </TD></TR> <TR><TD><B>Alamat</B></TD> <TD><INPUT TYPE=TEXT NAME=ALAMATSW SIZE=50> </TD></TR> <TR><TD><B>Kota</B></TD> <TD><INPUT TYPE=TEXT NAME=KOTASW SIZE=15> </TD></TR> <TR><TD><B>Telpon</B></TD> <TD><INPUT TYPE=TEXT NAME=TELPONSW SIZE=10> </TD></TR> <TR><TD><B>Gender</B></TD> <TD><INPUT TYPE=RADIO NAME=GENDERSW VALUE="Pria">Pria </TD></TR> <TR><TD></TD> <TD><INPUT TYPE=RADIO NAME=GENDERSW VALUE="Wanita">Wanita</TD></TR><TR><TD></TD><TD ALIGN=RIGHT> <INPUT TYPE=SUBMIT NAME=TOMBOL VALUE=Cari> <INPUT TYPE=RESET NAME=TOMBOL VALUE=Batal> </TD></TR> </TABLE> </FORM> </FORM> </BODY> </HTML> 132
Gambar 7.18 Isian Data Mencari Record Program dibawah ini dijalankan oleh script HTML diatas dengan nama FIND-REC.PHP pada tag <form>. Program akan melakukan koneksi ke server MySQL dan membuka basis data AKADEMIK, kemudian menjalankan query untuk mencari nomor record yang akan diperbaiki. Bila data yang dicari ketemu, maka program akan memanggil script edit-rec.php untuk menampilkan data record yang siap untuk dilakukan perbaikan. <? if($_post["tombol"]=="cari") { mysql_connect("localhost","","") or exit("server MySQL tidak terhubung!"); print "Server MySQL telah terhubung!<br>"; mysql_select_db("akademik"); $nrp=$_post["nrp"]; $query="select * from mahasiswa where NRP=\"$nrp\""; $hasil=mysql_query($query) or exit("data record tidak ditemukan!"); print "Data record BERHASIL ditemukan!<br>"; list ($nrp,$nama,$alamat,$kota,$gender,$telpon)=mysql_fetch_ row($hasil); include "edit-rec.php"; }?> 133
Berikut ini adalah program edit-rec.php yang dipanggil dengan fungsi include seperti terlihat pada program diatas. <HTML> <HEAD> <TITLE>Memperbaiki Data Records </TITLE> </HEAD> <BODY> <H2>MEMPERBAIKI DATA RECORD</H2> <FORM ACTION="INSERT.PHP" METHOD=POST> <TABLE><TR><TD><B>NRP</B></TD><TD> <?print "<INPUT TYPE=TEXT NAME=NRP SIZE=15 VALUE=$nrp>";?> </TD></TR><TR><TD><B>Nama</B></TD><TD> <?print "<INPUT TYPE=TEXT NAME=NAMASW SIZE=25 VALUE='$nama'>";?> </TD></TR><TR><TD><B>Alamat</B></TD><TD> <?print "<INPUT TYPE=TEXT NAME=ALAMATSW SIZE=50 VALUE='$alamat'>";?> </TD></TR><TR><TD><B>Kota</B></TD><TD> <?print "<INPUT TYPE=TEXT NAME=KOTASW SIZE=15 VALUE=$kota>";?> </TD></TR><TR><TD><B>Telpon</B></TD><TD> <?print "<INPUT TYPE=TEXT NAME=TELPONSW SIZE=10 VALUE=$telpon>";?> </TD></TR><TR><TD><B>Gender</B></TD> <?if($gender=="pria") {?> <TD><INPUT TYPE=RADIO CHECKED NAME=GENDERSW>Pria</TD></TR> <TR><TD></TD> <TD><INPUT TYPE=RADIO NAME=GENDERSW>Wanita</TD></TR> <?} else {?> <TD><INPUT TYPE=RADIO NAME=GENDERSW>Pria</TD></TR> <TR><TD></TD> <TD><INPUT TYPE=RADIO CHECKED NAME=GENDERSW>Wanita</TD></TR> <?}?> <TR><TD></TD><TD ALIGN=RIGHT> <INPUT TYPE=SUBMIT NAME=TOMBOL VALUE=Simpan> <INPUT TYPE=RESET NAME=TOMBOL VALUE=Batal> </TD></TR> </TABLE> </FORM> </FORM> </BODY> </HTML> 134
Gambar 7.19 Isian Data Memperbaiki Record <? if($_post["tombol"]=="simpan") { mysql_connect("localhost","","") or exit("server MySQL tidak terhubung!"); print "Server MySQL telah terhubung!<br>"; mysql_select_db("akademik"); $nrp=$_post["nrp"]; $nama=$_post["namasw"]; $alamat=$_post["alamatsw"]; $kota=$_post["kotasw"]; $gender=$_post["gendersw"]; $telpon=$_post["telponsw"]; $query="update MAHASISWA set NRP='$nrp', NAMA='$nama',ALAMAT='$alamat',KOTA='$kota', }?> GENDER='$gender', TELPON='$telpon' where NRP='$nrp'"; //print "$query<p>"; mysql_query($query) or exit("memperbaiki data record GAGAL dilakukan!"); print "Memperbaiki data record BERHASIL!<br>"; 135
Gambar 7.20 Tampilan Data telah diperbaiki 7.3.3 Menghapus Data Untuk melengkapi proses pengolahan data diatas maka perlu ditambahkan program untuk menghapus data record, dimana cara kerjanya mirip dengan mengganti data record, yaitu mencari dahulu data record yang akan dihapus. Sehingga program diatas find-rec.html, find-rec.php dan edit-rec.php dapat digunakan disini, dengan sedikit modifikasi sebagai berikut. Salinlah file find-rec.html menjadi file dele-rec.html kemudian ubahlah pada tag <form> menjadi seperti dibawah ini: <HTML> <HEAD><TITLE>Mencari Data Records</TITLE></HEAD> <BODY> <H2>MENCARI RECORD SISWA</H2> <FORM ACTION="DELE-REC.PHP" METHOD=POST> <TABLE> </TABLE> </FORM> </FORM> </BODY> </HTML> Titik-titik pada program diatas adalah sama dengan aslinya (disalin), dan tidak dilakukan perubahan sama sekali, perubahan adalah hanya pada parameter yang dicetak tebal saja. 136
Gambar 7.21 Tampilan Mencari Data Record untuk Dihapus Berikut adalah salinan dari file find-rec.php yang diubah namanya menjadi file dele-rec.php, dengan mengubah kalimat yang dicetak tebal seperti dibawah ini. <? if($_post["tombol"]=="cari") { mysql_connect("localhost","","") or exit("server MySQL tidak terhubung!"); print "Server MySQL telah terhubung!<br>"; mysql_select_db("akademik"); $nrp=$_post["nrp"]; $query="select * from mahasiswa where NRP='$nrp'"; $hasil=mysql_query($query) or exit("data record tidak ditemukan!"); print "Data record BERHASIL ditemukan!<br>"; list ($nrp,$nama,$alamat,$kota,$gender,$telpon)=mysql_fetch_row($hasil); include "dele-del.php"; }?> Fungsi list() adalah digunakan untuk mengambil isi field dari query yang dihasilkan fungsi mysql_fetch_row(), dimana fungsi mysql_fetch_row() mengambil baris-bari yagn dihasilkan oleh perintah SQL, yang dijalankan melalui fungsi mysql_query(), karena hasil dari query hanya satu baris maka tidak perlu dilakukan perulangan untuk mengambil hasil query tersebut. 137
<HTML> <HEAD> <TITLE>Menghapus Data Records </TITLE> </HEAD> <BODY> <H2>MENGHAPUS DATA RECORD</H2> <FORM ACTION="DELETE.PHP" METHOD=POST> <TABLE> <TR><TD><B>NRP</B></TD><TD> <?print "<INPUT TYPE=TEXT NAME=NRP SIZE=15 VALUE='$nrp'>";?> </TD></TR><TR><TD><B>Nama</B></TD><TD> <?print "<INPUT TYPE=TEXT NAME=NAMASW SIZE=25 VALUE='$nama'>";?> </TD></TR><TR><TD><B>Alamat</B></TD><TD> <?print "<INPUT TYPE=TEXT NAME=ALAMATSW SIZE=50 VALUE='$alamat'>";?> </TD></TR><TR><TD><B>Kota</B></TD><TD> <?print "<INPUT TYPE=TEXT NAME=KOTASW SIZE=15 VALUE='$kota'>";?> </TD></TR><TR><TD><B>Telpon</B></TD><TD> <?print "<INPUT TYPE=TEXT NAME=TELPONSW SIZE=10 VALUE='$telpon'>";?> </TD></TR><TR><TD><B>Gender</B></TD> <?if($gender=="pria") {?> <TD><INPUT TYPE=RADIO CHECKED NAME=GENDERSW VALUE=Pria>Pria</TD></TR> <TR><TD></TD> <TD><INPUT TYPE=RADIO NAME=GENDERSW>Wanita</TD></TR> <?} else {?> <TD><INPUT TYPE=RADIO NAME=GENDERSW>Pria</TD></TR> <TR><TD></TD> <TD><INPUT TYPE=RADIO CHECKED NAME=GENDERSW VALUE=Wanita>Wanita</TD></TR> <?}?> <TR><TD></TD><TD ALIGN=RIGHT> <INPUT TYPE=SUBMIT NAME=TOMBOL VALUE=Hapus> <INPUT TYPE=RESET NAME=TOMBOL VALUE=Batal> </TD></TR> </TABLE> </FORM> </FORM> </BODY> </HTML> 138
Gambar 7.22 Hasil pencarian data record <? if($_post["tombol"]=="hapus") { mysql_connect("localhost","","") or exit("server MySQL tidak terhubung!"); print "Server MySQL telah terhubung!<br>"; mysql_select_db("akademik"); $nrp=$_post["nrp"]; $query="delete from MAHASISWA where NRP='$nrp'"; print "$query<p>"; mysql_query($query) or exit("menghapus data record GAGAL dilakukan!"); print "Menghapus data record BERHASIL!<br>"; }?> Gambar 7.23 Tampilan data record berhasil dihapus 139
7.4 Menggunakan phpmyadmin Untuk mempermudah pembuatan suatu basis data dan pengolahan table dari MySQL, maka telah dibuat suatu program phpmy Admin sejak tahun 1998 oleh Free Software Foundation, Inc yang beralamat di 59 Temple Place, suite 330, Boston, MA 02111-1307 USA ( http://www.phpmyadmin.net/), yang berlisensi GNU GENERAL PUBLIC LICENCE, sehingga diijinkan untuk di-copy dan disebarkan dengan bebas, meskipun begitu tidak diijinkan adanya perubahan (adanya modifikasi adalah tanggung jawab masing-masing). Klik disini Gambar 7.24 Program phpmyadmin-2.2.6-php.zip Untuk dapat menggunakan phpmyadmin maka harus dilakukan pemasangan dengan langkah sebagai berikut: 1. Klik file phpmyadmin-2.2.6-php.zip untuk membongkar isinya, 2. Letakkan pada directori C:\ sehingga akan terbentuk directori C:\phpMyAdmin-2.2.6, 3. Ubahlah alamat URL dari Home Directory ke C:\phpMyAdmin-2.2.6 seperti pada Gambar 7.25 dibawah, 4. Modifikasi file config.inc.php (lihat Gambar 7.26 dibawah) dengan menambahkan informasi alamat URL dari host yang bersangkutan, disini adalah http://localhost, seperti pada gambar 7.27 dibawah, 5. Jalankan program phpmyadmin melalui browser dengan memanggil file index.php seperti pada Gambar 7.28 dibawah. 140
Gambar 7.25 Home Direktory dari phpmyadmin Gambar 7.26 Isi direktori C:\phpMyAdmin 141
Modifikasi disini Gambar 7.27 Modifikasi file config.inc.php pada baris 36 Dengan phpmyadmin maka pembuatan basis data akan semakin mudah, hanya tinggal melakukan pemilihan nama basis data yang ingin dibuka, atau membuat nama basis data baru dengan mengisi nama basis data pada isian yang telah disediakan seperti pada Gambar 7.28 dibawah ini. Kemudian setelah nama basis data dipilih atau dibuat, langkah selanjutnya adalah pengolahan table, atau membuat table dengan memasukkan nama table pada isian yang telah disediakan Isian nama basis data baru yang akan dibuat Pilihan nama basis data yang talah ada Gambar 7.28 Tampilan awal phpmyadmin 142