Anda di halaman 1dari 23

3.

LAPORAN KEGIATAN KERJA PRAKTEK


3.1 Dasar Teori Pada sub bab ini akan dibahas mengenai teori-teori penunjang yang digunakan oleh penulis dalam pembuatan Kerja Praktek. 3.1.1 Metode Algoritma Genetika Algoritma Genetika atau Genetic Algorithm (GA) merupakan algoritma yang terinspirasi oleh teori evolusi dari Charles Darwin. Dengan kata lain pencarian solusi suatu masalah dengan algoritma genetika akan terus berevolusi. Algoritma genetika memberikan solusi dari masalah yang tidak memiliki suatu metode pencarian solusi yang tepat, ataupun bila ada, mungkin membutuhkan waktu yang lama dalam mencari solusinya. Pencarian solusi dengan algoritma genetika ini diminati oleh karena tidak membutuhkan waktu yang lama. Selain itu hasil dari algoritma genetika ini cukup memuaskan dan dapat diaplikasikan pada semua bidang. Inti dari algoritma genetika adalah secara bertahap akan mencari solusi terbaik (survival of the fittest) dari begitu banyak solusi yang ada. Pertama-tama algoritma genetika bekerja dengan membuat beberapa solusi secara acak, tentu saja dari tahapan pertama ini solusinya kemungkinan masih buruk. Solusi tersebut akan mengalami proses evolusi secara terus menerus dan akan menghasilkan suatu solusi yang lebih baik. Setiap solusi yang terbentuk mewakili satu kromosom dan satu individu terdiri dari satu kromosom. Kumpulan dari individu-individu ini akan membentuk suatu populasi, dari populasi ini akan lahir populasi-populasi baru sampai dengan sejumlah generasi yang ditentukan. Gen dalam kasus ini adalah urutan praktikum yang telah dikodekan terlebih dahulu sehingga membentuk suatu kromosom. Kromosom merupakan kumpulan dari gen-gen yang ada, yang berarti bahwa panjang kromosom akan sesuai dengan jumlah praktikum yang dibutuhkan.

Universitas Kristen Petra

Sedangkan individu merupakan kumpulan kromosom, dalam kasus ini satu individu memiliki satu kromosom. Sedangkan populasi, merupakan kumpulan individu yang telah ditentukan jumlahnya oleh user. Dalam eksekusinya, algoritma genetika akan dilakukan untuk tiap kelompok atau kategori praktikum. Tabel 3.1. Tabel Klasifikasi Kode Praktikum dan Kelas Praktikum No. 1 2 3 4 5 6 Kode 001 002 003 004 005 006 Kelas Praktikum AP1(A) AP1(B) AP1(C) AP1(D) AP2(A) AP2(B)

Sebelum memasuki tahapan-tahapan algoritma genetika, terlebih dahulu akan diawali dengan perencanaan variabel-variabel yang dibutuhkan. Variabel-Variabel Algoritma Genetika Sebelum menjalankan proses algoritma genetika, tentu saja diperlukan beberapa nilai dari variabel-variabel yang akan dibutuhkan dalam pemrosesan algoritma genetika tersebut. Pemberian inisialisasi pada variabel-variabel tersebut nantinya akan mempengaruhi hasil algoritma genetika yang didapat. Variabel-variabel yang dibutuhkan itu adalah: o Jumlah Individu per Populasi (JI) Variabel ini selanjutnya akan disebut JI. Variabel JI ini memiliki pengaruh yang kuat didalam penggunaan algoritma genetika. Semakin besar JI, semakin besar variasi individu yang dihasilkan, maka semakin besar pula kesempatan untuk mendapatkan solusi terbaik dan semakin sedikit jumlah generasi yang diperlukan untuk mendapatkan solusi terbaik.

Universitas Kristen Petra

o Jumlah Generasi (JG) Variabel ini selanjutnya akan disebut JG. Variabel ini menentukan sampai berapa kali populasi awal akan berubah, jadi juga memiliki peran yang tak kalah penting dalam menampilkan jumlah variasi individu, yang akan berpengaruh terhadap hasil algoritma genetika. Untuk JG ini dibatasi maksimal 100 generasi untuk mendukung memori yang terdapat dalam komputer yang digunakan dalam melakukan algoritma genetika ini. Jadi hal itu berhubungan erat dengan keterbatasan memori yang terdapat dalam sebuah komputer. o Tingkat Imigrasi (TI) Variabel ini selanjutnya akan disebut TI. TI merupakan angka persentase yang akan mempengaruhi seberapa sering terjadinya imigrasi atau munculnya individu baru dalam suatu populasi. Variabel ini juga merupakan variabel yang berbentuk peluang. o Tingkat Mutasi (TM) Variabel ini selanjutnya akan disebut TM. Variabel yang berupa angka persentase ini akan mempengaruhi cukup banyak terjadinya mutasi dalam suatu populasi. Variabel TM merupakan salah satu variabel yang berbentuk peluang, artinya kemungkinan terjadinya mutasi dilihat tiap individunya. Misalkan JI 10, angka TM diisikan 0,5, bukan berarti akan ada 5 mutasi (0.5 x 10), tetapi peluang terjadinya mutasi untuk masing-masing individu adalah 0.5. Jadi dalam contoh diatas bisa saja terjadi 0 mutasi sampai 10 mutasi.

