Penerapan Algoritma Genetika dan Jaringa (1)

SKRIPSI PENERAPAN ALGORITMA GENETIKA DAN JARINGAN SYARAF TIRUAN DALAM PENJADWALAN MATA KULIAH DI FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA IMPLEMENTATION OF GENETIC ALGORITHM AND ARTIFICIAL NEURAL NETWORK IN LECTURE SCHEDULING IN FACULTY OF MATHEMATICS AND NATURAL SCIENCE UNIVERSITAS GADJAH MADA

EKO BUDI PRASETYO 12/336144/PA/15079

PROGRAM STUDI ILMU KOMPUTER JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA YOGYAKARTA

SKRIPSI PENERAPAN ALGORITMA GENETIKA DAN JARINGAN SYARAF TIRUAN DALAM PENJADWALAN MATA KULIAH DI FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA IMPLEMENTATION OF GENETIC ALGORITHM AND ARTIFICIAL NEURAL NETWORK IN LECTURE SCHEDULING IN FACULTY OF MATHEMATICS AND NATURAL SCIENCE UNIVERSITAS GADJAH MADA

Diajukan untuk memenuhi salah satu syarat memperoleh derajat

Sarjana Komputer

EKO BUDI PRASETYO 12/336144/PA/15079

PROGRAM STUDI ILMU KOMPUTER JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA YOGYAKARTA

HALAMAN PENGESAHAN SKRIPSI PENERAPAN ALGORITMA GENETIKA DAN JARINGAN SYARAF TIRUAN DALAM PENJADWALAN MATA KULIAH DI FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA

Telah dipersiapkan dan disusun oleh

EKO BUDI PRASETYO 12/336144/PA/15079

Telah dipertahankan di depan Tim Penguji pada tanggal 15 Desember 2014

Susunan Tim Penguji

Faizah, S.Kom., M.Kom. Anifuddin Aziz, S.Si., M.Kom. Pembimbing

Penguji I

Retantyo Wardoyo, Drs., M.Sc., Ph.D. Penguji II

PERNYATAAN

Dengan ini saya menyatakan bahwa Skripsi ini tidak terdapat karya yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu Perguruan Tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis diacu dalam naskah ini dan disebutkan dalam daftar pustaka.

Yogyakarta, 21 November 2014

EKO BUDI PRASETYO

PRAKATA

Segala puji dan syukur kehadirat Allah SWT atas berkah limpahan rahmat dan karunia, serta petunjuk-Nya sehingga tugas akhir berupa penyusunan skripsi ini telah terselesaikan dengan baik.

Banyak arahan, bantuan, serta dukungan dari berbagai pihak yang diberikan kepada penulis dalam rangka penyelesaian skripsi ini. Maka dari itu pada kesempatan ini penulis mengucapkan banyak terima kasih kepada:

1. Ayah, Ibu, dan Adik penulis yang selalu mendoakan dan mendukung perjuangan penulis selama ini.

2. Ibu Sukati selaku nenek penulis yang telah banyak memberikan inspirasi perjuangan bagi penulis.

3. Ibu Faizah, S.Kom., M.Kom., selaku dosen pembimbing yang telah banyak membantu dan memberi bimbingan kepada penulis dalam menyelesaikan skripsi ini.

4. Bapak Anifuddin Aziz, S.Si., M.Kom., selaku dosen penguji I sidang skripsi penulis.

5. Bapak Retantyo Wardoyo, Drs., M.Sc., Ph.D., selaku dosen penguji II sidang skripsi penulis.

6. Bapak Janoe Hendarto, Drs., M.Kom., selaku dosen wali akademik atas bimbingan dan arahan selama penulis menempuh pendidikan S1 Ilmu Komputer.

7. Seluruh dosen pengajar serta civitas akademika di lingkungan fakultas MIPA UGM, khususnya program studi ilmu komputer.

8. Rekan-rekan seperjuangan Ilmu Komputer alih jenis angkatan 2012 (Bayu, Ani, Uzun, Joko) serta teman-teman alih jenis angkatan 2011 dan 2013.

9. Teman-teman kos Nusantara dan teman-teman Gamatechno divisi enterprise dan divisi egov.

10. Pihak-pihak lain yang telah membantu dalam penyelesaian skripsi ini dan tidak dapat disebutkan satu-persatu.

Penulis menyadari bahwa dalam skripsi ini masih terdapat kekurangan. Oleh karena itu, saran dan kritik yang bersifat membangun sangat penulis harapkan. Akhir kata, penulis berharap semoga skripsi ini dapat memberikan manfaat bagi pembaca.

Yogyakarta, 22 Desember 2014

Penulis

INTISARI Penerapan Algoritma Genetika dan Jaringan Syaraf Tiruan dalam

Penjadwalan Mata Kuliah di Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Gadjah Mada

Eko Budi Prasetyo 12/336144/PA/15079

Pembuatan jadwal mata kuliah di fakultas Matematika dan Ilmu Pengetahuan Alam (MIPA) Universitas Gadjah Mada (UGM) biasanya dilakukan oleh fakultas melalui perwakilan masing-masing program studi. Selama ini proses ini memakan waktu yang cukup lama dikarenakan setelah jadwal terbentuk fakultas masih harus melakukan sinkronisasi terhadap semua jadwal yang diterima. Selain itu, keterbatasan ruang dan waktu dalam penjadwalan dapat memungkinkan terjadinya tumbukan mata kuliah dan ketidaksesuaian antara kapasitas ruang dan jumlah mahasiswa yang mengambil mata kuliah tersebut.

Salah satu cara untuk mengatasi masalah penjadwalan adalah dengan menggunakan algoritma genetika dan jaringan syaraf tiruan. Jaringan syaraf tiruan melalui metode backpropagation dapat digunakan dalam prediksi jumlah peserta mata kuliah yang dipakai untuk penentuan ruang. Algoritma genetika akan digunakan untuk menentukan solusi optimal dari beberapa solusi jadwal yang dihasilkan.

Penelitian ini mengembangkan aplikasi berbasis web yang mampu melakukan prediksi jumlah peserta mata kuliah yang berperan dalam penentuan ruang mata kuliah dan mampu untuk melakukan penjadwalan mata kuliah secara “satu pintu”. Penerapan algoritma genetika dan jaringan syaraf tiruan dengan parameter yang tepat dapat menghasilkan jadwal mata kuliah yang optimal. Selain itu waktu yang dibutuhkan dalam proses penjadwalan menjadi lebih cepat.

Kata kunci: Penjadwalan Mata Kuliah, Backpropagation, Algoritma Genetika, Jaringan Syaraf Tiruan.

ABSTRACT Implementation of Genetic Algorithm and Artificial Neural Network in

