5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 1/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 Petra7
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 2/23
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. Kode Kelas Praktikum
1 001 AP1(A)
2 002 AP1(B)
3 003 AP1(C)
4 004 AP1(D)
5 005 AP2(A)
6 006 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
8
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 3/23
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
9
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 4/23
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
10
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 5/23
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:
Tidak boleh bentrok dengan mata kuliah yang
sama.
Universitas Kristen Petra
11
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 6/23
Tidak boleh bentrok dengan responsi mata
kuliah yang sama.
Tidak boleh bentrok dengan mata kuliah
semester yang sama.
Jumlah praktikum pada setiap laboratorium
setiap harinya harus memenuhi jumlah yang telah
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:
Tabel 3.2. Tabel Fitness Cost
Aturan Fitness cost
Mata kuliah yang sama bentrok Fitness cost – (jumlah mata
kuliah bentrok *100)Responsi mata kuliah yang sama
bentrok
Fitness cost – (jumlah
responsi bentrok *100)
Mata kuliah semester sama bentrok Fitness cost – (jumlah
matakuliah semester *10)
Praktikum tidak diadakan di tempat
laboratorium yang menanganinya.
Fitness cost – (jumlah
praktikum tidak sesuai *10)
Praktikum diadakan di laboratorium
yang sesuai
Fitness cost + (jumlah
praktikum yang sesuai *20)
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
Universitas Kristen Petra
12
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 7/23
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
13
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 8/23
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
14
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 9/23
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 jenishubungan, yaitu:
a. Obligatory: bila semua anggota dari suatu entity harus berpartisipasi
atau memiliki hubungan dengan entity yang lain.
b. Non-obligatory: bila tidak semua anggota dari suatu entity harus
berpartisipasi atau memiliki hubungan dengan entity yang lain.
Dalam menggambar ERD, ada beberapa komponen yang perludiperhatikan, 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
15
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 10/23
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. RelasiRelasi 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.
Memiliki
Entitas 1 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
16
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 11/23
terbagi ke dalam 2 jenis hubungan, yaitu: obligatory dan non-
obligatory. Simbol relasi One-to-Many dapat dilihat pada Gambar 3.5.
Memiliki
Entitas 1 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 non-obligatory. Simbol relasi Many-to-Many dapat dilihat pada Gambar
3.6.
Memiliki
Entitas 1 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
17
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 12/23
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.
oFormat Teks
Universitas Kristen Petra
18
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 13/23
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 .
oTabel
Universitas Kristen Petra
19
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 14/23
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 : Data dari sebuah form akan dikirim melalui
alamat URL.
POS T
: Data dari sebuah form akan dikirim melaluiheader dari file HTML tersebut (tidak terlihat).
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>
Universitas Kristen Petra
20
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 15/23
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
yang sama.hidden : tidak ada field yang ditampilkan pada user tetapi
isi field dikirim bersama form.image : sebuah field image yang dapat di-klik yang dapat
menyebabkan form terkirim dengan segera.text : digunakan untuk field text-entry satu baris.
password : sama dengan atribut text , kecuali bahwa teks
tidak ditampilkan saat pemakai memasukkannya.radio : 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
yang eksplisit.reset : sebuah tombol yang apabila di-klik me-reset
field-field form pada value awalnya yang
spesifik. submit : sebuah tombol yang bila di-klik akan
mengirimkan form elemen value digunakan
Universitas Kristen Petra
21
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 16/23
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 inimembuat 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
22
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 17/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.
1PHP 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 Reader’s Choice Award selama tiga tahun. MySQL sekarang tersedia
dibawah izin open source, tetapi juga ada izin untuk penggunaan secara
komersial. Keunggulan dari MySQL adalah:
oBersifat open source.
oSistem yang digunakan oleh perangkat lunak ini tidak memberatkan
kerja dari server , karena dapat bekerja di background .
oMempunyai koneksi yang stabil dan kecepatan yang tinggi.
1 Dokumentasi PHP, http://www.php.net/docs.php
Universitas Kristen Petra
23
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 18/23
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.
oPerintah 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 column1 [,column2,etc]
FROM tablename
[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 Arti
= Sama dengan
> Lebih besar dari
< Lebih kecil dari
>= Lebih besar sama dengan
<= Lebih kecil sama dengan
<> Tidak sama dengan
LIKE (dijelaskan di bawah ini)
Operator LIKE dapat menyeleksi data sesuai dengan string
yang diinginkan. Simbol “%” digunakan untuk mencocokkan karakter
Universitas Kristen Petra
24
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 19/23
yang muncul sebelum atau sesudah karakter yang diinginkan.
Contohnya adalah sebagai berikut:
SELECT nama_depan, kota
FROM karyawan
WHERE nama_depan LIKE 'Sam%';
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 Kegunaan
SUM( ) Untuk menghitung jumlah nilai pada suatu kolom AVG( ) Untuk menghitung nilai rata-rata pada suatu kolom
MAX( ) Untuk mencari nilai maksimum pada suatu kolom
MIN( ) Untuk mencari nilai minimal pada suatu kolom
COUNT( ) 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.
oKlausa 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
25
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 20/23
Query ini akan mengambil dan menampilkan gaji maksimum
dari karyawan dari tiap departemen dan dikelompokkan berdasarkan
nama departemennya.
oKlausa 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.
oKlausa 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
26
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 21/23
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.
oPerintah 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
27
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 22/23
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) VALUES (‘Sam’, ‘Ali’, 21,
‘Surabaya’);
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”.
oPerintah 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’;
oPerintah 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
28
5/17/2018 Bab III Dasar-Dasar Modified) - slidepdf.com
http://slidepdf.com/reader/full/bab-iii-dasar-dasar-modified 23/23
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 tempatmenyimpan 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
29
Top Related