Universitas Kristen Petra

10

o Tingkat Persilangan (cross over) (TP) Variabel ini selanjutnya akan disebut TP. Selain TM, TP juga merupakan variabel yang berbentuk peluang. Jadi TP adalah peluang untuk terjadi persilangan antara sepasang individu. Dalam kenyataannya persilangan akan selalu terjadi, hanya saja jumlah gen dan gen-gen yang disilangkan akan berbeda-beda. Oleh karena itu, biasanya TP diisi dengan nilai 1 atau 100%, yang berarti akan selalu terjadi persilangan. o Persentase Persilangan (PP) Variabel ini selanjutnya akan disebut PP. PP merupakan angka persentase yang akan mempengaruhi berapa gen yang akan disilangkan. Misalkan dalam satu individu, ada 6 gen dan PP=0.5. Maka jika terjadi persilangan, gen-gen yang akan disilangkan sejumlah 3 buah gen. Pembuatan Populasi Awal Populasi merupakan kumpulan beberapa individu. Semua populasi dalam algoritma genetika ini berasal dari satu populasi yaitu populasi awal. Solusi atau kromosom terbaik dari populasi awal ini akan dipertahankan, dan akan mengalami proses evolusi untuk mendapatkan kemungkinan solusi yang lebih baik. Pembuatan populasi awal ini dilakukan melalui proses pemilihan secara acak dari seluruh solusi yang ada. Pemilihan acak ini menyebabkan populasi awal dari algoritma genetika tidak akan sama dalam setiap kali percobaan, meskipun semua nilai variabel yang digunakan sama.

Universitas Kristen Petra

11

Dalam hal ini populasi adalah sebuah string yang berisi gen yang berjumlah sesuai dengan jumlah praktikum. Sebagai contoh apabila terdapat suatu gen yang panjangnya 3 karakter, maka panjang string adalah 3 x n, dengan n merupakan jumlah praktikum yang akan di-generate. Semua kelas praktikum yang akan disimpan pada palet-palet, terlebih dahulu akan disimpan pada sebuah array. Array tersebut berisi informasi urutan kelas tersebut pada array, dan posisinya ketika akan dimasukkan ke dalam palet. Mencari Fitness Cost Untuk mengetahui baik tidaknya solusi yang ada pada suatu individu, setiap individu pada populasi harus memiliki nilai pembandingnya (fitness cost). Melalui nilai pembanding inilah akan didapatkan solusi terbaik dengan cara pengurutan nilai pembanding dari individu-individu dalam populasi. Solusi terbaik ini akan dipertahankan, sementara solusi lain diubah-ubah untuk mendapatkan solusi yang lain lagi, melalui tahap cross over dan mutasi (mutation). Sebelum melakukan penempatan kelas praktikum dilakukan dua buah pengecekan terlebih dahulu, yaitu pencarian hari dan jam yang masih kosong dan pengecekan prioritas yaitu pada hari dan jam mana yang paling tinggi prioritasnya. Pencarian hari dan jam yang tepat akan disesuaikan dengan hari dan jam laboratorium yang mengadakan praktikum tersebut tentunya dengan memperhatikan prioritas yang tertinggi pada laboratorium tersebut. Setelah seluruh praktikum yang ada diletakan pada hari dan jam serta laboratorium yang masih kosong (terutama laboratorium yang mengadakannya), maka aplikasi akan mengecek beberapa aturan yang harus dipenuhi yaitu: sama. Tidak boleh bentrok dengan mata kuliah yang

Universitas Kristen Petra

12

Tidak boleh bentrok dengan responsi mata Tidak boleh bentrok dengan mata kuliah Jumlah praktikum pada setiap laboratorium

kuliah yang sama. semester yang sama. ditentukan. Praktikum diutamakan untuk dapat diadakan di laboratorium yang mengadakannya. Apabila terdapat aturan-aturan yang dilanggar maka nilai fitness cost akan dikurangi sehingga hasilnya akan menjadi lebih jelek. Aturan tentang fitness cost akan dijelaskan berikut: setiap harinya harus memenuhi jumlah yang telah

