Bab ini membahas dasar pembuatan database dan tabel di MySQL Selain itu, juga membicarakan cara mengakses data melalui PHR Skrip-skrip PHP yang dibahas di bab ini akan digunakan pada beberapa eksperimen pada bab-bab selanjutnya.
5.1 MySQL dan Database Server
Database adalah suatu mekanisme penyusunan data yang bersifat permanen yang dilakukan sedemikian rupa sehingga data mudah dikelola. Penyimpanan, pembacaan, pemodifikasian, dan penghapusan data dapat dilakukan dengan mudah. Database server adalah server yang menangani database. Jenis server ini memungkinkan data yang berada di mana saja dapat disimpan ke dalam database. Untuk menangani keamanan, pengaksesan database dilindungi dengan nama pemakai dan password.
MySQL merupakan salah satu database server yang populer. Situs besar seperti Google, Flicker, dan Facebook menggunakan database ini. Saat ini, MySQL dimiliki oleh perusahaan Oracle. Versi ‘open source’ maupun yang berbayar tersedia.
Secara teknis, suatu database umumnya mengandung sejumlah tabel. Satu tabel mengandung banyak baris dan kolom. Satu baris data selalu mengandung sejumlah kolom dengan nama yang sama. Satu baris data di tabel seringjuga dinamakan baris atau record, sedangkan istilah kolom kerap kali dinamakan field. Gambar 5.1 menunjukkan contoh tabel dan data yang terkandung.
Umumnya, table mengandung satu kunci primer. Kunci primer dapat berupa salah satu kolom atau gabungan lebih dari satu kolom yang digunakan untuk memastikan bahwa nilainya bersifat unik. Istilah unik ‘tidak kembar’. Artinya, jika suatu tabel mengandung kunci primer, nilai kunci primer untuk semua baris tidak ada yang kembar. jika Dengansuatu sifatnya yang demikian, apabila memberikan nilai kunci primer, sudah terjamin maksimum hanya terdapat satu baris yang memenuhinya. Sebagai contoh, dalam sebuah perusahaan, setiap pegawai memiliki nomor identitas atau nomor pegawai. Nomor pegawai ini bersifat unik. Dengan menyebut sebuah nomor pegawai, maksimum hanya satu pegawai yang cocok.
5.2 Perwujudan Database Server
Untuk mempraktikkan penyimpanan data, Anda memerlukan database server. Database server ini harus bisa diakses melalui Internet. Pilihan yang dapat Anda lakukan adalah dengan memanfaatkan web hosting yang bersifat gratis untuk melakukan praktik. Salah satu situs yang mendukung hal ini adalah
https://www.heliohost. org/.
Anda perlu mendaftarkan diri terlebih dahulu dengan mengeklik pada agar dapat menggu-nakan layanan yang diberikan oleh holiohost. Setelah pendaftaran dilakukan, anda berhak melakukan login. Gambar 5.2 memperlihatkan keadaan setelah login berhasil digunakan. GAMBAR 5.2
Tampilan di HelioHost setelah login dilakukan
Anda bisa segera mengeklik pada untuk menampilkan cPanel.
5.3 Penggunaan CPanel
CPanel adalah antarmuka yang memungkinkan kita dapat mengakses berbagai jenis layanan yang disediakan oleh HelioHost, misalnya untuk mengakses file di web server dan mengakses MySQL. Gambar 5.3 menunjukkan tampilan cPanel. GAMBAR 5.3 Tampilan cPanel
5.4 Penyiapan Tabel untuk Penyimpanan Data
Sebagaimana telah dijelaskan di depan, GAMBAR 5.3 Tampilan cPanel tabel terletak dalam database. ltulah sebabnya, jika, kita bermaksud menciptakan tabel, database harus tersedia terlebih dahulu. Oleh
karena itu, langkah pertama yang Anda lakukan adalah menciptakan sebuah database dengan nama iot. Prosedurnya seperti berikut.
Kliklah pada
Hasilnya ditunjukkan pada Gambar 5.4.
GAMBAR 5.4 Tampilan untuk menciptakan database
Masukkan nama belakang database berupa iot seperti terlihat berikut ini:
Nama database akan diawali dengan nama pemakai Anda dan diikuti tanda garis bawah.
CATATAN
Untuk menyesuaikan dengan contoh yang diberikan di bab ini, sebaiknya Anda menggunakan isian yang sama dengan contoh di atas. Jika tidak, Anda harus melakukan banyak perubahan pada contoh-contoh yang diberikan.
Klik pada tombol . Hasilnya semacam berikut:
Klik pada Go Back untuk kembali ke cPanel.
CATATAN
Tiga informasi yang ditunjukkan di depan perlu untuk Anda catat karena akan digunakan mengakses database.
Tahap selanjutnya adalah membuat tabel yang Tampilannya kita perlukan ditunjukkan untuk menyimpan pada Gambar data. Pada 5.5. cpanel, Anda bisa mengeklik pada . Tampilan ditunjukan pada gambar 5.5
GAMBAR 5.5 Tampilan awal untuk mengakses phpMyAdmin
Setelah Anda menjumpai tampilan seperti terlihat di Gambar 5.6, Anda perlu mengeklik pada Enter phpMyAdmin . Tampilan yang diperoleh ditunjukkan pada Gambar 5.7.
GAMBAR 5.6 Tampilan phpMyAdmin untuk mengakses database
Kini saatnya untuk memilih database_iot. Pada milik penulis, hal ini dilakukan dengan mengeklik pada ardugama_iot . Gambar 5.7 menujukkan tampilan yang didapat.
GAMBAR 5.7 Tampilan setelah database_iot dipiih
Selanjutnya,tabel dengan nama sensor perlu dibuat. Pro-sedurnya seperti berikut.
Ketik sensor pada kotak di sebelah kanan judul “Name:”.
Ketik 4 pada kotak di se-belah kanan judul”Num-ber of fields:”.
Klik pada tombol Go Hasilnya diperlihatkan pada Gambar 5.8.
Ketikkan data seperti ter-lihat pada Gambar 5.9. Tabel 5.1 menegaskan bagian-bagian yang perlu diisi. GAMBAR 5.8
tampilan untuk menentukan field-field di tabel
GAMBAR 5.9 Data penyusun struktur table
TABEL 5.1 Definisi struktur tabel sensor
Klik pada tombol Save . Hasilnya terlihat pada Gambar 5.10.
GAMBAR 5.10 Keadaan setelah tabel sensor dibentuk
Hasil pada Gambar 5.10 menunjukkan bahwa sekarang database mengandung satu tabel, yaitu sensor.
Pada pembentukan tabel di depan, beberapa hal penting diringkaskan di bawah ini.
Tipe data (dinyatakan dengan judul Type) digunakan untuk menentukan jenis data yang dapat disimpan di fie/d, contohnya tipe BIGNT menyatakan bilangan bulat yang secara bawaan mengandung 20 digit. Oleh karena itu, field nomor hanya bisa menyimpan bilangan bulat. Sebaliknya, FLOAT menyatakan bilangan real sehingga angka pecahan dapat disimpan. Adapun DATETIME menyatakan tipe data yang dapat menyimpan data waktu (mengandung tanggal maupun jam).
Pilihan A_l (auto increment) pada kolom Extra pada field nomor menyatakan bahwa isi untuk field ini akan diisi secara otomatis oleh sistem dengan angka yang nilainya lebih besar satu terhadap isi fie/d ini pada baris yang dibentuk sebelumnya.
Nilai PRIMARY untuk kolom nomor menyatakan bahwa kolom ini merupakan kunci primer. Hal îni digunakan untuk menjamin tidak ada baris yang nilai kolomnya sama dengan nilai kolom ini pada baris lain.
Setelah tabel terbentuk, Anda bisa segera mencoba untuk mengisikan data. Contoh ditunjukkan pada langkah-langkah berikut.
Klik pada tab Insert . Tampilan yang didapat diperlihatkan pada Gambar 5.11.
GAMBAR 5.11 Fungsi NOW dikenakan pada field waktu untuk memperoleh waktu sekarang
CATATAN
Isian NOW pada kolom Function untuk field WAKTU menyatakan bahwa field ini akan diisi dengan nilai balik fungsi bernama NOW ( ) yang memberikan nilai berupa waktu saat data disimpan ke tabel. Oleh karena itu, isi kolom Value untuk field ini dibiarkan kosong.
Mengingat field D_DATA didefinisikan sebagai auto_increment, kolom Value untuk field ini tidak perlu diisi.
Klik pada tombol GO . Hasilnya diperlihatkan pada Gambar 5.12.
Gambar 5.12 Keadaan setelah satu data disimpan ke tabel sensor
Informasi “1 row inserted” menyatakan bahwa data berhasil disimpan dalam satu.
5.5 Pengaksesan Data di MySQL
Di phpMyAdmin, isi tabel sensor dapat ditampilkan dengan mengeklik pada tab Browse . Hasilnya diperlihatkan pada Gambar 5.13. Tampak bahwa hanya ada satu baris data. Adapun Gambar 5.14 menunjukkan setelah tabel mengandung tiga baris data. Untuk keperluan di belakang, lengkapi tabel paling tidak mengandung tiga baris data seperti yang terlihat pada Gambar 5.14.
GAMBAR 5.13 Hasil Browse yang menampilkan data di tabel sensor
GAMBAR 5.14 Tabel sensor mengandung tiga baris data
CATATAN
Untuk mengedit suatu data di suatu baris, Anda bisa mengeklik ikon pada baris tersebut.
Untuk menghapus suatu data di suatu baris, Anda bisa mengeklik ikon pada baris tersebut.
5.6 Penggunaan File Manager
Untuk mengaksesfi/e di web server melalui File Manager, klik ganda pada yang terletak di cPanel. Tampilan yang didapat diperlihatkan pada Gambar 5.15.
GAMBAR 5. 15 Tampilan file-file yang terdapat di web server
File perlu diletakkan di folder public_html agar file bisa diakses melalui browser. Folder ini merupakan folder yang digunakan meletakkan file-file yang dapat diakses melalui web browser. Oleh karena itu, folder ini perlu diklik terlebih dahulu. Hasilnya ditunjukkan pada Gambar 5.16.
Tahap berikutnya adalah cara untuk membuatfi/e di webserver. Dalam hal ini, ada dua cara yang bisa ditempuh, yakni:
GAMBAR 5.16 Folder public_html
membuat file secara langsung di web server melalui File Manager; dan
membuat file di PC dan mengunggah ke web server.
Cara kedua mungkin lebih aman jika koneksi Internet kurang handal.
Untuk menempuh cara kedua, buatlahfi/e dengan menggunakan sebarang editor teks. Sebagai contoh, simpanlah skrip berikut dengan nama koneksidb . php.
Berikut adalah penjelasan untuk skrip PHP di depan.
Skrip PHP adalah skrip yang digunakan di sisi server untuk menangani permintaan Pemakai di browser. PHP hanyalah salah satu bahasa yang digunakan untuk menangani hal ini.
Skrip PHP diawali dengan <?php dan diakhiri dengan ?>.
Empat perintah DEFINE berikut secara berurutan digunakan untuk menyatakan narna pernaka. password, host (nama server untuk database), dan nama database yang hendak diakses:
DEFINE (‘DBUSER’ , ‘namaPemakaiAnda’);
DEFINE (‘DBPW’ , ‘passwordAnda’);
DEFINE (‘DBHOST’ , ‘local host’);
DEFINE (‘DBNAME’ , ‘namaPemakaiAnda_iot’);
Dalam hal ini, gunakan namaPemakaiAnda sewaktu melakukan registrasi ke HelioHost, contohnya milik penulis berupa ardugama. Isian pada DBNAME harus berupa nama pemakai diikuti dengan_iot.
Pernyataan berikut digunakan untuk melakukan koneksi ke database server:
$dbc-mysqli_connect(DBHOST,DBUSER,DBPW);
Keberhasilan koneksi ke database server ditangani melalui:
if ( !$dbc) {
die (“Koneksi ke database gagaI dilakukan: “.
Mysqli_error ($dbc) ) ;
exit () ;
}
Kode di atas menyatakan bahwa kalau database server tidak dapat diakses, eksekusi skrip diakhiri dengan memberikan pesan berupa:
Koneksi ke database gaga 1 dilakukan:
diikuti dengan pesan yang dihasilkan oleh fungsi mysqli_error ( ) .
Pernyataan berikut digunakan untuk memilih database yang hendak diakses:
$dbs = mysqli select db($dbc, DBNAME) ;
Keberhasilan untuk mengakses database tersebut ditangani oleh pernyataan berikut:
if (!$dbs) {
die(“Nama database tidak dikenal:”. mysqli_error ($dbc));
exit () ;
}
Kode di atas menyatakan bahwa kalau database tidak dapat diakses, pesan
Nama database tidak dikenal :
ditampilkan dan diikuti dengan pesan yang dihasilkan oleh fungsi mysqli error().
CATATAN
Fungsi koneksidb . php digunakan pada skrip-skrip PHP yang ditunjukkan untuk mengakses database.
5.7 Pengunggahan File
Setelah file koneksidb . php dibuat dan disimpan,file ini perlu diunggah ke web server pada folder public html. Langkah-langkah yang perlu dilakukan adalah seperti berikut.
Pastikan folder public html di File Manager telah dipilih.
Klik pada . Antarmuka seperti yang diperlihatkan pada Gambar 5.17 akan muncul.
GAMBAR 5.17 Tampilan untuk mengunggah file
Klik pada . Langkah ini menampilkan kotak dialog Open.
Pilih folder tempat file yang akan diunggah.
Klik pada file yang hendak diunggah.
Klik pada tombol Open.
Hasilnya, akan terlihat informasi seperti berikut:
Hal inilah yang menyatakan bahwa file sudah diunggah.
Untuk melihat keberadaan file koneksi .php, klik kembali pada folder public html. Hasilnya ditunjukkan pada Gambar 5.18.
GAMBAR 5.18 Isi folder public_html
5.8 Pengujian Skrip koneksidb.php
Sebelum menguji skrip koneksidb.php,mula-mula ujilah halaman utama web Anda. Pengujian dilakukan dengan menggunakan web browser, misalnya Google Chrome.Lalu,ketiklah pada baris alamat web semacam berikut:
GAMABAR 5.19 Hasil pengujian pemanggilan nama domain
namaSubdomainAnda.heliohost.org
Dalam hal ini, namaSubdomainAnda adalah nama pemakai milik Anda. Hasilnya ditunjukkan padaGambar 5.19.
Untuk mencegah kemunculan daftar file seperti pada Gambar 5.22,Anda perlu membuat file Bernama index.php yang isinya seperti berikut:
Selanjutnya, unggahkan file ini ke server.Setelah terunggah, uji kembali dengan memanggil:
namaSubdomainAnda. heliohost.org
Hasilnya diperlihatkan pada Gambar 5.20.
Tahap berikutnya adalah menguji skrip konekdb.php. Dalam hal ini, ketikkan alamat berikut pada browser:
namaSubdomainAnda. heliohost.org/ koneksidb.php
GAMBAR 5.20
Tampilan seletah index.php ditambah
Jika tidak ada kesalahan penulisan pada koneksidb.php,akan diperoleh halaman web yangkosong seperti terlihat pada Gambar 5.21.Jika hasilnya tidak kosong, berarti terdapat bagian yang salah di
skrip. Pada keadaan ini,betulkan skrip di komputer Anda dan unggah kembali file tersebut ke folder public_html.
GAMBAR 5.21 Hasil koneksidb.php
5.9 Penyajian Isi Tabel
Sekarang,akan dibahas sebuah skrip PHP yang ditujukan untuk menampilkan isi tabel sensor.Skrip yang perlu dibuat adalah seperti berikut:
Berikut adalah penjelasan untuk skrip di atas.
Skrip ini melibatkan perintah berikut yang ditujukan untuk menyertakan file bernama koneksidb. php:
include_once(“koneksidb.php”);
File PHP tersebutlah yang menangani koneksi ke database server dan memilihkan database yang dapat diakses pada perintah-perintah berikutnya.
perintah berikut digunakan untuk menjalankan perintah, mengeksekusi perintah SQL, agar memperoleh isi tabel sensor:
$hasil — mysqli_query ($dbc,
“SELECT FROM sensor ORDER BY waktu”);
Argumen pertama pada fungsi mysqli_query ( ) adalah variabel yang berasal dari koneksidb php yang menyatakan database yang dipilih. Argumen kedua adalah perintah SQL untuk memperoleh data semua kolom yang berada di tabel sensor, Pada perintah SQL, klausa ORDER BY waktu digunakan untuk mengurutkan hasil berdasarkan kolom waktu.
Perintah berikut digunakan untuk menampilkan data yang diperoleh melalui mysqli_query ( ) kecuali data nomor:
Setelah skrip di atas dibuat dan disimpan, unggahkan ke folder / public html.
5.10 Pengujian untuk Menampilkan Isi Tabel
File Iihatdata.php di depan digunakan untuk menampilkan isi file sensor. Untuk mengujinya, Anda perlu mengetikkan alamat berikut pada browser:
namaSubdomainAnda.heliohost.org/Iihatdata.php
Hasilnya diperlihatkan pada Gambar 5.22.
GAMBAR 5.22 Hasil pemanggilan skrip lihatdata.php
File Iihatdata .php di depan digunakan untuk menampilkan isi file sensor. Untuk mengujinya, Anda perlu mengetikkan alamat berikut pada browser:
namaSubdomainAnda.heliohost.org/lihatdata.php
Hasilnya diperlihatkan pada Gambar 5.23.
GAMBAR 5.23 Hasil pemanggilan skrip Iihatdata . php
5.1 1 Penambahan Data Melalui Skrip PHP
Penambahan data ke tabel dapat ditangani dengan menggunakan skrip PHP. Hal ini sangat bermanfaat untuk kepentingan menyimpan data yang berasal dari sensor. Contoh skrip untuk kepentingan ini adalah seperti berikut:
Untuk menguji skrip saveget.php,mula-mula ketikkan berikut di alamat URL milik browser dan tekan tombol Enter:
namaSubdomainAnda.
heliohost.org/saveget.php
GAMBAR 5.24 sketsa sudah berfungsi
dengan benar, tetapi penggunaannya salah
Jika kode di skrip saveget.php tidak ada yang salah tulis, akan diperoleh hasil seperti terlihat pada Gambar 5.24.Hasil tersebut menyatakan bahwa cara menggunakan skrip ini tidak seperti yang telah Anda ketik.
Sekarang,cobalah untuk mengetikkan permintaan seperti berikut:
namaSubdomainAnda.
heliohost.org/saveget.
php?suhu=25&lembab=50
GAMBAR 5.25 Hasil yang menyatakan data telah disimpan
Perintah tersebut menyatakan bahwa variabel suhu dan lembab hendak dilewatkan,dengan nilai untuk suhu adalah 25 dan nilai untuk lembab adalah 50.Hasil setelah tombol Enter ditekan diperlihatkan pada Gambar 5.25.
Untuk melihat hasil di tabel, periksa dengan phpMyAdmin.Akan terlihat keberadaan record baru yang diciptakan melalui skrip PHP.Gambar 5.26 memperlihatkan contoh hasil di table sensor,yakni pada baris terakhir. Tentu saja, Anda dapat pula menggunakan skrip lihatdata. php untuk memeriksa data yang barus saja ditambahkan.
GAMBAR 5.26 Hasil penyimpanan data melalui skrip PHP dapat dilihat secara langsung di tabel sensor
Skrip saveget.php menggunakan metode GET untuk mengirimkan data ke server. Cara seperti hanya bagus untuk pengujian, tetapi tidak digunakan dalam praktik nyata. Sebagai pengganti, metode POST-lah yang digunakan.Untuk keperluan ini,skrip yang menangani penyimpanan data perlu diubah dengan mengganti $_GET menjadi $_POST. Skrip savepost.php merupakan perwujudan hal ini.
Untuk menangani pemasukan data, perlu dibuatkan skrip HTML yang menggunakan formulir. Skripnya seperti berikut:
Untuk menguji skrip savepost . html, mulamula ketikkan berikut di alamat URL milik browser dan tekan tombol Enter:
namaSubdomainAnda . heliohost . org/savepost . html
Tampilan yang didapat diperlihatkan pada Gambar 5.27.
Sebagai contoh, Anda bisa memasukkan data 30 untuk suhu dan 65 untuk kelembaban udara, seperti yang diperlihatkan pada Gambar 5.28. Selanjutnya, jika tombol Kirim diklik, skrip savepost . php akan dijalankan. Hasilnya ditunjukkan pada Gambar 5.29. GAMBAR 5.27
Formulir untuk memasukkan
data suhu dan kelembaban udara
GAMBAR 5.28 GAMBAR 5.29
Contoh pemasukan suhu dan kelembaban udara Hasil pengujian dengan skrip lihatdata.php
Untuk melihat hasil penyimpan pesan data, anda bisa memanggil skrip lihatdata.php. Contoh hasil pemannggilan diperlihatkan pada gambar 5.30. tampak bahwa jumlah data yang semula sebanyak 4 telah berubah menjadi 5.
5.12 Isu Tanggal
Tanggal dan jam tercatat di tabel sensor dibentuk oleh skrip GAMBAR 5.30 Hasil pengujian
dengan skrip lihatdata .php
saveget .php atau save—post . php. Tentu saja, waktu yang digunakan adalah waktu di server. Jika server berada di Amerikä Serikat, sedangkan sensor berada di Sumatera, tentunya perbedaan waktu menjadi masalah. pada keadaan seperti ini, data waktu pun perlu dikirim dari sensor. Mengingat Arduino tidak memiliki waktu nyata, .maka sebuah komponen RTC (Real-Time Clock) perlu ditambahkan. Namun, penggunaan komponen ini tidak dibahas di buku ini. Jika Anda ingin mendalami penggunaannya, Anda bisa membaca buku penulis yang berjudul “From Zero to A Pro Arduino”.