Server Basis Data dan nstalasi Koneksi ke Basis Data MySQL Konsep Basis Data di Web Pertemuan ke 10 Pemrograman Web/T/ AK 045216/2 sks Basis Data Web Basis Data (Database) di aplikasi Web sama seperti pada pemakaian basis data tersebut di aplikasi desktop. Basis data yang banyak dipakai di aplikasi web adalah model client/server. Pemrograman Web/T/ AK 045216/2 sks Server Basis Data Server Basis Data (Database) yang didukung oIeh PHP antara Iain : Informix DB2 MySQL OracIe PostgreSQL Sybase Untuk proses instaIasinya, sama seperti instaIasi basis data tsb pada apIikasi desktop. Pada umumnya sudah ada fiIe instaIasinya, seperti setup.exe, yang kemudian diikuti beberapa pertanyaan. Pemrograman Web/T/ AK 045216/2 sks Basis Data Web Diagram Posisi Basis Data Web MySQL (Database) Web Browser Web Server nterpreter PHP File PHP Page yg diinginkan Web dinamis Manipulasi data Pemrograman Web/T/ AK 045216/2 sks MySQL MySQL adaIah database yang sangat popuIar digunakan bersama PHP. PHP dengan MySQL adaIah kombinasi yang baik untuk menampiIkan kekuatan sesungguhnya dari Server-Side scripting. Dengan MySQL, pengguna dapat membuat table, dimana data dapat disimpan lebih efisien dibandingkan menyimpan data dalam array. Untuk menggunakan MySQL ataupun database lain secara efektif, diperlukan pemahaman Structured Query Language (SQL). Pemrograman Web/T/ AK 045216/2 sks MySQL Langkah-Iangkah Penggunaannya : a. Koneksi ke Server MySQL PHP mempunyai fungsi mysqI_connect untuk koneksi ke server MySQL. DiperIukan 3 argumen; Pertama : nama dari server MySQL, Kedua : nama pengguna (username) MySQL dan Ketiga : sebuah password MySQL. Pada contoh ini, diasumsikan nama servernya adaIah IocaIhost. Pemrograman Web/T/ AK 045216/2 sks MySQL ika menjaIankan eb server pada satu system dan MySQL pada system Iain, gantiIah IocaIhost dengan IP address dari sistem yang ada MySQL. mysqI_connect mengembaIikan sebuah link_identifier yang dapat digunakan untuk komunikasi dengan database. Iink ini disimpan daIam sebuah variabIe yang disebut $link. <?php $Iink = mysqI_connect ("IocaIhost", "nama pengguna", "password"); ?> Pemrograman Web/T/ AK 045216/2 sks MySQL b. MemiIih sebuah Database SeIanjutnya adaIah memiIih database yang akan dipakai. PHP mempunyai fungsi mysqI_seIect_db yang dipergunakan untuk memiIih database yang akan dipakai. Argumen pertama adaIah nama database (wajib ada). Argumen kedua disebut dengan link_identifier, yang bersifat optional dan dihasiIkan dari perintah mysqI_connect. ika tidak dinyatakan, PHP akan menggunakan Iink terakhir yang dibuka oIeh mysqI_connect. <?php mysqI_seIect_db ("nama_database", $Iink); ?> Pemrograman Web/T/ AK 045216/2 sks MySQL c. MenjaIankan sebuah Query Sekarang sudah siap untuk menjaIankan sebuah SQL query ke database tersebut untuk memiIih informasi (seIect), meIakukan penambahan data (insert), mengubah (update) atau menghapus (deIete). Gunakan mysqI_query. DiperIukan 2 argumen: pertama: sebuah SQL query string (yang wajib ada) dan kedua adaIah link_identifier (opsionaI). Seperti mysqI_seIect_db, jika link_identifier tidak disebutkan, maka akan digunakan link terbuka terakhir. Pemrograman Web/T/ AK 045216/2 sks MySQL mysqI_query akan menghasiIkan sebuah resource atau niIai faIse jika query nya gagaI, pada penggunaan statement seIect. Sedangkan pada penggunaan deIete, insert atau update, akan dihasiIkan niIai true (jika query nya sukses) atau faIse (jika query nya gagaI) Untuk menjaIankan sebuah query digunakan fungsi PHP mysqI_query(query, [database]), dimana query adaIah query MySQL sedangkan database (bersifat opsionaI) adaIah sebuah koneksi database, yang niIai defauItnya adaIah koneksi terbuka terakhir (disini, koneksi tersebut diwakiIi $Iink). Contoh, untuk meIakukan query "SELECT * FROM mahasiswa ORDER BY npm ASC", : <?php mysqI_query("SELECT * FROM mahasiswa ORDER BY npmASC"); ?> Pemrograman Web/T/ AK 045216/2 sks MySQL Metode Iangsung ini kurang fIeksibeI. Pada umumnya digunakan metode 2 Iangkah, yakni memakai variabIe untuk statement query nya (missaI $query" atau $sql_query), kemudian penuIisan programnya menjadi mysqI_query($sqI_query). $sqI_query = "SELECT * FROM mahasiswa ORDER BY npm ASC"; Yang kedua, digunakan variabIe untuk menampung hasiI query. Contoh :. $resuIt = mysqI_query ($sqI_query, $Iink); Pemrograman Web/T/ AK 045216/2 sks MySQL Untuk menangkap kesaIahan, yakni untuk keperIuan debug, dapat dituIis sebagai berikut: <?php $resuIt = mysqI_query ($sqI_query, $Iink) or die (mysqI_error () . " Query nya adaIah :" . $sqI_query); ?> ika fungsi mysqI_query menghasiIakn false, PHP akan menghentikan script tersebut dan mencetak sebuah pesan error dari MySQL (seperti "you have an error in your SQL syntax") and the query. Pemrograman Web/T/ AK 045216/2 sks MySQL adi akhirnya penuIisan kode untuk menjaIankan querynya menjadi (diasumsikan koneksi databasenya adaIah $Iink): <?php $sqI_query = "SELECT * FROM mahasiswa ORDER BY npm ASC"; $resuIt = mysqI_query ($sqI_query, $Iink) or die (mysqI_error () . " Query nya adaIah :" . $sqI_query); ?> Pemrograman Web/T/ AK 045216/2 sks MySQL Menggunakan semuanya secara bersamaan DaIam bagian terdahuIu, terdapat 3 perintah yang beIum digabungkan. Sekarang perintah2 tersebut akan digabungkan, dimana tabIe yang akan digunakan adaIah tabIe Mahasiswa, yang disimpan daIam database Gunadarma. Pemrograman Web/T/ AK 045216/2 sks MySQL <?php //Koneksi ke server mysqI dan mendapatkan link identifier nya $Iink = mysqI_connect ("IocaIhost","nama pengguna",password"); //Sekarang memiIih database yang digunakan mysqI_seIect_db ("Gunadarma", $Iink); //Query nya $sqI_query = "SeIect * From Mahasiswa"; //MenjaIankan query $resuIt = mysqI_query ($sqI_query, $Iink); //Menutup Koneksi Database mysqI_cIose ($Iink); ?> Pemrograman Web/T/ AK 045216/2 sks MySQL Mendapatkan informasi SeIect Query Query seIect berarti memiIih informasi dari sebuah database yang dikenaI sebagai resource, yang ditampung daIam variabIe $result, sebagai resource identifier. Gunakan fungsi mysqI_fetch_array untuk menampiIkan informasi. DiperIukan satu parameter, yakni resource identifier (misaInya : $result), dan dihasiIkan sebuah array. Berikut adaIah contoh program untuk menampiIkan informasi dari database : Pemrograman Web/T/ AK 045216/2 sks MySQL <?php //Koneksi ke server mysqI server dan mendapatkan link identifier nya $Iink = mysqI_connect("IocaIhost", "nama pengguna", "password") or die('Koneksi GagaI: ' . mysqI_error()); // Sekarang memiIih database yang digunakan mysqI_seIect_db("Gunadarma") or die('GagaI memiIih database'); // Query nya $sqI_query = "SeIect * From Mahasiswa"; // MenjaIankan query $resuIt = mysqI_query($sqI_query)or die('query gagaI'. mysqI_error()); Pemrograman Web/T/ AK 045216/2 sks MySQL //iterasi through resuIt whiIe($row= mysqI_fetch_array($resuIt)) { //MenampiIkan informasi dari baris tersebut print_r($row); echo $row['foo']; //MenampiIkan hanya koIom foo. } // Mengosongkan resuItset (opsionaI) mysqI_free_resuIt($resuIt); // Menutup Koneksi Database mysqI_cIose($Iink); ?>