Tabel 3.2. Tabel Fitness Cost Aturan Mata kuliah yang sama bentrok Fitness cost Fitness cost (jumlah mata

kuliah bentrok *100) Responsi mata kuliah yang sama Fitness cost (jumlah bentrok Mata kuliah semester sama bentrok responsi bentrok *100) Fitness cost (jumlah

matakuliah semester *10) Praktikum tidak diadakan di tempat Fitness cost (jumlah laboratorium yang menanganinya. praktikum tidak sesuai *10) Praktikum diadakan di laboratorium Fitness cost + (jumlah yang sesuai Pengurutan Data (Sorting) Tahap selanjutnya adalah tahapan pengurutan individu dalam populasi nilai pembanding (fitness cost) yang telah didapat dari bagian sebelumnya. Tujuan utama dari pengurutan kromosom ini adalah untuk mencari individu terbaik pada suatu populasi, yang bisa dikatakan sebagai solusi terbaik sementara. Solusi yang terbaik dari praktikum yang sesuai *20)

Universitas Kristen Petra

13

kumpulan solusi terbaik sementara yang ada merupakan solusi akhir dari proses algoritma genetika. Tahap Cross Over Tahapan ini akan menyilangkan dua individu yang ada dalam suatu populasi, untuk mendapatkan dua individu baru. Setelah tahap, maka akan didapat populasi baru yang jumlahnya 2 kali lipat dari populasi lama. Dalam kasus penyusunan jadwal praktikum ini, yang menjadi individu adalah satu urutan penyusunan jadwal praktikum, dari seluruh kelas praktikum yang dibuka dan siap untuk dimasukkan. Individu 1 = 001 002 003 004 Individu 2 = 005 006 007 008 Dari populasi yang ada, diambil individu sepasang demi sepasang untuk disilangkan (cross over). Persilangan pada kasus ini dilakukan dengan memindahkan sebagian urutan pada satu individu dan menukarkannya dengan individu yang lain. Ada 2 macam cara yaitu dengan Two Points dan Uniform. Pada Two Points Cross Over, dipilih secara acak 2 titik yang akan disilangkan. Individu 1 = 001 | 002 003 | 004 Individu 2 = 005 | 006 007 | 008 Sedangkan pada Uniform Cross Over ada penentuan persentase gen yang akan disilangkan misalkan 50%, angka ini nantinya perlu masukkan dari user. Individu 1 = 001 002 | 003 004 Individu 2 = 005 006 | 007 008 Setelah disilangkan, akan dilakukan pengecekan terhadap masing-masing individu, apakah terjadi pengulangan. Kedua individu yang telah disilangkan ini diperbaiki, sehingga tidak ada pengulangan lagi. Garis besarnya adalah setiap angka yang diulang ditukar dengan pasangannya, yaitu angka yang diulang di kromosom pasangannya. Hasil untuk Two Points Cross Over:

Universitas Kristen Petra

14

Individu 1 = 001 006 007 004 Individu 2 = 005 002 003 008 Hasil untuk Uniform Cross Over: Individu 1 =001 002 007 008 Individu 2 = 005 006 003 004 Populasi baru yang dihasilkan ini akan dibandingkan dengan populasi terbaik yang telah ada dan bila populasi terbaru lebih baik nilai fitness cost-nya maka populasi ini akan mengantikan populasi terbaik yang pernah ada.

Tahap Mutasi (Mutation) Cara lain untuk mendapatkan individu yang baru yaitu dengan mutasi. Probabilitas terjadinya mutasi gen pada suatu kromosom sangatlah kecil, karena itu dalam penerapannya pada algoritma genetika, probabilitasnya seringkali dibuat kecil, lebih kecil dari (mutation rate). Berbeda dengan tahap cross over, dimana satu individu perlu individu yang lain, pada tahap ini tidak membutuhkan individu yang lain untuk bermutasi. Dalam kasus ini dimungkinkan terjadi 2 macam mutasi dimana probabilitas terjadinya mutasi akan ditentukan user. Mutasi pertama yang mungkin terjadi adalah perubahan urutan kelas praktikum. Hal ini dilakukan secara acak, diambil 2 angka (nomor kelas praktikum) dari satu individu, kemudian ditukar. Contoh: Asal: 001 002 003 004 Hasil: 003 002 001 004

Perulangan Tahap Satu populasi baru telah terbentuk dengan selesainya mutasi. Populasi baru tersebut akan menjadi populasi awal bagi generasi

Universitas Kristen Petra

15

selanjutnya dan algoritma genetika akan mengulang tahap 2 sampai 4 secara terus menerus sampai sejumlah generasi yang telah ditentukan.