Lecture Scheduling in Faculty of Mathematics and Natural Science Universitas Gadjah Mada

Eko Budi Prasetyo 12/336144/PA/15079

Lecture scheduling in faculty of Matematika dan Ilmu Pengetahuan Alam (MIPA) Universitas Gadjah Mada (UGM) is usually performed by faculty through delegation of each study program. So far its process takes a long time because after the schedule was established the faculty still need to synchronize for all schedules that have been given. Moreover, the limitations of time and room in scheduling can allow collision of lecture and incompatibility between the room capacity and the number of student who take the lecture.

One of the way to get over the scheduling problem is by using genetic algorithm and artificial neural network. Artificial neural network through backpropagation method can be used in the prediction of the number of lecture participants that is used for the determination of room. Genetic algorithms will be used to determine the optimal solution of some generated solutions schedule.

This research develop an web based application which capable to predict the number of lecture participants that have a role in determining lecture room and capable to scheduling the lecture in “one door”. The implementation of genetic algorithm and artificial neural network with appropriate parameters can produce optimal lecture schedule. Furthermore time required in scheduling process become faster.

Keyword: Lecture Scheduling, Backpropagation, Genetic Algorithm, Artificial Neural Network.

BAB I PENDAHULUAN

1.1 Latar Belakang

Algoritma adalah serangkaian langkah-langkah untuk menyelesaikan suatu permasalahan. Algoritma genetika merupakan algoritma yang digunakan dalam teknik pencarian evolutionary computation yang menemukan perkiraan solusi untuk optimasi dan masalah pencarian. Algoritma genetika termasuk algoritma heuristik (solusi tidak harus tepat namun mendekati) dan stokastik (menerapkan metode pengacakan pada proses pembangkitan individu dan seleksinya). Algoritma genetika sendiri telah banyak digunakan untuk permasalahan yang sulit (misalkan pada permasalahan NP-complete), untuk pembelajaran mesin dan juga untuk mengembangkan program sederhana (Deepa dkk., 2007). Salah satu penerapan untuk permasalahan yang sulit yaitu dalam permasalahan penjadwalan mata kuliah pada fakultas di perguruan tinggi.

Perguruan tinggi terdiri dari banyak fakultas yang di dalamnya terdapat berbagai macam program studi dan disiplin ilmu. Dalam pelaksanaan kegiatan perkuliahan, dibutuhkan banyak sumber daya pengajaran terutama dosen, waktu, dan ruang. Namun dalam kenyataannya jumlah sumber daya yang ada tersebut jumlahnya sangat terbatas. Oleh karena itu, untuk memanfaatkan sumber daya tersebut dengan optimal dibutuhkan penjadwalan yang baik sesuai dengan aturan atau batasan yang telah ditetapkan agar tidak terjadi permasalahan yang menyebabkan jadwal tidak dapat dilaksanakan. Hal ini menyebabkan pembuatan jadwal mata kuliah merupakan masalah klasik yang sulit untuk diselesaikan (Weare dkk., 1995).

Penjadwalan di fakultas Matematika dan Ilmu Pengetahuan Alam (MIPA) Universitas Gadjah Mada (UGM) telah dilakukan sebelum periode pengisian

Kartu Rencana Studi (KRS) di masing-masing program studi setiap semester. Proses pertama yang dilakukan adalah dengan membuat suatu rancangan jadwal yang mengalokasikan ruang dari blok program studi yang disediakan oleh fakultas dan juga alokasi dosen untuk mengampu mata kuliah yang terselenggara sesuai dengan kurikulum yang berlaku. Kemudian ditentukan ruang untuk masing- masing mata kuliah dengan cara melakukan perkiraan jumlah peserta berdasarkan jumlah mahasiswa yang mengambil mata kuliah yang sama pada tahun lalu. Hasil jadwal dari masing-masing program studi lalu dikumpulkan dan diverifikasi melalui rapat pada jurusan yang kemudian diserahkan kepada sekretariat fakultas MIPA UGM.

Hasil jadwal dari masing-masing jurusan yang diserahkan kepada sekretariat MIPA UGM biasanya belum sepenuhnya baik, karena ada kemungkinan kapasitas ruang yang besar dialokasikan untuk mahasiswa yang jumlahnya sedikit. Maka dari itu, setelah jadwal selesai dibuat biasanya akan diproses ulang oleh sekretariat MIPA UGM dengan melakukan penukaran ruang pada kelas mata kuliah agar sisa tempat duduk yang tidak terpakai menjadi seminimal mungkin. Permasalahan lain pada penjadwalan muncul pada saat pengisian KRS, yaitu ketika mahasiswa akan mengulang mata kuliah pilihan di semester tahun lalu tetapi tidak dapat dilakukan karena terjadi tumbukan waktu dengan mata kuliah wajib pada paket semester dan program studi yang sama.

Penelitian ini bermaksud untuk mengembangkan aplikasi guna menghasilkan jadwal mata kuliah sesuai dengan aturan atau batasan dalam penjadwalan yang ada pada fakultas MIPA UGM yang dapat digunakan pada masa pengisian KRS dengan penentuan ruang berdasarkan hasil prediksi jumlah peserta mata kuliah. Selain itu, penelitian ini diharapkan mampu menjadikan sistem “satu pintu” dalam pembuatan jadwal di fakultas MIPA UGM serta dapat memanfatkan semua sumber daya ruang dan waktu yang ada secara optimal. Dengan adanya aplikasi ini diharapkan juga dapat mempercepat proses pembuatan Penelitian ini bermaksud untuk mengembangkan aplikasi guna menghasilkan jadwal mata kuliah sesuai dengan aturan atau batasan dalam penjadwalan yang ada pada fakultas MIPA UGM yang dapat digunakan pada masa pengisian KRS dengan penentuan ruang berdasarkan hasil prediksi jumlah peserta mata kuliah. Selain itu, penelitian ini diharapkan mampu menjadikan sistem “satu pintu” dalam pembuatan jadwal di fakultas MIPA UGM serta dapat memanfatkan semua sumber daya ruang dan waktu yang ada secara optimal. Dengan adanya aplikasi ini diharapkan juga dapat mempercepat proses pembuatan

1.2 Perumusan Masalah

Berdasarkan permasalahan yang telah dipaparkan di latar belakang di atas maka objek penelitian ini adalah bagaimana menyelesaikan permasalahan pembuatan jadwal mata kuliah secara kolektif sesuai aturan penjadwalan yang digunakan pada masa pengisian KRS di fakultas MIPA UGM dengan menggunakan algoritma genetika. Selain itu penelitian ini juga melakukan prediksi untuk jumlah peserta mata kuliah guna menentukan ruang yang digunakan dalam penjadwalan sesuai dengan kriteria-kriteria yang telah ditentukan dengan mengimplementasikan jaringan syaraf tiruan.

