PHP sering dipasangkan dengan MySQL untuk mengembangkan aplikasi web. MySQL berperan sebagai tempat menyimpan data (database) sedangkan PHP adalah program yang mengelola data tersebut
Nyatanya, PHP tidak hanya bisa dipasangkan dengan MySQL. PHP juga dapat dipasangkan dengan SQLite, PostgreSQL, MongoDB, Ms. Akses, dll
Pada kesempatan kali ini kita akan belajar menggunakan PHP dan MySQL untuk membuat sebuah aplikasi sederhana
Bagaimana PHP dan MySQL terhubung?
PHP dan MySQL dapat berkomunikasi satu sama lain melalui API (Application Programming Interface)
</nav> <br> <table border="1"> <thead> <tr> <th>No</th> <th>Nama</th> <th>Alamat</th> <th>Jenis Kelamin</th> <th>Agama</th> <th>Sekolah Asal</th> <th>Tindakan</th> </tr> </thead> <tbody> <?php $sql = "SELECT * FROM calon_siswa"; $query = mysqli_query($db, $sql); while($siswa = mysqli_fetch_array($query)){ echo "<tr>"; echo "<td>".$siswa['id']."</td>"; echo "<td>".$siswa['nama']."</td>"; echo "<td>".$siswa['alamat']."</td>"; echo "<td>".$siswa['jenis_kelamin']."</td>"; echo "<td>".$siswa['agama']."</td>"; echo "<td>".$siswa['sekolah_asal']."</td>"; echo "<td>"; echo "<a href='form-edit.php?id=".$siswa['id']."'>Edit</a> | "; echo "<a href='hapus.php?id=".$siswa['id']."'>Hapus</a>"; echo "</td>"; echo "</tr>"; } ?> </tbody> </table> <p>Total: <?php echo mysqli_num_rows($query) ?></p> </body> </html>
Pertama kita membutuhkan koneksi ke database, kemudian kita harus mengimpor file mkdir /var/www/html/pendaftaran-siswa6 agar variabel touch /var/www/html/pendaftaran-siswa/{config.php,index.php,list-siswa.php,form-daftar.php,proses-pendaftaran.php,form-edit.php,proses-edit.php,hapus.php}6 dapat dibaca
CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;_0
Setelah itu, kita melakukan query untuk mengambil data siswa pada tabel mkdir /var/www/html/pendaftaran-siswa3
CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;_1
Hasil dari query tersebut kemudian kita ubah menjadi array dengan fungsi <?php $server = "localhost"; $user = "root"; $password = "kopi"; $nama_database = "pendaftaran_siswa"; $db = mysqli_connect($server, $user, $password, $nama_database); if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); } ?> 4 dan hasilnya disimpan dalam variabel <?php $server = "localhost"; $user = "root"; $password = "kopi"; $nama_database = "pendaftaran_siswa"; $db = mysqli_connect($server, $user, $password, $nama_database); if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); } ?> 5
CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;_2
Pengulangan <?php $server = "localhost"; $user = "root"; $password = "kopi"; $nama_database = "pendaftaran_siswa"; $db = mysqli_connect($server, $user, $password, $nama_database); if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); } ?> _6 akan berulang selama masih ada isi tabel. Nanti, selama iterasi… kami menampilkan datanya
CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;_3
Perhatikan array <?php $server = "localhost"; $user = "root"; $password = "kopi"; $nama_database = "pendaftaran_siswa"; $db = mysqli_connect($server, $user, $password, $nama_database); if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); } ?> _5, indeks sesuai dengan nama kolom dalam database dan peka huruf besar-kecil
Terakhir, kami menampilkan total data dalam tabel dengan fungsi <?php $server = "localhost"; $user = "root"; $password = "kopi"; $nama_database = "pendaftaran_siswa"; $db = mysqli_connect($server, $user, $password, $nama_database); if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); } ?> 8
CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;_4
Jadi hasilnya
Betapa mudahnya…. 😄
Cara Menambahkan Data ke Tabel MySQL
Ada dua file yang kita butuhkan untuk menambahkan data ke MySQL
- mkdir /var/www/html/pendaftaran-siswa_9 halaman untuk formulir input;
- touch /var/www/html/pendaftaran-siswa/{config.php,index.php,list-siswa.php,form-daftar.php,proses-pendaftaran.php,form-edit.php,proses-edit.php,hapus.php}_0 skrip untuk memproses data yang dimasukkan
Sebenarnya bisa saja dilakukan dalam satu file, tapi agar lebih mudah dipahami...kita lakukan secara terpisah saja
Silahkan buka file mkdir /var/www/html/pendaftaran-siswa_9 dan isi kode berikut
CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;_5
Perhatikan tag pembuka $password = "";_2, disana kita menggunakan atribut $password = "";3 dan $password = "";4
CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;_6
Atribut $password = "";_3 digunakan untuk menentukan skrip mana yang akan memproses input data. Sedangkan atribut $password = "";_4 untuk menentukan metode pengiriman data
Perhatikan juga inputnya, ada atribut $password = "";7. Atribut ini untuk menentukan kunci indeks dari array $password = "";8 dan $password = "";9
Selanjutnya silahkan isi file touch /var/www/html/pendaftaran-siswa/{config.php,index.php,list-siswa.php,form-daftar.php,proses-pendaftaran.php,form-edit.php,proses-edit.php,hapus.php}0 dengan kode berikut
CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;_7
Pertama kita ambil data yang dikirim dari form, semuanya disimpan di variabel $password = "";8. Karena sebelumnya kita menggunakan metode if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); }_2 pada formulir
Setelah itu, kami membuat kueri penyimpanan
Kemudian periksa apakah kueri berhasil atau gagal
Untuk menampilkan pesan sukses dan gagal pada halaman mkdir /var/www/html/pendaftaran-siswa7, silahkan tambahkan kode berikut di bawah tag if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); }4 pada file mkdir /var/www/html/pendaftaran-siswa7
CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;_8
Hasil
Sekarang kami memiliki dua data
Menghapus Data dari Tabel MySQL
Kami membutuhkan if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); }_6 untuk menentukan data yang akan dihapus. Oleh karena itu, kami mengirim if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); }_6 melalui string kueri
Contoh
CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;_9
String kueri adalah if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); }8. String kueri akan disimpan dalam variabel $password = "";9
Untuk lebih jelasnya silahkan buka file touch /var/www/html/pendaftaran-siswa/{config.php,index.php,list-siswa.php,form-daftar.php,proses-pendaftaran.php,form-edit.php,proses-edit.php,hapus.php}3 dan isikan kode berikut
INSERT INTO `calon_siswa` (`id`, `nama`, `alamat`, `jenis_kelamin`, `agama`, `sekolah_asal`) VALUES (NULL, 'Lia', 'Jl. Mangga No. 3, Mataram', 'perempuan', 'islam', 'SMPN 32 Ampenan');0
Sekarang coba klik link hapus, maka data akan langsung terhapus
Sebenarnya cara ini kurang aman, karena kita tidak memberikan dialog konfirmasi kepada user. Misalnya, menanyakan 'Apakah Anda yakin ingin menghapus?'
Perbarui Data di Tabel MySQL
Konsep memperbarui data hampir sama dengan menghapus
Pertama kita ambil if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); }_6 data untuk diedit. Setelah itu kita melakukan query untuk mengambil data dari database dan menampilkannya pada form
Setelah mengedit, lakukan kueri pembaruan untuk menyimpan perubahan
Untuk lebih jelasnya silahkan buka file touch /var/www/html/pendaftaran-siswa/{config.php,index.php,list-siswa.php,form-daftar.php,proses-pendaftaran.php,form-edit.php,proses-edit.php,hapus.php}1 dan isikan kode berikut
INSERT INTO `calon_siswa` (`id`, `nama`, `alamat`, `jenis_kelamin`, `agama`, `sekolah_asal`) VALUES (NULL, 'Lia', 'Jl. Mangga No. 3, Mataram', 'perempuan', 'islam', 'SMPN 32 Ampenan');_1
Ada beberapa hal yang perlu diperhatikan dalam kode
Pertama kita ubah data hasil query menjadi array dengan menggunakan fungsi ________32______3
Mengapa menggunakan fungsi tersebut?
Karena data yang akan kita ambil adalah satu baris dan agar indeks array menggunakan nama kolom
Contoh hasilnya seperti ini
INSERT INTO `calon_siswa` (`id`, `nama`, `alamat`, `jenis_kelamin`, `agama`, `sekolah_asal`) VALUES (NULL, 'Lia', 'Jl. Mangga No. 3, Mataram', 'perempuan', 'islam', 'SMPN 32 Ampenan');_2
Kemudian kami menampilkan data menjadi nilai default pada formulir
Jangan lupa masukan if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); }6 dengan tipe hidden untuk menyimpan if( !$db ){ die("Gagal terhubung dengan database: " . mysqli_connect_error()); }6 data yang akan diupdate
INSERT INTO `calon_siswa` (`id`, `nama`, `alamat`, `jenis_kelamin`, `agama`, `sekolah_asal`) VALUES (NULL, 'Lia', 'Jl. Mangga No. 3, Mataram', 'perempuan', 'islam', 'SMPN 32 Ampenan');_3
Untuk input dan pemilihan radio, kami menggunakan operator ternary untuk membuat atribut <!DOCTYPE html> <html> <head> <title>Pendaftaran Siswa Baru | SMK Coding</title> </head> <body> <header> <h3>Pendaftaran Siswa Baru</h3> <h1>SMK Coding</h1> </header> <h4>Menu</h4> <nav> <ul> <li><a href="form-daftar.php">Daftar Baru</a></li> <li><a href="list-siswa.php">Pendaftar</a></li> </ul> </nav> </body> </html>6 dan <!DOCTYPE html> <html> <head> <title>Pendaftaran Siswa Baru | SMK Coding</title> </head> <body> <header> <h3>Pendaftaran Siswa Baru</h3> <h1>SMK Coding</h1> </header> <h4>Menu</h4> <nav> <ul> <li><a href="form-daftar.php">Daftar Baru</a></li> <li><a href="list-siswa.php">Pendaftar</a></li> </ul> </nav> </body> </html>7