3.1.2 Entity Relationship Diagram (ERD) Entity Relationship Diagram (ERD) adalah diagram yang dipakai untuk mendokumentasikan data dengan mengidentifikasikan jenis entitas dan hubungannya. ERD merupakan peralatan pembuatan model data yang paling fleksibel dan dapat diadaptasi untuk berbagai pendekatan yang mungkin diikuti perusahaan dalam pengembangan sistem. ERD ini menggambarkan relasi atau hubungan antar entitas yang ada, dimana terdapat 2 jenis hubungan, yaitu: a. b. Obligatory: bila semua anggota dari suatu entity harus berpartisipasi Non-obligatory: bila tidak semua anggota dari suatu entity harus atau memiliki hubungan dengan entity yang lain. berpartisipasi atau memiliki hubungan dengan entity yang lain. Dalam menggambar ERD, ada beberapa komponen yang perlu diperhatikan, yaitu: a. Entity Entity didefinisikan sebagai sesuatu yang mudah diidentifikasikan. Sebuah entity dapat berupa obyek, tempat, orang, konsep atau aktivitas. Pada teknik penggambaran, entity digambarkan dengan kotak segiempat. Setiap kotak diberi label berupa kata benda. Simbol entity dapat dilihat pada Gambar 3.1.
Entity

Gambar 3.1. Entity b. Atribut

Identifikasi dan deskripsi dari entity dijelaskan oleh atribut-atributnya (karakteristik entity). Sebuah atribut didefinisikan sebagai penjelasan-

Universitas Kristen Petra

16

penjelasan dari entity yang membedakannya dengan entity yang lain. Selain itu, atribut juga merupakan sifat-sifat dari sebuah entity. Sebagai contoh, entity Proficiency mempunyai atribut IDProficiency, Name, dan atribut lainnya. Contoh atribut dapat dilihat pada Gambar 3.2.
Proficiency
IDProficiency Name Date Time

Gambar 3.2. Atribut c. Relasi Relasi adalah penghubung antara suatu entity dengan entity yang lain dan merupakan bagian yang sangat penting dalam mendesain database. Simbol relasi dapat dilihat pada Gambar 3.3.

Gambar 3.3. Relasi Ada tiga macam relasi, antara lain: a.One-to-One Pada bentuk relasi One-to-One, satu anggota entity memiliki hubungan dengan satu anggota entity pada kelas yang berbeda. Simbol relasi One-to-One dapat dilihat pada Gambar 3.4.
Entitas 1
Memiliki

Entitas 2

Gambar 3.4. Relasi One to One b.One-to-Many Pada bentuk relasi One-to-Many, satu anggota entity bisa memiliki hubungan dengan beberapa anggota entity pada kelas yang berbeda. Sama halnya dengan One-to-One, pada relasi yang satu ini juga

Universitas Kristen Petra

17

terbagi ke dalam 2 jenis hubungan, yaitu: obligatory dan nonobligatory. Simbol relasi One-to-Many dapat dilihat pada Gambar 3.5.
Entitas 1
Memiliki

Entitas 2

Gambar 3.5. Relasi One to Many c.Many-to-Many Pada bentuk relasi Many-to-Many, beberapa anggota entity dapat memiliki hubungan dengan beberapa anggota entity lainnya. Dalam relasi ini juga terdapat dua jenis hubungan, yaitu: obligatory dan nonobligatory. Simbol relasi Many-to-Many dapat dilihat pada Gambar 3.6.
Entitas 1
Memiliki

Entitas 2

Gambar 3.6. Relasi Many to Many

Sebagai contoh, hubungan antara dosen dengan mata kuliah yang diajarkannya. Maka bentuk diagram adalah sebagai berikut :

Gambar 3.7. Contoh ERD Pada gambar diatas, Dosen dan Mata Kuliah meerupakan entitas. Sedangkan Mengajar merupakan relasi antara Dosen dan Mata Kuliah. Dari contoh ini dapat terjadi beberapa relasi dengan kondisi-kondisi tertentu sebagai berikut :

Universitas Kristen Petra

18

1.

Seorang dosen hanya dapat mengajar satu mata kuliah dan satu mata

kuliah hanya dapat diajar oleh seorang dosen saja. Relasi dengan kondisi seperti ini dinamakan relasi One-to-One (1 : 1). 2. Seorang dosen dapat mengajar lebih dari satu mata kuliah dan satu mata kuliah hanya dapat diajar oleh seorang dosen saja. Relasi dengan kondisi seperti ini dinamakan relasi One-to-Many (1 : n). 3. Seorang dosen hanya dapat mengajar satu mata kuliah dan satu mata kuliah dapat diajar lebih dari satu orang dosen. Relasi dengan kondisi seperti ini dinamakan relasi Many-to-One (n : 1). 4. Seorang dosen dapat mengajar lebih dari satu mata kuliah dan satu mata kuliah dapat diajar lebih dari satu orang dosen saja. Relasi dengan kondisi seperti ini dinamakan relasi Many-to-Many (m : n).