1.3 Batasan Masalah

Adapun batasan masalah dalam penelitian ini agar lebih mudah dipahami dan tidak terlalu luas dalam penulisannya yaitu sebagai berikut:

1. Algoritma genetika digunakan pada proses penjadwalan mata kuliah.

2. Jaringan syaraf tiruan digunakan dalam proses prediksi jumlah peserta mata kuliah.

3. Prediksi dilakukan dengan menggunakan data pelatihan berupa data mata kuliah dari tahun 2008 hingga tahun 2013.

4. Penjadwalan yang dilakukan terbatas dan tidak melibatkan komponen mahasiswa.

5. Diasumsikan setiap kelas mata kuliah paralel diampu oleh dosen yang berbeda.

6. Aplikasi yang dikembangkan berbasis web menggunakan framework codeigniter, dengan bahasa pemrograman PHP dan database mysql.

7. Aplikasi yang dihasilkan tidak termasuk access control list.

8. Penjadwalan difokuskan pada mata kuliah jenjang S1 yang menggunakan ruang di fakultas MIPA UGM.

9. Sistem penjadwalan mata kuliah dibuat untuk menghasilkan jadwal dalam waktu satu semester.

1.4 Tujuan Penelitian

Tujuan penelitian yang dilakukan adalah mengembangkan aplikasi dengan menerapkan algoritma genetika yang mampu melakukan penjadwalan mata kuliah dan menghasilkan jadwal mata kuliah yang digunakan pada masa pengisian KRS di fakultas MIPA UGM dengan pemilihan ruang berdasarkan jumlah peserta yang dihasilkan dari proses prediksi dengan menerapkan jaringan syaraf tiruan.

1.5 Manfaat Penelitian

Dengan adanya penelitian ini diharapkan mampu memberikan manfaat sebagai berikut:

1. Melakukan otomatisasi penjadwalan mata kuliah secara kolektif di fakultas MIPA UGM.

2. Mempercepat proses penjadwalan yang dilakukan di fakultas MIPA UGM.

1.6 Sistematika Penulisan

Sistematika dalam penulisan tugas akhir ini akan terdiri dari tujuh bab, yaitu: BAB I PENDAHULUAN Berisi mengenai latar belakang, perumusan masalah, batasan masalah,

tujuan penelitian, manfaat penelitian, dan sistematika penulisan. BAB II TINJAUAN PUSTAKA Bab ini menyajikan pembahasan mengenai penelitian terdahulu yang

digunakan sebagai referensi dalam penulisan penelitian ini. Selain itu memuat digunakan sebagai referensi dalam penulisan penelitian ini. Selain itu memuat

BAB III LANDASAN TEORI Bab ini berisi teori-teori yang menjadi landasan dalam penulisan penelitian

ini yang menyangkut kajian ilmu yang terlibat. BAB IV ANALISIS DAN PERANCANGAN Bab ini berisi uraian tentang hasil analisis yang dilakukan serta

perancangan sistem yang akan dikembangkan. BAB V IMPLEMENTASI Bab ini berisi hasil penerapan dari sistem yang telah dibangun berdasarkan

analisis dan perancangan sistem yang dilakukan sebelumnya. BAB VI HASIL PENELITIAN DAN PENGUJIAN Pada bab ini berisi pembahasan mengenai kevalidan sistem dalam

menghasilkan keluaran dan hasil pengujian terhadap sistem yang telah dibangun. BAB VII KESIMPULAN DAN SARAN Bab ini berisi mengenai kesimpulan dari penelitian yang telah dilakukan

dan saran untuk pengembangan penelitian selanjutnya.

BAB II TINJAUAN PUSTAKA

Adamanti (2002) mencoba memecahkan masalah penjadwalan matakuliah dengan menggunakan algoritma genetika. Pemodelan kromosom dilakukan dengan membaginya menjadi dua fase. Fase pertama menempatkan mata kuliah pada slot waktu yang tersedia. Kemudian fase kedua menempatkan mata kuliah yang telah mendapatkan slot waktu pada ruangan yang sesuai. Fase pertama diselesaikan dengan algoritma genetika, sedangkan fase ke dua diselesaikan dengan pengacakan yang menerapkan prinsip semua kelas mata kuliah mendapatkan ruang sesuai dengan kurang dari atau sama dengan kapasitasnya. Penelitian diimplementasikan dengan aplikasi berbasis desktop dan diklaim mampu menghasilkan jadwal mata kuliah yang memenuhi aturan-aturan yang sudah ditentukan. Namun tidak semua aturan dapat terpenuhi dalam pembuatan jadwal mata kuliah. Pada penelitian terkait, penjadwalan ruang dilakukan setelah diketahui peserta masing-masing mata kuliah atau setelah mahasiswa selesai mengisi KRS. Selain itu aturan yang dipakai dalam penjadwalan ketika penelitian sudah tidak relevan lagi dengan aturan yang ada sekarang di fakultas MIPA UGM.

Penelitian yang sama dengan metode yang berbeda dilakukan oleh Anggamardika (2008). Penelitiannya mencoba membangun system untuk menyelesaikan masalah penjadwalan mata kuliah di fakultas MIPA UGM dengan menggunakan pendekatan Artificial Immune System yang merupakan metode yang terinspirasi dari cara kerja system kekebalan tubuh mamalia. Sistem yang dihasilkan diklaim mampu mengoptimalisasi dan mengotomatisasi pembuatan jadwal mata kuliah untuk seluruh program studi S1 reguler sekaligus dalam satu kali penjadwalan berdasarkan aturan-aturan yang sudah ditentukan.

Aydin (2008) membuat timetable penjadwalan mata kuliah yang diterapkan di fakultas untuk jadwal mahasiswa dengan menggunakan algoritma Aydin (2008) membuat timetable penjadwalan mata kuliah yang diterapkan di fakultas untuk jadwal mahasiswa dengan menggunakan algoritma

Rahayu (2010) membangun sistem tentang penjadwalan praktikum dengan menggunakan algoritma genetika. Sistem yang dibangun mampu mengotomatisasi pembuatan jadwal praktikum dalam satu kali penjadwalan. Pada penelitian yang dilakukan menghasilkan jadwal yang mengalokasikan kelas praktikum ke dalam slot waktu dan mengabaikan penjadwalan ruang.

