1 Bab I. Pengantar Pemrograman Web I.1. Pendahuluan Pemrograman Web digunakan untuk membangun aplikasi web, dimana aplikasi web ini dapat dibedakan menjadi : I.1.1 Web Statis Berisi atau menampilkan informasi yang bersifat tetap, dibentuk dengan menggunakan HTML (Hypertext Markup Languange) saja. Kelemahannya, setiap menginginkan perubahan harus dilakukan oleh pemrogramnya (orang yang mengerti bahasa HTML). I.1.2 Web Dinamis Berisi atau menampilkan informasi serta dapat berinteraksi dengan user yang bersifat dinamis, dibentuk dengan menggunakan bahasa HTML, Skrip (PHP, ASP, JSP, CGI) dan dikoneksikan ke basisdata (MySQL, PostgreSQL, Oracle, Microsoft Access). Perubahan informasi dalam halaman web didapat melalui perubahan data pada basisdata dan tidak harus melalui perubahan programnya, sehingga perubahan informasi dapat dilakukan oleh operator dan tidak lagi menjadi tanggungjawab programmer. Pada matakuliah ini, akan dipelajari cara membuat web dinamis. Berikut ini akan ditunjukkan mekanisme pembangkitan web secara dinamis. Browser mengirimkan permintaan HTTP Dikirim ke Web Browser Kode HTML Aplikasi Web (HTML & PHP) Web Browser (Internet Explorer & Netscape Communicator) Web Server (Apache & Xitami) Gambar 1.1 Proses pengakesan web dinamis Proses pengakesan web dinamis adalah sebagai berikut : 1. Web Browser (software pada komputer klien yang berfungsi menerjemahkan kode HTML menjadi halaman web), meminta halaman web (skrip PHP) menggunakan protokol HTTP. 2. Permintaan ini akan di tanggapi oleh Web Server (server yang melayani permintaan halaman web). 2 3. Jika halaman web yang diminta melakukan manipulasi terhadap Database Server, maka Aplikasi Web terlebih dahulu koneksi dengan Database Server, dan tentunya Database Server akan melayani permintaan dari Aplikasi Web tersebut. 4. Jika halaman web yang diminta masih berupa skrip PHP, maka skrip ini terlebih dahulu dirubah/diterjemahkan ke dalam Kode HTML oleh mesin PHP-nya. 5. Kemudian Kode HTML tersebut akan dikirimkan ke Web Browser (komputer klien), oleh Web Browser akan dirubah menjadi halaman web sesuai Kode HTML-nya. Catatan : Untuk mempermudah atau memperlancar dalam mempelajari pemrograman web ini, mahasiswa diberi tugas menginstal software untuk sarana simulasi misalnya PHP Triad. I.2 HTML (HyperText Markup Language) Merupakan bahasa standard yang digunakan untuk membuat dokumen yang bisa diakses melalui web browser atau untuk menulis halaman web. Untuk menuliskan kode-kode HTML diperlukan Editor (Notepad, PHPEditor, EditPlus dan lain-lain). Kegunaan HTML : 1. Mempublikasikan dokumen secara online, sehingga bisa diakses dari seluruh dunia. 2. Mengatur tampilan dari halaman web dan isinya. 3. Membuat Form, yang digunakan untuk menangani pendaftaran atau transaksi secara online. 4. Menambahkan objek-objek seperti image, audio dan video. Command HTML biasanya disebut Tag, digunakan untuk menentukan tampilan dari dokumen HTML, dengan format : <awal tag> … </akhir tag>. Tag tidak case sensitive, jadi penulisannya dapat menggunakan huruf besar maupun kecil, misalnya : <HTML> atau <html> keduanya menghasil output yang sama. Berikut ini adalah struktur dokumen HTML : <HTML> <HEAD> <TITLE> ……… </TITLE> Kepala dokumen HTML ditandai dengan tag HEAD. Pada bagian kepala, untuk membuat judul halaman web dengan menambahkan tag TITLE didalamnya. </HEAD> Tag HTML, untuk mengawali dan mengakhiri setiap dokumen HTML. <BODY> Bagian badan/body dokumen HTML biasa digunakan untuk menampilkan text, image link dan semua yang ditampilkan pada halaman web ditandai dengan tag BODY, biasanya juga disertai dengan atribut diikuti nilai atributnya. Contoh : <body bgcolor=purple> artinya backgroud bagian body menjadi berwarna ungu/purple. ……… </BODY> </HTML> 3 Contoh sederhana dokumen HTML : (WebPertamaku.html) <HTML> <HEAD> <TITLE> Halaman Web Pertamaku </TITLE> </HEAD> <BODY> Bagian badan halaman web pertamaku </BODY> </HTML> TITLE Nama berkas ( WebPertamaku.html ) BODY Gambar 1.2 Tampilan program sederhana dokumen HTML Aturan dalam menuliskan tag-tag HTML yaitu : - Tag ditulis dengan format diawali tanda < dan diakhiri tanda >, misalnya : <HTML>. - Tidak boleh ada spasi kosong setelah tanda <, misalnya : <TITLE> tidak boleh dituliskan dengan < TITLE>. - Tag boleh ditulis dengan huruf kecil, huruf kapital, ataupun kombinasi keduanya. I.2.1 Elemen-elemen dasar HTML. I.2.1.1 Heading (<h1> sampai <h6>) Untuk menentukan ukuran dari suatu berkas atau teks. Contoh programnya : (UkuranHeading.html) <HTML> <HEAD> <TITLE>Tampilan Ukuran Heading</TITLE> </HEAD> <BODY BGCOLOR=FUCHSIA> <H1> Heading Satu </H1> <H2> Heading Dua </H2> <H3> Heading Tiga </H3> <H4> Heading Empat </H4> <H5> Heading Lima </H5> <H6> Heading Enam </H6> <H2> Heading Dua </H2> </BODY> </HTML> 4 Gambar 1.3 Tampilan program ukuran Heading I.2.1.2 Paragraf (<p>) Digunakan membentuk suatu paragraf. Contoh programnya : (Paragraf.html) <HTML> <HEAD> <TITLE>Penggunaan Tag Paragraf</TITLE> </HEAD> <BODY> <H3> Definisi Web Browser dan Web Server </H3> <P> Web Browser adalah software yang diinstal di komputer klien yang berfungsi untuk menterjemahkan kode HTML halaman web. </P> <P> Web Server adalah server yang melayani akan permintaan halaman web. </P> </BODY> </HTML> Gambar 1.4 Tampilan penggunaan tag paragraf 5 I.2.1.3 List Item (<li>) Untuk mengelompokan data atau daftar, baik yang berurutan (<ol> ordered list) maupun yang tidak berurutan (<ul> unordered list). Tabel 1.1 Arti atribut pada list item, ordered list dan unordered list Tag Atribut Nilai <li> <ol> Type <ul> Start Type I i A a n squre disc circle Keterangan Digunakan untuk mengelompokan data baik yang berurutan maupun yang tidak berurutan Angka romawi besar Angka romawi kecil Huruf besar Huruf kecil Angka pertama Bullet Kotak Bullet Titik Bullet Lingkaran <HTML> <HEAD> <TITLE> Jadwal Praktikum </TITLE> </HEAD> <BODY> <H3>Jadwal Praktikum Di Lab. Pemrograman STMIK Akakom</H3> <OL START="1" TYPE="I"> <LI>SENIN</LI> <OL TYPE="A"> <LI> Pemrograman Visual MI_1</LI> <LI> Struktur Data SI_1</LI> <LI> Grafika Komputer MI_1</LI> </OL> <LI>SELASA</LI> <OL TYPE="I"> <LI> Pemrograman Visual MI_2</LI> <LI> Pemrograman Web TI_1</LI> <LI> Pemrograman Web MI_2</LI> </OL> <LI>RABU</LI> <OL TYPE="A"> <LI> Pemrograman Berorientasi Objek TI_2</LI> <LI> Pemrograman Web TI_4</LI> <LI> Algoritma Pemrograman TI_2</LI> </OL> <LI>KAMIS</LI> <OL START="2" TYPE="I"> <LI> Pemrograman Berorientasi Objek MI_3</LI> <LI> Algoritma Pemrograman TI_3</LI> <LI> Pemrograman Berorientasi Objek MI_1</LI> </OL> <LI>JUMAT</LI> <UL TYPE=square> 6 <LI> Pemrograman Visual MI_4</LI> <LI> Struktur Data SI_1</LI> <LI> Pemrograman Basisdata MI_1</LI> </UL> <LI>SABTU</LI> <UL TYPE=circle> <LI> Pemrograman Basisdata MI_2</LI> <LI> Struktur Data TI_1</LI> <LI> Pemrograman Basisdata MI_3</LI> </UL> </BODY> </HTML> Gambar 1.5 Tampilan program pengelompokan data I.2.1.4 Pemformatan teks pada halaman (page) Tabel 1.2 Arti atribut pada pemformatan halaman Tag <br> <font> Atribut color size face <center> <right> Keterangan Digunakan untuk memulai baris baru pada dokumen HTML. Menentukan warna font, dapat menggunakan nama warna (green, blue) atau dalam format bilangan hexadesimal (#000000 - #ffffff) Menentukan ukuran font dari 1 –7 . Menentukan jenis font (Courier New, Mono). Mengatur posisi teks agar berada ditengah Mengatur posisi teks agar rata kanan. 7 <left> <b> <i> <u> <sup> <sub> <small> <big> <tt> <marquee> Mengatur posisi teks agar rata kanan. Menebalkan cetakan teks Menampilkan teks dengan bentuk tulisan miring Menambahkan garis bawah pada teks Textnya di tulis diatas. Textnya dibawah garis. Menampilkan teks lebih kecil daripada ukuran normal Menampilkan teks lebih besar daripada ukuran normal Menampilkan teks seperti ketikan menggunakan mesin ketik Membuat teks bergerak Contoh programnya : (PemformatanTeks.html) <HTML> <HEAD> <TITLE>Pemformatan Text</TITLE> </HEAD> <BODY BGCOLOR="AQUA"> <P><FONT COLOR="9966FF" SIZE="6"><CENTER>Konsep Basis Data</P></CENTER></FONT> <CENTER><I><U><FONT COLOR="4466FF" SIZE="3"> Adalah suatu koleksi data komputer yang terintegrasi, diorganisasikan dan disimpan dalam suatu cara yang memudahkan pengambilan kembali. Penggunaan basis data ini dimaksudkan untuk mengatasi problem pada sistem yang memakai pendekatan berbasis berkas. </CENTER></I></U></FONT> <B><P><marquee><FONT COLOR="GREE" SIZE="5">Perangkat Lunak Basis Data</B></marquee></P></FONT> <LEFT><B><FONT COLOR="BROWN" SIZE="3" FACE="COURIER NEW"> Adalah perangkat lunak sistem yang memungkinkan para pemakai membuat, memelihara, mengontrol dan mengakses basis data dengan cara yang praktis dan efisien. DBMS dapat digunakan untuk mengakomodasikan berbagai macam pemakai yang memiliki kebutuhan akses yang berbeda-beda. Menampilkan teks seperti ketika menggunakan mesin ketik.... </LEFT></B></FONT> </BODY> </HTML> Gambar 1.6 Tampilan program pemformatan teks 8 Pemberian warna pada atribut color, bgcolor, dan text dapat mengikuti aturan berikut : ⇒ Menggunakan nama warna. ⇒ Menggunakan nilai RGB (Red-Green-Blue), dengan format “#RRGGBB”. Tabel 1.3 Tabel nilai warna Warna RGB Warna RGB Warna RGB Warna RGB aqua black blue fuchsia 00FFFF 000000 0000FF FF00FF gray green lime maroon 808080 008000 00FF00 800000 silver teal yellow white C0C0C0 8080 FFFF00 FFFFFF navy olive purple red 80 808000 800080 FF0000 I.2.1.5 Membuat Tabel Untuk membuat tabel pada halaman HTML, menggunakan tag berikut : Tabel 1.4 Tabel tag untuk membuat tabel pada halaman HTML Tag Keterangan <table> … </table> <tr> … </tr> <td> … </td> <th> … </th> <caption> … </caption> Membuat table dan sebagai tanda awal dan akhir table Membuat baris dalam table Membuat kolom (sel) Membuat judul kolom Membuat judul pada table Tabel 1.5 Tabel atribut-atribut yang ada dalam tag <table> Atribut Keterangan border bgcolor height width cellspacing cellpadding Menampilkan garis table dengan memberikan nilai untuk BORDER Membuat warna latar belakang table Mengatur tinggi table (tinggi sel) Mengatur lebar sel Mengatur jarak bagian sel terhadap tepi dalam bingkai table Mengatur jarak teks terhadap tepi kiri Tabel 1.6 Tabel atribut-atribut yang digunakan dalam <th>, <tr>, dan <td> Atribut Fungsi rowspan colspan align valign digunakan dalam <td>. atribut ini digunakan untuk menggabungkan beberapa baris sel digunakan dalam <th> atau <td>. berfungsi menggabungkan beberapa sel dalam satu baris mengatur peletakan dengan memberikan nilai justify, left, center, atau right mengatur teks menurut posisi vertikal dengan memberikan nilai baseline, top, middle, atau bottom Contoh programnya : (Tabel.html) <HTML> <HEAD> <TITLE>Penggunaan Tabel Text</TITLE> </HEAD> <BODY > <TABLE BGCOLOR="AQUA" WIDTH="62%" BORDER="10" CELLSPACING="1" CELLPADDING="8"> <CAPTION> <FONT SIZE="4" COLOR="BLUE">Daftar Penerimaan Mahasiswa STMIK A<FONT SIZE="6" COLOR="FUCHSIA">K</FONT>akom Yogyakarta</FONT> </CAPTION> 9 <TR> <TD ROWSPAN="2" ALIGN="CENTER" VALIGN="MIDDLE"><B> <FONT COLOR="RED">Tahun Akademik</FONT></B></TD> <TD COLSPAN="5" HEIGHT="50" ALIGN="CENTER" VALIGN="TOP"> <B><FONT COLOR="FF0000">Jurusan</FONT></B></TD> <TR ALIGN="CENTER"> <TD><FONT COLOR="GREEN"><B>Teknik Informatika</TD> <TD><FONT COLOR="GREEN"><B>Sistem Informasi</TD> <TD><FONT COLOR="GREEN"><B>Manajemen Informatika</TD> <TD><FONT COLOR="GREEN"><B>Teknik Komputer</TD> <TD><FONT COLOR="GREEN"><B>Komputer Akuntansi</TD> </TR> </TR> <TR> <TD><B><FONT COLOR="YELLOW">2000/2001</B></TD> <TD ALIGN="CENTER">300</TD> <TD ALIGN="CENTER">100</TD> <TD ALIGN="CENTER">400</TD> <TD ALIGN="CENTER">75</TD> <TD ALIGN="CENTER">80</TD> </TR> <TR> <TD><B><FONT COLOR="YELLOW">2001/2002</B></TD> <TD ALIGN="CENTER">325</TD> <TD ALIGN="CENTER">75</TD> <TD ALIGN="CENTER">375</TD> <TD ALIGN="CENTER">100</TD> <TD ALIGN="CENTER">75</TD> </TR> <TR> <TD><B><FONT COLOR="YELLOW">2002/2003</B></TD> <TD ALIGN="CENTER">350</TD> <TD ALIGN="CENTER">80</TD> <TD ALIGN="CENTER">375</TD> <TD ALIGN="CENTER">75</TD> <TD ALIGN="CENTER">80</TD> </TR> <TR> <TD><B><FONT COLOR="YELLOW">2003/2004</B></TD> <TD ALIGN="CENTER">500</TD> <TD ALIGN="CENTER">100</TD> <TD ALIGN="CENTER">450</TD> <TD ALIGN="CENTER">100</TD> <TD ALIGN="CENTER">80</TD> </TR> <TR> <TD><B><FONT COLOR="YELLOW">2004/2005</B></TD> <TD ALIGN="CENTER">550</TD> <TD ALIGN="CENTER">100</TD> <TD ALIGN="CENTER">450</TD> <TD ALIGN="CENTER">125</TD> <TD ALIGN="CENTER">80</TD> </TR> </TABLE> </BODY> </HTML> 10 Gambar 1.7 Tampilan contoh program tag tabel I.2.1.6 Membuat Hyperlink Anchor tag <a href> … </a>, digunakan untuk menentukan hyperlink dalam dokumen HTML. Properti href, untuk menentukan tujuan dari hyperlink tersebut. 1. Link Address. - Absolute Address, merupakan full internet address (URL) yang meliputi protocol, network location, path dan nama file, misalnya : <A HREF="http://www. ilmukomputer.com/index.html">Informasi lain </A> <BR>. - Relatif Address, merupakan URL yang tidak menyebutkan protocol dan network locationnya (hanya path dan nama filenya), misalnya : <A HREF="..\Link\Tabel1.html">Data penerimaan mahasiswa baru STMIK Akakom <BRbr> 2. Link Dokument. - Link ke dokumen lain, misalnya : <A HREF="Hyperlink2.html">Klik disini untuk melihat dokumen ke 2</A> <BR> - Link ke section tertentu dalam satu dokumen, misalnya : <A HREF="#WS">Definisi Web Statis</A><BR> <A NAME="WS">Web Statis</A> - Link ke bagian tertentu dokumen lain, misalnya : <A HREF="Hyperlink2.html#PHPTRIAD">Cara menginstal PHPTriad</A><BR> <A NAME="PHPTRIAD">Caranya : </A> 11 3. Mengubah gambar menjadi Hyperlink, misalnya : <A HREF="PemformatanTeks.html"> <IMG SRC="gambar1.jpg"WIDTH="125" HEIGHT="25" BORDER="0"></A><BR> Contoh programnya : (Hyperlink1.html dan Hyperlink2.html) 1. Hyperlink1.html <HTML> <P ALIGN="CENTER"><FONT SIZE="5" COLOR="BLUE" >Pengantar Pemrograman Web</FONT> </P> <P> Pemrograman Web digunakan untuk membangun aplikasi web, dimana aplikasi web ini dapat dibedakan menjadi :<BR> 1. <A NAME="WS">Web Statis</A>, dibentuk dengan menggunakan HTML (Hypertext Markup Languange) saja.Web statis ini mempunyai kelemahan, setiap menginginkan perubahan harus dilakukan oleh pemrogramnya (dalam hal ini adalah orang yang mengerti bahasa HTML).<BR> 2. Web Dinamis, dibentuk dengan menggunakan bahasa HTML, Skrip (PHP, ASP) dan dikoneksikan ke basisdata (MySQL, PostgreSQL). Dalam web dinamis ini perubahan informasi dalam halaman web dapat ditangani melalui perubahan data yang berasal dari basisdata dan tidak harus melalui perubahan programnya. Maka perubahan informasi dapat dilakukan oleh operator dan tidak lagi menjadi tanggungjawab programmer. </P> Dalam matakuliah ini, kita akan mempelajari cara membuat web dinamis. Berikut ini akan ditunjukkan mekanisme pembangkitan web secara dinamis. Proses pengakesan web dinamis adalah sebagai berikut :<BR> 1. Web Browser (software yang diinstal di komputer klien yang berfungsi untuk menterjemahkan kode HTML menjadi halaman web), meminta sebuah halaman berupa skrip PHP) suatu situs web.<BR> 2. Permintaan ini akan di tanggapi oleh Web Server (server yang melayani akan permintaan halaman web). Karena yang diminta masih berupa skrip PHP, maka skrip ini terlebih dahulu dirubah/diterjemahkan ke dalam kode HTML oleh mesin PHP-nya.<BR> 3. Setelah dirubah ke dalam kode HTML, Web server akan segera mengirim kode HTML tersebut ke komputer klien.<BR> 4. Setelah sampai pada komputer klien, maka kode HTML tersebut oleh web browser akan dirubah menjadi halaman web sesuai kode-kode HTML-nya.<BR> <P> Untuk mempermudah atau memperlancar dalam mempelajari pemrograman web ini alangkah baiknya anda menginstal PHP Triad sebagai sarana simulasi. PHP Triad adalah software installer PHP secara instant, yang berjalan pada lingkungan windows, dimana setelah PHP Triad selesai diinstal secara otomatis kita telah menginstal Web server (Apache) dan database MySQL. Langkah-langkahnya : <BR><BR><BR> <A HREF="#WS">Definisi Web Statis</A><BR> <A HREF="Hyperlink2.html#PHPTRIAD">Cara menginstal PHPTriad</A><BR> <A HREF="Hyperlink2.html">Klik disini untuk melihat dokumen ke 2</A> <BR> <A HREF="http://www.ilmukomputer.com/index.html">Informasi lain </A> <BR> <A HREF="..\Link\Tabel1.html">Data penerimaan mahasiswa baru STMIK Akakom <BR> <A HREF="PemformatanTeks.html"><IMG SRC="gambar1.jpg" WIDTH="125" HEIGHT="25" BORDER="0"></A> <BR> </HTML> 2. Hyperlink2.html <HTML> 1. Siapkan master PHPTriad yang dapat diperoleh dengan download di www.download.com atau mengcopy masternya di Lab. Terpadu. <BR> 2. Klik 2 kali pada file phptriad.exe, maka secara otomatis program akan menampilkan tampilan PHPTriad 2.11 Setup : Licence Agreement. <BR> 3. Kemudian klik Next, maka installer akan mengekstrak semua file PHPTriad dan installer secara otomatis akan membentuk direktori C:\Apache. <BR> 12 4. Tunggu sampai prosesnya selesai dan pastikan pada waktu menginstal tidak terjadi error dan anda tidak sedang menjalankan program-program lain. Sampai disini telah menunjukkan bahwa proses instalasi telah selesai. <BR> 5. Tahap berikutnya adalah untuk mengetes apakah PHPTriadnya telah berjalan dengan baik. <BR> <P> <B> <A NAME="PHPTRIAD">Caranya : </A> </B> <BR> 1. Jalankan Web Server Apache dengan klik tombol Start, pilih menu Programs, pilih menu PHPTriad lalu klik Start Apache. <BR> 2. Maka akan muncul jendela Start Apache dan biarkan saja selama kita menjalankan skrip-skrip PHP. <BR> 3. Jalankan web browser (internet explorer), lalu isi address-nya dengan : http://localhost <BR> 4. Apabila tampilan web browser-nya, berupa ucapan Selamat (Welcome to PHPTriad for Windows v2.11.) hal ini menunjukkan bahwa instalasi yang telah anda lakukan sukses. <BR> 5. Langkah berikutnya mencoba untuk menjalankan skrip (HTML atau PHP) sederhana buatan kita sendiri. <BR> 6. Buatlah skrip HTML seperti dibawah ini, untuk sementara menggunakan editor Notepad untuk mengetikan skrip HTMLnya. <BR> </P> <A HREF="Hyperlink1.html">Klik disini untuk kembali ke dokumen 1</A> <BR> </HTML> Gambar 1.8 Tampilan hyperlink 1 Gambar 1.9 Tampilan hyperlink 2 13 I.2.1.7 Format image Dari beberapa format image, ada 3 jenis format image yang umum digunakan : - JPG (Joint Photographic Expert Image), nama file.jpg - GIF (Graphical Interchange Format), nama file.gif - PNG (Portable Network Graphics), nama file.png Untuk menginsertkan image ke dokumen HTML digunakan tag image <img>, dengan format <img src=”path + namafile”>, misalnya : <img src=”fotoku.gif>. Atribut yang digunakan : Tabel 1.7 Tabel atribut-atribut yang digunakan dalam tag image Atribut Align Nilai Keterangan Top, Bottom, Middle Digunakan untuk menentukan posisi image terhadap text. Digunakan untuk menetukan posisi image di dokumennya. Hspace digunakan untuk menentukan berapa banyak ruang kosong (pixel) yang dimiliki sebuah image pada sisi kiri dan kanannya, sedangkan Vspace pada sisi atas dan bawah. Left, Right, Center Hspace, Vspace Contoh programnya : (Image.html) <HTML> <P ALIGN=CENTER> <FONT SIZE="5" COLOR=BLUE ><B>Satu Cinta Dua Jiwa</FONT></B><BR> <FONT COLOR=RED ><B>Oleh : Siti Nurhaliza</FONT></B><BR><BR> <P><IMG SRC="Sari.jpg" HEIGHT=75 WIDTH=60 ALIGN=LEFT ALIGN=BOTTOM HSPACE=10> Seharusnya kau lebih mengerti<BR> Seandainya kau selami ke dasar<BR> Tak perlu lagi dikau meragui<BR> Pada dasarnya bercinta<BR><BR></P> <P ALIGN=RIGHT><IMG SRC="Sari.jpg" HEIGHT=75 WIDTH=60 ALIGN=RIGHT ALIGN=BOTTOM> Renungkanlah dimana asalnya<BR> Lahirnya cinta mu yang tulus<BR> Jangan dikau hanya merasai<BR> Sentuhan dari zahirnya<BR><BR></P> <P ALIGN=CENTER> Kini pastinya kau kan bertemu<BR> <IMG SRC=" Sari.jpg " HEIGHT=75 VSPACE=15 WIDTH=60 ALIGN=CENTER><BR> Kala cinta dari mu mula berseri<BR><BR></P> <P> Satu cinta dua jiwa <IMG SRC=" Sari.jpg " HEIGHT=75 WIDTH=60 ALIGN=TOP></BR> Indahnya rasa bagai pelangi <IMG SRC=" Sari.jpg " HEIGHT=75 WIDTH=60 ALIGN=MIDDLE VSPACE=2 > Satu cinta seribu rasa <IMG SRC=" Sari.jpg " HEIGHT=75 WIDTH=60 ALIGN=BOTTOM> Bersemi kasih di dua hati</P> <P> <IMG SRC=" Sari.jpg " HEIGHT=275 WIDTH=200 ALIGN=LEFT><BR> Resah rasa bila tak bersama<BR> Berbisiklah naluri cinta mu<BR> Emosinya tiada berarah<BR> Tiap minit kau curiga<BR> Selamanya kau kan percaya<BR> Dan naluri dan emosi<BR> Andai cinta mu teguh berdiri<br> Pasti bahagia </P> </HTML> 14 Gambar 1.10 Tampilan 1 halaman image Gambar 1.11 Tampilan 2 halaman image 15 I.2.1.8 Form Beberapa kegunaan form dalam aplikasi web : - Memperoleh data-data user untuk mendaftar pada service yang di sediakan. - Memperoleh informasi pembelian secara online. - Memperoleh feedback dari user mengenai website yang kita buat. Tag untuk membuat form dalam dokumen HTML adalah tag <form>, atribut yang digunakan : Tabel 1.8 Tabel atribut-atribut yang digunakan dalam tag form Atribut Nilai Method Action Post URL Keterangan Data akan di kirim ke server sebagai block data ke script. Menentukan lokasi dari script yang akan memproses data dari form yang dibuat. Tipe atribut dalam tag <input> pada HTML. I.2.1.8.1 Text Untuk membuat kontrol text baris tunggal, atribut pendukung yang digunakan : Tabel 1.9 Tabel atribut-atribut yang digunakan dalam tag text Atribut Name Value Size Maxlength Tabindex Keterangan Untuk menamai nilai data sehingga scriptnya bisa memisah data dari field yang lain. Untuk menentukan sebuah nilai defaultnya. Menentukan seberapa lebar kotak textnya. Jumlah maksimum karakter yang dapat dimasukkan. Mengontrol urutan tab kotak input, yang akan dimasukin pada saat menekan tombol tab. Contoh programnya : (InputText.html) <HTML> <HEAD> <TITLE>Contoh Input Text</TITLE> </HEAD> <BODY BGCOLOR="Aqua"> <FORM> <P><B>Nama Lengkap Anda : <BR> <INPUT TYPE=TEXT NAMA=nmlkp SIZE=30 MAXLENGTH=25 TABINDEX=1 > <P><B>Alamat Lengkap Anda : <BR> <INPUT TYPE=TEXT NAMA=almlkp SIZE=100 MAXLENGTH=95 TABINDEX=3> <P><B>Jurusan : <BR> <INPUT TYPE=TEXT NAMA=jur SIZE=25 MAXLENGTH=20 TABINDEX=2 VALUE="Teknik Informatika"> </FORM> </BODY> </HTML> Gambar 1.12 Tampilan form input text 16 I.2.1.8.2 Password Untuk menangani password atau data rahasia lain, sehingga pada waktu mengisi input yang bertipe password yang muncul dilayar adalah tanda asteris (*), atribut yang digunakan : Tabel 1.10 Tabel atribut-atribut yang digunakan dalam tag password Atribut Name Value Size Maxlength Tabindex Keterangan Untuk menamai nilai data sehingga scriptnya bisa memisah data dari field yang lain. Untuk menentukan sebuah nilai defaultnya. Menentukan seberapa lebar kotak textnya. Jumlah maksimum karakter yang dapat dimasukkan. Mengontrol urutan tab kotak input, yang akan dimasukin pada saat menekan tombol Tab. Contoh programnya : (InputPassword.html) <HTML> <HEAD> <TITLE>Contoh Input Passowrd</TITLE> </HEAD> <BODY BGCOLOR="Aqua"> <FORM> <P ALIGN=LEFT> <FONT SIZE=4 COLOR=RED ><B> Silahkan Anda Login Dulu....!!! </B> </FONT><BR> <B>Nama <FONT COLOR=Aqua>!!!!</FONT> : <INPUT TYPE=TEXT NAMA=nmuser SIZE=15 MAXLENGTH=12 TABINDEX=1 ><BR> <B>Password : <INPUT TYPE=PASSWORD NAMA=pwd SIZE=15 MAXLENGTH=8 TABINDEX=2><BR> </FORM> </BODY> </HTML> Gambar 1.13 Tampilan form input password I.2.1.8.3 Checkbox Digunakan untuk membuat kotak cex (checkbox). Tabel 1.11 Tabel atribut-atribut yang digunakan dalam tag Atribut Name Value Size Checked checkbox Keterangan Untuk menamai nilai data sehingga scriptnya bisa memisah data dari field yang lain. Nilai data yang akan diberikan kepada script yang dituju. Menentukan ukuran kontrolnya. Menunjukkan bahwa kotak ceknya telah dipilih. Contoh programnya : (InputCheckbox.html) <HTML> <HEAD> <TITLE>Contoh Input Checkbox</TITLE> </HEAD> 17 <BODY > <FORM> <P><B>Silahkan Pilih Hobby Anda : </P> <INPUT TYPE="CHECKBOX" NAME="HB1" VALEU="MBC" CHECKED=CHECKED >Membaca <BR> <INPUT TYPE="CHECKBOX" NAME="HB2" VALEU="MYY" >Menyanyi<BR> <INPUT TYPE="CHECKBOX" NAME="HB3" VALEU="BRN" >Berenang<BR> <INPUT TYPE="CHECKBOX" NAME="HB4" VALEU="BLJ" >Belanja<BR> </FORM> </BODY> </HTML> Gambar 1.14 Tampilan form input check box I.2.1.8.4 Radio Digunakan untuk membuat tombol radio (radio botton), dimana disini hanya dapat memilih satu pilihan dari seluruh group tombol radio dan nama yang diberikan harus sama semua. Tabel 1.12 Tabel atribut-atribut yang digunakan dalam tag radio Atribut Name Value Size Checked Keterangan Untuk menamai nilai data sehingga scriptnya bisa memisah data dari field yang lain. Nilai data yang akan diberikan kepada script yang dituju. Menentukan ukuran kontrolnya. Menunjukkan bahwa kotak ceknya telah dipilih. Contoh programnya : (InputRadioButton.html) <html> <head> <title>Contoh Input Tombol Radio</title> </head> <body > <form> <p><b>Pilihan Jurusan Anda : <br> <input type="radio" name="jrs" valeu="ti" checked=checked>Teknik Informatika<br> <input type="radio" name="jrs" valeu="si" >Sistem Informasi<br> <input type="radio" name="jrs" valeu="mi" >Manajemen Informatika<br> <input type="radio" name="jrs" valeu="tk" >Teknik Komputer<br> <input type="radio" name="jrs" valeu="ka" >Komputer Akuntansi<br></p> </form> </body> </html> 18 Gambar 1.15 Tampilan form input radio button I.2.1.8.5 Text Area Untuk membuat textarea, dimana disini kita dapat menuliskan text mencakup sejumlah baris dan kolom. Tag yang digunakan adalah <Textarea> … </Textarea>. Tabel 1.13 Tabel atribut-atribut yang digunakan dalam tag textarea Atribut Name Cols Rows Keterangan Untuk menamai nilai data sehingga scriptnya bisa memisah data dari field yang lain. Menentukan jumlah kolom layar yang disediakan bagi area teks. Menentukan jumlah baris layar yang disediakan bagi area teks. Contoh programnya : (InputTextarea.html) <html> <head> <title>Contoh Pembuatan Textarea</title> </head> <body > <table> <tr><td><b>Keterangan : <br></td> <td><textarea name="kspl" cols=50 rows=3> </textarea></td></tr> </table> </body> </html> Gambar 1.16 Tampilan form input textarea I.2.1.8.6 Menu Pop-Up Digunakan untuk memberikan menu pilihan kepada para pembaca. Menu ini mirip dengan radio button, dimana kita hanya dapat memilih satu pilihan dari berbagai nilai yang ada dalam menu tersebut. Dalam menu pop-up ini jumlah pilihan yang ada dapat lebih banyak. Tag yang digunakan adalah <select> … </select>. 19 Tabel 1.14 Tabel atribut-atribut yang digunakan dalam tag MenuPopUp Atribut <Option> Name Value Keterangan Tag option ini digunakan untuk menyatakan menu atau daftar pilihannya. Untuk menamai nilai data sehingga scriptnya bisa memisah data dari field yang lain. Nilai data yang akan diberikan kepada script yang dituju. Contoh programnya : (InputMenuPopUp.html) <html> <head> <title>Contoh input dengan Menu Pop-Up</title> </head> <body > <form> <p><b>Pilih Jurusan Anda : <br> <select name=jrs> <option value="ti" selected>Teknik Informatika</option> <option value="si" >Sistem Informasi</option> <option value="mi" >Manajemen Informatika</option> <option value="tk" >Teknik Komputer</option> <option value="ka" >Komputer Akuntansi</option> </select></p> </form> </body> </html> Gambar 1.17 Tampilan form input menupopup I.2.1.8.7 Submit dan Reset Dalam sebuah form paling tidak harus memiliki sebuah tombol submit dan reset. Atribut yang digunakan adalah type dimana type=”submit” digunakan untuk mengirimkan data yang telah diisi oleh user ke server sedangkan type=”reset” digunakan untuk menghapus/mengosongkan semua data yang telah dimasukkan ke form. Tabel 1.15 Tabel atribut-atribut yang digunakan pada Submit dan Reset Atribut Keterangan Method Metode pengiriman data ke file tujuan. Ada 2 yaitu POST (digunakan untuk menangani pengiriman data yang besar melalui form) dan GET (mengirimkan data di server dengan cara meletakkan data pada akhir URL yang dituju). Memberikan nama pada data yang diinputkan. Memberikan label pada tombol submit. Aksi yang akan dilakukan jika tombol submit ditekan. Type form yang akan dijalankan. Name Value Action Type 20 Contoh programnya : (SubmitReset.html) <html> <head> <title>Contoh Program Form</title> </head> <body bgcolor=aqua> <form method="get" action="Terimakasih.php"> <center><font size=4 color=brown>Form Untuk Peserta Pelatihan Pemrograman di STMIK A<font size=5>K</font>AKOM </font></center> <hr size=5 color=brown><br> <table border=2 cellspacing=0 width=85%> <tr><td width=18%><b>Nama</b></td> <td> <input type=text name=nama maxlength=30 size=32></td></tr> <tr><td width=18%><b>Password</b></td> <td> <input type=password name=pswd maxlength=10 size=12></td></tr> <tr><td width=18%><b>Tanggal Lahir<b></td> <td> <input type=text name=tgl maxlength=2 size=2> <input type=text name=bln maxlength=2 size=2> <input type=text name=thn maxlength=4 size=8></td></tr> <tr><td width=18%><b>Jenis Kelamin</b></td> <td> <input type=radio name=jk checked=checked>Pria <input type=radio name=jk>Wanita</td></tr> <tr><td><b>Jurusan <br></td> <td><select name=jrs> <option value="ti" selected>Teknik Informatika</option> <option value="si" >Sistem Informasi</option> <option value="mi" >Manajemen Informatika</option> <option value="tk" >Teknik Komputer</option> <option value="ka" >Komputer Akuntansi</option> </select></td></tr> <tr><td width=18%><b>Pilihan Pelatihan</b></td> <td> <input type=checkbox name=html >HTML <input type=checkbox name=php >PHP <input type=checkbox name=python >PYTHON <input type=checkbox name=mysql >My-SQL <input type=checkbox name=postgre >Postgre-SQL <input type=checkbox name=builder>C++ Builder </td> </tr> <tr><td><b>Keterangan <br></td> <td><textarea name="kspl" cols=53 rows=3> </textarea></td></tr> </table> <p><font size=5><b> <input type="submit" value="Kirim" name="tblkrm"> <input type="reset" value="Batal" name="tblbtl"></p> </body> </html> Contoh programnya : (TerimaKasih.html) <html> <head> <title>Ucapan Terima Kasih</title> </head> <body > <center><font size=4 color=brown>Terimakasih atas Kepercayaannya Mengikuti Pelatihan Pemrograman di STMIK A<font size=5>K</font>AKOM </font></center> 21 <hr size=5 color=brown> <hr size=3 color=brown> <?php print("Nama Anda adalah : $nama"); ?> </body> </html> Gambar 1.18 Tampilan form dengan submit dan reset Gambar 1.19 Hasil penekanan tombol submit yang mengarah ke Terimaksih.php I.2.1.8.8 Frame HTML Digunakan untuk menjadikan suatu halaman web menjadi beberapa bagian dokumen HTML , dimana setiap bagian merupakan satu halaman HTML terpisah. Sehingga tampilan halaman HTML yang salah satu atau beberapa bagian berganti-ganti isinya sedangkan bagian lainnya tetap, maka hal ini akan menghemat bandwith internet dan mempercepat proses download secara keseluruhan. Tag yang digunakan adalah <frameset> … </frameset>. Tabel 1.16 Tabel atribut-atribut yang digunakan pada frame HTML Atribut Rows Colspan Frame Src Fungsi Menentukan frame horisontal dengan tinggi baris tertentu. Menentukan frame vertical dengan lebar kolom tertentu. Menentukan dokumen HTML yang dimasukkan ke dalam frame. 22 Contoh programnya : (FrameHorisontal.html) <html> <head> <title>Contoh Frame Horisontal</title> </head> <frameset rows=30%,*,40%> <frame name=atas src=SubmitReset.html> <frame name=tengah src=Tabel.html> <frame name=bawah src=Hyperlink1.html> </frameset> </body> </html> Contoh programnya : (FrameVertikal.html) <html> <head> <title>Contoh Frame Vertikal</title> </head> <frameset cols=30%,*,30%> <frame name=kiri src= SubmitReset.html > <frame name=tengah src=Tabel.html > <frame name=kanan src=Hyperlink1.html > </frameset> </body> </html> 23 Gambar 1.21 Tampilan frame vertikal Contoh programnya : (FrameGabungan.html) <html> <head> <title>Contoh Frame Gabungan</title> </head> <frameset cols=30%,*> <frame name=kiri src=Hyperlink1.html > <frameset rows=55%,*> <frame name=atas src= SubmitReset.html > <frame name=bawah src=Tabel.html > </frameset> </frameset> </body> </html> Gambar 1.22 Tampilan frame gabungan 24 Tugas : Membuat Home Page Pribadi dan Form Buku Tamu dengan HTML, dimana Form Buku Tamunya di Link dari Halaman Utama Home Page. Yang dikumpulkan : 1. Cetakan Skript HTML-nya. 2. Cetakan Tampilan Halaman Home Page dan Form Buku Tamunya. 3. Penjelasan Skript HTML-nya (Harus ditulis dengan Tangan). Bab II. PHP (PHP Hypertext Preprocessor) II.1 Pengantar PHP Merupakan bahasa berbentuk script yang ditempatkan dan diproses dalam server, lalu hasilnya dikirim ke klien jika klien memintanya, dengan menggunakan web browser (internet explorer). PHP bersifat Open Source, karena gratis dan bebas. Database pasangannya, umumnya MySQL dan dijalankan pada webserver Apache yang berbasis system operasi Linux. Kelebihan-kelebihan dari PHP : 1. Mudah dibuat dan kecepatan aksesnya tinggi. 2. Dapat dijalankan pada web server(Apache, Personal Web Server/PWS,IIS, Xitami) yang berbeda dan dalam system operasi(Linux, Windows, Unix, Macintosh) 3. Dapat digunakan secara gratis dan bebas. 4. Script-nya dapat ditempelkan di dalam tag HTML. 5. Termasuk aplikasi Server-Side Programming (PHP akan dieksekusi di server), sehingga yang dikirim ke web browser klien sudah dalam bentuk HTML. 6. Mampu berkomunikasi dengan berbagai database terkenal (MySQL, Postgre SQL, Oracle, InterBase, Sybase, Microsoft Acces, Informix). Penulisan kode PHP diawali dengan tanda lebih kecil (<) dan diakhiri dengan tanda lebih besar (>). Beberapa cara untuk menuliskan script PHP, yaitu : Tabel 2.1 Beberapa format penulisan kode PHP 1. <? <?php 3. <Script Language=”php”> ?> ?> </Script> Skrip PHP 2. Skrip PHP Contoh programnya : (PHPSederhana.php) <html> <head> <title>Program PHP Sederhana</title> </head> <body >Belajar PHP Pertamakali<br> <? echo " Sekarang Tanggal : ", Date("d F Y"),"<br>"; Skrip PHP 25 printf ("Sekarang Tanggal : %s", Date("d F y")); printf ("<br>"); printf ("OK deh..."); ?> </body> </html> Gambar 2.1 Tampilan program PHP Sederhana Penjelasannya : echo "Tanggal Sekarang adalah : ", Date("d F Y"); dan printf ("Tanggal Sekarang adalah : %s", Date("d F y")); merupakan suatu instruksi yang dapat berdiri sendiri dan digunakan untuk melakukan suatu tugas tertentu dan selalu diakhiri dengan tanda koma (;) yang biasa disebut sebagai pernyataan. Kedua pernyataan ini, digunakan untuk menampilkan suatu tulisan atau hasil dari suatu pemrosesan, yang menggunakan perintah echo atau printf, dimana dalam perintah echo tidak diperlukan tanda ( dan ), sedangkan dalam perintah printf tanda ( dan ) diperlukan, untuk contoh program selanjutnya kita akan menggunakan perintah printf ini, karena dengan adanya tanda ( dan ) akan mempermudah dalam menganalisa programnya. Date("d F Y"), perintah untuk menampilkan tanggal, bulan dan tahun saat skrip tersebut dipanggil. Pemrosesan kode PHP adalah pada sisi server, sehingga pihak klien tidak dapat melihat kode PHP yang sesungguhnya. Untuk membuktikannya, sesudah anda buka dengan web browser pilih menu View, lalu submenu Source maka yang akan terlihat adalah kode seperti berikut : Gambar 2.2 Tampilan View-Source pada web browser Dari tampilan kode diatas terbukti, berbeda dengan kode PHP aslinya. Jadi yang sampai ke klien sebenarnya adalah kode HTML-nya. II.2 Dasar-dasar PHP II.2.1 Komentar (Comment) Bagian dari kode PHP yang tidak dieksekusi/dijalankan, tetapi sangat berguna bagi pemrogram atau pembaca program, dalam memahami isi program mengingat keterangan-keterangan penjelas. komentar biasanya berisi 26 Ada 2 cara untuk menulis komentar : 1. Komentar 1 baris, dibuat menggunakan tanda //(garis miring dua kali) atau tanda #. 2. Komentar banyak baris, dibuat dengan menggunakan pasangan tanda /* dan */ dimana semua tulisan yang berada diantara kedua tanda ini tidak akan dijalankan . Contoh programnya : (Komentar.php) <html> <head> <title>Contoh Komentar 1 dan Banyak Baris</title> </head> <body > Belajar PHP <br> <? //menampilkan dengan echo echo " Sekarang Tanggal : ", Date("d F Y"); echo "<br>"; printf ("Sekarang Tanggal : %s", Date("d F y")); #menampilkan dengan printf printf ("<br>"); /* Program ini akan mencetak tanggal sekarang sebanyak 2 buah yaitu dengan echo dan printf, dengan format d F Y dan d F y */ echo " Sekarang Tanggal : ", Date("d F Y"); echo "<br>"; printf ("Sekarang Tanggal : %s", Date("d F y")); ?> </body> </html> Gambar 2.3 Tampilan program komentar.php Penjelasannya : //menampilkan dengan echo dan //menampilkan dengan printf adalah merupakan contoh komentar 1 baris. /*Program ini akan mencetak tanggal sekarang sebanyak 2 buah yaitu dengan echo dan printf, dengan format d F Y dan d F y */ adalah merupakan contoh komentar banyak baris. II.2.2 Pernyataan (Statement) Satuan perintah, dimana statemen ini harus diakhiri dengan tanda titik-koma (;). Contoh programnya : (Pernyataan.php) <html> <head> <title>Contoh Statement</title> </head> 27 <body > <? echo "Sekarang Tanggal : ", Date("d F Y"); echo "<br>"; printf ("Sekarang Tanggal : %s", Date("d F y")); ?> </body> </html> Gambar 2.4 Tampilan program pernyataan.php Penjelasannya : echo " Sekarang Tanggal : ", Date("d F Y"); Date("d F y"));, adalah dan printf ("Sekarang Tanggal : %s", merupakan contoh statement. II.2.3 Variabel Sebagai tempat penyimpanan data sementara dan nilainya dapat berubah-rubah, dimana data yang disimpan dalam variabel akan hilang setelah program selesai dieksekusi. Variabel dalam PHP selalu ditulis dengan awalan tanda $ dan karakter pertama harus berupa huruf atau garis bawah ( _ ). Contoh programnya : (Variabel.php) <html> <head> <title>Contoh Variabel</title> </head> <body > <? $gapok = 1000000; printf ("Gaji Pokok : %d",$gapok); printf ("<br>"); $pdpt = 1.5 * $gapok; printf ("Pendapatan Sekarang adalah : %d",$pdpt); ?> </body> </html> Gambar 2.5 Tampilan program variabel.php 28 Penjelasannya : dari contoh program diatas $gapok merupakan variable dimana nilai awalnya adalah 1000000. Expresi $pdpt = 1.5 * $gapok; ini akan menjadikan nilai variable $pdpt berisi 1500000. II.2.4 Operator Digunakan untuk memanipulasi nilai suatu variabel. Nilai yang dimodifikasi oleh operator disebut Operand. Operand dan Operator ini akan membentuk ekspresi (ungkapan). Operator diklasifikasikan menjadi : II.2.4.1 Operator Aritmatika. Operator yang digunakan untuk melakukan operasi perhitungan matematika. Tabel 2.2 Operator aritmatika Operator Fungsi + Penjumlahan Pengurangan * Perkalian / Pembagian % Sisa hasil bagi Contoh programnya : (OpAritmatika.php) <html> <head> <title>Contoh Operator Aritmatika</title> </head> <body> <?php printf("<b>Penjumlahan :<br>\n </b>"); printf("6 + 3.5 = %d <br>\n", 6 + 3.5); printf("6 + 3.5 = %f <br>\n", 6 + 3.5); printf("<b>Pengurangan :<br>\n </b>"); printf("6 - 3.5 = %d <br>\n", 6 - 3.5); printf("6 - 3.5 = %f <br>\n", 6 - 3.5); printf("<b>Perkalian :<br>\n </b>"); printf("7 x 3.5 = %d <br>\n", 7 * 3.5); printf("7 x 3.5 = %f <br>\n", 7 * 3.5); printf("<b>Pembagian :<br>\n </b>"); printf("7 / 3 = %d <br>\n", 7 / 3); printf("7 / 3.5 = %f <br>\n", 7 / 3.5); printf("<b>Sisa hasil bagi :<br>\n </b>"); print("9 % 3 = "); print(9 % 3); print("<br>\n"); print("9 % 5 = "); print(9 % 5); print("<br>\n"); ?> </body> </html> 29 Gambar 2.6 Tampilan program oparitmatika.php II.2.4.2 Operator Pembandingan. Operator yang digunakan untuk membandingkan nilai dari 2 operand, hasilnya dinyatakan dalam nilai Boolean : True (benar) dan false (salah). Tabel 2.3 Operator pembandingan Operator == > < >= Fungsi Memeriksa apakah operand kanan bernilai sama dengan operand kiri. Memeriksa apakah operand kiri bernilai lebih besar dengan operand kanan. Memeriksa apakah operand kiri bernilai lebih kecil dengan operand kanan. Memeriksa apakah operand kiri bernilai lebih besar atau sama dengan operand kanan. <= Memeriksa apakah operand kiri bernilai lebih kecil atau sama dengan operand kanan. != atau <> Memeriksa apakah operand kanan tidak bernilai sama dengan operand kanan. Contoh programnya : (OpPembadingan.php) <html> <head> <title>Contoh Operator Pembandingan</title> </head> <head> <?php $a = 2; $b = 3; $c = 2; printf("$a < $b keterangan : %d<br>\n", $a < $b); printf("$a > $b keterangan : %d<br>\n", $a > $b); printf("$a <= $b keterangan : %d<br>\n", $a <= $b); printf("$a >= $b keterangan : %d<br>\n", $a >= $b); printf("$a = $c keterangan : %d<br>\n", $a == $c); printf("$a != $c keterangan : %d<br>\n", $a != $c); printf("$a <> $b keterangan : %d<br>\n", $a <> $b); ?> </body> </html> 30 Gambar 2.7 Tampilan program oppembadingan.php II.2.4.3 Operator Logika Digunakan untuk membandingkan 2 nilai variabel yang bertipe Boolean dan hasil yang di dapat juga bertipe Boolean. Tabel 2.4 Operator logika Operand Kanan Operand Kiri Operator && (and) || (or) Salah Salah Salah Salah Salah Benar Salah Benar Benar Salah Salah Benar Benar Benar Benar Benar Operator ! dikenakan hanya pada sebuah operand. xor (exclusive or) Salah Benar Benar Salah Operand ! (not) Salah Benar Benar Salah Contoh programnya : (OpLogika.php) <html> <head> <title>Contoh Operator Logika</title> </head> <body> <?php $a = '1'; $b = '2'; $c = '3'; printf("<b>Logika AND<br>\n </b>"); printf("1>2 and 2>3, keterangan : %d<br>\n", $a >$b and $b >$c); printf("1>2 and 2<3, keterangan : %d<br>\n", $a >$b && $b <$c); printf("1<2 and 2>3, keterangan : %d<br>\n", $a <$b and $b >$c); printf("1<2 and 2<3, keterangan : %d<br>\n", $a <$b && $b <$c); printf("<b>Logika OR<br>\n </b>"); printf("1>2 or 2>3, keterangan : %d<br>\n", $a >$b or $b >$c); printf("1>2 or 2<3, keterangan : %d<br>\n", $a >$b || $b <$c); printf("1<2 or 2>3, keterangan : %d<br>\n", $a <$b or $b >$c); printf("1<2 or 2<3, keterangan : %d<br>\n", $a <$b || $b <$c); printf("<b>Logika XOR<br>\n </b>"); printf("1>2 xor 2>3, keterangan : %d<br>\n", $a >$b xor $b >$c); printf("1>2 xor 2<3, keterangan : %d<br>\n", $a >$b xor $b <$c); printf("1<2 xor 2>3, keterangan : %d<br>\n", $a <$b xor $b >$c); 31 printf("1<2 xor 2<3, keterangan : %d<br>\n", $a <$b xor $b <$c); printf("<b>Logika NOT<br>\n </b>"); printf("not(1<2 xor 2<3), keterangan : %d<br>\n", !($a <$b xor $b <$c)); printf("not(1<2 xor 2>3), keterangan : %d<br>\n", !($a <$b xor $b >$c)); ?> </body> </html> Gambar 2.8 Tampilan program oplogika.php II.2.4.4 Operator Pemanipulasi Bit Digunakan untuk memanipulasi data dalam level bit. Tabel 2.5 Operator pemanipulasian bit Operator Fungsi Melakukan operasi and, nilai variabel (dalam level bit) di sisi kiri operator & dengan sisi kanannya. Melakukan operasi or, nilai variabel (dalam level bit) di sisi kiri operator | dengan sisi kanannya. Melakukan operasi xor, nilai variabel (dalam level bit) di sisi kiri operator ^ dengan sisi kanannya. >> Menggeser bit ke kanan dari nilai variabelnya (dalam level bit). << Menggeser bit ke kiri dari nilai variabelnya (dalam level bit). Contoh programnya : (OpPemanipulasianBit.php) <html> <head> <title>Contoh Operasi Pemanipulasi Bit</title> </head> <body> <?php $bil1 = 14; $bil2 = 11; printf("$bil1 & $bil2 = %d <br>\n", $bil1 & $bil2); printf("%d | %d = %d <br>\n", $bil1, $bil2, $bil1 | $bil2); 32 printf("$bil1 ^ $bil2 = %d <br>\n", $bil1 ^ $bil2); printf("$bil1 >> 1 = %d <br>\n", $bil1 >> 1 ); printf("%d >> 2 = %d <br>\n", $bil1, $bil1 >> 2 ); printf("$bil1 << 1 = %d <br>\n", $bil1 << 1 ); printf("%d << 2 = %d <br>\n", $bil1, $bil1 << 2 ); ?> </body> </html> Gambar 2.9 Tampilan program oppemanipulasianbit.php Keterangan : Ekspresi 14 & 11 14 | 11 14 ^ 15 14 >> 1 14 >> 2 14 << 1 14 << 2 Keterangan 1110 & 1011 = 1010 (10) 1110 | 1011 = 1111 (15) 1110 ^ 1011 = 0101 (5) 1110 digeser 1 ke kanan = 111 (7) 1110 digeser 2 ke kanan = 11 (3) 1110 digeser 1 ke kiri = 11100 (28) 1110 digeser 2 ke kiri = 111000 (56) II.2.4.5 Operator Penugasan Digunakan untuk memberi atau mengisi nilai kedalam variabel tertentu, yang umum digunakan adalah operator “=”. Tabel 2.6 Operator penugasan Operator += -= /= *= %= &= |= ^= Fungsi Menambahkan nilai pada variabel di sisi kiri operator dengan di sisi kanan. Mengurangi nilai pada variabel di sisi kiri operator dengan nilai di sisi kanan. Membagi nilai pada variabel di sisi kiri operator dengan nilai di sisi kanan.. Mengalikan nilai pada variabel di sisi kiri operator dengan nilai di sisi kanan. Mencari sisa hasil bagi antara variabel di sisi kiri operator dengan di sisi kanan. Melakukan operasi logika and terhadap variabel di sisi kiri operator dengan nilai di sisi kanan. Melakukan operasi logika or terhadap variabel di sisi kiri operator dengan nilai di sisi kanan. Melakukan operasi logika xor terhadap variabel di sisi kiri operator dengan nilai di sisi kanan. 33 Menambahkan string pada variabel di sisi kiri operator dengan nilai di sisi kanan. ++ Menambahkan nilai 1 pada variabel (penaikkan). -Mengurangi nilai 1 pada variabel (penurunan). Contoh programnya : (OpPenugasan.php) .= <html> <head> <title>Contoh Operator Penugasan --</title> </head> <body> <?php $bil = 25; $bit = 14; $str = "Satu"; print("Isi variabel bil = $bil dan variabel bit = $bit dan variabel str = $str<br>\n"); $bil += 5; print("Isi variabel setelah diberikan ekspresi ($ bil += 5) adalah $bil <br>\n"); $bil -= 5; print("Isi variabel setelah diberikan ekspresi ($ bil -= 5) adalah $bil <br>\n"); $bil /= 5; print("Isi variabel setelah diberikan ekspresi ($ bil /= 5) adalah $bil <br>\n"); $bil *= 5; print("Isi variabel setelah diberikan ekspresi ($ bil *= 5) adalah $bil <br>\n"); $bil %= 7; print("Isi variabel setelah diberikan ekspresi ($ bil %= 7) adalah $bil <br>\n"); $bit &= 11; print("Isi variabel setelah diberikan ekspresi ($ bit &= 11) adalah $bit <br>\n"); $bit |= 9; print("Isi variabel setelah diberikan ekspresi ($ bit |= 9) adalah $bit <br>\n"); $bit ^= 6; print("Isi variabel setelah diberikan ekspresi ($ bit ^= 6) adalah $bit <br>\n"); $str .= " Juta"; print("Isi variabel setelah diberikan ekspresi ($ str .= '' Juta'') adalah $str <br>\n"); printf("Efek ++ yang diletakkan dibelakang variabel :<br>\n"); printf("Isi variabel setelah diberikan ekspresi (3 + $ bil++) adalah \n"); printf(3 + $bil++); print("<br>\n"); printf("Isi variabel bil saat ini adalah \n"); print("x = $bil <br>\n"); $bil=4; print("<b>Isi variabel bil dikembalikan menjadi : $bil </b><br>\n"); print("Efek ++ yang diletakkan didepan variabel :<br>\n"); print("Isi variabel setelah diberikan ekspresi (3 + ++$ bil) adalah \n"); print(3 + ++$bil); print("<br>\n"); print("Isi variabel bil saat ini adalah \n"); print("x = $bil <br><br>\n"); printf("Efek -- yang diletakkan dibelakang variabel :<br>\n"); printf("Isi variabel setelah diberikan ekspresi ($ bil--) adalah \n"); printf($bil--); print("<br>\n"); printf("Isi variabel bil saat ini adalah \n"); print("x = $bil <br>\n"); $bil=5; print("<b>Isi variabel bil dikembalikan menjadi : $bil </b><br>\n"); print("Efek -- yang diletakkan didepan variabel :<br>\n"); print("Isi variabel setelah diberikan ekspresi (--$ bil) adalah \n"); print(--$bil); print("<br>\n"); print("Isi variabel bil saat ini adalah \n"); print("x = $bil <br>\n"); ?> </body> </html> 34 Gambar 2.10 Tampilan program oppenugasan.php II.2.4.6 Operator String Hanya ada satu operator string yaitu operator penggabung string “.”(titik). Contoh programnya : (OpString.php) <html> <head> <title>Contoh Operator String</title> </head> <body> <?php $a="Selamat datang di"; $b=$a." Kampus STMIK Akakom Yogyakarta"; print("<b>$b"); ?> </body> </html> Gambar 2.11 Tampilan program opstring.php 35 II.2.4.7 Prioritas Operator Untuk mengetahui dan menentukan urutan pengerjaan operator dalam suatu ekspresi. Catatan: ¾ Jika dalam sebuah ekspresi terdapat beberapa operator yang mempunyai prioritas yang berbeda maka yang akan dikerjakan terlebih dahulu adalah operator dengan prioritas tertinggi. ¾ Jika dalam sebuah ekspresi terdapat beberapa operator yang mempunyai prioritas yang sama maka yang dikerjakan terlebih dahulu adalah operator yang paling kiri. Tabel 2.7 Prioritas operator Prioritas Tertinggi Operator () {} ~ ++ -* / % + <> <= >= = = != & ^ ! && || xor Terendah = += -= *= /= &= |= ^= .= Contoh programnya : (PrioritasOp.php) <html> <head> <title>Contoh Prioritas Operator</title> </head> <body> <?php $a=3; $b=5; $c=12; printf("$a + $b * $c = %d <br>\n", $a+$b*$c); printf("($a + $b) * $c = %d <br>\n", ($a+$b)*$c); printf("$a / $b - $c = %f <br>\n", $a/$b-$c); ?> </body> </html> Gambar 2.12 Tampilan program opstring.php 36 II.3 Aliran Kendali (Control Flow) pada PHP Maksud sebenarnya dari control flow adalah bagaimana urutan eksekusi perintah di dalam program. Beberapa control flow yang disediakan dalam PHP : II.3.1 Percabangan Sering disebut juga dengan istilah decision making (pengambilan keputusan) memungkinkan aplikasi memeriksa isi suatu variabel atau hasil perhitungan ekspresi dan mengambil tindakan yang sesuai. Ada 2 jenis percabangan, dipilih berdasarkan kriteria dan jumlah pilihan yang tersedia. II.3.1.1 Pernyataan if, if-else dan if-else-if - Konstruksi if saja, formatnya : if (kondisi/ekspresi) { statemen } Kodisi akan diperiksa, jika bernilai benar maka bagian statemen akan dijalankan, jika bernilai salah maka bagian statemen tidak akan dijalankan. Contoh programnya : (If.php) <html> <head> <title>Contoh Percabangan If Saja</title> </head> <body> <?php $nilai = 80; $ket = "Tidak Lulus"; if ($nilai >= 50) { $ket = "Lulus"; } print("$ket<BR\n"); ?> </body> </html> Gambar 2.13 Tampilan program if.php - Konstruksi if-else, formatnya : if (kondisi/ekspresi) { statemen_ 1} else { statemen_2 } Kodisi akan diperiksa, jika bernilai benar maka statemen_1 akan dijalankan, jika bernilai salah maka statemen_2 akan dijalankan. 37 Contoh programnya : (IfElse.php) <html> <head> <title>Contoh Percabangan If-Else</title> </head> <body> <?php $nilai = 45; if ($nilai >= 50) $ket = "Lulus"; else $ket = "Tidak Lulus"; print("$ket<br>\n"); ?> </body> </html> Gambar 2.14 Tampilan program ifelse.php - Konstruksi if-elseif, formatnya : if (kondisi/ekspresi_1) { statemen_1 } elseif ( kondisi/ekspresi_2 ) { statemen_2 } else { statemen_3 } Kodisi_1 akan diperiksa, jika bernilai benar maka statemen_1 akan dijalankan, jika kodisi_1 bernilai salah maka akan memeriksa kodisi_2, jika bernilai benar maka statemen_2 akan dijalankan, jika kodisi_2 bernilai salah maka statemen_3 akan dijalankan. Contoh programnya : (IfElseIf.php) <html> <head> <title>Contoh Percabangan If-ElseIf</title> </head> <body> Pilihan Anda adalah : <?php $pil = 1; if ($pil == "1") print("Manajemen Informatika"); elseif ($pil == "2") print("Komputer Akuntansi"); elseif ($pil == "3") print("Teknik Komputer"); else print("Anda salah Pilih...!"); ?> </body> </html> 38 Gambar 2.15 Tampilan program ifelseif.php II.3.1.2 Konstruksi switch Formatnya : switch (kondisi/ekspresi) { case kondisi/ekspresi_case_1 statemen_1 break; case kondisi/ekspresi_case_2 statemen_2 break; ... ... default: statemen_n } Kodisi akan diperiksa, jika kondisi=kondisi/ekspresi_case_1 maka statemen_1 akan dijalankan dan kemudian eksekusi dilanjutkan ke statemen yang terletak sesudah tanda penutup switch yaitu : }, jika kondisi=kondisi/ekspresi_case_2 maka statemen_2 akan dijalankan dan kemudian eksekusi dilanjutkan ke statemen yang terletak sesudah tanda penutup switch yaitu : }, jika tidak ada yang memenuhi maka statemen_n yang akan dijalankan. Contoh programnya : (Switch.php) <html> <head> <title>Contoh Percabangan Switch</title> </head> Pilihan Anda adalah : <?php $pil = 2; switch ($pil) { case 1: print("<b>Manajemen Informatika"); break; case 2: print("<b>Teknik Komputer"); break; case 3: print("<b>Komputer Akuntansi"); break; case 4: print("<b>Teknik Informatika"); break; case 5: print("<b>Sistem Informasi"); break; default : print("<b>Maaf Anda Salah Pilih"); } 39 print("<br>"); print("Ini adalah statemen yang terletak sesudah tanda penutup Switch "); ?> </body> </html> Gambar 2.16 Tampilan program switch.php II.3.2 Perulangan Suatu pernyataan yang berguna untuk melakukan suatu pengulangan. II.3.2.1 Pernyataan for Merupakan pernyataan yang digunakan untuk melakukan pengulangan (looping), dimana jumlah pengulangannya telah ditentukan diawal pengulangan. - Konstruksi for, formatnya : for (ekspresi1;ekspresi2,ekspresi3) { statemen } Ekspresi1, memberikan nilai awal terhadap variabel yang akan digunakan untuk melakukan pencacahan pengulangan. Ekspresi2, berlaku sebagai kondisi untuk menentukan pengulangan terhadap pernyataan yang ada di dalam { }, akan dilakukan atau tidak. Ekspresi3, digunakan untuk mengatur nilai variabel yang digunakan dalam ekspresi1. Statemen, merupakan perintah yang akan diulang-ulang. Bila statemen, yang berada diantara tanda { dan } hanya satu, tanda { dan } dapat dihilangkan. Contoh programnya : (For.php) <html> <head> <title>Contoh Perulangan For</title> </head> <body> <?php for ($bil = 1; $bil <= 15; $bil+=3) { print("Angka : $bil <br>"); } ?> </body> </html> 40 Gambar 2.17 Tampilan program for.php II.3.2.2 Pernyataan while Merupakan pernyataan yang digunakan untuk memberikan perintah menjalankan statemen tertentu, secara berulang-ulang selama syaratnya terpenuhi. - Konstruksi while, formatnya : while (kondisi/ekspresi ) { statemen } Kondisi/ekspresi, akan diperiksa terlebih dahulu, jika benar maka statemen yang terdapat dalam { } akan dijalankan dan kemudian kondisi/ekspresi diperiksa lagi berulang-ulang sampai kondisi/ekspresi bernilai salah. Contoh programnya : (While.php) <html> <head> <title>Contoh Perulangan While</title> </head> <body> <?php $bil=1; while ($bil < 16) { print("Angka : $bil<br>"); $bil+=3; } ?> </body> </html> Gambar 2.18 Tampilan program while.php II.3.2.3 Pernyataan do-while Suatu pernyataan yang fungsinya sama dengan while, namun pada do-while paling tidak statemen yang berada pada tanda { } akan dijalankan 1 kali. 41 - Konstruksi do-while, formatnya : do { statemen } while (kondisi/ekspresi ); Statemen yang terdapat dalam { } akan dijalankan, kemudian kondisi/ekspresi akan diperiksa, jika benar maka statemen yang terdapat dalam { } akan dijalankan lagi berulang-ulang sampai kondisi/ekspresi bernilai salah. Contoh programnya : (DoWhile.php) <html> <head> <title>Contoh Perulangan Do-While</title> </head> <body> <?php $bil = 1; do { print("Angka :$bil<br>"); $bil+=2; } while ($bil <=10); ?> </body> </html> Gambar 2.19 Tampilan program dowhile.php II.3.3 Perpindahan Suatu pernyataan yang berguna untuk melakukan suatu perpindahan. II.3.3.1 Pernyataan break Pernyataan yang digunakan untuk menghentikan atau keluar dari proses pengulangan (looping). Contoh programnya : (Break.php) <html> <head> <title>Contoh Perpindahan Break</title> </head> <body> <?php for($bil=1; $bil<=5; $bil++) { print("Angka : $bil <br>"); if ($bil==8) 42 break; } print("Perulangan Selesai <br>"); ?> </body> </html> Gambar 2.20 Tampilan program break.php Contoh programnya : (BreakLain.php) <html> <head> <title>Contoh Perpindahan Break dengan Parameter</title> </head> <body> <?php for ($bil=1; $bil<=10; $bil++) { switch ($bil) { case 3: print("Break 1 <br>\n"); break 1; case 6: print("Break 2 <br>\n"); break 2; default: print("$bil <br>\n"); break; } } print("Perulangan Selesai <br>"); ?> </body> </html> Gambar 2.21 Tampilan program breaklain.php 43 II.3.3.2 Pernyataan continue Pernyataan yang digunakan untuk melewati satu putaran dalam rangkaian pengulangan (looping). Contoh programnya : (Continue.php) <html> <head> <title>Contoh Perpindahan Continue</title> </head> <body> <?php for($bil=1; $bil<=8; $bil++) { if ($bil>=4 and $bil<=6) { continue; } print("Angka :$bil <br>\n"); } ?> </body> </html> Gambar 2.22 Tampilan program continue.php II.3.3.3 Pernyataan exit Pernyataan yang digunakan untuk mengakhiri pengeksekusian, dengan pemberian perintah ini maka semua skrip baik PHP maupun HTML tidak akan dikirim ke browser. Contoh programnya : (Exit.php) <html> <head> <title>Contoh Perpindahan Exit</title> </head> <body> <?php for($bil = 1; $bil <= 10; $bil++) { print("Angka : $bil <br>\n"); if ($bil == 4) exit; } print("Program Selesai <br>\n"); ?> </body> </html> 44 Gambar 2.23 Tampilan program exit.php II.3.3.4 Pernyataan return Merupakan pernyataan yang digunakan untuk memerintahkan kode untuk keluar dari fungsi. Contoh programnya : (Return.php) <html> <head> <title>Contoh Perpindahan Return</title> </head> <body> <?php function TesReturn() { for($bil = 1; $bil <= 15; $bil++) { print("Angka : $bil <br>\n"); { if ($bil ==3) return; } } print("Pengulangan Selesai <br>\n"); } TesReturn (); print("Pemanggilan Fungsi Selesai <br>\n"); ?> </body> </html> Gambar 2.24 Tampilan program return.php Terlihat bahwa, print("Pengulangan Selesai <br>\n"); tidak dijalankan, menunjukkan bahwa setelah return dieksekusi, program akan keluar dari fungsi TesReturn() dan mengeksekusi perintah setelah fungsi TesReturn(), yaitu print("Pemanggilan Fungsi Selesai <br>\n");. 45 II.4 Array Array adalah kumpulan beberapa data yang disimpan dalam satu variabel. Jadi berbeda dengan variabel sebelumnya yang hanya menyimpan satu nilai saja, array dapat menampung lebih dari 1 nilai. Sebagai contoh, anda akan menyimpan data teman-teman anda dalam satu variabel $teman, dan ada 3 orang temen yang akan anda masukkan ke dalam variabel tersebut. Secara visual dapat digambarkan sebagai berikut : $teman[0] Febty $teman[1] Abi $teman Sari $teman[2] Setiap nilai dalam array disebut elemen, akan mempunyai index dan dengan index ini akan digunakan untuk mengakses elemen tersebut. PHP mengenal 2 macam index, yaitu : 1. Index Numerik, menggunakan angka sebagai index-nya (biasanya dimulai dari 0). 2. Index Asosiatif/String, menggunakan nama masing-masing elemen sebagai index-nya. II.4.1 Inisialisasi Array Inisialisasi (mengisi nilai) array seperti contoh diatas, dapat diciptakan dengan cara sebagai berikut : $teman = array (“Febty”, “Abi”, “Sari”); Kode diatas menjadikan array $temen berindeks numeric, selain cara ini ada cara lain yaitu : $teman[] = “Febty”; $teman[] = ”Abi”; $teman[] = “Sari”; Kode diatas akan menjadikan array $temen berindeks numeric juga. $teman 0 1 2 Febty Abi Sari Untuk membuat array berindeks asosiatif, membutuhkan label atau nama untuk masing-masing elemen. Dari contoh diatas akan dikembangkan agar dapat menyimpan nomer telepon masing-masing teman dan menjadikan nama orangnya sebagai indeks. Contohnya adalah sebagai berikut : $teman = array (“Febty”=>8865267, “Abi”=>543886, “Sari”=>7404188); atau $teman[“Febty”] = 8865267; $teman[”Abi”] = 543886; $teman[“Sari”] = 7404188; Kedua kode diatas akan menjadikan $temen array berindeks asosiatif/string. $teman Febty 8865267 Abi 543886 Sari 7404188 46 II.4.2 Navigasi Array Navigasi (mengakses nilai) array dapat dilakukan dengan menggunakan kalang. Misalnya untuk menampilkan isi array berindeks numeric diatas : Contoh programnya : (Array.php) <html> <head> <title>Contoh Mengakses Array dengan Indeks Numerik</title> </head> <body> <?php $teman = array ("Febty", "Abi", "Sari"); for ($i = 0; $i <count($teman); $i++) { print("Array \$teman Indeks [$i] adalah : $teman[$i] <br>"); } ?> </body> </html> Gambar 2.25 Tampilan program array.php Fungsi count diatas digunakan untuk mendapatkan jumlah array, yaitu 3. Sedangkan untuk menampilkan seluruh elemen dalam array menggunakan for. Untuk menampilkan isi array berindeks string, tidak dapat menggunakan kalang for seperti diatas, karena label/indeks elemen disimpan dalam tipe string (bukan numeric). Contoh kalang untuk mengakses array berindeks string dapat dilihat dibawah ini : Contoh program lainnya : (ArrayString.php) <html> <head> <title>Contoh Mengakses Array dengan Indeks String</title> </head> <body> <?php $teman = array ("Febty"=>8865267, "Abi"=>543886, "Sari"=>7404188); //Untuk menampilkan semua elemen yang berindeks string while ( list($indeks, $elemen) = each($teman) ) { print("Array \$teman indeks : $indeks berisi elemen : $elemen <br>"); } ?> </body> </html> 47 Gambar 2.26 Tampilan program arraystring.php Disini ada 2 fungsi yang terlibat, yaitu : each dan list. Fungsi each digunakan untuk mengakses masing-masing elemen dalam array dan juga indeksnya yang saling berpasangan. Pasangan elemen dan indeks ini, akan dipisahkan oleh fungsi list dan dimasukkan kedalam variabel $indeks dan $elemen. II.4.3 Fungsi-fungsi Array Sort, mengurutkan elemen pada array dengan urutan naik (ascending) dan indeksnya numerik, Rsort mengurutkan elemen pada array dengan urutan turun (descending) dan indeksnya numerik. Contoh programnya : (Sort&Rsort.php) <html> <head> <title>Pengurutan Elemen degan Sort dan Rsort</title> </head> <body> <?php $teman = array (“Febty”=>8865267, “Abi”=>543886, “Sari”=>7404188); // Pengurutan dengan sort sort($teman); print("Hasil Pengurutan Naik : <br>"); while ( list($indeks, $elemen) = each($teman) ) { print("Indeks ke :[$indeks] berisi : $elemen <br>"); } // Pengurutan dengan rsort rsort($teman); print("Hasil Pengurutan Turun : <br>"); while ( list($indeks, $elemen) = each($teman) ) { print("Indeks ke :[$indeks] berisi : $elemen <br>"); } ?> </body> </html> 48 Gambar 2.27 Tampilan program sort&rsort.php II.4.4 Array Multidimensional Array Multidimensional, adalah array yang elemennya mengandung array dan bahkan jumlah elemen array yang terkandung pada elemen array dapat berbeda. Contoh gambaran array multidimensi : Mata Kuliah Pemrograman Web Pemrograman Visual Pemrograman Basisdata Mahasiswa Andreas, Ridwan, Sita Andreas, Fafa, Susi Lina, Dina, Susi, Rini Contoh programnya : (ArrayMultidimensional.php) <html> <head> <title>Penggunaan Array Multidimensi</title> </head> <body> <?php // Membuat array berdimensi dua $Mahasiswa = array ( "Pemrograman Web" => array("Andreas", "Ridwan", "Sita"), "Pemrograman Visual" => array("Andreas","Fafa","Susi"), "Pemrograman Basisdata" => array("Lina","Dina","Susi","Rini"), ); // Menampilkan isi array while ( list($indeks1, $elemen1) = each($Mahasiswa) ) { print("<b>Peserta $indeks1 : </b><br>"); $nomor = 1; while ( list($indeks2, $elemen2) = each($elemen1) ) { print("$nomor. $elemen2 <br>"); $nomor++; } } ?> </body> </html> 49 Gambar 2.28 Tampilan program arraymultidimensional.php II.5 Fungsi (Function) Fungsi adalah blok kode (kumpulan beberapa statement) yang dibuat dengan tujuan melaksanakan satu tugas tertentu. Dengan menciptakan sebuah fungsi sekali saja, fungsi ini akan dapat digunakan berkali-kali pada bagian manapun dalam skrip dengan cara memanggil nama fungsi tersebut. II.5.1 Deklarasi Fungsi Fungsi dideklarasikan dengan menggunakan pernyataan Function. Formatnya : function nama_fungsi (parameter) { blok kode } Hal-hal yang perlu diperhatikan dalam deklarasi fungsi dalam PHP : - Nama fungsi (function name), nama yang diberikan pada fungsi yang digunakan untuk memanggil fungsi tersebut. Aturan penamaan fungsi : 1. Tidak boleh sama dengan nama fungsi yang telah ada dalam PHP. 2. Hanya boleh terdiri dari huruf, angka dan garis bawah. 3. Tidak boleh diawali dengan angka. - Parameter, nilai yang akan dimasukkan ke dalam fungsi untuk kemudian diproses, sehingga akan menhasilkan output sesuai keinginan. - Blok kode, berisi instruksi yang harus dilakukan komputer, untuk menghasilkan output yang diinginkan dan dibatasi oleh sepasang { dan }. Contoh fungsi : function penjumlahan($a,$b) { $c = ($a + $b); print ($c); } penjumlahan(8,9); 50 Keterangan : - function, kata kunci fungsi. penjumlahan, nama fungsi. ($a,$b), parameter dari fungsi. { $c = ($a + $b) blok kodenya. print ($c); } - penjumlahan(8,9);, memanggil fungsi penjumlahan dengan memberikan nilai parameter $a=8 dan $b=9. Contoh program lainnya : (Fungsi.php) <html> <head> <title>Contoh Fungsi</title> </head> <body> <?php function penjumlahan($a,$b) { $c = ($a + $b); print ($c); } penjumlahan(8,9); ?> </body> </html> Gambar 2.29 Tampilan program fungsi.php II.5.2 Nilai Balik Fungsi Nilai yang dihasilkan oleh suatu fungsi, setelah fungsi tersebut dijalankan. Contoh programnya : (FungsiNilaiBalik.php) <html> <head> <title>Contoh Fungsi dengan Nilai Balik</title> </head> <body> <?php function penjumlahan($a,$b) { $c = ($a + $b); return ($c); //digunakan untuk memberikan nilai balik fungsi } penjumlahan(8,9); //digunakan untuk memanggil fungsi pejumlahan print (penjumlahan(8,7)); //digunakan untuk memanggil fungsi pejumlahan dan //menampilkan ke layar ?> </body> 51 </html> Gambar 2.30 Tampilan program fungsinilaibalik.php II.5.3 Nilai Argumen Bawaan. Nilai bawaan yang dimiliki oleh suatu parameter, bilamana nilai argumennya tidak disebutkan pada saat fungsi dipanggil. Contoh programnya : (FungsiNilaiArgumenBawaan.php) <html> <head> <title>Contoh Fungsi dengan Argumen Bawaan</title> </head> <body> <?php function penjumlahan($a=3,$b=10) //Memberi nilai bawaan untuk argumen a = 3 dan b = 4 { $c = ($a * $b); return ($c); } print (penjumlahan(8,7)); //Memberi nilai untuk argumen a = 8 dan b = 7 print ("<br>"); print (penjumlahan(8)); //Memberi nilai untuk argumen a = 8 sedangkan argumen b mengambil dari //nilai bawaannya print ("<br>"); print (penjumlahan()); //Nilai untuk argumen a dan b dikosongkan, sehingga kedua argument akan //menggunakan nilai bawaannya ?> </body> </html> Gambar 2.31 Tampilan program fungsinilaiargumenbawaan.php II.5.4 Fungsi Rekursif Suatu fungsi yang memanggil dirinya sendiri. Contoh programnya : (FungsiRekursif.php) <html> <head> <title>Contoh Rekursif</title> 52 </head> <body> <?php function jum_tot($bil) { if ($bil==0) //Jika isi variabel bil = 0, maka nilai balik fungsi jum_tot =0 return 0; else return $bil + jum_tot($bil - 1); //Pemanggilan rekursif, fungsi jum_tot } printf("Jumlah Total <b>5 </b> Bilangan Pertama = <b>%d <br></b>\n", jum_tot(5)); printf("Jumlah Total <b>10</b> Bilangan Pertama = <b>%d <br></b>\n", jum_tot(10)); ?> </body> </html> Gambar 2.32 Tampilan program fungsirekursif.php II.6 Lingkup Variabel (Variable Scope) Lingkup variabel adalah menyatakan di mana variabel dapat digunakan dalam program, ada 2 yaitu : II.6.1 Variabel lokal Variabel yang hanya dapat digunakan dalam blok tempatnya dideklarasi. II.6.2 Variabel global Variabel yang dapat digunakan di mana saja dalam program setelah dideklarasi dan diinisialisasi, variabel ini akan dapat digunakan berkali-kali pada bagian manapun dalam skrip dengan cara memanggil nama variabel tersebut. Contoh programnya : (VariabelLokal.php) <html> <head> <title>Contoh Variabel Lokal</title> </head> <body> <?php function testvar() { $nama = "Fafa"; //variabel nama ini merupakan variabel local yang berisi “Fafa” return ($nama); //memberikan nilai balik pada fungsi “testvar” } $nama = "Abi"; //variabel nama ini merupakan variabel global yang berisi “Abi” print("$nama"); print("<br>"); print( testvar() ); print("<br>"); print("$nama"); 53 ?> </body> </html> Gambar 2.33 Tampilan program variabellokal.php Contoh programnya : (VariabelGlobal.php) <html> <head> <title>Contoh Variabel Global</title> </head> <body> <?php function testvar() { global $nama; //mendeklarasikan variabel nama sebagai variabel global $nama = "Fafa"; //variabel nama ini telah menjadi variabel global yang berisi “Fafa” return ($nama); //memberikan nilai balik pada fungsi “testvar” } $nama = "Abi"; //variabel nama ini merupakan variabel global yang berisi “Abi” print("$nama"); print("<br>"); print( testvar() ); print("<br>"); print("$nama"); ?> </body> </html> Gambar 2.34 Tampilan program variabelglobal.php II.6.3 Variabel Statis Variabel yang hanya dapat diakses oleh fungsi yang telah mendeklarasikan dan isinya tidak akan hilang saat eksekusi fungsinya berakhir, sehingga akan tetap dikenali pada pemanggilan fungsi pada tahap berikutnya dengan isi variabelnya sesuai, isi terakhir fungsi di eksekusi. 54 Contoh programnya : (VariabelStatis.php) <html> <head> <title>Contoh Variabel Statis</title> </head> <body> <?php function penurunan() { static $angka = 5; //$angka merupakan variabel statis, yang isinya = 5 return $angka--; //nilai balik pada fungsi “penurunan”, dimana isi variabel angka dikurangi 1 } printf("%d <br>\n", penurunan()); printf("%d <br>\n", penurunan()); printf("%d <br>\n", penurunan()); printf("%d <br>\n", penurunan()); printf("%d <br>\n", penurunan()); ?> </body> </html> Gambar 2.35 Tampilan program variabelstatis.php II.7 Fungsi untuk mengkonversi tipe data Tabel berikut ini berisi fungsi-fungsi untuk mengkonversi tipe data : Tabel 2.8 Fungsi konversi tipe data Fungsi doubleval intval strval Keterangan Mengkonversi ke dalam nilai bertipe double berdasarkan nilai argumennya. Formatnya : doubleval (argument/variabel). Mengkonversi ke dalam nilai bertipe integer berdasarkan nilai argumennya. Formatnya : intval (argument/variabel). Mengkonversi ke dalam nilai bertipe string berdasarkan nilai argumennya. Formatnya : strval (argument/variabel). Contoh programnya : (FungsiKonversi.php) <html> <head> <title>Contoh Fungsi untuk Mengkonversi Tipe Data</title> </head> <body> <?php $data1 = 27.25; $data2 = "27.75 persen"; $data3 = 2002; 55 $data4 = "STMIK Akakom"; printf("<b>Tipe data1 ( $data1 ) adalah : %s <br>\n", gettype($data1)); printf("<b>Data1 dikonversi ke Integer menjadi : %s <br>\n", intval($data1)); printf("Tipe data2 ( $data2 ) adalah : %s <br>\n", gettype($data2)); printf("Data2 dikonversi ke double menjadi : %s <br>\n", doubleval($data2)); printf("Tipe data3 ( $data3 ) adalah : %s <br>\n", gettype($data3)); printf("Data3 dikonversi ke string menjadi : %s <br>\n", strval($data3)); printf("Tipe data4 ( $data4 ) adalah : %s <br>\n", gettype($data4)); printf("Data3 dikonversi ke integer menjadi : %s <br>\n", intval($data4)); $data3=strval($data3); printf("Data1 + Data2: %s <br>\n", ($data1 + $data2)); printf("Data1 + Data3: %s <br>\n", ($data1 + $data3)); printf("Data3 + Data4: %s <br>\n", ($data3 + $data4)); ?> </body> </html> Gambar 2.36 Tampilan program fungsikonversi.php II.8 Fungsi-fungsi lainnya Tabel berikut ini berisi fungsi-fungsi yang lain pada PHP : Tabel 2.9 Fungsi-fungsi lainnya Fungsi empty isset unset Keterangan Untuk mengetahui elemen variabel, kosong atau tidak. Formatnya : empty (variabel). Untuk mengetahui elemen variabel, ada atau tidak. Formatnya : isset (variabel). Untuk menghapus elemen variabel. Formatnya : unset (variabel). Contoh programnya : (FungsiLain.php) <html> <head> <title>Contoh Fungsi-fungsi Lainnya</title> </head> 56 <body> <?php function ya_atau_tidak($par) { if ($par) return "ya"; else return "tidak"; } // Mengecek isi variabel nama $isi = isset($nama); printf("1. Apakah isinya ada ? %s<br>\n", ya_atau_tidak($isi)); $nama = "Sari"; $isi = isset($nama); printf("2. Apakah isinya ada ? %s<br>\n", ya_atau_tidak($isi)); // Mengecek apakah kosong $isi = empty($nama); printf("3. Apakah isinya kosong ? %s<br>\n", ya_atau_tidak($isi)); // Menghapus isi variabel nama unset($nama); // Mengecek isi variabel nama $isi = isset($nama); printf("4. Apakah isinya ada ? %s<br>\n", ya_atau_tidak($isi)); // Mengecek apakah kosong $isi = empty($nama); printf("5. Apakah isinya kosong ? %s<br>\n", ya_atau_tidak($isi)); ?> </body> </html> Gambar 2.37 Tampilan program fungsilain.php II.9 Operasi String Disini akan mempelajari operator-operator untuk memanipulasi string, misalnya : menggabungkan 2 buah string dan untuk memvalidasi keabsahan alamat email. II.9.1 Operator . dan .= Operator . berfungsi untuk mengabungkan 2 buah string demikian juga untuk operator .= fungsinya sama dengan operator .. Contoh programnya : (OperatorGabung.php) <html> <head> <title>Contoh Penggabungan String</title> </head> 57 <body> <?php $kata = "Selamat"; printf("<b>$kata<br>"); $kalimat = $kata . " " . "Datang,"; printf("$kalimat<br>"); $kalimat .= " di STMIK AKAKOM"; // identik dengan $kalimat = $kalimat . " di STMIK AKAKOM"; printf("$kalimat<br>"); $kalimat = $kalimat . " Yogyakarta"; printf("$kalimat"); ?> </body> </html> Gambar 2.38 Tampilan program operatorgabung.php II.9.2 Menampilkan string. Untuk menampilkan keluaran pada web browser dapat menggunakan print, printf atau echo, dengan format string sebagai berikut : Formatnya : printf (format_string, argument . . .); Ket : Format_string : untuk menentukan format argumen, dalam tampilan web browser. Argument : berisi data yang akan ditampilkan. Tabel 2.10 Format string, yang digunakan dalam fungsi printf Kode d b o X x c s f % Keterangan Bilangan bulat Bilangan biner bulat Bilangan octal (berbasis 8) Bilangan heksadesimal (berbasis 16), dimana huruf dinyatakan dalam huruf besar. Bilangan heksadesimal (berbasis 16), dimana huruf dinyatakan dalam huruf kecil. Karakter yang nilai ASCII-nya dinyatakan dalam argument string. String Bilangan double (real) Tanda % tidak perlu ada argumen Contoh programnya : (FormatString.php) <html> <head> <title>Contoh Format Tampilan Data</title> </head> <body> 58 <?php $data = "58.8 kilometer"; printf("format d : <b>%d</b> <br>\n", $data); printf("format b : <b>%b</b> <br>\n", $data); printf("format o : <b>%o</b> <br>\n", $data); printf("format X : <b>%X</b> <br>\n", $data); printf("format x : <b>%x</b> <br>\n", $data); printf("format c : <b>%c</b> <br>\n", $data); printf("format s : <b>%s</b> <br>\n", $data); printf("format f : <b>%.3f</b> <br>\n", $data); ?> </body> </html> Gambar 2.39 Tampilan program formatstring.php II.9.3 Memperoleh panjang atau jumlah karater pada suatu string. Untuk memperoleh jumlah karater pada suatu string menggunakan fungsi strlen. Formatnya : strlen (string); Ket : hasil dari fungsi ini adalah jumlah karater dari string. Contoh programnya : (PanjangString.php) <html> <head> <title>Contoh Memperoleh Panjang String</title> </head> <body> <?php $data = "Akakom"; $a =strlen ("$data"); $b =strlen ("STMIK Akakom"); printf ("$a<br>"); printf ("$b<br>"); ?> </body> </html> 59 Gambar 2.40 Tampilan program panjangstring.php II.9.4 Mengubah huruf kecil menjadi huruf kapital atau sebaliknya. Untuk mengubah menjadi huruf kecil menggunakan fungsi strtolower sedangkan untuk mengubah menjadi huruf kapital menggunakan fungsi strtoupper. Formatnya : strtolower (string); dan strtoupper (string); Contoh programnya : (MengubahHuruf.php) <html> <head> <title>Contoh Mengubah Huruf Menjadi Kecil atau Besar</title> </head> <body> <?php $data = "STMIK Akakom Yogyakarta"; $a =strtolower ("$data"); $b =strtoupper ("$data"); printf ("$data<br>"); printf ("$a<br>"); printf ("$b<br>"); ?> </body> </html> Gambar 2.41 Tampilan program mengubahhuruf.php II.9.5 Menampilkan bagian tertentu dari suatu string. Untuk mengambil atau menampilkan bagian tertentu dari suatu string dapat menggunakan fungsi substr. Formatnya : substr (string, parameter awal, parameter akhir ); Ket : jika parameter awal, tidak menggunakan tanda negatif, ini menunjukkan awal peng-ambilan karakter (karakter awal dari string sama dengan 0) dan jika menggunakan tanda negatif, berarti pengambilan karakter dimulai dari akhir string (karakter akhir dari string sama dengan -1), sebanyak nilai dari parameter awal, jika parameter akhir, tidak menggunakan tanda negatif, ini 60 menunjukkan jumlah pengambilan karakter dan jika menggunakan tanda negatif, ini menunjukkan akhir pengambilan karakter dan peng-ambilan karakter dimulai dari akhir string (karakter akhir dari string sama dengan -1), sebanyak nilai dari parameter akhir. Contoh programnya : (SubString.php) <html> <head> <title>Contoh Menampilkan Bagian Tertentu dari Suatu string </title> </head> <body> <?php $data =("STMIK Akakom Yogyakarta"); $substring1=substr($data,12); $substring2=substr($data,6,6); $substring3=substr($data,-17,12); $substring4=substr($data,-23,-10); $substring5=substr($data,6,-5); print ("<b>$data<br>"); print ("$substring1<br>"); print ("$substring2<br>"); print ("$substring3<br>"); print ("$substring4<br>"); print ("$substring5<br>"); ?> </body> </html> Gambar 2.42 Tampilan program substring.php II.9.6 Mengganti bagian tertentu dari suatu string. Untuk mengganti bagian tertentu dari suatu string dapat menggunakan fungsi substr_replace. Formatnya : substr_replace (string, variabel_pengganti, parameter awal, parameter akhir ); Ket : variabel_pengganti digunakan untuk menganti substring yang diambil berdasarkan parameter awal dan parameter akhir. Contoh programnya : (ReplaceSubString.php) <html> <head> <title>Contoh Mengganti Bagian Tertentu dari Suatu String </title> </head> <body> <?php 61 $data=("STMIK Akakom Yogyakarta"); $pengganti= ("YES"); $pengganti1=substr_replace($data,$pengganti,12); $pengganti2=substr_replace($data,$pengganti,6,6); $pengganti3=substr_replace($data,$pengganti,-17,12); $pengganti4=substr_replace($data,$pengganti,-23,-10); $pengganti5=substr_replace($data,$pengganti,6,-5); print ("<b>$data<br>"); print ("$pengganti1<br>"); print ("$pengganti2<br>"); print ("$pengganti3<br>"); print ("$pengganti4<br>"); print ("$pengganti5<br>"); ?> </body> </html> Gambar 2.43 Tampilan program replacesubstring.php II.9.7 Mengetahui jumlah karakter suatu substring dalam suatu string. Untuk mengetahui jumlah karakter suatu substring dalam suatu string, dapat menggunakan fungsi substr_count. Formatnya : substr_count (string, substring); Contoh programnya : (JumlahSubString.php) <html> <head> <title>Contoh Mengetahui Jumlah Suatu Substring dari Suatu String </title> </head> <body> <?php $data=("STMIK Akakom Yogyakarta"); $jumlah1=substr_count($data,"k"); $jumlah2=substr_count($data,"K"); $jumlah3=substr_count($data,"ka"); $jumlah4=substr_count($data,"YES"); print ("<b>$data</b><br>"); print ("Jumlah huruf <b>k</b> : $jumlah1<br>"); print ("Jumlah huruf <b>K</b> : $jumlah2<br>"); print ("Jumlah kata <b>ka</b> : $jumlah3<br>"); print ("Jumlah kata <b>YES</b> : $jumlah4<br>"); ?> </body> </html> 62 Gambar 2.44 Tampilan program jumlahsubstring.php II.9.8 Mengecek suatu string dengan menggunakan format tertentu. Untuk mengecek suatu string dengan menggunakan format tertentu, dapat menggunakan fungsi erg. Formatnya : erg (format, sumber); Ket : format digunakan sebagai pola untuk mengecek sumber, misalnya : .+ berarti karakter apa saja dan berapapun jumlahnya dan \. berarti harus ada titik. Contoh programnya : (CekString.php) <html> <head> <title>Contoh Pemeriksaan Alamat E-Mail</title> </head> <body> <form> Masukkan E-mail Anda: <input type=text name=email><br><br> <input type=submit value="Cek"> </form> <?php if (isset($email)) if (empty($email)) print("Email Belum Anda Isikan...!<br>\n"); else { // cek e-mail if (ereg(".+@.+\..+$", $email)) print("Penulisan Alamat E-mail $email valid <br>\n"); else print("Penulisan Alamat E-mail $email tidak valid <br>\n"); } ?> </body> </html> 63 Gambar 2.45 Tampilan program cekstring.php II.9.9 Memecah suatu string menjadi array. Untuk memecah suatu string menjadi array, dapat menggunakan fungsi split. Formatnya : split (pemisah, sumber); Ket : pemisah adalah suatu karakter yang digunakan sebagai pemisah dalam sumber. Contoh programnya : (MemecahString.php) <html> <head> <title>Contoh Memecah Suatu String Menjadi Array</title> </head> <body> <?php $data = "AKAKOM"; print("$data adalah string yang akan dipecah dengan pemisah <b>K</b>, hasilnya :<br>"); $pembatas = "K"; $karakter =split($pembatas, $data); for ($j = 0; $j < count($karakter); $j++) { print("Karakter ke-$j, adalah : <b>$karakter[$j]</b><br>"); } ?> </body> </html> Gambar 2.46 Tampilan program memecahstring.php II.10 Enkripsi Data. Biasa digunakan untuk menangani data yang bersifat rahasia misalnya : password. Enkripsi adalah proses pengaburan suatu data (password), ke dalam bentuk lain yang tidak mudah ditebak. Contoh fungsi enkripsi data : crypt dan crc32. 64 Formatnya : crypt (string, pengenkripsi) dan crc32 (string); Ket : string adalah berisi data/password yang akan di enkripsi, pengenkripsi berfungsi sebagai pengatur pengenkripsian. Contoh programnya : (EnkripsiData.php) <html> <head> <title>Contoh crypt dan crc32 untuk Menangani Password</title> </head> <body> <form method=post> Nama Pemakai : <input type=text name=nama><br> Password ke-1 : <input type=password name=password1><br> Password ke-2 : <input type=password name=password2><br> <input type=submit value="Login"> </form> <?php if (isset($password1)and($password2)) { $validasipwd1 = crypt("kucing",ok); $validasipwd2 = crc32("macan"); $hasil1 = crypt($password1,ok); $hasil2 = crc32($password2); if (($validasipwd1 == $hasil1)and($validasipwd2 == $hasil2)) { print("Password Benar...!<br>"); print("Anda Masuk dengan User : <b>$nama</b><br>"); print("Password ke-1-nya : <b>$password1</b><br>"); print("Hasil Fungsi crypt terhadap Password ke-1 adalah :$hasil1<br>"); print("Password ke-2-nya : <b>$password2</b><br>"); print("Hasil Fungsi crc32 terhadap Password ke-2 adalah :$hasil2<br>"); } else { print("Password Salah<br>"); print("Anda Masuk dengan User : <b>$nama</b><br>"); print("Password ke-1 yang Dimasukkan : <b>$password1</b> Salah..!<br>"); print("Password ke-2 yang Dimasukkan : <b>$password2</b> Salah..!<br>"); } } ?> </body> </html> 65 Gambar 2.47 Tampilan program enkripsidata.php II.11 Pernyataan Include. Digunakan untuk menyertakan isi file yang berupa suatu skrip pada file lainnya. Formatnya : include (nama_file); Ket : nama_file adalah nama file yang akan disertakan ke dalam skrip yang meng-include-kan. Contoh programnya : (Include.php & Meng-include-kan.php) 1. File yang di-include-kan (Include.php). <?php print("<b><i>Jumlah Kelas Belum Berubah :</i></b><br>\n"); if (isset($jkti) and isset($jkmi)) { print("Jumlah Kelas TI = $jkti<br>\n"); print("Jumlah Kelas MI = $jkmi<br>\n"); } $jkti = 6; $jkmi = 4; print("<b><i>Jumlah Kelas Sudah Berubah :</i></b><br>\n"); print("Jumlah Kelas TI = $jkti<br>\n"); print("Jumlah Kelas MI = $jkmi<br>\n"); ?> 2. File yang meng-include-kan(Meng-include-kan.php) <html> <head> <title>Contoh Penggunaan Include</title> </head> <body> <?php $jkti = 3; $jkmi = 5; print("<b>Jumlah Kelas Awal :</b><br>\n"); print("Jumlah Kelas TI = $jkti<br>\n"); print("Jumlah Kelas MI = $jkmi<br>\n"); include("ubahjumlah.php"); print("<b>Jumlah Kelas Akhir :</b><br>\n"); print("Jumlah Kelas TI = $jkti<br>\n"); print("Jumlah Kelas MI = $jkmi<br>\n"); 66 ?> </body> </html> Gambar 2.48 Tampilan program meng-include-kan.php Bab III. Database MySQL Menyimpan data dalam file biasa memiliki banyak keterbatasan. Semakin besar ukuran file, pencarian data menjadi lebih sulit. File biasa juga tidak memiliki kemampuan untuk mengolah data, misalnya menghitung total nilai, rata-rata, dan lain sebagainya. Dan yang lebih penting, adanya keterbatasan untuk mengendalikan akses terhadap data. Kita tidak dapat menentukan siapa yang boleh dan siapa yang tidak boleh mengakses data. Siapa yang boleh membaca dan tidak boleh menulis, dan sebagainya. Karena itu, sekarang kita akan menggunakan media penyimpanan data yang lebih mutakhir, yaitu database. Operasi data dalam database umumnya mengikuti pola yang sama, yaitu melalui rangkaian langkah sebagai berikut : 1. Membuka sambungan dengan database server. 2. Memilih dan membuka database yang diinginkan . 3. Mengirim perintah untuk mengambil/mengubah/menghapus data.. 4. Mengakses hasil pengambilan data . 5. Mengakhiri sambungan . III.1 Menjalankan Server MySQL Untuk dapat menjalankan server MySQL, tentunya terlebih dahulu server MySQL telah terinstal terlebih dahulu. Pada contoh ini menggunakan PHPTriad dimana server MySQL-nya secara otomatis juga sudah terinstal, adapun langkah-langkahnya adalah sebagai berikut : 67 1. Jalankan Command Prompt, dan berikan perintah berikut ini : cd c:\apache\mysql\bin, maka anda akan menjumpai prompt berikut ini : C:\apache\mysql\bin >__ Gambar 3.1 Tampilan prompt kerja dari MYSQL 2. Menjalankan file winmysqladmin.exe, dengan cara memanggilnya di prompt (C:\apache\mysql\bin >winmysqladmin) kemudian tekan <Enter>. Gambar 3.2 Tampilan untuk menjalankan winmysqladmin File ini berfungsi untuk memberikan user name dan password hanya pada saat pertamakali MySQL dijalankan kemudian akan membuat konfigurasi dan perubahan pada file my.ini yang ada di windows. File ini cukup dijalankan sekali saja, untuk selanjutnya setiap komputer menjalankan windows maka secara otomatis akan mengeksekusi file winmysqladmin.exe. 3. Langkah selanjutnya mengisikan user name dan password pada kotak dialog WinMySQLAdmin Quick Setup, misalnya : user name : Adiexs dan password : Kucing, lalu klik OK. Gambar 3.3 Tampilan kotak dialog WinMySQLAdmin Quick Setup Pengisihan ini, akan menjadikan user name dan password yang telah diberikan terdaftar pada server MySQL. Bila tidak diisikan user name dan password-nya, konfigurasi file my.ini tidak akan mendeteksi direktori utama dan direktori MySQL. 68 4. Setelah diklik tombol OK, maka pada toolbar kanan bawah akan muncul icon seperti lampu . traffic light 5. Langkah selanjutnya adalah mengaktifkan database server MySQL, dengan cara klik icon dan akan muncul menu pull-down kemudian pilih menu Show me. Gambar 3.4 Tampilan menu Show me Kemudian akan muncul kotak dialog WinMySQLadmin 1.0 yang berarti bahwa database server MySQL telah aktif. Kotak dialog ini berfungsi untuk mengkonfigurasi database server MySQL, misalnya : konfigurasi my.ini, environment, database dan lain-lain. Gambar 3.5 Tampilan kotak dialog WinMySQLAdmin 1.0 6. Langkah berikutnya adalah mengecek apakah database server MySQL, telah siap untuk diakses dengan cara : - Jalankan Command Prompt cd c:\apache\mysql\bin, maka di Windows, dan berikan perintah berikut ini : anda akan menjumpai prompt berikut ini : C:\apache\mysql\bin >mysql. - Maka kemudian akan muncul ucapan selamat datang di MySQL, yang berarti kita telah dapat mengakses database server MySQL. Untuk kembali ke prompt DOS berikan perintah exit. 69 Gambar 3.6 Tampilan ucapan selamat datang dari MySQL 7. Untuk menonaktifkan, dapat dilakukan dengan cara klik icon dan akan muncul menu pull- down kemudian pilih menu Win NT , lalu sub menu ShutDown this Tool. Gambar 3.7 Tampilan menu ShowDown MySQL III.2 Penggunaan perintah-perintah SQL pada server MySQL Setelah selesai mejalankan langkah-langkah diatas, yaitu sampai langkah ke-7 berarti kita telah dapat mengaktifkan database server MySQL dan dapat menggunakannya dengan cara memberikan perintah mysql (C:\apache\mysql\bin >mysql). III.2.1 Melihat daftar database Perintahnya : show databases; Gambar 3.8 Tampilan daftar database Menunjukkan server MySQL, defaultnya telah mempunyai 2 database yaitu : mysql dan test. III.2.2 Koneksi ke database Agar dapat memanipulasi suatu database, maka terlebih dahulu harus konek-si ke database tersebut. Perintahnya : use (nama_database);, misalnya : use mysql; dan use test; Gambar 3.9 Tampilan konek ke database mysql Tanggapan Database changed ,menunjukkan koneksi ke database mysql telah dilakukan. III.2.3 Mengetahui nama-nama tabel dari suatu database Perintahnya : show tables; Gambar 3.10 Tampilan tabel-tabel pada database mysql 70 Tampilan ini menunjukkan nama-nama tabel yang terdapat pada database mysql, yaitu columns_priv, database, host, tables_priv dan user. III.2.4 Mengetahui struktur dari suatu tabel Perintahnya : describe (nama_tabel); misalnya : describe user; dan describe host; Gambar 3.11 Tampilan struktur dari tabel user Tampilan ini menunjukkan nama-nama field dari tabel user yang terdapat pada database mysql, yaitu : a. Host, nama host tempat pemakai melakukan perintah. b. User, nama pemakai. c. Password, password pemakai. d. Select_priv, digunakan untuk menyatakan pemakai dapat menampilkan data pada suatu tabel atau tidak (SELECT). N berarti tidak bisa dan Y berarti bisa. e. Insert_priv, digunakan untuk menyatakan pemakai dapat memasukkan data baru pada suatu tabel atau tidak (INSERT). N berarti tidak bisa dan Y berarti bisa. f. Update_priv, digunakan untuk menyatakan pemakai dapat memodifikasi data pada suatu tabel atau tidak (UPDATE). N berarti tidak bisa dan Y berarti bisa. g. Delete_priv, digunakan untuk menyatakan pemakai dapat menghapus data pada suatu tabel atau tidak (DELETE). N berarti tidak bisa dan Y berarti bisa. h. Create_priv, digunakan untuk menyatakan pemakai dapat menciptakan database/tabel atau tidak. N berarti tidak bisa dan Y berarti bisa. i. Drop_priv, digunakan untuk menyatakan pemakai dapat menghapus database/tabel atau tidak. N berarti tidak bisa dan Y berarti bisa. j. Reload_priv, digunakan untuk menyatakan pemakai dapat menerapkan perubahan konfigurasi pada database server MySQL atau tidak. N berarti tidak bisa dan Y berarti bisa. 71 k. Shutdown_priv, digunakan untuk menyatakan pemakai dapat mematikan database server MySQL atau tidak. N berarti tidak bisa dan Y berarti bisa. l. Proses_priv, digunakan untuk menyatakan pemakai dapat melihat suatu proses yang terjadi pada database server MySQL atau tidak. N berarti tidak bisa dan Y berarti bisa. m. File_priv, digunakan untuk menyatakan pemakai dapat membaca dan menulis file pada database server MySQL atau tidak. N berarti tidak bisa dan Y berarti bisa n. Grant_priv, digunakan untuk menyatakan pemakai dapat memberikan izin wewenang ke pemakai lain atau tidak. N berarti tidak bisa dan Y berarti bisa. o. References_priv, untuk sementara belum digunakan. p. Index_priv, digunakan untuk menyatakan pemakai dapat melakukan instruksi menciptakan dan menghapus indeks pada suatu tabel atau tidak. N berarti tidak bisa dan Y berarti bisa. q. Alter_priv, digunakan untuk menyatakan pemakai dapat mengubah struktur tabel atau tidak. N berarti tidak bisa dan Y berarti bisa, dan lain-lain. III.2.5 Mengetahui isi dari suatu tabel Perintahnya : select * from (nama_tabel); misalnya : select * from user; dan select * from db; (sebelum menjalankan perintah ini terlebih dahulu harus mengkoneksikan ke database yang berisi tabel yang isinya akan dilihat). Gambar 3.12 Tampilan isi dari tabel user Arti perintah select * from user; diatas adalah akan menampilkan isi semua field/kolom yang terdapat pada tabel user. Contoh perintah lainnya : select Host, User, Password from user;, hasilnya dapat dilihat pada gambar dibawah ini : 72 Gambar 3.13 Tampilan isi dari tabel user pada field host,user dan password Pada tabel user diatas dapat diketahui beberapa hal berikut ini : - Nilai % pada field Host, berarti sembarang host. - Nilai kosong pada field Password, berarti user yang mempunyai password kosong dapat mengakses database tanpa memberi password. - Field Host yang berisi localhost, berarti komputer lokal tempat database server MySQL. - User Adiexs merupakan user name yang kita isikan pertama kali pada waktu mengaktifkan database server MySQL, sedangkan pada field Password berisi hasil enkripsi password yang kita masukkan yaitu Kucing. Dari beberapa hal diatas dapat disimpulkan bahwa : siapa saja dan dimanapun saja dapat mengakses database server MySQL tersebut tanpa memberikan password. Untuk itu demi keamanan maka isi tabel user tersebut perlu dirubah dengan menghapus beberapa user dan memberikan password pada user root. III.2.6 Menghapus user (pemakai) Perintahnya : delete from (nama_tabel) where (kondisi); misalnya : delete from user where User = ’ ‘; (sebelum menjalankan perintah ini terlebih dahulu harus mengkoneksikan ke database yang berisi tabel yang isinya akan dilihat). Gambar 3.14 Tampilan perintah menghapus isi tabel user pada field user yang isinya kosong Tampilan ini menunjukkan perintah query telah dijalankan dan ada 2 baris record yang dihapus, Maka jika dicek dengan perintah : select Host, User, Password from user; isi tabel user menjadi : Gambar 3.15 Tampilan isi dari tabel user pada field host,user dan password setelah isi tabel user didelete Dari tampilan diatas diatas dapat disimpulkan bahwa : user yang dapat mengakses database server MySQL tersebut hanya user root dan Adiexs tetapi untuk user root boleh mengakases tanpa memberikan password. Untuk itu demi keamanan maka user root perlu diberi password. 73 III.2.7 Mengisikan password untuk user root Perintahnya : update (nama_tabel) set (nama_field = isi_data) where (kondisi); misalnya : update user set Password=password(‘Angsa’) where User=’root’;. Gambar 3.16 Tampilan perintah meng-update isi tabel user Tampilan ini menunjukkan perintah query telah dijalankan dan ada 2 baris record yang di-update. Maka jika dicek dengan perintah : select Host, User, Password from user; isi tabel user menjadi : Gambar 3.17 Tampilan isi dari tabel user pada field host,user dan password setelah isi tabel user diupdate Dari tampilan diatas diatas dapat disimpulkan bahwa : user yang dapat mengakses database server MySQL tersebut hanya user root dan Adiexs tetapi untuk user root boleh mengakses di host mana saja sedangkan user Adiexs hanya boleh di localhost dan kedua user harus memasukkan passwordnya masing-masing (Angsa dan Kucing), dimana password yang tertampil pada tabel user diatas telah dienkripsi. III.2.8 Mengaktifkan konfigurasi atau perubahan Perintahnya : flush privileges;. Tanpa memberikan perintah ini, maka semua perubahan yang telah dilakukan pada database tidak akan berpengaruh, sehingga setiap selesai mengkonfigurasi maka perintah flush privileges; ini harus dijalankan. Gambar 3.18 Tampilan perintah untuk mengaktifkan konfigursi database Tampilan diatas menunjukkan, bahwa perintah konfigurasi atau perubahan telah dijalankan, langkah selanjutnya adalah mencoba perubahan yang telah dilakukan. III.2.9 Mencoba perubahan yang telah diberikan. - Keluarlah dari prompt MySQL dengan memberikan perintah exit. Gambar 3.19 Tampilan perintah keluar dari prompt MySQL - Cobalah masuk kembali ke database server MySQL dengan memberikan perintah mysql. Gambar 3.20 Tampilan perintah masuk ke prompt MySQL tanpa user dan password 74 Terbukti bahwa jika ada seseorang yang akan masuk tanpa menggunakan user dan password yang ada pada tabel user, maka tidak akan dapat masuk ke database server MySQL. Sehingga untuk masuk ke database server MySQL gunakan user yang ada dalam tabel user , misalnya menggunakan user root maka perintahnya adalah : mysql -u root –p, lalu masukkan password-nya : Angsa, maka kita akan dapat masuk ke database server MySQL. Gambar 3.21 Tampilan perintah masuk ke prompt MySQL dengan user dan password III.3 Membuat database dan table pada server MySQL. III.3.1 Membuat database Perintahnya : create database (nama_database); misalnya : create database DataMahasiswa; Gambar 3.22 Tampilan perintah membuat database DataMahasiswa Kemudian cek dengan memberikan perintah : show databases; Gambar 3.23 Tampilan perintah melihat database pada server MySQL Dari tampilan terlihat sudah ada database baru yaitu : DataMahasiswa. III.3.2 Membuat tabel Sebelum memberikan perintah pembuatan tabel terlebih dahulu kita aktifkan database yang akan menyimpan table tersebut, misalnya : database DataMahasiswa, dengan perintah : use DataMahasiswa ; Gambar 3.24 Tampilan perintah untuk mengaktifkan database DataMahasiswa Setelah itu berikan perintah pembuatan tabel : create table (nama_tabel) (nama-nama fieldnya dan tipenya); misalnya : create table Datapribadi (NIM int(9) primary key, Nama varchar(25), Kota varchar(15), Telepon vachar(10)); Gambar 3.25 Tampilan perintah untuk membuat tabel Datapribadi dengan field-fieldnya Perintah diatas akan membuat suatu tabel dengan nama Datapribadi yang mempunyai field sebagai berikut : 75 - NIM, memiliki tipe data integer serta dapat diisi maksimal 9 karakter angka dan field NIM ini sebagai primary key bagi tabel datapribadi. - Nama, memiliki tipe data variabel dan karakter serta dapat diisi maksimal 25 variabel atau karakter. - Kota, memiliki tipe data variabel dan karakter serta dapat diisi maksimal 15 variabel atau karakter. - Telepon, memiliki tipe data variabel dan karakter serta dapat diisi maksimal 10 variabel atau karakter. Untuk mengecek apakah tabelnya sudah terbuat berikan perintah : show tables; Gambar 3.26 Tampilan perintah melihat tabel-tabel pada database DataMahasiswa Tampilan diatas menunjukkan dalam database DataMahasiswa, hanya ada 1 tabel yaitu tabel datapribadi. Sedangkan untuk melihat struktur tabelnya berikan perintah : describe datapribadi; Gambar 3.27 Tampilan perintah melihat struktur tabel datapribadi III.3.3 Memasukkan data pada tabel Perintahnya : insert into datapribadi values (35410125,’Indah Wulan Sari’, ‘Tasikmalaya’,’0257765241’); Gambar 3.28 Tampilan perintah memasukan data pada tabel datapribadi Perintah diatas akan memasukkan data ke tabel datapribadi dan mengisi field NIM dengan 35410125, Nama dengan Indah Wulan Sari, Kota dengan Tasikmalaya dan Telepon dengan 0257765241. Cobalah untuk memasukkan data lainya dengan perintah berikut ini : insert into datapribadi values (35410120,’Abi Saputra’, ‘Bekasi’,’0218893705’); insert into datapribadi values (35410155,’Fafa Indrajaya’, ‘Jakarta’, ’0218865344’); insert into datapribadi values (35410425,’Febtyana Sudihartini’, ‘Bogor’,’025157241’); III.3.4 Menampilkan data pada tabel Perintahnya : select * from datapribadi; perintah ini berarti akan menampilkan semua data yang ada di tabel datapribadi. 76 Gambar 3.29 Tampilan perintah menampilkan isi data pada tabel datapribadi III.3.5 Menghapus data pada tabel Perintahnya : delete from datapribadi where Nama =’Abi Saputra’; perintah ini berarti akan menghapus record yang field Nama-nya berisi Abi Saputra. Gambar 3.30 Tampilan perintah menghapus record pada tabel datapribadi Cek dengan perintah : select * from datapribadi; Gambar 3.31 Tampilan perintah menampilkan isi data pada tabel datapribadi setalah dilakukan penghapusan III.3.6 Merubah data pada tabel Perintahnya : update datapribadi set Nama=’Indah Wulansari’,Kota=’Yogyakarta’ where NIM =35410125; perintah ini berarti akan merubah data mahasiswa yang NIM =35410125 dimana isi field Nama dirubah menjadi Indah Wulansari dan Kota dirubah menjadi Yogyakarta. Gambar 3.32 Tampilan perintah mengupdate record pada tabel datapribadi Cek dengan perintah : select * from datapribadi; Gambar 3.33Tampilan perintah menampilkan isi data pada tabel datapribadi setalah dilakukan update III.3.7 Menampikan isi gabungan 2 tabel. - Langkah pertama membuat tabel baru, misalnya : DataOrtu. Gambar 3.34 Tampilan perintah membuat tabel dataortu - Cek dengan perintah : show tables; 77 Gambar 3.35 Tampilan perintah melihat tabel-tabel pada database DataMahasiswa - Isikan data pada tabel dataortu dengan perintah : Insert into dataortu values (35410120,’Panca Sanjaya’); Insert into dataortu values (35410125,’Suhendra’); Insert into dataortu values (35410155,’Joko Purnomo’); Insert into dataortu values (35410425,’Bagus Sudiri’); - Cek dengan perintah : select * from dataortu; Gambar 3.36 Tampilan perintah menampilkan isi pada tabel dataortu - Tampilkan isi gabungan 2 tabel datapribadi dan dataortu, dengan perintah : select datapribadi.Nama,datapribadi.Kota,dataortu.NamaOrtu from datapribadi, dataortu where datapribadi.NIM=dataortu.NIM order by datapribadi.Nama; Gambar 3.37 Tampilan perintah menampilkan isi pada tabel datapribadi dan dataortu III.3.8 Menghapus database dan table Perintahnya : drop database (nama_database); misalnya : drop database DataMahasiswa; perintah ini akan mengahapus database yang bernama DataMahasiswa. drop table (nama_tables); misalnya : drop table datapribadi; perintah ini akan mengahapus tabel yang bernama datapribadi. Bilamana telah diberikan 2 perintah diatas maka database DataMahasiswa dan tabel datapribadi telah terhapus. III.4 Fungsi-fungsi server MySQL Merupakan fungsi yang digunakan untuk mengakses database MySQL yang diawali mysql_ : III.4.1 Fungsi mysql_connect Digunakan untuk melakukan koneksi ke database server MySQL, yang terdapat pada suatu host. Formatnya : mysql_connect (nama_host, nama_user, password); 78 Ket : ¾ nama_host , menyatakan nama host tempat MySQL diinstal. ¾ nama_user, adalah nama pemakai yang diperbolehkan untuk koneksi dengan database server MySQL. ¾ password, adalah password yang dimiliki oleh pemakai. Nilai balik yang dihasilkan true (jika koneksi berhasil dilakukan) dan false (jika koneksi tidak berhasil dilakukan). Contoh : $konek = mysql_connect (‘localhost’,’Adiexs’,’Kucing’); Perintah ini digunakan untuk membentuk koneksi ke database server MySQL yang terdapat pada localhost dengan user Adiexs dan password = Kucing dan $konek sebagai pengenal hubungan. III.4.2 Fungsi mysql_close Digunakan untuk memutus koneksi ke database MySQL. Formatnya : mysql_close (pengenal_hubungan); Ket : ¾ pengenal_hubungan, menyatakan nama pengenal dari pemanggilan fungsi mysql_connect. Contoh : mysql_close ($konek); Perintah ini digunakan untuk memutuskan koneksi terhadap database MySQL, yang mempunyai nama pengenal_hubungan-nya adalah $konek. Contoh programnya : (FungsiMySQLConnect.php). <html> <head> <title>Koneksi ke Database MySQL</title> </head> <body> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if ($konek) print("Database MySQL dapat Terkoneksi<br>"); else print("Database MySQL tidak dapat Terkoneksi<br>"); $putus = mysql_close($konek); if ($putus) print("Pemutusan Berhasil"); else print("Pemutusan tidak Berhasil"); ?> </body> </html> 79 Gambar 3.38 Tampilan program konekmysql.php III.4.3 Fungsi mysql_select_db Digunakan untuk memilih database yang ada di database server MySQL. Formatnya : mysql_ select_db (nama_database, pengenal_hubungan); Ket : ¾ nama_database, menyatakan nama database yang akan dipilih. ¾ pengenal_hubungan, menyatakan nama pengenal dari pemanggilan fungsi mysql_connect. Contoh : mysql_ select_db (DataMahasiswa, $konek); Perintah ini digunakan untuk memilih database yang bernama DataMahasiswa, yang mempunyai nama pengenal_hubungan-nya adalah $konek. III.4.4 Fungsi mysql_query Digunakan untuk menjalankan permintaan terhadap sebuah tabel atau sejumlah table. Formatnya : mysql_ query (permintaan, pengenal_hubungan);. Ket : ¾ permintaan, merupakan pernyataan SQL yang digunakan untuk mengakses tabel, dimana tabel yang dapat diakses adalah milik database yang disebutkan melalui pemanggilan fungsi mysql_select_db. ¾ pengenal_hubungan, menyatakan nama pengenal dari mysql_connect. Contoh : mysql_ query (“select * from datapribadi”, $konek); Perintah ini digunakan untuk menampilkan semua data yang ada di tabel datapribadi, dimana tabel datapribadi ini terdapat dalam database yang bernama DataMahasiswa, yang mana database DataMahasiswa ini telah dipilih sebelumnya dengan perintah mysql_ select_db (DataMahasiswa, $konek); yang mempunyai nama pengenal_hubungan-nya adalah $konek. III.4.5 Fungsi mysql_db_query Digunakan untuk menjalankan permintaan terhadap sebuah database. Formatnya : mysql_db_query (database,permintaan, pengenal_hubungan); 80 Ket : ¾ database, adalah nama database yang dipilih. ¾ permintaan, merupakan pernyataan SQL yang digunakan untuk mengakses tabel dari database yang telah dipilih. ¾ pengenal_hubungan, menyatakan nama pengenal dari pemanggilan fungsi mysql_connect. Contoh : $hasilisitabel = mysql_db_query ("DataMahasiswa","select * from datapribadi",$konek); Perintah ini digunakan untuk memilih database yang bernama DataMahasiswa, kemudian akan menampilkan semua data yang ada di tabel datapribadi, dimana tabel datapribadi ini terdapat dalam database yang bernama DataMahasiswa, dengan yang nama pengenal_hubungan-nya adalah $konek. III.4.6 Fungsi mysql_num_rows Digunakan untuk mendapatkan jumlah baris dari hasil permintaan yang menggunakan perintah select. Formatnya : mysql_num_rows (pengenal_hasil); Ket : ¾ pengenal_hasil, adalah nama pengenal yang berisi hasil pemanggilan fungsi mysql_query dan mysql_db_query. Contoh : $jumbaris = mysql_num_rows($hasilisitabel); Perintah ini akan menghasilkan jumlah baris dari hasil perintah select yang telah dijalankan sebelumnya yang disimpan dalam pengenal_hasil $hasilisitabel. III.4.7 Fungsi mysql_num_fields Digunakan untuk mendapatkan jumlah baris dari hasil permintaan yang menggunakan perintah select. Formatnya : mysql_num_fields (pengenal_hasil); Ket : ¾ pengenal_hasil, adalah nama pengenal yang berisi hasil pemanggilan fungsi mysql_query dan mysql_db_query. Contoh : $jumkolom = mysql_num_fields($hasilisitabel); Perintah ini akan menghasilkan jumlah kolom dari hasil perintah select yang telah dijalankan sebelumnya yang disimpan dalam pengenal_hasil $hasilisitabel. 81 III.4.8 Fungsi mysql_fetch_row Digunakan untuk menghasilkan suatu array, yang terdiri dari seluruh isi kolom dan baris pada suatu hasil permintaan. Fungsi ini mempunyai sifat akan membaca baris berikutnya dari hasil permintaan dan menghasilkan nilai balik bilamana baris yang akan dibaca sudah tidak ada. Formatnya : mysql_fetch_row (pengenal_hasil); Ket : ¾ pengenal_hasil, adalah nama pengenal yang berisi hasil pemanggilan fungsi mysql_query dan mysql_db_query. Contoh : $array = mysql_fetch_row($hasilisitabel) Perintah ini akan menghasilkan array, dari hasil perintah yang telah dijalankan sebelumnya yang disimpan dalam pengenal_hasil $hasilisitabel. Contoh programnya : (FungsiMySQLFecthRow.php). <html> <head> <title>Menampilkan Isi Tabel dengan Query</title> </head> <body> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasilisitabel = mysql_query ("select * from datapribadi",$konek); //$hasilisitabel = mysql_db_query ("DataMahasiswa","select * from datapribadi",$konek); $jumbaris = mysql_num_rows($hasilisitabel); print ("Jumlah Baris : $jumbaris<br>"); $jumkolom = mysql_num_fields($hasilisitabel); print ("Jumlah Kolom : $jumkolom<br>"); While ($array = mysql_fetch_row($hasilisitabel)) { print ("$array[0] || $array[1] || $array[2] || $array[3]<br>"); } ?> </body> </html> Gambar 3.39 Tampilan program FungsiMySQLFecthRow.php 82 III.4.9 Fungsi mysql_affected_rows Digunakan untuk mendapatkan jumlah baris dari permintaan yang menggunakan perintah insert, delete dan update. Formatnya : mysql_affected_rows (pengenal_hubungan); Ket : ¾ pengenal_ hubungan, menyatakan nama pengenal dari pemanggilan fungsi mysql_connect. Contoh : $jumbaris = mysql_affected_rows($konek); Perintah ini akan menghasilkan jumlah baris yang dikenai perintah insert, delete dan update yang telah dijalankan sebelumnya. Contoh programnya : (FungsiMySQLAffectedRows.php). <html> <head> <title>Menampilkan Jumlah Baris dengan Query Insert, Delete dan Update</title> </head> <body> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); /*$Masukkan = "insert into datapribadi(NIM,Nama,Kota,Telepon) values ('35410175','Indraguna','Wates','773425')"; $hasilisitabel = mysql_query ($Masukkan,$konek);*/ //$hasilisitabel = mysql_query ("update datapribadi set Nama='Indraguna,S.Kom',Kota='Yogyakarta' where NIM = 35410185 "); $hasilisitabel = mysql_query ("delete from datapribadi where NIM = 35410175"); if ($hasilisitabel) print("Perintah dapat Dijalankan<br>"); else print("Perintah tidak dapat Dijalankan<br>"); $jumbaris = mysql_affected_rows($konek); print ("Jumlah Baris : $jumbaris<br>"); ?> </body> </html> Gambar 3.40 Tampilan program FungsiMySQLAffectedRows.php III.4.10 Fungsi mysql_fetch_field Digunakan untuk mendapatkan informasi suatu kolom, dimana nilai balik-nya berupa suatu objek. 83 Formatnya : mysql_fetch_field (pengenal_hasil, nomor_kolom); Ket : ¾ pengenal_hasil, adalah nama pengenal yang berisi hasil pemanggilan fungsi mysql_query dan mysql_db_query. ¾ nomor_kolom, menyatakan nomor kolom yang informasinya ingin didapatkan. Bila nomor kolom tidak disebutkan, maka akan mengecek kolom dengan nomor kolom dimulai dari 0 sampai nomor kolom terakhir. Contoh : $hasilisikolom = mysql_fetch_field($hasil,0); Perintah ini akan menghasilkan suatu objek $hasilisikolom, kemudian supaya mendapatkan informasi maka objek ini harus diberi property antara lain : Tabel 3.1 Properti dari suatu filed Properti not_null primary_key numeric name max_length table Keterangan Bernilai 1 jika kolom tidak boleh kosong Bernilai 1 jika kolom adalah primary key Bernilai 1 jika kolom bertipe numerik Nama kolom Panjang maksimal kolom Nama tabel milik kolom Contoh programnya : (FungsiMySQLFetchField.php). <html> <head> <title>Menampilkan Informasi Kolom</title> </head> <body> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasil = mysql_query ("select * from datapribadi",$konek); if (! $hasil) die("Permintaan tidak dapat Dijalankan"); $hasilisikolom = mysql_fetch_field($hasil,0); $tidak_kosong = $hasilisikolom->not_null ? "Tidak": "Boleh"; $primary_key = $hasilisikolom->primary_key ? "Ya": "Tidak"; $Numerik = $hasilisikolom->numeric ? "Ya": "Bukan"; print("Nama kolom : <b>$hasilisikolom->name</b><br>"); print("Nama tabelnya : <b>$hasilisikolom->table</b><br>"); print("Panjang isi kolom : <b>$hasilisikolom->max_length</b><br>"); print("Apakah isinya boleh kosong : <b>$tidak_kosong</b><br>"); print("Apakah sebagai kunci primer: <b>$primary_key</b><br>"); print("Apakah tipenya numerik: <b>$Numerik</b><br>"); ?> </body> </html> 84 Gambar 3.41 Tampilan program FungsiMySQLFetchField.php III.4.11 Fungsi-fungsi untuk mendapatkan atribut suatu kolom Tabel 3.2 Fungsi-fungsi untuk mendapatkan atribut suatu kolom Nama Fungsi mysql_field_name mysql_field_len mysql_field_flags mysql_field_type Keterangan Menghasikan nama kolom. Menghasilkan panjang maksimal kolom. Menghasilkan flag kolom yang dimiliki oleh kolom yang dipilih, misalnya : not_null dan primary_key. Menghasikan tipe kolom misalnya : int dan string. Formatnya : nama_fungsi (pengenal_hasil, nomor_kolom); Ket : ¾ pengenal_hasil, adalah nama pengenal yang berisi hasil pemanggilan fungsi mysql_query dan mysql_db_query. ¾ nomor_kolom, menyatakan nomor kolom yang informasinya ingin didapatkan. Contoh : $Nama_kolom = mysql_field_name($hasil, 2); Perintah ini akan menghasilkan nama kolom dari hasil perintah yang telah dijalankan sebelumnya yang disimpan dalam pengenal_hasil $hasil, yang mempunyai nomor kolom 2 (penomoran kolom dimulai dari 0). Contoh programnya : (FungsiMySQLFieldName.php). <html> <head> <title>Menampilkan Informasi Kolom</title> </head> <body> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasil = mysql_query ("select * from datapribadi",$konek); if (! $hasil) die("Permintaan tidak dapat Dijalankan"); $jum_kolom = mysql_num_fields($hasil); 85 for($i=0; $i<$jum_kolom; $i++) { $Nama_kolom = mysql_field_name($hasil, $i); $Tipe_kolom = mysql_field_type($hasil, $i); $Panjang_kolom = mysql_field_len($hasil, $i); $Flag_kolom = mysql_field_flags($hasil, $i); print("Nama kolomnya : <b>$Nama_kolom</b><br>"); print("Tipe : <b>$Tipe_kolom</b><br>"); print("Panjang maksimal : <b>$Panjang_kolom</b><br>"); print("Flag kolomnya : <b>$Flag_kolom</b><br>"); print("<br>"); } ?> </body> </html> Gambar 3.42 Tampilan program FungsiMySQLFieldName.php III.4.12 Fungsi-fungsi MySQL lainya Tabel 3.3 Fungsi-fungsi MySQL lainnya Nama Fungsi mysql_create_db mysql_list_db mysql_drop_db mysql_list_tables mysql_list_fields mysql_free_result Keterangan Membuat database baru di database server MySQL. Menghasilkan nama-nama seluruh database yang ada di database server MySQL. Menghapus suatu database yang ada di database server MySQL. Menghasilkan nama-nama tabel dari suatu database yang ada di database server MySQL. Menghasilkan nama-nama kolom/fields dari suatu tabel dalam suatu database yang ada di database server MySQL. Membebaskan memori dari seluruh hasil proses MySQL . 86 Tugas : Membuat database yang terdiri dari minimal 2 tabel dan masing –masing tabel minimal terdiri dari 4 field. Yang dikumpulkan : 1. Menulis langkah-langkah pembuatan database tersebut (harus ditulis dengan tangan). 2. Penjelasan setiap perintah SQL yang digunakan dalam pembuatan database (harus ditulis dengan tangan). Bab IV. Aplikasi Web Sederhana dengan 1 Tabel IV.1 Halaman Login (Login.php). <html> <head> <title>Login Pengaturan Data Mahasiswa</title> </head> <body bgcolor="aqua"> <center> <h2>Pengaturan Data Mahasiswa</h2> <form method="post"> <table > <tr> <td>Petugas</td> <td> <input type="text" name="petugas"> </td> </tr> <tr> <td>Password</td> <td> <input type="password" name="password"> </td> </tr> </table> <input type="submit" value="login"> <input type="reset" value="reset"> </form> <hr size=15 color="fuchsia" > <?php if (isset($password) and isset($petugas) ) { $validasipwd = crc32("kucing"); $validasiptg = ("Fafa"); $pwd = crc32($password); $ptg = $petugas; if (($validasipwd == $pwd) and ($validasiptg == $ptg)) { include "MenuUtama.html"; } else { print("<b>Login Anda Salah...! <br>"); } } ?> </center> 87 </body> </html> Gambar 4.1 Tampilan program login.php IV.2 Halaman Menu Utama (MenuUtama.html). <html> <head> <title>Menu Utama Pengaturan Data Mahasiswa</title> </head> <body bgcolor="aqua"> <center> <h3>Menu Utama Data Mahasiswa</h3> <hr> <a href="Masukkan.html">Menambah Data</a><br> <a href="Cek.html">Mengubah atau Menghapus Data</a><br> <a href="Login.php">Logout</a> </center> </body> </html> Gambar 4.2 Tampilan program login.php setelah login dengan benar 88 IV.3 Halaman untuk Menambahkan Data (Masukkan.html). <html> <head> <title>Menambah Data Mahasiswa</title> </head> <body bgcolor="aqua"> <center> <form action="Insert.php" method="post"> <table border="1"> <tr> <td><b>NIM</td> <td> <input type=text name=nim size=9 maxlength=9> </td> </tr> <tr> <td><b>Nama</td> <td> <input type=text name=nama size=25 maxlength=25> </td> </tr> <tr> <td><b>Kota</td> <td> <input type=text name=kota size=15 maxlength=15> </td> </tr> <tr> <td><b>Telepon</td> <td> <input type=text name=tlp size=10 maxlength=10> </td> </tr> </table> <table border="0"> <tr> <td> <input type="submit" value="Simpan"> <input type="reset" value="Reset"> </td> </tr> </table> </center> </body> </html> Gambar 4.3 Tampilan program masukkan.html yang berupa form isian 89 IV.4 Halaman untuk Memproses Data yang akan Dimasukkan(Insert.php). <html> <head> <title>Memasukkan Data Dalam Database</title> </head> <body bgcolor="aqua"> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); /* printf("$nim<br>"); printf("$nama<br>"); printf("$kota<br>"); printf("$tlp<br>");*/ $Masukkan = "insert into datapribadi(NIM,Nama,Kota,Telepon) values ('$nim','$nama','$kota','$tlp')"; $hasilisitabel = mysql_query ($Masukkan,$konek); if ($hasilisitabel) print("<font color=red size=4>Data <b>$nama</b> Telah Dimasukkan</font><br>"); else print("<font color=red size=4> Data Tidak Dapat Dimasukkan</font><br>"); ?> <a href="masukkan.html">Kembali Menu Memasukkan Data</a><br> </body> </html> Gambar 4.4 Tampilan program insert.php IV.5 Halaman untuk Mengecek Data (Cek.html). <html> <head> <title>Mengecek Data Mahasiswa</title> </head> <body bgcolor="aqua"> <center> <form action="Edit&Hapus.php" method="post"> <table border="1"> <tr> <td><b>Masukkan NIM</td> <td> <input type=text name=nim size=15 maxlength=9 > </td> </tr> </table> <table border="0"> 90 <tr> <td> <input type="submit" value="Cek"> </td> </tr> </form> </center> </body> </html> Gambar 4.5 Tampilan program Cek.html IV.6 Halaman untuk Mengedit dan Menghapus Data (Edit&Hapus.php). <html> <head> <title>Mengedit atau Menghapus Data Mahasiswa</title> </head> <body bgcolor="aqua"> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasil= mysql_query ("select NIM,Nama,Kota,Telepon from datapribadi where NIM='$nim'",$konek); if (! $hasil) print ("Permintaan gagal"); $baris = mysql_fetch_row($hasil); if ($baris == false) print ("Data dengan NIM : <b>$nim</b> Tidak Ada...!"); $nim = $baris[0]; $nama = $baris[1]; $kota = $baris[2]; $tlp = $baris[3]; ?> <center> <form action="Update.php" method="post"> <table border="1"> <tr> <td>NIM</td> <td> <?php echo "$nim"; ?> </td> </tr> <tr> <td>Nama</td> 91 <td> <?php echo "<input type=text name=nama size=25 maxlength=25 value='$nama'>"; ?> </td> </tr> <tr> <td>Kota</td> <td> <?php echo "<input type=text name=kota size=15 maxlength=15 value='$kota'>"; ?> </td> </tr> <tr> <td>Telepon</td> <td> <?php echo "<input type=text name=tlp size=10 maxlength=10 value='$tlp'>"; ?> </td> </tr> </table> <table border="0"> <?php echo "<input type=hidden name=nim size=9 maxlength=9 value=$nim>"; ?> <tr> <td> <input type="submit" size=29 value="Update"> </td> </tr> </form> <form action="Delete.php" method="post"> <td> <?php echo "<input type=hidden name=nim size=9 maxlength=9 value=$nim>"; ?> <input type="submit" size=29 value="Hapus "> </td> </form> </center> </body> </html> Gambar 4.6 Tampilan program edit&hapus.php 92 IV.7 Halaman untuk Memproses Edit Data (Update.php). <html> <head> <title>Mengedit Data Mahasiswa</title> </head> <body bgcolor="aqua"> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasilisitabel = mysql_query ("update datapribadi set Nama='$nama', Kota='$kota',Telepon='$tlp' where NIM=$nim"); if ($hasilisitabel) print("<font color=red size=4>Data <b>$nama</b> telah Di-Update...!</font><br>"); else print("<font color=red size=4>Data tidak dapat Di-Update </font><br>"); ?> <a href="cek.html">Kembali Menu Cek</a><br> </body> </html> Gambar 4.7 Tampilan program update.php IV.8 Halaman untuk Memproses Hapus Data (Delete.php). <html> <head> <title>Menghapus Data Mahasiswa</title> </head> <body bgcolor="aqua"> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasilisitabel = mysql_query ("delete from datapribadi where NIM=$nim"); if ($hasilisitabel) print("<font color=red size=4>Data telah di Hapus...!</font><br>"); else print("<font color=red size=4>Data tidak dapat di Hapus</font><br>"); ?> <a href="cek.html">Kembali Menu Cek</a><br> </body> </html> 93 Gambar 4.8 Tampilan program delete.php Tugas : Menjelaskan skrip program aplikasi diatas (harus ditulis dengan tangan). Bab V. Mengenal Sesi Pada waktu kita browsing menjelajahi website, misalnya e-mail, kita akan diminta memasukkan username dan password. Prosedur ini hanya dilakukan sekali pada awal proses. Selanjutnya sistem akan ‘mengingat’ identitas kita, dan menampilkan informasi yang sesuai. Tanpa adanya sesi, sistem akan salah dan menampilkan data rahasia ke orang yang salah. Sesi bekerja seperti tempat penitipan barang di supermarket. Kita datang, menitipkan barang bawaan, dan petugas akan memberikan tanda pengenal. Pada saat kita akan mengambil barang, kita memberikan tanda pada petugas, dan petugas akan dapat mengambil barang yang dititipkan tanpa tertukar dengan barang orang lain. Permasalahan yang terjadi adalah, bagaimana “tanda pengenal” tersebut akan disimpan pada setiap halaman yang diakses user, sehingga dapat diakses oleh sistem setiap kali user mengklik link. Beberapa kegunaan dari Sesi : 1. Menyimpan nama User dan Password, sehingga memungkinkan seseorang dapat masuk ke skrip-skrip lainnya tanpa perlu melakukan login kembali. 2. Menyimpan nama pembeli dan barang-barang yang akan dibeli. 3. Menyimpan pilihan-pilihan yang ditentukan oleh pengunjung. Untuk membuat sesi dapat menggunakan Session atau Cookies. Keduanya mempunyai fungsi yang sama yaitu : untuk mencatat aktifitas dari seseorang yang mengakses suatu aplikasi web, agar informasi yang digunakan untuk mengakses dapat terpelihara atau terjaga. Perbedaaanya adalah Cookies disimpan di komputer user sedangkan Session disimpan di server. Sehingga dapat disimpulkan bahwa penggunaan Session lebih aman dari Cookie. Berikut akan dicontohkan aplikasi yang telah menggunakan Session dengan 2 tabel, bandingkan dengan aplikasi web sederhana diatas. 94 V.1 Halaman Login (Login.php). <html> <head> <title>Login Pengaturan Data Mahasiswa</title> </head> <body bgcolor="aqua"> <center> <?php if (!empty($msg)) print("<font color='red'><b>$msg<br>\n</b></font>"); ?> <h2>Pengaturan Data Mahasiswa</h2> <form action=MenuUtama.php method="post"> <table > <tr> <td>Petugas</td> <td> <input type="text" name="pemakai"> </td> </tr> <tr> <td>Password</td> <td> <input type="password" name="password"> </td> </tr> </table> <input type="submit" value="login"> <input type="reset" value="reset"> </form> <hr size=15 color="fuchsia" > </center> </body> </html> Gambar 5.1 Tampilan program login.php V .2 Halaman Menu Utama(MenuUtama.php). <?php include "CekPwd.inc"; session_start(); if (! empty($pemakai)) 95 $sesi_pemakai = $pemakai; if (! empty($password)) $sesi_password = $password; if (! password_valid($sesi_pemakai,$sesi_password)) { $alamat = "http://localhost/AplikasiSesi/Index.php"; $msg = "Login Anda Salah, Silahkan Login Kembali...!"; header("location: $alamat?msg=$msg"); exit(); } session_register("sesi_pemakai"); session_register("sesi_password"); ?> <html> <head> <title>Menu Utama Pengaturan Data Mahasiswa</title> </head> <body bgcolor="aqua"> <center> <h3>Menu Utama Data Mahasiswa</h3> <hr> <a href="MasukData.php">Menambah Data</a><br> <a href="CekData.php">Mengubah atau Menghapus Data</a><br> <a href="Kriteria.php">Menampilkan Data dengan Kriteria</a><br> <a href="TampilData.php">Menampilkan Semua Data</a><br> <a href="Index.php">Logout</a> </center> </body> </html> Gambar 5.2 Tampilan program menuutama.php V.3 File untuk Validasi Password (CekPwd.php). <?php function password_valid($pemakai, $password) { if (isset($pemakai) and isset($password) ) { $validasiptg = ("Fafa"); $validasipwd = crc32("kucing"); $ptg = $pemakai; $pwd = crc32($password); if (($validasipwd == $pwd) and ($validasiptg == $ptg)) return true; 96 return false; } } ?> V.4 Halaman atau Form untuk Memasukkan Data(MasukData.php). <?php include "CekPwd.inc"; session_start(); if (! password_valid($sesi_pemakai,$sesi_password)) { $alamat = "http://localhost/AplikasiSesi/Index.php"; $msg = "Login Anda Salah, Silahkan Login Kembali...!"; header("location: $alamat?msg=$msg"); exit(); } ?> <html> <head> <title>Menambah Data Mahasiswa</title> </head> <body bgcolor="aqua"> <center> <form action="insert2.php" method="post"> <table border="1"> <tr> <td><b>NIM</td> <td> <input type=text name=nim size=9 maxlength=9> </td> </tr> <tr> <td><b>Nama</td> <td> <input type=text name=nama size=25 maxlength=25> </td> </tr> <tr> <td><b>Kota</td> <td> <input type=text name=kota size=15 maxlength=15> </td> </tr> <tr> <td><b>Telepon</td> <td> <input type=text name=tlp size=10 maxlength=10> </td> </tr> <tr> <td><b>Nama Orang Tua</td> <td> <input type=text name=naortu size=25 maxlength=25> </td> </tr> <tr> <td><b>Pekerjaan</td> <td> <input type=text name=pkj size=15 maxlength=15> 97 </td> </tr> </table> <table border="0"> <tr> <td> <input type="submit" value="Simpan"> <input type="reset" value="Reset"> </td> </tr> </table> </center> </body> </html> Gambar 5.3 Tampilan program masukdata.php V.5 Halaman untuk Memproses Data yang akan Dimasukkan (Insert2.php). <?php include "CekPwd.inc"; session_start(); if (! password_valid($sesi_pemakai,$sesi_password)) { $alamat = "http://localhost/AplikasiSesi/Index.php"; $msg = "Login Anda Salah, Silahkan Login Kembali...!"; header("location: $alamat?msg=$msg"); exit(); } ?> <html> <head> <title>Memasukkan Data Dalam Database</title> </head> <body bgcolor="aqua"> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $Masuk1 = "insert into datapribadi(NIM,Nama,Kota,Telepon) values 98 ('$nim','$nama','$kota','$tlp')"; $hasilisitabel1 = mysql_query ($Masuk1,$konek); $Masuk2 = "insert into dataortu(NIM,NamaOrtu,Pekerjaan) values ('$nim','$naortu','$pkj')"; $hasilisitabel2 = mysql_query ($Masuk2,$konek); if (($hasilisitabel1) and ($hasilisitabel1)) print("<font color=red size=4>Data <b>$nama</b> Telah Dimasukkan</font><br>"); else print("<font color=red size=4> Data Tidak Dapat Dimasukkan</font><br>"); ?> <a href="masukdata.php">Kembali Menu Memasukkan Data</a><br> </body> </html> Gambar 5.4 Tampilan program insert2.php V.6 Halaman untuk Mengecek Data yang akan Diedit (CekData.php). <?php include "CekPwd.inc"; session_start(); if (! password_valid($sesi_pemakai,$sesi_password)) { $alamat = "http://localhost/AplikasiSesi/Index.php"; $msg = "Login Anda Salah, Silahkan Login Kembali...!"; header("location: $alamat?msg=$msg"); exit(); } ?> <html> <head> <title>Mengecek Data Mahasiswa</title> </head> <body bgcolor="aqua"> <center> <form action="Edit&Hapus2.php" method="post"> <table border="1"> <tr> <td><b>Masukkan NIM</td> <td> <input type=text name=nim size=15 maxlength=9 > </td> </tr> </table> <table border="0"> <tr> <td> <input type="submit" value="Cek"> </td> </tr> </form> 99 </center> </body> </html> . Gambar 5.5 Tampilan program cekdata.php V.7 Halaman untuk Mengedit atau Menghapus Data (Edit&Hapus2.php). <?php include "CekPwd.inc"; session_start(); if (! password_valid($sesi_pemakai,$sesi_password)) { $alamat = "http://localhost/AplikasiSesi/Index.php"; $msg = "Login Anda Salah, Silahkan Login Kembali...!"; header("location: $alamat?msg=$msg"); exit(); } ?> <html> <head> <title>Mengedit atau Menghapus Data Mahasiswa</title> </head> <body bgcolor="aqua"> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasil1= mysql_query ("select NIM,Nama,Kota,Telepon from datapribadi where NIM='$nim'",$konek); if (! $hasil1) print ("Permintaan gagal"); $baris1 = mysql_fetch_row($hasil1); if ($baris1 == false) printf ("Data dengan NIM : <b>$nim</b> Tidak Ada...!" ); $nim = $baris1[0]; $nama = $baris1[1]; $kota = $baris1[2]; $tlp = $baris1[3]; $hasil2= mysql_query ("select NIM,NamaOrtu,Pekerjaan from dataortu where NIM='$nim'",$konek); if (! $hasil2) print ("Permintaan gagal"); $baris2 = mysql_fetch_row($hasil2); $nim = $baris2[0]; $naortu = $baris2[1]; $pkj = $baris2[2]; ?> <center> 100 <form action="update2.php" method="post"> <table border="1"> <tr> <td>NIM</td> <td> <?php echo "$nim"; ?> </td> </tr> <tr> <td>Nama</td> <td> <?php echo "<input type=text name=nama size=25 maxlength=25 value='$nama'>"; ?> </td> </tr> <tr> <td>Kota</td> <td> <?php echo "<input type=text name=kota size=15 maxlength=15 value='$kota'>"; ?> </td> </tr> <tr> <td>Telepon</td> <td> <?php echo "<input type=text name=tlp size=10 maxlength=10 value='$tlp'>"; ?> </td> </tr> <tr> <td>Nama Orang Tua</td> <td> <?php echo "<input type=text name=naortu size=25 maxlength=25 value='$naortu'>"; ?> </td> </tr> <tr> <td>Pekerjaan</td> <td> <?php echo "<input type=text name=pkj size=15 maxlength=15 value='$pkj'>"; ?> </td> </tr> </table> <table border="0"> <?php echo "<input type=hidden name=nim size=9 maxlength=9 value=$nim>"; ?> <tr> <td> <input type="submit" size=29 value="Update"> </td> </tr> 101 </form> <form action="delete2.php" method="post"> <td> <?php echo "<input type=hidden name=nim size=9 maxlength=9 value=$nim>"; ?> <input type="submit" size=29 value="Hapus "> </td> </form> </center> </body> </html> Gambar 5.6 Tampilan program edit&hapus2.php V.8 Halaman untuk Memproses Data yang akan Diedit (Update2.php). <?php include "CekPwd.inc"; session_start(); if (! password_valid($sesi_pemakai,$sesi_password)) { $alamat = "http://localhost/AplikasiSesi/Index.php"; $msg = "Login Anda Salah, Silahkan Login Kembali...!"; header("location: $alamat?msg=$msg"); exit(); } ?> <html> <head> <title>Mengedit Data Mahasiswa</title> </head> <body bgcolor="aqua"> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasilisitabel1 = mysql_query ("update datapribadi set Nama='$nama', Kota='$kota',Telepon='$tlp' where NIM=$nim"); 102 $hasilisitabel2 = mysql_query ("update dataortu set NamaOrtu='$naortu',Pekerjaan='$pkj'where NIM=$nim"); if (($hasilisitabel2) and ($hasilisitabel2)) print("<font color=red size=4>Data <b>$nama</b> telah Di-Update...!</font><br>"); else print("<font color=red size=4>Data tidak dapat Di-Update </font><br>"); ?> <a href="cekdata.php">Kembali Menu Cek</a><br> </body> </html> Gambar 5.7 Tampilan program update2.php V.9 Halaman untuk Memproses Data yang akan Dihapus (Delete2.php). <?php include "CekPwd.inc"; session_start(); if (! password_valid($sesi_pemakai,$sesi_password)) { $alamat = "http://localhost/AplikasiSesi/Index.php"; $msg = "Login Anda Salah, Silahkan Login Kembali...!"; header("location: $alamat?msg=$msg"); exit(); } ?> <html> <head> <title>Menghapus Data Mahasiswa</title> </head> <body bgcolor="aqua"> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasilisitabel1 = mysql_query ("delete from datapribadi where NIM=$nim"); $hasilisitabel2 = mysql_query ("delete from dataortu where NIM=$nim"); if (($hasilisitabel1) and ($hasilisitabel2)) print("<font color=red size=4>Data telah di Hapus...!</font><br>"); else print("<font color=red size=4>Data tidak dapat di Hapus</font><br>"); ?> <a href="cekdata.php">Kembali ke Menu Cek</a><br> </body> </html> 103 Gambar 5.8 Tampilan program delete2.php V.10 Halaman untuk Memasukkan Kriteria (Kriteria.php). <?php include "CekPwd.inc"; session_start(); if (! password_valid($sesi_pemakai,$sesi_password)) { $alamat = "http://localhost/AplikasiSesi/Index.php"; $msg = "Login Anda Salah, Silahkan Login Kembali...!"; header("location: $alamat?msg=$msg"); exit(); } ?> <html> <head> <title>Menampilkan Data dengan Kriteria</title> </head> <body bgcolor="aqua"> <center> <form action="TampilKriteria.php" method="post"> <font size=5 color="red"><b>Silahkan Masukkan Kriterianya...!</font><br><br> <table border="1"> <tr> <td><b>Masukkan Kriteria Nama Mahasiswa</td> <td> <input type=text name=kritnama size=15 maxlength=9 > </td> </tr> <tr> <td><b>Masukkan Kriteria Kota</td> <td> <input type=text name=kritkota size=15 maxlength=9 > </td> </tr> </table> <table border="0"> <tr> <td> <input type="submit" value="OK"> </td> </tr> </table> </form> </center> </body> <a href="menuutama.php"><font size=2 color="blue"><b>Kembali ke Menu Utama...!</a> </html> 104 Gambar 5.9 Tampilan program kriteria.php V.11 Halaman untuk Menampilkan Data dengan Kriteria (TampilData.php). <?php include "CekPwd.inc"; session_start(); if (! password_valid($sesi_pemakai,$sesi_password)) { $alamat = "http://localhost/AplikasiSesi/Index.php"; $msg = "Login Anda Salah, Silahkan Login Kembali...!"; header("location: $alamat?msg=$msg"); exit(); } ?> <html> <head> <title>Menampilkan Data Mahasiswa dengan Kriteria</title> </head> <body bgcolor="aqua"> <?php $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasil1= mysql_query ("select datapribadi.NIM,datapribadi.Nama,datapribadi.Kota,datapribadi.Telepon, dataortu.NamaOrtu,dataortu.pekerjaan from datapribadi, dataortu where datapribadi.NIM=dataortu.NIM and datapribadi.Nama like '%$kritnama%' and datapribadi.Kota like '%$kritkota%'",$konek); if (! $hasil1) print ("Permintaan gagal"); ?> <?php print ("<center>"); print ("<font size=4><b>Data Lengkap Mahasiswa dan Orang Tua</b><br><br>"); print ("<table border=1 bordercolor=gray width=100% cellspacing=0>"); print ("<tr>"); 105 print ("<td width=5%>"); print ("<center>"); print ("<font size=2><b>No </b>"); print ("</td>"); print ("<td width=15%>"); print ("<center>"); print ("<font size=2><b>N I M </b>"); print ("</td>"); print ("<td width=20%>"); print ("<center>"); print ("<font size=2><b>Nama Mahasiswa</b>"); print ("</td>"); print ("<td width=20%>"); print ("<center>"); print ("<font size=2><b>Nama Orang Tua</b>"); print ("</td>"); print ("<td width=7%>"); print ("<center>"); print ("<font size=2><b>Kota </b>"); print ("</td>"); print ("<td width=12%>"); print ("<center>"); print ("<font size=2><b>Telepon </b>"); print ("</td>"); print ("<td width=15%>"); print ("<center>"); print ("<font size=2><b>Pekerjaan </b>"); print ("</td>"); print ("</tr>"); $no=0; While ($datanya = mysql_fetch_row ($hasil1)) { $no++; print ("<tr>"); print ("<td width=5%>"); print ("<center>"); print ("<font size=2>$no "); print ("</td>"); print ("<td width=15%>"); print ("<left>"); print ("<font size=2>$datanya[0]"); print ("</td>"); print ("<td width=20%>"); print ("<left>"); print ("<font size=2>$datanya[1]"); print ("</td>"); print ("<td width=20%>"); print ("<left>"); print ("<font size=2>$datanya[4]"); print ("</td>"); 106 print ("<td width=12%>"); print ("<left>"); print ("<font size=2>$datanya[2]"); print ("</td>"); print ("<td width=10%>"); print ("<left>"); print ("<font size=2>$datanya[3]"); print ("</td>"); print ("<td width=15%>"); print ("<left"); print ("<font size=2>$datanya[5]"); print ("</td>"); print ("</tr>"); } print ("</table>"); ?> </center> </body> </html> Gambar 5.10 Tampilan program tampilkriteria.php V.12 Halaman untuk Menampilkan Data dari Kedua Tabel (TampilData.php). <?php include "CekPwd.inc"; session_start(); if (! password_valid($sesi_pemakai,$sesi_password)) { $alamat = "http://localhost/AplikasiSesi/Index.php"; $msg = "Login Anda Salah, Silahkan Login Kembali...!"; header("location: $alamat?msg=$msg"); exit(); } ?> <html> <head> <title>Menampilkan Data Mahasiswa</title> </head> <body bgcolor="aqua"> <?php 107 $pemakai = "Adiexs"; $password = "Kucing"; $konek = mysql_connect("localhost",$pemakai,$password); if (! $konek) print("Database MySQL tidak dapat Terkoneksi<br>"); $pilihDB = mysql_select_db(DataMahasiswa,$konek); $hasil1= mysql_query ("select datapribadi.NIM,datapribadi.Nama,datapribadi.Kota,datapribadi.Telepon, dataortu.NamaOrtu,dataortu.pekerjaan from datapribadi, dataortu where datapribadi.NIM=dataortu.NIM order by datapribadi.Nama",$konek); if (! $hasil1) print ("Permintaan gagal"); ?> <?php print ("<center>"); print ("<font size=4><b>Data Lengkap Mahasiswa dan Orang Tua</b><br><br>"); print ("<table border=1 bordercolor=gray width=100% cellspacing=0>"); print ("<tr>"); print ("<td width=5%>"); print ("<center>"); print ("<font size=2><b>No </b>"); print ("</td>"); print ("<td width=15%>"); print ("<center>"); print ("<font size=2><b>N I M </b>"); print ("</td>"); print ("<td width=20%>"); print ("<center>"); print ("<font size=2><b>Nama Mahasiswa</b>"); print ("</td>"); print ("<td width=20%>"); print ("<center>"); print ("<font size=2><b>Nama Orang Tua</b>"); print ("</td>"); print ("<td width=7%>"); print ("<center>"); print ("<font size=2><b>Kota </b>"); print ("</td>"); print ("<td width=12%>"); print ("<center>"); print ("<font size=2><b>Telepon </b>"); print ("</td>"); print ("<td width=15%>"); print ("<center>"); print ("<font size=2><b>Pekerjaan </b>"); print ("</td>"); print ("</tr>"); $no=0; While ($datanya = mysql_fetch_row ($hasil1)) { $no++; print ("<tr>"); print ("<td width=5%>"); print ("<center>"); print ("<font size=2>$no "); print ("</td>"); print ("<td width=15%>"); print ("<left>"); print ("<font size=2>$datanya[0]"); print ("</td>"); print ("<td width=20%>"); 108 print ("<left>"); print ("<font size=2>$datanya[1]"); print ("</td>"); print ("<td width=20%>"); print ("<left>"); print ("<font size=2>$datanya[4]"); print ("</td>"); print ("<td width=12%>"); print ("<left>"); print ("<font size=2>$datanya[2]"); print ("</td>"); print ("<td width=10%>"); print ("<left>"); print ("<font size=2>$datanya[3]"); print ("</td>"); print ("<td width=15%>"); print ("<left"); print ("<font size=2>$datanya[5]"); print ("</td>"); print ("</tr>"); } print ("</table>"); ?> </center> </body> </html> Gambar 5.11 Tampilan program tampildata.php Tugas : Membuat aplikasi dan dipresentasikan di kelas, dengan ketentuan sebagai berikut : 1. Minimal terdiri dari 3 tabel dan ada relasinya. 2. Terdapat proses input, edit, hapus dan tampil. 3. Adanya proses sesi (bisa dengan Cookie ataupun Session). 4. Aplikasinya selain tentang data mahasiswa.