3.1.3 Hyper Text Markup Language (HTML) HTML adalah standar bahasa yang digunakan untuk mengatur penampilan dari halaman web. HTML tersusun atas pasangan-pasangan tag yang mempunyai fungsi yang berbeda-beda. Ciri dari tag pada HTML adalah diawali dengan tanda kurang dari < dan diakhiri oleh tanda lebih dari > seperti <head>. Pada HTML ada 2 macam tag yaitu tag pembuka <> dan tag penutup </>. Sebuah halaman HTML dibagi menjadi 2 bagian yaitu header dan content yang masing-masing diwakili oleh pasangan tag <head></head> dan <body></body>. Header pada HTML berfungsi untuk menyampaikan judul yang diwakili oleh tag <title></title>. Content pada HTML berisi script yang mengatur tampilan suatu halaman HTML. o Format Teks

Universitas Kristen Petra

19

Tampilan dari teks pada suatu halaman HTML diatur oleh tag <font></font>. Berikut ini adalah elemen dari tag <font> yang biasa digunakan : color untuk mengatur warna face untuk mengatur font yang akan digunakan size untuk mengatur ukuran font style untuk mengatur penampilan font, seperti garis bawah, cetak tebal, cetak miring Elemen face dapat diatur hingga maksimum 3 macam font yang berbeda dengan ketentuan font pertama akan digunakan, kemudian apabila tidak tersedia maka akan dicoba menggunakan font kedua sampai font ketiga yang akhirnya akan diatur untuk menggunakan font default dari windows apabila semua font tidak tersedia. Elemen style tertentu dapat juga digantikan oleh pasangan tag tertentu seperti cetak tebal yang digantikan oleh <strong> </strong>, cetak miring yang digantikan oleh <em></em>, dan sebagainya.

o Link Link adalah suatu cara untuk mereferensikan sebuah tulisan atau gambar pada sebuah halaman HTML dengan halaman HTML yang lain. Link pada HTML ditandai oleh sebuah anchor atau tag <a></a> beserta elemen. Contoh penggunaan dari anchor sebagai link adalah sebagai berikut <a href=index.html>index</a>. Kata index yang diapit oleh tag adalah kata yang akan ditampilkan pada web browser.

o Tabel

Universitas Kristen Petra

20

Tabel dapat berfungsi untuk mengontrol tampilan dari sebuah HTML agar lebih rapi dan terstruktur. Tag yang pada umumnya digunakan untuk membuat tabel adalah sebagai berikut: Tag <table>, untuk memulai sebuah tabel. Tag <tr>, untuk membuat sebuah baris dalam tabel. Tag <td>, untuk membuat sebuah kolom dalam tabel. Tag-tag tersebut diatas harus dirangkaikan sedemikian rupa untuk membentuk sebuah tabel, jadi masing-masing tag tidak dapat berdiri sendiri. o Form Form adalah komponen dari HTML yang berfungsi untuk menampung variabel-variabel dari suatu halaman web yang nilainya diletakan pada suatu text field, radio button, dan komponen yang lain agar dapat dialihkan ke halaman HTML selanjutnya. Berikut ini adalah contoh dari form:
<form action=url method=get|post>

Elemen action berisi alamat HTML yang akan digunakan untuk melaksanakan form. Bila tidak ada alamat yang disebutkan, maka base URL dari dokumen yang sedang aktif yang digunakan. Elemen method menunjukkan bagaimana data form dikirim ke server. Get | Post dapat berupa salah satu value berikut: GET POS T o Input Input adalah suatu variabel untuk menetukan jenis input yang dilakukan pada halaman HTML, apakah berupa text field, text area atau media input lainnya. Berikut ini adalah contoh dari input :
<input type=type maxlength=length name=name size=size src=address value=value>

: Data dari sebuah form akan dikirim melalui alamat URL. : Data dari sebuah form akan dikirim melalui header dari file HTML tersebut (tidak terlihat).

Universitas Kristen Petra

21

Elemen maxlength menunjukkan berapa jumlah karakter maksimum yang dapat dimasukkan dalam sebuah kontrol yang bertipe text. Elemen name mendefinisikan nama dari input. Elemen size mendefinisikan ukuran dari kontrol (dalam karakter). Untuk kontrol tipe textarea, baik tinggi maupun lebar dapat disesuaikan dengan format: width, height. Elemen src digunakan untuk mendefinisikan alamat image yang akan digunakan, ketika elemen type bernilai image. Elemen type mendefinisikan tipe kontrol yang digunakan. Tipenya dapat berupa satu dari value berikut: checkbox : digunakan untuk atribut Boolean sederhana atau atribut-atribut yang dapat mengambil multiple value pada waktu yang sama, ditandai dengan beberapa check box field yang mempunyai nama hidden image text password radio : : : : : yang sama. tidak ada field yang ditampilkan pada user tetapi isi field dikirim bersama form. sebuah field image yang dapat di-klik yang dapat menyebabkan form terkirim dengan segera. digunakan untuk field text-entry satu baris. sama dengan atribut text, kecuali bahwa teks tidak ditampilkan saat pemakai memasukkannya. digunakan untuk menerima single value dari serangkaian alternatif. Setiap radio button field dalam satu grup harus diberi nama yang sama. Hanya radio button yang dipilih dalam grup menghasilkan nama pada data yang dikirim. Radio button memerlukan sebuah atribut value reset : yang eksplisit. sebuah tombol yang apabila di-klik me-reset field-field form pada value awalnya yang submit : spesifik. sebuah tombol yang bila di-klik akan mengirimkan form elemen value digunakan
Universitas Kristen Petra