Pada penelitian ini, dilakukan penjadwalan matakuliah dengan cara mengalokasikan kelas mata kuliah ke dalam slot waktu dan ruang secara acak dengan memperhatikan aturan-aturan yang digunakan dalam penjadwalan mata kuliah. Penjadwalan diaplikasikan pada program berbasis web dengan mengimplementasikan algoritma genetika. Penjadwalan dilakukan pada periode sebelum mahasiswa melakukan pengisian KRS. Penentuan ruang dalam penjadwalan dioptimalkan dengan cara meminimalkan selisih antara kapasitas ruang dengan jumlah peminat pada mata kuliah tertentu. Selain itu dalam penentuan ruang juga menggunakan jumlah peserta dari hasil prediksi berdasarkan jumlah peserta mata kuliah yang sama pada tahun sebelumnya dan diimplementasikan menggunakan jaringan syaraf tiruan.

BAB III LANDASAN TEORI

3.1 Algoritma Genetika

Algoritma genetika adalah algoritma pencarian yang didasarkan pada mekanisme seleksi alamiah dan genetika alamiah. Pada awalnya algoritma genetika memang digunakan sebagai algoritma pencarian parameter-parameter optimal. Namun dalam perkembangannya, algoritma genetika bisa diaplikasikan untuk berbagai masalah lain seperti pembelajaran, peramalan, pemrograman otomatis, dan sebagainya. Pada bidang soft computing, algoritma genetika banyak digunakan untuk mendapatkan nilai-nilai parameter yang optimal pada jaringan syaraf tiruan maupun sistem fuzzy (Suyanto, 2011).

Algoritma genetika adalah optimasi dan teknik pencarian berdasarkan prinsip-prinsip genetika dan seleksi alam. Algoritma genetika memungkinkan populasi yang terdiri dari banyak individu untuk dapat berkembang berdasarkan aturan seleksi tertentu ke keadaan fitness maksimal (fungsi biaya minimal). Metode ini dikembangkan oleh John Holland (1975) selama tahun 1960-an dan 1970-an dan akhirnya dipopulerkan oleh salah seorang muridnya, David Goldberg (Haupt, 2004).

Suyanto (2011) mengemukakan terdapat beberapa komponen dalam algoritma genetika, yaitu:

1. Skema pengkodean, merupakan hasil konversi suatu permasalahan ke dalam bentuk individu yang diwakili oleh satu atau lebih kromosom dengan kode tertentu.

2. Nilai fitness, merupakan nilai dari suatu fungsi tertentu yang digunakan dalam eveluasi. Individu dalam populasi dengan fitness tinggi kemungkinan akan bertahan hidup menjadi lebih besar.

3. Seleksi orang tua, merupakan proses pemilihan dua individu sebagai orang tua yang biasanya dilakukan secara proporsional berdasarkan nilai-nilai fitness- nya.

4. Pindah silang (crossover), merupakan proses kombinasi pewarisan gen-gen dari induknya yang menghasilkan susunan kromosom yang baru.

5. Mutasi direpresentasikan sebagai suatu proses berubahnya satu atau lebih nilai gen dalam kromosom dengan suatu nilai acak.

6. Elitisme, merupakan proses yang berfungsi menyalin individu yang bernilai fitness tertinggi agar tidak hilang selama proses evolusi akibat seleksi individu secara acak. Prosedur ini digunakan pada algoritma genetika yang berjenis generational replacement.

7. Penggantian populasi, pada algoritma genetika berjenis generational replacement, sejumlah individu pada suatu generasi digantikan sejumlah individu baru hasil pindah silang dan mutasi.

8. Kriteria penghentian, merupakan kriteria yang digunakan untuk menghentikan proses iterasi dalam evolusi.

3.1.1 Skema pengkodean (encoding)

Algoritma genetika merepresentasikan gen (buatan), secara umum, sebagai bilangan real, desimal atau biner, yaitu:

1. Real-number encoding. Pada skema ini, nilai gen berada dalam interval [0,R], dimana R adalah bilangan real positif dan biasanya R = 1. Contoh representasi real-number encoding ditunjukkan pada gambar 3.1.

Kromosom A 2 1 3 5 6 8 7 4 9 Kromosom B 6 1 3 4 2 9 5 7 8

Gambar 3.1 Contoh representasi real-number encoding

2. Discrete decimal encoding. Pada skema ini, setiap gen bisa berupa deretan bilangan bulat dalam interval [0,9]. Contoh representasi discrete decimal encoding ditunjukkan pada gambar 3.2.

Kromosom A 0.122 1.456 5.333 1.925 Kromosom B 1.456 1.925 5.333 0.122

Gambar 3.2 Contoh representasi discrete decimal encoding

3. Binary encoding. Setiap gen bisa berupa deretan dengan nilai 0 atau 1. Contoh representasi binary encoding ditunjukkan pada gambar 3.3.

Kromosom A 0 1 0 1 0 0 0 0 1 Kromosom B 1 0 1 0 0 1 0 1 0

Gambar 3.3 Contoh representasi binary encoding

3.1.2 Nilai fitness

Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran nilai fitness-nya. Dalam proses evolusi, individu yang survive dari proses seleksi alam akan mempunyai kesempatan untuk bereproduksi kembali. Dengan demikian kemampuan individu untuk dapat beradaptasi dan bertahan hidup untuk selamat sangat penting. Dalam terminologi algoritma genetika kemampuan suatu individu atau kromosom untuk bertahan dapat diukur berdasarkan nilai fitness-nya. Semakin baik nilai fitness suatu kromosom maka akan semakin baik peluang kromosom tersebut untuk bertahan hidup dan ikut dalam proses reproduksi. Nilai fitness suatu kromosom dapat dihitung dengan menggunakan fungsi objektif (Goldberg, 1989).

3.1.3 Seleksi orang tua

Terdapat beberapa jenis metode seleksi, berikut ini adalah beberapa metode seleksi yang sering digunakan (Suyanto, 2011).

1. Seleksi roda roulette (roulette wheel selection)

Pada metode seleksi ini, parent dipilih berdasarkan nilai fitness-nya, semakin baik nilai fitness-nya maka semakin besar kemungkinannya untuk terpilih. Contoh probabilitas terpilihnya suatu kromosom dalam roda roulette ditunjukkan pada gambar 3.4.

Gambar 3.4 Contoh seleksi roda roulette

Skema seleksi dengan roda roulette ini adalah berdasarkan skala fitness (fitness scale). Karena terpilihnya suatu kromosom dalam populasi untuk dapat berkembang biak adalah sebanding dengan fitness-nya, maka akan terjadi semacam trade off antara ekplorasi dan ekploitasi jika terdapat satu atau kelompok kecil kromosom yang mempunyai fitness yang baik yaitu antara mengeksplorasi bagian-bagian baru dalam ruang pencarian, atau terus mengeksplotasi informasi yang telah diperoleh. Kecenderungan kromosom yang baik untuk terpelihara terus dapat membawa ke hasil optimum lokal atau konvergensi dini (premature convergence) ke suatu hasil yang bukan optimum global. Sebaliknya jika semua kromosom dalam populasi mempunyai fitness yang hampir sama, maka seleksi ini akan menjadi seleksi yang bersifat acak.

