bab iii dasar-dasar modified)

23
 3. LAPORAN KEGIATAN KERJA PRAKTEK 3.1 Dasar T eori Pada sub bab ini akan dibahas mengenai teori-teori penunjang yang digunakan oleh penulis dalam pembuatan Kerja Praktek. 3.1.1 Meto de Algor itma Genetik a Al gor itma Ge net ika atau Gen etic Alg orit hm (GA ) mer upak an algoritma yang terinspirasi oleh teori evolusi dari Charles Darwin. Dengan kata lain pencarian solusi suatu masalah dengan algoritma genetika akan terus  berevolusi. Algoritma genetika memberik an solusi dari masalah yang tidak memiliki suatu metode penca ria n sol usi yan g te pat , ata upu n bil a ada, mungkin membutuhkan waktu yang lama dalam mencari solusinya. Pencarian solusi dengan algoritma genetika ini diminati oleh karena tidak membutuhkan wa kt u ya ng la ma . Se la in it u hasi l da ri al gori tma ge neti ka ini cuku p 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 mengala mi proses evolusi secara terus menerus dan aka n me nghasilkan suatu solusi yang le bih bai k. Se tia p sol usi ya ng ter be ntuk me wa kili sat u kromosom dan satu indivi du te rdi ri dar i sat u kromosom. Kumpula n dari indi vidu -individu ini akan membentu k suat u  populasi, dari populasi ini akan lahir populas i-populasi baru sampai dengan sejumlah generasi yang ditentukan. Gen dalam kasus ini adalah urutan praktikum yang telah dikodekan te rl ebih dahulu se hi ngga membentuk suat u kromosom. Kr omosom merupakan kumpulan dari gen-gen yang ada, yang berarti bahwa panjang kr omosom akan se suai de ngan juml ah pr akti kum ya ng di butu hkan. Universitas Kristen Petra 7

Upload: devry-putrapandawa-titisanearjuno

Post on 19-Jul-2015

32 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bab III Dasar-Dasar Modified)

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

Page 2: Bab III Dasar-Dasar Modified)

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

Page 3: Bab III Dasar-Dasar Modified)

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

Page 4: Bab III Dasar-Dasar Modified)

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

Page 5: Bab III Dasar-Dasar Modified)

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

Page 6: Bab III Dasar-Dasar Modified)

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

Page 7: Bab III Dasar-Dasar Modified)

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

Page 8: Bab III Dasar-Dasar Modified)

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

Page 9: Bab III Dasar-Dasar Modified)

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

Page 10: Bab III Dasar-Dasar Modified)

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

Page 11: Bab III Dasar-Dasar Modified)

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

Page 12: Bab III Dasar-Dasar Modified)

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

Page 13: Bab III Dasar-Dasar Modified)

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

Page 14: Bab III Dasar-Dasar Modified)

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

Page 15: Bab III Dasar-Dasar Modified)

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

Page 16: Bab III Dasar-Dasar Modified)

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

Page 17: Bab III Dasar-Dasar Modified)

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

Page 18: Bab III Dasar-Dasar Modified)

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

Page 19: Bab III Dasar-Dasar Modified)

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

Page 20: Bab III Dasar-Dasar Modified)

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

Page 21: Bab III Dasar-Dasar Modified)

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

Page 22: Bab III Dasar-Dasar Modified)

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

Page 23: Bab III Dasar-Dasar Modified)

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