22

untuk kontrol textual/numerical, menjelaskan default value dari kontrol. Untuk kontrol-kontrol Boolean, menjelaskan value yang akan kembali bila kontrol dinyalakan. 3.1.4 Hypertext Preprocessor (PHP) PHP merupakan bahasa pemrograman web-server-side, script yang membuat dokumen HTML secara on the fly, yaitu dokumen HTML yang dihasilkan hanya pada saat diakses oleh user. Sehingga suatu halaman HTML tidak lagi bersifat statis, namun menjadi bersifat dinamis. Sifat server-side ini membuat pengerjaan script tersebut dikerjakan di server sedangkan yang dikirim kepada browser adalah hasil proses dari script tersebut sudah berbentuk HTML. Karena PHP merupakan server-side scripting maka PHP dapat melakukan pengumpulan form data, men-generate dynamic page content atau mengirim dan menerima cookies, dan juga banyak fungsi yang lain. Untuk dapat menjalankan fungsi sebagai server-side scripting maka dibutuhkan PHP parser, webserver, dan webbrowser. Webbrowser perlu dijalankan dan digabungkan dengan instalasi PHP. Untuk mengakses PHP, dapat digunakan web browser yang dapat melihat hasil dari script PHP. Keunggulan dari PHP dengan sifat server-side adalah: Tidak diperlukan adanya kompatibilitas browser atau harus menggunakan browser tertentu, karena server yang mengerjakan script tersebut. Hasil yang dikirimkan kembali ke browser biasanya dalam bentuk format HTML, yang berisi teks ataupun gambar sehingga dapat dikenali oleh browser apapun. Dapat memanfaatkan sumber-sumber aplikasi yang dimiliki oleh server, contoh : hubungan ke dalam database. Script asli tidak dapat dilihat oleh browser sehingga keamanan lebih terjamin.

Universitas Kristen Petra

23

PHP adalah sebuah produk open source, sehingga source code PHP dapat digunakan, diubah. Keunggulan PHP selain sifatnya yang open source adalah multi platform selain dapat dijalankan pada platform Linux, PHP juga dapat dijalankan dengan menggunakan Apache, dengan IIS pada Window NT atau PWS pada Windows 98.
1

PHP dibuat pada tahun 1994 oleh Rasmus Lerdorf. Tetapi kemudian

dikembangkan oleh orang lain dan setelah melalui tiga kali karya penulisan akhirnya PHP menjadi bahasa pemrograman web seperti sekarang ini. Pada bulan Januari 2001 PHP sudah kurang lebih digunakan lebih dari 5 juta domain dan terus berkembang hingga saat ini. Jumlahnya hingga saat ini dapat dilihat pada http://www.php.net/usage.php. 3.1.5 MySQL MySQL adalah sebuah aplikasi Relational Database Management Server (RDBMS) yang sangat cepat dan kokoh. Dengan menggunakan MySQL Server maka data dapat diakses oleh banyak pemakai secara bersamaan sekaligus dapat membatasi akses para pemakai berdasarkan privilege (hak akses) yang diberikan. MySQL menggunakan bahasa SQL (Structured Query Language) yaitu bahasa standar yang digunakan untuk pemrograman database. MySQL dipublikasikan sejak 1996, tetapi sebenarnya dikembangkan sejak 1979. MySQL telah memenangkan penghargaan Linux Journal Readers Choice Award selama tiga tahun. MySQL sekarang tersedia dibawah izin open source, tetapi juga ada izin untuk penggunaan secara komersial. Keunggulan dari MySQL adalah: o Bersifat open source. o Sistem yang digunakan oleh perangkat lunak ini tidak memberatkan kerja dari server, karena dapat bekerja di background. o Mempunyai koneksi yang stabil dan kecepatan yang tinggi.

Dokumentasi PHP, http://www.php.net/docs.php Universitas Kristen Petra

24

3.1.6