2. Seleksi rangking (rank selection)

Metode seleksi roda roulette akan memiliki masalah ketika terdapat perbedaan fitness yang jauh. Sebagai contoh, jika fitness kromosom terbaik adalah 90% dari semua roda roulette dapat menyebabkan kromosom yang lain memiliki kesempatan yang sangat kecil untuk dapat terpilih.

Seleksi ranking terlebih dahulu merangking atau mengurutkan kromosom di dalam populasi berdasarkan fitness-nya kemudian memberi nilai fitness baru berdasarkan urutannya. Kromosom dengan fitness terburuk akan memiliki fitness baru bernilai 1, terburuk kedua bernilai 2 dan seterusnya, sehingga kromosom yang memiliki fitness terbaik akan memiliki nilai fitness N, dimana N adalah jumlah kromosom di dalam populasi.

Setelah proses pengurutan dan pemberian nilai fitness baru, setiap kromosom akan memiliki kesempatan yang lebih adil untuk terpilih. Namun metode ini dapat menyebabkan konvergensi menjadi lambat, karena kromosom terbaik tidak terlalu berbeda dengan yang lainnya.

3. Seleksi turnamen (tournament selection)

Seleksi turnamen merupakan variasi antara seleksi roda roulette dan seleksi rangking. Sejumlah k kromosom tertentu dari populasi beranggota n kromosom (k ≤ n) dipilih secara acak dengan probabilitas yang sama. Dari k kromosom yang terpilih kemudian akan dipilih satu kromosom dengan fitness terbaik, yang diperoleh dari hasil pengurutan rangking fitness semua kromosom terpilih. Perbedaannya dengan seleksi roda roulette adalah pemilihan kromosom yang akan digunakan untuk berkembang biak tidak berdasarkan skala fitness dari populasi.

3.1.4 Pindah silang (crossover)

Pada proses pindah silang dihasilkan variasi genetik. Dengan suatu skema, dua individu dipilih sebagai orang tua. Setelah didapatkan dua individu orang tua, selanjutnya ditentukan titik pindah silang secara acak. Titik pindah silang adalah titik terjadinya pertukaran gen antar dua individu orang tua. Pertukaran tersebut akan menghasilkan dua anak. Namun, operasi pindah silang tidak selamanya berhasil. Peluang keberhassilan pindah silang dinyatakan dengan probabilitas pindah silang. Terdapat tiga skema pindah silang yang biasa digunakan, yaitu Pada proses pindah silang dihasilkan variasi genetik. Dengan suatu skema, dua individu dipilih sebagai orang tua. Setelah didapatkan dua individu orang tua, selanjutnya ditentukan titik pindah silang secara acak. Titik pindah silang adalah titik terjadinya pertukaran gen antar dua individu orang tua. Pertukaran tersebut akan menghasilkan dua anak. Namun, operasi pindah silang tidak selamanya berhasil. Peluang keberhassilan pindah silang dinyatakan dengan probabilitas pindah silang. Terdapat tiga skema pindah silang yang biasa digunakan, yaitu

1. Pindah silang satu titik (single-point crossover)

Pindah silang ini merupakan skema pindah silang yang paling sederhana. Titik pindah silang hanya satu dengan posisi yang dibangkitkan secara acak. Contoh pindah silang satu titik ditunjukkan pada gambar 3.5.

Gambar 3.5 Contoh pindah silang satu titik

2. Pindah silang banyak titik (multi-point crossover)

Pindah silang ini menggunakan banyak titik untuk pertukarannya. Contoh pindah silang banyak titik ditunjukkan pada gambar 3.6.

Gambar 3.6 Contoh pindah silang banyak titik

3. Pindah silang pola seragam (uniform crossover)

Dengan operasi pindah silang pola seragam maka komposisi gen-gen tertentu pada suatu individu dapat dipertahankan. Hal ini akan memudahkan proses pencarian solusi. Contoh pindah silang pola seragam ditunjukkan pada gambar

Gambar 3.7 Contoh pindah silang pola seragam

3.1.5 Mutasi

Mutasi diperlukan untuk mengembalikan informasi bit yang hilang akibat crossover. Mutasi diterapkan dengan probabilitas yang sangat kecil. Jika mutasi dilakukan terlalu sering, maka akan menghasilkan individu yang lemah karena konfigutasi gen pada individu yang unggul akan dirusak. Mutasi dapat dibedakan menjadi tiga bagian:

1. Mutasi pada tingkat kromosom, yakni semua gen dalam kromosom berubah seperti yang ditunjukkan pada gambar 3.8.

Gambar 3.8 Contoh mutasi tingkat kromosom

2. Mutasi pada tingkat gen, yakni semua bit dalam satu gen akan berubah seperti yang ditunjukkan pada gambar 3.9.

Gambar 3.9 Contoh mutasi tingkat gen

3. Mutasi pada tingkat bit, yakni hanya satu bit yang akan berubah seperti yang ditunjukkan pada gambar 3.10.

Gambar 3.10 Contoh mutasi tingkat bit

3.1.6 Elitisme

Karena seleksi dilakukan secara acak, maka tidak ada jaminan bahwa suatu individu bernilai fitness tertinggi akan selalu dipilih. Kalaupun individu bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak karena proses pindah silang. Untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama proses evolusi, perlu dibuat satu atau dua salinannya. Prosedur ini dikenal dengan elitisme. Prosedur ini hanya digunakan pada algoritma genetika berjenis generational replacement.

3.1.7 Penggantian populasi

Pada algoritma genetika berjenis generational replacement, N individu pada suatu generasi digantikan sekaligus oleh N individu baru hasil pindah silang dan mutasi. Untuk mempertahankan individu terbaik, diperlukan skema elitisme.

3.1.8 Kriteria penghentian

Terdapat berbagai macam kriteria penghentian yang bisa digunakan, tiga diantaranya adalah:

1. Memberikan batasan jumlah iterasi. Apabila batas iterasi tersebut dicapai, iterasi dihentikan dan laporkan individu bernilai fitness tertinggi sebagai solusi terbaik.

2. Memberikan batasan waktu proses algoritma genetika. Kriteria ini digunakan pada sistem-sistem waktu nyata (real time system), dimana solusi harus ditemukan paling lama, misalkan 12 jam. Dengan demikian, algoritma genetika bisa dihentikan, ketika proses sudah berlangsung hampir 12 jam.

3. Menghitung kegagalan penggantian anggota populasi yang terjadi secara berurutan sampai jumlah tertentu.

3.2 Jaringan syaraf tiruan

Jaringan syaraf tiruan adalah jaringan komputasi yang mencoba untuk mensimulasikan secara kasar jaringan sel syaraf (neuron) biologis sistem syaraf pusat yang terdapat pada manusia atau hewan. Simulasi ini diambil dari ilmu neurofisiologis tentang neuron biologis dan jaringan neuron biologis. Simulasi ini juga berbeda dari mesin komputasi tradisional (digital atau analog) yang berbasis pada pelayanan atau penggantian, yakni meningkatkan atau mempercepat komputasi otak manusia tanpa berkaitan dengan pengelolaan elemen komputasi dan jaringannya. Sehingga dapat dikatakan bahwa simulasi yang diberikan oleh jaringan syaraf tiruan masih bersifat kasar (Graupe, 1997).

3.2.1 Sejarah jaringan saraf tiruan

Mulai dari ditemukannya, jaringan syaraf tiruan telah mengalami tahap- tahap perkembangan (Kusumadewi, 2003). Dimulai tahun 1940-an, para ilmuwan menemukan bahwa psikologi dari otak sama dengan mode pemrosesan yang dilakukan oleh peralatan komputer. McCulloch dan Pitts (1943) merancang model formal yang pertama kali sebagai perhitungan dasar neuron. Hebb (1949) menyatakan bahwa informasi dapat disimpan dalam koneksi-koneksi dan mengusulkan adanya skema pembelajaran untuk memperbaiki koneksi-koneksi antar neuron tersebut. Farley dan Clark (1954) menginisiasi model-model untuk relasi adaptif stimulus-respon dalam jaringan random. Rosenblatt (1958) mengembangkan kosep dasar tentang perceptron untuk klasifikasi pola. Widrow dan Hoff (1960) mengembangkan adaline untuk kendali adaptif dan pencocokan pola yang dilatih dengan aturan pembelajaran Least Mean Square (LMS). Werbos (1974) memperkenalkan algoritma backpropagation untuk melatih perceptron dengan banyak lapisan. Little dan Shaw (1975) menggambarkan jaringan syaraf dengan menggunakan model probabilistik. Kohonen (1982) mengembangkan metode pembelajaran jaringan syaraf yang tidak terawasi (unsupervised learning) untuk pemetaan. Grossberg (1982) mengembangkan teori jaringan yang Mulai dari ditemukannya, jaringan syaraf tiruan telah mengalami tahap- tahap perkembangan (Kusumadewi, 2003). Dimulai tahun 1940-an, para ilmuwan menemukan bahwa psikologi dari otak sama dengan mode pemrosesan yang dilakukan oleh peralatan komputer. McCulloch dan Pitts (1943) merancang model formal yang pertama kali sebagai perhitungan dasar neuron. Hebb (1949) menyatakan bahwa informasi dapat disimpan dalam koneksi-koneksi dan mengusulkan adanya skema pembelajaran untuk memperbaiki koneksi-koneksi antar neuron tersebut. Farley dan Clark (1954) menginisiasi model-model untuk relasi adaptif stimulus-respon dalam jaringan random. Rosenblatt (1958) mengembangkan kosep dasar tentang perceptron untuk klasifikasi pola. Widrow dan Hoff (1960) mengembangkan adaline untuk kendali adaptif dan pencocokan pola yang dilatih dengan aturan pembelajaran Least Mean Square (LMS). Werbos (1974) memperkenalkan algoritma backpropagation untuk melatih perceptron dengan banyak lapisan. Little dan Shaw (1975) menggambarkan jaringan syaraf dengan menggunakan model probabilistik. Kohonen (1982) mengembangkan metode pembelajaran jaringan syaraf yang tidak terawasi (unsupervised learning) untuk pemetaan. Grossberg (1982) mengembangkan teori jaringan yang

3.2.2 Model neuron jaringan syaraf tiruan

Neuron adalah unit pemrosesan informasi yang penting untuk pengoperasian jaringan saraf. Model neuron yang terdapat pada jaringan syaraf tiruan dapat ditunjukkan seperti pada gambar 3.11.

Gambar 3.11 Model neuron jaringan syaraf tiruan (Hajek, 2005)

Hajek (2005) mengidentifikasi tiga elemen dasar dari model neuron:

1. Kumpulan sinapsis masing-masing ditandai dengan bobot yang memiliki nilai. Secara khusus, sebuah sinyal pada masukan sinapsis m yang terhubung ke neuron k dikalikan dengan sinapsis bobot w . Pada bobot w , Subskrip 1. Kumpulan sinapsis masing-masing ditandai dengan bobot yang memiliki nilai. Secara khusus, sebuah sinyal pada masukan sinapsis m yang terhubung ke neuron k dikalikan dengan sinapsis bobot w . Pada bobot w , Subskrip

sinapsis berupa penghambatan.

2. Sebuah adder (summing function) berfungsi untuk menjumlahkan sinyal-sinyal input, yang berasal dari sinapsis masing-masing dari neuron.

3. Fungsi aktivasi untuk membatasi simpangan terjauh pada suatu output dari neuron. Fungsi aktivasi juga disebut dalam literatur sebagai fungsi squashing. Dalam hal ini, squashes (batas) rentang simpangan yang diizinkan dari sinyal output untuk beberapa nilai terbatas. Biasanya, normalisasi rentang simpangan output dari neuron ditulis sebagai satuan interval tertutup [0, 1] atau [-1, 1].

3.2.3 Arsitektur jaringan saraf tiruan

Ada beberapa arsitektur jaringan syaraf tiruan (Kusumadewi, 2003), antara lain:

1. Jaringan dengan lapisan tunggal (single layer net) Jaringan dengan lapisan tunggal hanya memiliki satu lapisan dengan bobot-bobot terhubung. Jaringan ini hanya menerima input kemudian secara langsung akan mengolahnya menjadi output tanpa harus melalui lapisan tersembunyi . Lapisan

input memiliki N neuron, yaitu X 1 , X 2 , X 3 , hingga X n . Pada lapisan output terdapat N neuron yaitu Y 1 , Y 2 hingga Y n neuron-neuron pada kedua lapisan saling berhubungan. Seberapa besar hubungan antara 2 neuron ditentukan oleh bobot yang bersesuaian. Semua unit input akan dihubungkan dengan setiap unit output. Jaringan syaraf dengan lapisan tunggal ditunjukkan pada gambar 3.12.

Gambar 3.12 Jaringan syaraf dengan lapisan tunggal (Kawaguchi, 2000)