Structured Query Language (SQL) Structured Query Language (SQL) adalah bahasa yang digunakan untuk berkomunikasi dengan database. Perintah-perintah SQL digunakan untuk melakukan pekerjaan-pekerjaan tertentu pada database seperti update data atau untuk mengambil data dari database. Pada subbab-subbab berikut ini akan dijelaskan mengenai perintah select, insert, update dan delete pada SQL. o Perintah Select Perintah select digunakan untuk mengambil dan menampilkan data dari database sesuai dengan syarat-syarat yang ditentukan. Berikut ini adalah format perintah select yang umum digunakan:
SELECT FROM column1 tablename [,column2,etc]

[WHERE condition]; keterangan: [] = optional

Column menunjukkan nama kolom dari tabel yang ingin diambil. Column dapat lebih dari satu atau menggunakan * untuk mengambil semua kolom. Tablename menunjukkan nama tabel yang ingin digunakan. Klausa where menyaring data berdasarkan kondisi yang dituliskan setelah kata where. Operator-operator yang digunakan dalam klausa where antara lain dapat dilihat pada tabel berikut: Tabel 3.3. Operator Untuk Perintah SQL
Lambang = > < >= <= <> LIKE Arti Sama dengan Lebih besar dari Lebih kecil dari Lebih besar sama dengan Lebih kecil sama dengan Tidak sama dengan (dijelaskan di bawah ini)

Operator LIKE dapat menyeleksi data sesuai dengan string yang diinginkan. Simbol % digunakan untuk mencocokkan karakter

Universitas Kristen Petra

25

yang muncul sebelum atau sesudah karakter yang diinginkan. Contohnya adalah sebagai berikut:
SELECT FROM nama_depan, kota karyawan LIKE 'Sam%';

WHERE nama_depan