2. Jaringan dengan banyak lapisan (multilayer net) Jaringan dengan banyak lapisan memiliki 1 atau lebih lapisan yang terletak diantara lapisan input dan lapisan output (memiliki 1 atau lebih lapisan tersembunyi). Umumnya, ada lapisan bobot-bobot yang terletak antara 2 lapisan yang bersebelahan. Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang lebih sulit daripada lapisan dengan lapisan tunggal, tentu saja dengan pembelajaran yang lebih rumit. Namun demikian, pada banyak kasus, pembelajaran pada jaringan dengan banyak lapisan ini lebih sukses dalam menyelesaikan masalah. Jaringan syaraf dengan banyak lapisan ditunjukkan pada gambar 3.13.

Gambar 3.13 Jaringan syaraf dengan banyak lapisan (Kawaguchi, 2000)

3. Jaringan dengan lapisan kompetitif (competitive layer net)

Umumnya, hubungan antar neuron pada lapisan kompetitif ini tidak diperlihatkan pada diagram arsitektur. Gambar di bawah ini menunjukkan salah satu contoh arsitektur jaringan dengan lapisan kompetitif yang memiliki bobot –ƞ. Jaringan syaraf dengan lapisan kompetitif ditunjukkan pada gambar 3.14.

Gambar 3.14 Jaringan syaraf dengan lapisan kompetitif (Kusumadewi, 2003)

3.2.4 Fungsi aktifasi

Dalam jaringan syaraf tiruan, fungsi aktifasi digunakan untuk menentukan keluaran satu neuron. Argumen fungsi aktifasi adalah set masukkan (kombinasi linier masukan dan bobotnya) (Siang, 2004). Jika net = Σx w Maka fungsi aktifasinya adalah seperti yang ditunjukan pada persamaan 3.1.

(3.1) Beberapa fungsi aktifasi yang digunakan adalah (Jon, 2004):

f(net) = f(Σx w )

1. Fungsi threshold (batas ambang) ditunjukan pada persamaan 3.2.

Fungsi treshold merupakan fungsi threshold biner. Untuk kasus bilangan bipolar, maka angka 0 diganti dengan angka -1. Sehingga persamaan di atas diubah ditunjukan pada persamaan 3.3.

2. Fungsi sigmoid ditunjukan pada persamaan 3.4 dan fungsi turunannya ditunjukkan pada persamaan 3.5.

3. Fungsi identitas ditunjukan pada persamaan 3.6.

(3.6) Digunakan jika keluaran yang dihasilkan oleh jaringan syaraf tiruan merupakan

sembarang bilangan riil (bukan hanya pada range [0,1] atau [1,-1]).

3.2.5 Metode pelatihan

Cara berlangsungnya pembelajaran atau pelatihan jaringan syaraf tiruan dikelompokkan menjadi 3 yaitu (Puspitaningrum, 2006):

a. Supervised learning (pembelajaran terawasi). Pada metode ini, setiap pola yang diberikan kedalam jaringan syaraf tiruan telah diketahui output-nya. Selisih antara pola output aktual (output yang dihasilkan) dengan pola output yang dikehendaki (output target) yang disebut error digunakan untuk mengoreksi bobot jaringan syaraf tiruan sehingga jaringan syaraf tiruan mampu menghasilkan output sedekat mungkin dengan pola target yang telah diketahui oleh jaringan syaraf tiruan. Contoh algoritma jaringan syaraf tiruan yang menggunakan metode ini adalah hebbian, perceptron, adaline, boltzman, hopfield, dan backpropagation.

b. Unsupervised learning (pembelajaran tak terawasi). Pada metode ini, tidak memerlukan target output. Pada metode ini tidak dapat ditentukan hasil seperti apakah yang diharapkan selama proses pembelajaran. Selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu tergantung pada nilai input yang diberikan. Tujuan pembelajaran ini adalah b. Unsupervised learning (pembelajaran tak terawasi). Pada metode ini, tidak memerlukan target output. Pada metode ini tidak dapat ditentukan hasil seperti apakah yang diharapkan selama proses pembelajaran. Selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu tergantung pada nilai input yang diberikan. Tujuan pembelajaran ini adalah

c. Hybrid learning (pembelajaran hibrida). Merupakan kombinasi dari metode pembelajaran supervised learning dan unsupervised learning, sebagian dari bobot-bobotnya ditentukan melalui pembelajaran terawasi dan sebagian lainnya melalui pembelajaran tak terawasi. Contoh algoritma jaringan syaraf tiruan yang menggunakan metode ini adalah algoritma RBF.

3.2.6 Backprogation

Backpropagation merupakan algoritma pembelajaran yang terawasi dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuran yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan maju (feed-forward propagation) harus dikerjakan terlebih dahulu.Pada saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid (Puspitaningrum, 2006). Arsitektur jaringan backpropagation ditunjukkan pada gambar 3.15.

Gambar 3.15 Arsitektur jaringan backpropagation

Algoritma backpropagation (Puspitaningrum, 2006):

a) Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil).

b) Kerjakan langkah-langkah berikut selama kondisi berhenti bernilai false:

1. Untuk tiap-tiap pasangan elemen yang akan dilakukan pembelajaran, kerjakan:

Propagasi maju:

a. Tiap-tiap unit input (X i , i=1,2,3,...,n) menerima sinyal x i dan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada di atasnya (lapisan tersembunyi).

b. Tiap-tiap unit tersembunyi (Z j , j=1,2,3,...,p) menjumlahkan sinyal- sinyal input terbobot, serta menambahkan bias

jika diketahui. Proses tersebut ditunjukan seperti pada persamaan 3.7.

(3.7) gunakan fungsi aktivasi untuk menghitung sinyal output-nya seperti

yang ditunjukan pada persamaan 3.8.

c. Tiap-tiap unit output (Y k , k=1,2,3,...,m) menjumlahkan sinyal-sinyal input terbobot. Proses tersebut ditunjukan seperti pada persamaan 3.9.

(3.9) gunakan fungsi aktivasi untuk menghitung sinyal output-nya seperti

yang ditunjukan oleh persamaan 3.10.

(3.10) dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit

output).

Propagasi mundur:

d. Tiap-tiap unit output (Y k , k=1,2,3,...,m) menerima target pola yang berhubungan dengan pola input pembelajaran, hitung informasi error- nya seperti yang ditunjukan oleh persamaan 3.11.

(3.11) kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk

memperbaiki nilai w jk ) seperti yang ditunjukan oleh persamaan 3.12.

(3.12) hitung juga koreksi bias (yang nantinya akan digunakan untuk

memperbaiki nilai w 0k ) seperti yang ditunjukan oleh persamaan 3.13.

(3.13) kirimkan  k ini ke unit-unit yang ada di lapisan bawahnya.

e. Tiap-tiap unit tersembunyi (Z j , j = 1,2,3,...,p) menjumlahkan delta input-nya (dari unit-unit yang berada pada lapisan di atasnya) seperti yang ditunjukan oleh persamaan 3.14.