Perintah SQL di atas memiliki output semua nama depan yang diawali dengan Sam. Simbol % dapat pula diletakkan di depan atau di belakang. Selain seperti yang dijabarkan di atas, perintah select juga memiliki format lain yang lebih lengkap yang mendukung fungsi agregasi, yaitu:
SELECT [ALL | DISTINCT] column1[,column2] FROM table1[,table2] [WHERE "conditions"] [GROUP BY "column-list"] [HAVING "conditions] [ORDER BY "column-list" [ASC | DESC] ]

Tabel 3.4. Fungsi Agregasi


Nama Fungsi SUM( ) AVG( ) MAX( ) MIN( ) COUNT( ) Kegunaan Untuk menghitung jumlah nilai pada suatu kolom Untuk menghitung nilai rata-rata pada suatu kolom Untuk mencari nilai maksimum pada suatu kolom Untuk mencari nilai minimal pada suatu kolom Untuk menghitung jumlah baris pada suatu kolom

Keyword ALL digunakan untuk mengambil semua data sedangkan DISTINCT digunakan untuk mengambil data yang unik dimana baris yang sama akan dijadikan satu baris saja. o Klausa Group By Klausa group by akan mengumpulkan baris data dari tabel sesuai dengan kolom yang dispesifikasikan dan memperkenankan adalah fungsi agregasi pada satu atau lebih kolom. Untuk lebih jelas dapat dilihat pada contoh berikut:
SELECT MAX(gaji), departemen FROM karyawan GROUP BY departemen;

Universitas Kristen Petra

26

Query ini akan mengambil dan menampilkan gaji maksimum dari karyawan dari tiap departemen dan dikelompokkan berdasarkan nama departemennya. o Klausa Having Klausa having dapat menspesifikasikan kondisi dari baris untuk tiap group, dengan kata lain tiap baris akan diambil berdasarkan kondisi yang dispesifikasikan. Jika menggunakan klausa having harus diikuti dengan klausa group by. Contoh penggunaan dari klausa having adalah sebagai berikut:
SELECT departemen, avg(gaji) FROM karyawan GROUP BY departemen HAVING avg(gaji) > 20000;

Pada query di atas jika pada query tersebut hanya menggunakan group by saja maka akan mengambil rata-rata gaji karyawan pada tiap departemen. Tetapi bila ditambahkan dengan klausa having maka dapat dispesifikasikan rata-rata gaji yang diambil adalah yang bernilai lebih dari 20000. o Klausa Order By Klausa order by merupakan klausa optional yang digunakan jika kita ingin menampilkan hasil dari query secara urut, baik urut secara ascending (ASC) maupun secara descending (DESC), sesuai dengan kolom yang dispesifikasikan pada order by. Contoh penggunaannya jika diinginkan hasil urut data karyawan berdasarkan umurnya secara ascending adalah sebagai berikut:
SELECT kode_karyawan, nama_depan, umur, gaji FROM karyawan WHERE departemen = Penjualan ORDER BY umur ASC;

Bila ingin mengurutkan berdasarkan dua atau lebih kolom, maka harus dipisahkan dengan tanda koma, seperti dijabarkan di bawah ini:
Universitas Kristen Petra

27

SELECT kode_karyawan, nama_depan, umur, gaji FROM karyawan WHERE departemen = Penjualan ORDER BY umur, gaji DESC;

Query di atas akan mengurutkan hasil query berdasarkan umur, baru kemudian mengurutkan berdasarkan gaji secara descending. o Join Table Dalam kenyataannya, query tidak hanya dari satu tabel saja, mungkin dua atau lebih. Untuk itu diperlukan join table untuk menggabungkan dua atau lebih tabel yang berelasi dalam suatu database relational. Dengan join table maka hanya dengan satu query yang menggunakan perintah select dapat menggabungkan data dari dua atau lebih tabel ke dalam satu hasil query. Antar dua tabel yang berelasi pasti terdapat satu kolom yang sama. Kolom inilah yang digunakan untuk menggabungkan dua tabel tersebut. Caranya adalah sebagai berikut:
SELECT konsumen.nama_depan, penjualan.no_faktur FROM konsumen, penjualan WHERE konsumen.kode_konsumen=penjualan.kode_konsumen;

Join table di atas merupakan inner join dimana akan menghasilkan semua nama depan dari konsumen (yang diambil dari tabel konsumen) dan nomor faktur penjualan (yang diambil dari tabel penjualan) dari semua baris dimana kode konsumen di tabel konsumen sama dengan kode konsumen di tabel penjualan. o Perintah Insert Perintah insert digunakan untuk memasukkan atau menambah baris data ke dalam sebuah tabel. Format penulisan perintah insert adalah sebagai berikut:
INSERT INTO tablename (first_column, , last_column)

Universitas Kristen Petra

28

VALUES (first_value, , last value);

Parameter setelah tablename adalah daftar kolom-kolom yang dipisahkan dengan koma, diikuti dengan kata values lalu diikuti lagi dengan daftar nilai yang urutannya sesuai dengan daftar kolom sebelum kata values. Untuk nilai yang bernilai string harus diapit dengan tanda petik satu sedangkan untuk yang bernilai integer tidak. Contohnya adalah sebagai berikut:
INSERT INTO karyawan (nama_depan, nama_belakang, umur, kota) Surabaya); VALUES (Sam, Ali, 21,

Query di atas akan menambahkan baris baru pada tabel karyawan dengan field nama_depan bernilai Sam, field nama_belakang bernilai Ali, field umur bernilai 21 dan field kota bernilai Surabaya. o Perintah Update Perintah update digunakan untuk mengubah data yang sudah ada berdasarkan kondisi tertentu yang dijabarkan oleh keyword where. Format perintah lengkapnya adalah sebagai berikut:
UPDATE tablename SET columnname =newvalue[,nextcolumn = newvalue2..] WHERE columnname <OPERATOR> value [and|or column" <OPERATOR> "value"]; keterangan : [] = optional

Contoh penggunaan :
UPDATE karyawan SET umur = 15 WHERE nama_depan = Sam;

o Perintah Delete Perintah delete digunakan untuk menghapus baris dari suatu tabel. Formatnya adalah sebagai berikut:
DELETE FROM tablename WHERE columnname <OPERATOR> value [and|or column <operator> value] keterangan: [] = optional

Universitas Kristen Petra

29

Contoh penggunaannya adalah seperti di bawah ini:


DELETE FROM karyawan WHERE nama_depan = Sam;

Contoh di atas akan menghapus baris dari tabel karyawan yang field nama_depan-nya bernilai Ali. Untuk menghapus seluruh baris dari suatu tabel, kosongkan klausa where. 3.1.7 Koneksi PHP dan MySQL Untuk menghubungkan bahasa pemrograman PHP dengan MySQL dibutuhkan beberapa perintah-perintah khusus, yang terdiri dari: Pembuatan koneksi antara server dari MySQL dengan web server tempat menyimpan halaman web. Dengan perintah :
<? $conn = mysql_connect(nama server MySQL,login,password); ?>

$conn adalah variabel bebas yang digunakan untuk menyimpan koneksi antara PHP dan MySQL. Setelah terbentuk koneksi maka selanjutnya dilakukan pemilihan database yang akan digunakan dengan perintah :
<? $conn = mysql_select_db(nama database); ?>

Barulah kemudian dapat dilakukan perintah-perintah SQL yang lain seperti select, update, delete, insert, dan perintah-perintah lainnya.
<? $result = mysql_query(perintah query,$conn); ?>

$result adalah variabel bebas yang digunakan untuk menyimpan hasil dari query. Untuk select query dilakukan proses pengambilan data dengan perintah:
<? $row = mysql_fetch_row($result); ?>

Setelah selesai melakukan manipulasi data maka koneksi PHP dan MySQL ditutup dengan menggunakan perintah :
<? mysql_close($conn); ?>

Universitas Kristen Petra