(3.14) kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk

menghitung informasi error seperti yang ditunjukan oleh persamaan

(3.15) kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk

memperbaiki nilai v ij ) seperti yang ditunjukan oleh persamaan 3.16.

(3.16) hitung juga koreksi bias (yang nantinya akan digunakan untuk

memperbaiki nilai v 0j ) seperti yang ditunjukan oleh persamaan 3.17.

f. Tiap-tiap unit output (Y k , k=1,2,3,...,m) memperbaiki bias dan bobotnya (j=0,1,2,...,p) seperti yang ditunjukan oleh persamaan 3.18.

Tiap-tiap unit tersembunyi (Z j , j=1,2,3,...,p) memperbaiki bias dan bobotnya (i = 0,1,2,...,n) seperti yang ditunjukan oleh persamaan 3.19.

2. Tes kondisi berhenti apabila error ditemukan. Untuk memeriksa error digunakan Mean Search Error (MSE) seperti yang ditunjukan pada persamaan 3.20.

PHP adalah bahasa pengembangan web yang ditulis oleh dan untuk pengembang web. PHP singkatan dari Hypertext Preprocessor. PHP adalah bahasa scripting server-side, yang dapat tertanam dalam HTML atau digunakan sebagai biner mandiri (Converse dkk., 2004). Pemrosesan PHP pada server disebut dengan server-side processing. Proses tersebut dapat diilustrasikan seperti yang ditunjukkan pada gambar 3.16.

Gambar 3.16 Server-side processing (Davis dan Philips, 2007)

Pemrosesan PHP pada server atau server-side processing dimulai dengan adanya pengelompokan dari alamat web yang dimasukkan pada browser untuk mendapatkan nama berkas yang diminta dan alamat server yang dituju. Kemudian klien mengirimkan request atau permintaan kepada web server. Request yang dikirim tersebut kemudian diproses oleh web server process dan dilakukan pencarian terhadap berkas yang diminta. Kemudian web server membaca berkas yang terdapat pada hard disk dari web server. Hasil pembacaan berkas tersebut kemudian dikembalikan dalam bentuk response ke browser pada klien. Web Pemrosesan PHP pada server atau server-side processing dimulai dengan adanya pengelompokan dari alamat web yang dimasukkan pada browser untuk mendapatkan nama berkas yang diminta dan alamat server yang dituju. Kemudian klien mengirimkan request atau permintaan kepada web server. Request yang dikirim tersebut kemudian diproses oleh web server process dan dilakukan pencarian terhadap berkas yang diminta. Kemudian web server membaca berkas yang terdapat pada hard disk dari web server. Hasil pembacaan berkas tersebut kemudian dikembalikan dalam bentuk response ke browser pada klien. Web

3.4 Diagram E-R

Diagram E-R merupakan diagram pemodelan data yang didasarkan pada persepsi pada dunia nyata yang terdiri dari kumpulan dasar objek yang disebut entitas dan hubungan antara objek-objek tersebut (Pallaw, 2010). Diagram terdiri dari entity, relationship, dan attribute. Entity merupakan penyimpan data yang namanya dapat merepresentasikan suatu kelas atau tipe. Relationship merupakan hubungan antara entitas yang biasanya dilambangkan dengan frase kata kerja. Atribute merupakan properti atau karakteristik dari suatu entity (Bagui dan Earp, 2003). Diagram E-R dapat tersusun dari komponen-komponen seperti yang tampak pada gambar 3.17.

Gambar 3.17 Komponen diagram E-R (Pallaw, 2010)

Berikut penjelasan dari gambar 3.17.

a. Line Merupakan penghubung yang digunakan untuk menghubungkan attribute ke entity set dan penghubung antar entity.

b. Rectangle Merepresentasikan entity set.

c. Diamond

Merepresentasikan hubungan antara entity set.

d. Ellips Merepresentasikan attribute.

e. Double Line Merepresentasikan partisipasi total dari sebuah entity pada suatu hubungan.

f. Double Rectangle Merepresentasikan entity set lemah, yakni entity dimana keberadaan dari entity tersebut tergantung dari keberadaan entity lain.

g. Double Diamond Merepresentasikan bahwa pada suatu hubungan terdapat entity lemah yang terlibat.

h. Double Ellips Merepresentasikan multi valued attribute, yakni nilai dari suatu attribute yang mempunyai lebih dari satu nilai (multi value) dari attribute yang bersangkutan.

Menurut Bagui dan Earp (2003), relationship terbagi menjadi 4 tipe yaitu:

1) One-to-one: Pada relationship jenis ini, tiap satu anggota himpunan pada entity terhubung dengan satu anggota himpunan pada entity lain dan sebaliknya. Representasi dari relationship one-to-one ditunjukan pada gambar

Gambar 3.18 One-to-one (Earp dkk., 2003)

2) One-to-many: Pada relationship jenis ini, satu anggota himpunan pada entity terhubung dengan banyak anggota himpunan pada entity. Representasi dari relationship one-to-many ditunjukan pada gambar 3.19.

Gambar 3.19 One-to-many (Earp dkk., 2003)

3) Many-to-one: Pada relationship jenis ini, banyak anggota himpunan entity terhubung dengan satu anggota himpunan pada entity lain. Representasi dari relationship many-to-one ditunjukan pada gambar 3.20.

Gambar 3.20 Many-to-one (Earp dkk., 2003)

4) Many-to-many: Pada relationship jenis ini, banyak anggota himpunan pada entity dapat terhubung dengan banyak anggota himpunan pada entity lain dan sebaliknya. Representasi dari relationship many-to-many ditunjukan pada gambar 3.21.

Gambar 3.21 Many-to-many (Earp dkk., 2003)

3.7 Data Flow Diagram

Data flow diagram adalah penggambaran data process, data flow, dan data store pada suatu sistem (Kendall, 2011). Data flow diagram merupakan model proses yang digunakan untuk menggambarkan aliran data yang melalui sebuah sistem dan proses-proses yang dilakukan oleh sistem tersebut. Terdapat 4 simbol dasar yang digunakan pada data flow diagram seperti yang ditunjukkan pada gambar 3.22.

Gambar 3.22 Simbol dasar data flow diagram (Kendall, 2011)

Keterangan dari gambar 3.22 sebagai berikut: Keterangan dari gambar 3.22 sebagai berikut:

b. Data flow Data flow menunjukkan pergerakan data dari satu titik ke titik lain, dengan kepala panah menunjuk ke arah tujuan data. Arus data yang terjadi secara simultan dapat digambarkan melalui penggunaan panah paralel. Karena panah mewakili data tentang seseorang, tempat, atau hal. Data flow dinamai dengan menggunakan kata benda.