• Tidak ada hasil yang ditemukan

Aplikasi Penjadwalan Untuk Menentukan Bimbingan Kursus Dan Test Toefel Di Lembaga Pendidikan Bahasa Inggris Telstar Dengan Metode Algoritma Genetik

N/A
N/A
Protected

Academic year: 2017

Membagikan "Aplikasi Penjadwalan Untuk Menentukan Bimbingan Kursus Dan Test Toefel Di Lembaga Pendidikan Bahasa Inggris Telstar Dengan Metode Algoritma Genetik"

Copied!
151
0
0

Teks penuh

(1)

SKRIPSI

DiajukanUntukMenempuhUjianAkhirSarajana Program Strata SatuJurusanTeknikInformatika

FakultasTeknikdanIlmuKomputer UniversitasKomputerIndonesia

BARKAH NUGRAHA

10106078

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

BANDUNG

(2)

PENDIDIKAN BAHASA INGGRIS TELSTAR DENGAN

ALGORITMA GENETIK

Oleh

BARKAH NUGRAHA

10106078

Telstar adalah sebuah lembaga pendidikan bahasa Inggris yang didirikan oleh Djoko Setiadi. Saat ini dalam pembuatan jadwal bimbingan belajar masih menggunakan Microsoft Office Excel. Menentukan jadwal kegiatan belajar mengajar adalah hal yang rumit. Sama seperti yang dialami sebuah lembaga pendidikan bahasa Inggris Telstar, yang memiliki masalah terutama dalam menentukan jadwal bimbingan dan Toefl Prediction Test yang sering crash.

Algoritma genetik merupakan pendekatan komputasional untuk menyelesaikan masalah yang dimodelkan dengan pendekatan proses biologi dari evolusi seperti warisan, mutasi, seleksi alam dan rekombinasi (atau crossover). Algoritma Genetik khususnya diterapkan sebagai simulasi komputer dimana sebuah populasi representasi abstrak (disebut kromosom) dari solusi-solusi calon (disebut individual) pada sebuah masalah optimisasi akan berkembang menjadi solusi-solusi yang lebih baik. Data yang akan diolah dalam aplikasi ini adalah data tutor, data ruangan, data level, dan data hasil penjadwalan. Info yang diberikan aplikasi yaitu, data jadwal bimbingan, data ruangan, data tutor, dan data level.

Berdasarkan analisis dan pengujian yang telah dilakukan maka dapat disimpulkan bahwa aplikasi penjadwalan dengan metode algoritma genetik ini membantu dalam mengelola penjadwalan di Telstar yaitu mempercepat proses pembentukan jadwal, penambahan data, dan pembuatan laporan. Aplikasi yang telah dibangun ini agar dijadikan bahan untuk pengembangan sistem lebih lanjut Kata Kunci: Algoritma Genetika, Penjadwalan, Bimbingan Belajar, Kromosom,

(3)

EDUCATION WITH ENGLISH Telstar GENETIC ALGORITHM

by

BARKAH NUGRAHA 10106078

Telstar is an English language educational institution founded byDjoko Setiadi. Currently in the making tutoring schedule is still using Microsoft Office Excel. Determine the schedule of teaching and learning is a tricky thing. Just as experienced by an English language educational institution Telstar, who has a problem, especially in determining the schedule of guidance and Toefl Test Prediction frequent crashes.

Genetic algorithms are computational approaches to solving problems that are modeled with the approach of evolutionary biology such as inheritance, mutation, natural selection andrecombination (or crossover). Genetic algorithms applied especially as computer simulations where a population of abstract representations (called chromosomes) of candidate solutions(called individuals) in optimization problem will develop intosolutions that better. he data will be processed in this application is tutor , room, level, and scheduling results. This aplication will gives information about, namely, guidance of schedule , room, tutor , and levels.

Based on the analysis and testing has been done it can be concluded that the application scheduling with genetic algorithm method is helpful in managing the scheduling of the Telstar is accelerating the process of establishing the schedule, the addition of data, and preparing reports. These applications have been built to be used as material for further system development

(4)

iii

Alhamdulillah puji syukur penulis panjatkan kehadirat Allah SWT atas berkah, rahmat, taufiq, dan hidayah-Nya, penulis dapat menyelesaikan laporan tugas akhir (sksipsi) ini dengan baik dan lancar. Sholawat serta salam semoga tetap tercurahkan kepada junjungan kita Nabi Muhammad SAW atas petunjuk dan arahannya kepada kita semua mengantarkan manusia dari jalan yang gelap gulita menuju jalan Addinul Islam.

Laporan tugas akhir ini penulis ajukan untuk memenuhi syarat mata kuliah tugas akhir/skripsi program strata satu, jurusan teknik informatika, fakultas teknik dan ilmu komputer, Universitas Komputer Indonesia.

Adapun dalam laporan tugas akhir ini penulis melakukan penelitian tentang penjadwalan bimbingan belajar dengan judul yang diambil adalah “APLIKASI PENJADWALAN UNTUK MENENTUKAN BIMBINGAN KURSUS DAN TEST TOEFL DI LEMBAGA PENDIDIKAN BAHASA INGGRIS

TELSTAR DENGAN METODE ALGORITMA GENETIK”.

Laporan tugas akhir ini tidak akan berarti apa-apa tanpa bantuan dan dukungan semua pihak yang dengan segenap hati dan rasa tulus memberikan beberapa hal yang penulis butuhkan, untuk itu pada kesempatan ini penulis mengucapkan terima kasih kepada :

1. Allah SWT yang senantiasa melimpahkan rahmat dan karunia-Nya.

(5)

iv

3. Ibu Mira Kania Sabariah, selaku ketua jurusan teknik informatika.

4. Bapak Riani Lubis, S.T., M.T. selaku pembimbing yang selalu memberikan bimbingan, pengarahan, dan masukannya yang bermanfaat bagi penulis.

5. Bapak Deni Hermawanto selaku pembimbing dalam metode algoritma genetik, yang telah mengajarkan dan membimbing saya dalam pemahaman algoritma genetik dari nol sampai mengerti.

6. Bapak Tedi Sopyan selaku pembimbing dalam pengerjaan coding algoritma genetik..

7. Bapak dan Ibu Dosen UNIKOM, atas ilmu yang diberikan kepada penulis. 8. Seluruh kawan – kawan mesjid al-kautsar yang telah memberikan

dorongan, masukan dan telah banyak berbagi dari suka maupun duka. 9. Seluruh teman-teman di UNIKOM terutama kelas IF-2 angkatan 2006

yang senantiasa memberikan dorongan, masukan, dan telah banyak berbagi kepada penulis selama kuliah, semoga silaturahmi tetap terjaga sampai kapanpun.

Dengan rasa syukur dan kerendahan hati, penulis memberikan rasa hormat yang tak terhingga dan mengucapkan terima kasih kepada orang-orang yang telah membantu terselesaikannya pembuatan hingga terciptanya laporan tugas akhir ini.

(6)

v

untuk perbaikan dan pengembangan kedepannya penulis harapkan saran dan kritik yang membangun pembaca demi kesempurnaan tugas akhir ini.

Wassalamu’alaikum Wr. Wb.

Bandung, 4 Juli 2011

(7)

1 1.1 Latar Belakang Masalah

Teknologi informasi sekarang ini, mulai sangat dibutuhkan oleh masyarakat luas. Perkembangan teknologi sudah merambah di perusahaan perkantoran sampai ke lembaga pendidikan. Teknologi sudah menjadi kebutuhan yang wajib dipenuhi. Seiring dengan perkembangan teknologi yang ada pada saat ini, sebuah lembaga pendidikan yang khusus mempelajari bahasa Inggris yaitu, TELSTAR pun membutuhkan suatu teknologi agar mendukung proses belajar mengajar.

Telstar adalah sebuah lembaga Pendidikan bahasa Inggris yang didirikan oleh Djoko Setiadi, setelah mengelola Pendidikan Bahasa Inggris terbesar di Indonesia yakni Oxford Course Indonesia lebih dari 28 Tahun. Djoko Setiadi ingin mengembangkan sebuah lembaga pendidikan dengan program yang lebih

specific dengan metode pengajaran Bahasa Inggris yang disesuaikan dengan

kebutuhan peserta .

Menentukan jadwal kegiatan belajar mengajar adalah hal yang rumit. Sama seperti yang dialami sebuah lembaga pendidikan bahasa Inggris Telstar, yang memiliki masalah terutama dalam menentukan jadwal bimbingan dan Toefl

Prediction Test yang sering crash. Terdapat berbagai aspek yang berkaitan dalam

(8)

bimbingan dan Toefl Predcition Test yang beririsan dengan jadwal bimbingan kelas atau level lain, sehingga peserta bimbingan bisa mendapatkan materi yang diberikan oleh tutor yang menjadi pengawas dalam Toefl Predcition Test. Distribusi jadwal bimbingan juga diharapkan dapat merata tiap harinya untuk setiap kelas. Pekerjaan penjadwalan bimbingan dan Toefl Predcition Test ini akan semakin berat ketika ruangan sudah penuh, sedangkan ada kelas lain yang harus

Toefl Predcition Test atau bimbingan belajar.

Selain dilihat dari sisi peserta, juga harus dilihat dari sisi tutor, yaitu kemungkinan-kemungkinan tutor akan mengampu lebih dari satu kelas atau level yang ada, sebab ada kemungkinan jumlah kelas atau level dan jumlah tutor tidak sebanding, sehingga harus dipikirkan juga solusi agar tutor tidak mengampu dua kelas atau level berbeda pada hari dan jam yang sama. Selain itu, harus dipertimbangkan juga ketersediaan kelas sehingga kegiatan belajar dapat dilaksanakan. Di samping aspek-aspek di atas, dalam penyusunan jadwal bimbingan dan Toefl Predcition Test ini pun terdapat sangat banyak kemungkinan yang selayaknya dicoba untuk menemukan penjadwalan yang terbaik. Karena itu dibutuhkan metode optimasi yang dapat diterapkan untuk mengerjakan penjadwalan bimbingan dan Toefl Predcition Test ini. Salah satu metode yang dapat digunakan untuk menyelesaikan permasalahan tersebut adalah dengan menggunakan pendekatan algoritma genetik.

(9)

Algoritma Genetik khususnya diterapkan sebagai simulasi komputer dimana sebuah populasi representasi abstrak (disebut kromosom) dari solusi-solusi calon (disebut individual) pada sebuah masalah optimisasi akan berkembang menjadi solusi-solusi yang lebih baik. Secara tradisional, solusi-solusi dilambangkan dalam biner sebagai string '0' dan '1', walaupun dimungkinkan juga penggunaan penyandian (encoding) yang berbeda. Evolusi dimulai dari sebuah populasi individual acak yang lengkap dan terjadi dalam generasi-generasi. Dalam tiap generasi, kemampuan keseluruhan populasi dievaluasi, kemudian multiple individuals dipilih dari populasi sekarang (current) tersebut secara stochastic

(berdasarkan kemampuan mereka), lalu dimodifikasi (melalui mutasi atau rekombinasi) menjadi bentuk populasi baru yang menjadi populasi sekarang (current) pada iterasi berikutnya dari algoritma.

Diharapkan dengan digunakannya algoritma genetik akan diperoleh optimasi penjadwalan yaitu kondisi dimana terjadi kombinasi terbaik untuk pasangan kelas atau level dan tutor secara keseluruhan, tidak ada permasalahan bentrokan jadwal pada sisi peserta, serta ketersediaan ruang yang cukup dan sesuai secara fasilitas untuk seluruh kelas atau level yang ada.

Berdasarkan hal diatas akan dijelaskan bahwa dengan bantuan algoritma genetik penyusunan penjadwalan bimbingan dan tes toefl dapat dioptimalkan. Program dapat mencari solusi penjadwalan pada waktu yang dapatdigunakan baik oleh tutor, kelas atau level maupun ruangan yang terlibat dalam suatu bimbingan.

(10)

Aplikasi Penjadwalan untuk Menentukan Bimbingan Kursus dan Test Toefl

di Lembaga Pendidikan Bahasa Inggris Telstar dengan Algoritma Genetik “.

1.2 Rumusan Masalah

Berdasarkan latar belakang masalah, disusun perumusan permasalahan yaitu bagaimana membangun aplikasi penjadwalan untuk menentukan bimbingan kursus dan tes toefl di lembaga pendidikan bahasa Inggris Telstar dengan algoritma genetik sehingga diperoleh kombinasi terbaik untuk pasangan kelas atau level dan tutor secara keseluruhan, tidak ada permasalahan crash jadwal pada sisi tutor, serta ketersediaan ruang yang cukup dan sesuai secara fasilitas untuk seluruh bimbingan belajar yang ada.

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas akhir ini adalah untuk membangun aplikasi penjadwalan untuk menentukan jadwal bimbingan kursus dan test toefl di lembaga pendidikan bahasa Inggris Telstar dengan algoritma genetik.

Sedangkan tujuan yang akan dicapai dalam pembuatan perangkat lunak ini adalah :

1. Mempermudah penentuan jadwal bimbingan belajar dan tes toefl dengan menggunakan algoritma genetik.

(11)

1.4 Batasan Masalah

Dilihat dari latar belakang dapat dirumuskan beberapa batasan masalah pada proses penjadwalan bimbingan dan test toefl. Adapun batasan masalah tersebut adalah:

1. Pemodelan menggunakan Diagram Konteks, Skema Relasi, DFD, ERD.

2. Metode yang digunakan Algoritma Genetik.

3. Data yang akan diolah dalam aplikasi ini, yaitu data tutor, data ruangan, data level dan data hasil penjadwalan.

4. Proses yang terdapat dalam aplikasi ini adalah dan pengolahan data pengguna aplikasi yang berupa prosedur tambah, edit, hapus, dan pengolahan data jadwal bimbingan dan tes toefl.

5. Info yang diberikan aplikasi, yaitu : a) Data jadwal bimbingan dan tes toefl. b) Data ruangan, tutor, level.

6. Software yang dugunakan untuk aplikasi ini adalah bahasa

pemrograman Borland Delphi.

7. Sistem opresai yang digunakan adalah Windows XP SP2.

(12)

1.5 Metodologi Penelitian

Metode yang digunakan pada penelitian ini adalah metode deskriptif yaitu dengan cara mengumpulkan data, menganalisa data, membuat suatu pemecahan masalah dan kemudian disusun untuk ditarik kesimpulan mengenai masalah tersebut. Ada dua teknik yang dilakukan di dalam metodologi penelitian yaitu teknik pengumpulan data dan teknik pengembangan perangkat lunak.

1.5.1 Teknik Pengumpulan Data

Teknik pengumpulan data dapat diperoleh secara langsung dari objek penelitian dan referensi-referensi yang telah diperoleh. Cara-cara yang mendukung untuk mendapatkan data adalah sebagai berikut:

1. Studi lapangan yang terdiri dari :

Studi lapangan adalah pengumpulan data yang dilakukan dengan cara mengadakan penelitian langsung ke lembaga pendidikan bahasa Inggris Telstar. Studi lapangan ini dilakukan dengan 2 cara, yaitu:

a Observasi, yaitu mengamati secara langsung proses kerja yang dilaksanakan di lembaga pendidikan bahasa Inggris Telstar untuk memperoleh gambaran yang jelas mengenai objek yang diteliti. Syarat melakukan observasi yaitu:

1) Pengamatan harus dilakukan secara sistematis,

(13)

b Wawancara, yaitu melakukan tanya jawab secara langsung dengan pihak yang berwenang di lembaga pendidikan bahasa Inggris Telstar dalam memberikan keterangan terhadap data yang dibutuhkan.

2. Studi literatur yang dilakukan dengan mencari data atau teori yang berhubungan dengan permasalahan yang sedang dihadapi baik melalui buku-buku ataupun dari internet.

1.5.2 Tahap pembuatan perangkat lunak.

Teknik analisis data dalam pembuatan perangkat lunak menggunakan paradigma perangkat lunak secara waterfall, yang meliputi beberapa proses diantaranya:

Rekayasa dan Pemodelan

Analisis

Desain

Pembangkitan Kode

Pengujian

Pemeliharaan

Gambar 1.1 Waterfall

1. Rekayasa dan Permodelan

(14)

semua elemen yang diperlukan sistem dan mengalokasikannya kedalam pembentukan perangkat lunak.

2. Analisis

Merupakan tahap menganalisis hal-hal yang diperlukan dalam pelaksanaan proyek pembuatan perangkat lunak.

3. Desain

Tahap penerjemahan dari data yang dianalisis kedalam bentuk yang mudah dimengerti oleh user.

4. Pembangkitan kode

Tahap penerjemahan data atau pemecahan masalah yang telah dirancang keadalam bahasa pemrograman tertentu.

5. pengujian

Tahap dimana perangkat lunak yang telah dibangun, diuji untuk mengetahui kekurangan atau ada kerusakan dalam aplikasinya.

6. pemeliharaan

Tahap akhir dimana suatu perangkat lunak yang sudah selesai dapat mengalami perubahan–perubahan atau penambahan sesuai dengan permintaan user.

1.6 Sistematika Penulisan

BAB I PENDAHULUAN

(15)

perangkat lunak, menjelaskan metodologi penyusunan laporan, pembatasan masalah, serta sistematika penulisan.

BAB II. TINJAUAN PUSTAKA

Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik pembangunan perangkat lunak yang dilakukan dan hal-hal yang berguna dalam proses analisis dan perancangan.

BAB III. ANALISIS DAN PERANCANGAN

Menganalisis hal-hal yang diperlukan dalam pelaksanaan proyek pembuatan perangkat lunak, serta merancang seluruh kebutuhan dalam pembangunan perangkat lunak.

BAB IV. IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi hasil implementasi dari hasil analisis dan perancangan yang telah dibuat disertai juga dengan hasil pengujian dari aplikasi ini yang dilakukan di Lembaga Pendidikan Bahasa Inggris Telstar.

BAB V. KESIMPULAN DAN SARAN

(16)

10 2.1 Profil Telstar Bandung

2.1.1 Sejarah singkat Telstar

Sekitar sembilan tahun yang lalu tepatnya tanggal 14 Agustus 2001 sebuah lembaga pendidikan Bahasa Inggris TELSTAR Lahir, Djoko Setiadi adalah pendiri lembaga tersebut. Setelah mengelola Pendidikan Bahasa Inggris terbesar di Indonesia yakni Oxford Course Indonesia lebih dari 28 Tahun. Djoko Setiadi ingin mengembangkan sebuah lembaga pendidikan dengan program yang lebih spesifik dengan metode pengajaran Bahasa Inggris yang disesuaikan dengan kebutuhan peserta.

Dengan didukung oleh beberapa rekan-rekan yang berpengalaman tentang pengajaran Bahasa Inggris dan Ahli di bidang pengembangan kurikulum dari dalam negeri dan luar negeri, maka tekat untuk mewujudkan lembaga tersebut lahirlah nama TELSTAR. Singkatan dari The English Language Skill Training

And Refreshing yang bermakna bahwa meningkatkan kemampuan berbahasa

(17)

2.1.2 Logo Telstar dan Struktur Organisasi

Serperti halnya lembaga lain, Telstar pun memiliki logo yang ditunjukan pada gambar 2.1 dan pada gambar 2.2 struktur organisasi di lembaga pendidikan bahasa inggris Telstar :

Gambar 2.1 Logo Telstar

Gambar 2.2 Struktur Organisasi

Manager Distrik

Manager Personalia

Manager

Peendidikan Manager Humas Bendahara

Pimpinan Cabang

Staf Administrasi

Staf Pengajar Direktur Utama

(18)

2.1.3 Job description

Adapun tugas dari setiap bagian di lembaga pendidikan Telstar adalah sebagai berikut :

1. Direktur Utama

Tugasnya adalah mengkoordinasikan serta mengawasi semua pekerjaan yang dilaksanakan oleh pafra manager yang dilaksanakan oleh Manager Distrik ( Kepala Wilayah ). Koordinasi dan pengawasan ini bertujuan untuk memonitor sejauh mana perkembangan dan kemajuan yang telah di capai dari program program yang telah dicanangkan sebelumnya. Selain itu Direktur Utama juga memimpin rapat tahunan ( annual meeting ) para manager distrik dan pimpinan cabang.

2. Direktur Keuangan

Bertugas mengkoordinasikan serta mengawasi arus masuk dan arus keluar uang perusahaan dan juga memonitor pendapatan dan pengeluaran setiap cabang berdasarkan laporan keuangan yang dikirimkan oleh para bendahara setiap bulan. Dalam pelaksanaan kerjanya Direktur keuangan dibantu oleh beberapa tenaga keuangan yang bekerja dengan system komputisasi.

3. Manager Personalia

(19)

pegawai, standar gaji, penerimaan pegawai, serta pengadaan program latihan ( training programme ) bagi para pegawai baru.

4. Manajer Humas

Peran yang dimainkan oleh seorang kepala hubungan masyarakat dalam suatu perusahaan amat vital karena ia tidak hanya melakukan hubungan ke luar tetapi juga hubungan ke dalam perusahaan. Sama halnya dengan peran yang dimainkan oleh manajer hubungan masyarakat Telstar.

5. Manajer Pendidikan

Berwenang dalam penyusunan materi-materi pendidikan untuk membuat buku-buku panduan bagi para siswa. Selain itu juga berwenang dalam penyempurnaan kerikulum pendidikan dalam penyusunan materi-materi pendidikan tersebut. Beberapa staf khususnya para tenaga pengajar tetap Telstar membantu manajer pendidikan ini. Biasanya materi pendidikan yang telah disusun dievaluasi atau ditinjau kembali setiap setahun sekali agar seluruh materi tersebut tetap sesuai degan perkembangan zaman dan kebutuhan para peserta pendidikan Telstar.

6. Manajer Distrik

(20)

tetap dan seorang bendahara. Manajer distrik berwenang untuk menerima pegawai baru apabila memang diperlukan baik tenaga kependidikan maupun sebagai administrasi.

7. Bendahara

Tugasnya adalah wajib memberikan laporan keuangan harian kepada direktur keuangan untuk dibuat menjadi laporan keuangan mingguan dan bulanan.

8. Pimpinan cabang

Bertugas dalam membantu para tutor dalam melaksanakan kurikulum yang telah ditetapkan oleh Telstar pusat serta melakukan pemeriksaaan hasil ujian para peserta kursus yang diselenggarakan oleh Telstar.

2.2 Landasan Teori

2.2.1 Pengertian Algoritma Genetik

Algoritma genetika merupakan algoritma heuristik atau pendekatan yang menerapkan proses seleksi alam dan evolusi yang dikemukakan oleh Charles Darwin. Algoritma genetik pertama kali diperkenalkan oleh John Holland pada tahun 1960-an dan pengembangan lebih lanjut dilakukan oleh Holland bersama murid-murid dan rekan sekerjanya di Universitas Michigan pada tahun 1960-an dan 1970-an.

(21)

Solusi terpilih yang merupakan orangtua pembentuk keturunan (offspring), dipilih berdasarkan lingkungannya atau nilai fitness, semakin baik maka semakin besar kesempatan yang dimiliki untuk bertahan dan bereproduksi. Hal ini dilakukan berulang kali hingga memenuhi beberapa kondisi penghentian, misalnya jumlah generasi atau tercapainya hasil yang dicari.

2.2.2 Prosedur Algoritma Genetik

Sifat dari algoritma genetika adalah mencari kemungkinan-kemungkinan dari kandidat solusi untuk mendapatkan suatu solusi yang optimal bagi penyelesaian masalah. Ruang cakupan dari semua solusi yang layak (feasible) yaitu obyek-obyek diantara solusi yang sesuai dinamakan ruang pencarian (search space). Tiap titik dalam ruang pencarian merepresentasikan satu solusi yang layak yang dapat ditandai dengan nilai fitness yang sesuai dengan masalah. Solusi yang dicari dalam algoritma genetika adalah titik (1 atau lebih) di antara solusi yang layak dalam ruang pencarian. Sifat dari pencarian inilah yang menyebabkan algoritma genetika baik diterapkan untuk menyelesaikan masalah NP-complete.

(22)

terhadap barisan-barisan lain. Fitness suatu barisan selalu didefinisikan berdasarkan anggota-anggota lain dalam populasi. Secara umum fitness didefinisikan fi/f dengan fi adalah fungsi evaluasi dengan kromsom i dan f adalah evaluasi rata-rata dari semua kromosom dalam populasi.

Secara sederhana, algoritma umum dari algoritma genetik ini dapat dirumuskan menjadi beberapa langkah, yaitu:

1. [Mulai] Membangun populasi random sebanyak n kromosom (sesuai dengan masalahnya)

2. [Fitness] Evaluasi setiap fitness f(x) dari setiap kromosom x pada populasi 3. [Populasi baru] Membuat populasi baru dengan mengulang langkah-langkah

berikut sampai populasi lengkap.

1. [Seleksi] Pilih 2 kromosom orangtua dari populasi berdasarkan fitnessnya (semakin besar fitnessnya semakin besar kemungkinannya untuk terpilih)

2. [Perkawinan silang] Sesuai dengan besarnya kemungkinan perkawinan silang, orangtua terpilih disilangkan untuk membentuk anak. Jika tidak ada perkawinan silang, maka anak merupakan salinan dari orangtuanya.

3. [Mutasi] Sesuai dengan besarnya kemungkinan mutasi, anak dimutasi pada setiap lokus (posisi pada kromosom).

4. [Penerimaan] Tempatkan anak baru pada populasi baru.

(23)

5. [Tes] Jika kondisi akhir terpenuhi, berhenti, dan hasilnya adalah solusi terbaik dari populasi saat itu.

6. [Ulangi] Ke nomer 2.

2.2.2.1Pengkodean

Pengkodean adalah cara untuk merepresentasikan masalah kedalam bentuk kromosom. Ada beberapa cara pengkodean dan pemilihannya tergantung dari masalah yang akan diselesaikan. Berikut ini adalah beberapa jenis pengkodean yang sering digunakan.

2.2.2.1.1 Pengkodean biner (binary encoding)

Pengkodean biner adalah pengkodean yang paling umum digunakan karena algoritma genetika awalnya menggunakan pengkodean ini. Pada pengkodean biner setiap kromosom merupakan barisan bit 0 atau 1, seperti dapat dilihat pada gambar berikut ini :

Tabel 2.1 contoh kromosom dengan pengkodean biner

Kromosom A 101100101100101011100101 Kromosom B 111111100000110000011111

(24)

Contoh masalah yang sesuai menggunakan pengkodean biner adalah masalah ransel (knapsack), dimana terdapat beberapa jenis benda dengan ukuran dan berat yang berbeda sedangkan kapasitas ransel terbatas. Permasalahannya adalah memilih sejumlah barang untuk memaksimumkan nilai dari barang-barang tersebut di dalam ransel, tetapi total ukuran barang-barang tersebut tidak melebihi dari ukuran ransel itu sendiri. Masalah ransel ini dapat dienkodekan dengan barisan bit, dimana jumlah bit menyatakan jumlah barang yang ada, sehingga setiap bit berhubungan dengan setiap benda yang ada di dalam ransel. Bit 1 berarti benda ada di dalam ransel sedangkan 0 berarti benda tidak berada di dalam ransel.

2.2.2.1.2 Pengkodean permutasi (permutation encoding)

Pengkodean permutasi digunakan dalam masalah yang memerlukan pengurutan data (ordering problem), seperti masalah wiraniaga (travelling salesman problem), atau masalah pengurutan tugas (task ordering problem). Pada pengkodean ini setiap kromosom merupakan barisan angka yang merepresentasikan angka pada urutan.

Tabel 2.2 Contoh kromosom dengan pengkodean permutasi

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

(25)

Contoh masalah yang dapat diselesaikan dengan pengkodean ini adalah masalah wiraniaga. Terdapat sejumlah kota dan jarak diantara semua kota itu. Seorang wiraniaga harus mengunjungi semua kota itu, tetapi sebisa mungkin dia tidak perlu melakukan terlalu banyak perjalanan, sehingga harus ditemukan urutan kota yang akan dikunjungi dengan jumlah total jarak yang minimal. Masalah ini dapat dienkodekan dengan pengkodean permutasi dimana setiap angka dalam kromosom mewakili setiap kota yang harus dikunjungi dalam urutan.

2.2.2.1.3 Pengkodean nilai (value encoding)

Pengkodean nilai dapat digunakan pada masalah yang mempunyai nilai yang rumit, dimana nilai yang dienkodekan langsung merupakan representasi dari masalah. Contohnya adalah pengkodean data yang menggunakan angka riil yang akan menjadi susah jika menggunakan pengkodean biner karena setiap angka riil tidak dapat direpresentasikan secara tepat hanya dalam bentuk bit 1 atau 0.

Tabel 2.3 Contoh kromosom dengan pengkodean nilai

Kromosom A 1.2324, 5.3243, 0.4556, 2.3293, 2.4545 Kromosom B A, B, D, J, E, I, F, J, D, H, D, I, E, R, J Kromosom C (back), (back), (right), (forward), (left)

Dalam pengkodean nilai, setiap kromosom merupakan barisan dari beberapa nilai. Nilai bisa berupa apa saja, seperti bilangan biasa, bilangan riil, karakter sampai dengan obyek-obyek yang rumit.

(26)

Contoh masalah yang menggunakan pengkodean ini adalah masalah pencarian bobot pada jaringan saraf (neural network). Terdapat sebuah jaringan saraf dengan arsitekturnya. Permasalahnya adalah mencari bobot masukan dari neuron-neuron untuk melatih jaringan supaya memberikan keluaran yang diinginkan. Masalah ini dapat dienkodekan menggunakan pengkodean nilai bilangan riil, dengan gen-gen dalam genome menyatakan korespondensi bobot-bobot pada masukan untuk jaringan saraf.

2.2.2.1.4 Pengkodean pohon (tree encoding)

Pengkodean pohon lebih banyak digunakan untuk menyusun program atau ekspresi, bagi pemrograman genetika (genetic programming).

Dalam pengkodean pohon, setiap kromosom merupakan pohon dari sejumlah obyek, seperti fungsi atau perintah di dalam bahasa pemrograman. Pengkodean pohon sangat baik bagi penyusunan program. Bahasa pemrograman LISP sering digunakan untuk melakukan pengkodean pohon, karena program di dalamnya dapat direpresentasikan ke dalam bentuk ini dan dapat dengan mudah dilakukan parse menjadi sebuah pohon, sehingga perkawinan silang dan mutasi dapat dilakukan relatif lebih mudah.

(27)

untuk semua masukan. Masalah ini dapat dienkodekan ke dalam pengkodean pohon dengan kromosom merupakan fungsi-fungsi yang dinyatakan dalam pohon.

2.2.3 Operator dalam Algoritma Genetika

Operator-operator pada algoritma genetika yang sering digunakan adalah seleksi, perkawinan silang dan mutasi. Semua operator tersebut memegang peranan penting bagi keberhasilan algoritma genetika dalam menyelesaikan masalah.

Pemilihan jenis operator yang akan digunakan tergantung dari masalah yang akan diselesaikan. Hal yang harus diperhatikan adalah menghindari terjadinya konvergensi prematur, yaitu mencapai solusi optimum yang belum waktunya, dalam arti bahwa solusi yang diperoleh adalah solusi optimum lokal. Selain itu, untuk menjamin bahwa seluruh ruang pencarian dapat dijangkau oleh alogritma genetika, perbedaan (diversity) diantara kromosom dalam populasi merupakan hal yang penting.

2.2.3.1Seleksi

(28)

keturunan baru. Ada beberapa jenis metode seleksi, berikut ini adalah beberapa metode seleksi yang sering digunakan.

2.2.3.1.1 Seleksi roda roulette (roulette wheel selection)

Pada metode seleksi ini, orangtua dipilih berdasarkan nilai fitnessnya, semakin baik nilai fitnessnya maka semakin besar kemungkinannya untuk terpilih.

Diandaikan semua kromosom diletakkan pada sebuah roda roulette, besarnya

kemungkinan bagi setiap kromosom adalah tergantung dari nilai fitnessnya seperti pada contoh berikut :

Tabel 2.4 Contoh populasi dengan 5 kromosom beserta fitnessnya

Kromosom Fitness

A 15

B 5

C 10

D 5

E 5

Gambar 2.3 Probabilitas terpilihnya suatu kromosom dalam roda roulette

(29)

kromosom A memiliki probabilitas 37,5% untuk terpilih sebagai orangtua pembentuk keturunan baru pada setiap pemilihan kromosom (setiap roda diputar).

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 fitnessnya, maka akan terjadi semacam

tradeoff antara ekplorasi dan ekplotasi 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.2.3.1.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.

(30)

yang memiliki fitness terbaik akan memiliki nilai fitness N, dimana N adalah jumlah kromosom di dalam populasi.

Sebagai ilustrasi dapat dilihat pada gambar berikut yang juga merupakan contoh dari metode seleksi roda roulette tadi :

Tabel 2.5 Keadaan sebelum dirangking

Kromosom Fitness

A 15

B 5

C 10

D 5

E 5

Tabel 2.6 Keadaan setelah dirangking

Kromosom Fitness Fitness Baru

B 5 1

D 5 2

E 5 3

C 10 4

A 15 5

Setelah proses pengurutan dan pemberian nilai fitness baru, setiap kromosom akan memiliki kesempatan yang lebih adil untuk terpilih. Tetapi metode ini dapat

menyebabkan konvergensi menjadi lambat, karena kromosom terbaik tidak terlalu

berbeda dengan yang lainnya.

2.2.3.1.3 Seleksi turnamen (tournament selection)

(31)

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.

Untuk k = 1, seleksi turnamen akan menjadi sama dengan seleksi secara acak karena hanya melibatkan satu kromosom. Untuk k = 2, maka akan dipilih dua kromosom dari populasi secara acak, kemudian akan dipilih salah satu berdasarkan nilai fitnessnya. Biasanya yang sering digunakan adalah k = 2, tergantung dari jumlah kromosom yang tedapat di dalam populasi.

2.2.3.2 Perkawinan silang

Operator perkawinan silang digunakan untuk membentuk keturunan baru berdasarkan orangtua terpilih. Operator ini paling dominan dalam algoritma genetika dibandingkan dengan operator mutasi. Jumlah kromosom yang terlibat adalah 2 kromosom.

(32)

2.2.3.2.1 Perkawinan silang untuk pengkodean biner

Pengkodean biner merupakan jenis pengkodean yang paling sederhana

sehingga banyak variasi operasi perkawinan silang dapat dilakukan. Beberapa jenis perkawinan silang tersebut adalah :

2.2.3.2.1.1Perkawinan silang 1-titik

Proses perkawinan silang 1-titik dimulai dengan pemilihan 1 titik pada

barisan bit kromosom secara acak sebagai titik perkawinan silang. Kromosom baru

akan dibentuk dengan cara menyalin barisan bit orangtua pertama dari bit pertama sampai titik perkawinan silang, sedangkan sisanya disalin dari orangtua kedua.

Tabel 2.7 Contoh perkawinan silang 1-titik pada pengkodean biner

Kromosom orangtua 1 11001011 Kromosom orangtua 2 11011111

Keturunan 11001111

2.2.3.2.1.2Perkawinan silang 2-titik

(33)

Tabel 2.8 Contoh perkawinan silang 2-titik pada pengkodean biner

Kromosom orangtua 1 11001011 Kromosom orangtua 2 11011111

Keturunan 11011111

2.2.3.2.1.3Perkawinan silang seragam

Perkawinan silang seragam menghasilkan kromosom baru dengan cara menyalin bit-bit secara acak dari kedua orangtuanya.

Tabel 2.9 Contoh perkawinan silang seragam pada pengkodean biner

Kromosom orangtua 1 11001011 Kromosom orangtua 2 11011111

Keturunan 11011111

2.2.3.2.1.4 Perkawinan silang aritmatik

Kromosom baru dihasilkan dari operasi aritmatika yang dilakukan terhadap kedua orangtuanya.

Tabel 2.10 Contoh perkawinan silang aritmatika pada pengkodean biner

Kromosom orangtua 1 11001011 Kromosom orangtua 2 11011111 Keturunan (AND) 11001011

2.2.3.2.1.5Perkawinan silang rekombinasi

Versi paling sederhana dari rekombinasi adalah memilih secara acak dari semua nilai gen yang terdapat pada kedua orangtua untuk setiap gen pada anak.

Berikut adalah contoh dari perkawinan silang rekombinasi:

Tabel 2.11 Contoh perkawinan silang rekombinasi pada pengkodean biner

(34)

2.2.3.2.2 Perkawinan silang untuk pengkodean permutasi

Pada pengkodean permutasi, jenis perkawinan silang yang sering dipergunakan adalah perkawinan silang 1-titik karena kesederhanaan prosesnya dapat menjaga konsistensi urutan nilai pada kromosom. Jenis perkawinan silang yang terdapat pada pengkodean biner tidak dapat dipergunakan pada pengkodean ini karena tidak dapat menjamin terjaganya konsistensi urutan nilai pada kromosom.

Proses perkawinan silang 1-titik dimulai dengan pemilihan satu titik perkawinan silang. Dari permutasi pertama sampai dengan titik perkawinan silang disalin dari orang tua pertama, sedangkan sisanya didapatkan dengan cara melihat satu persatu nilai pada orang tua kedua, jika belum ada pada kromosom keturunan, maka nilai tersebut ditambahkan.

Tabel 2.12 Contoh perkawinan silang 1-titik pada pengkodean permutasi

Kromosom orangtua 1 1 2 3 4 5 6 7 8 9 Kromosom orangtua 2 4 5 3 6 8 9 7 2 1 Keturunan (AND) 1 2 3 4 5 6 8 7 9

2.2.3.2.3 Perkawinan silang untuk pengkodean nilai

Semua metode perkawinan silang yang terdapat pada pengkodean biner dapat diterapkan pada pengkodean nilai karena tidak perlu memperhatikan urutan seperti ada pengkodean permutasi. Berikut adalah contoh perkawinan silang pada pengkodean nilai:

Tabel 2.13 Contoh perkawinan silang 1-titik pada pengkodean nilai bilangan bulat

(35)

Tabel 2.14 Contoh perkawinan silang 2-titik pada pengkodean nilai bilangan bulat

Kromosom orangtua 1 10 39 45 12 89 34 1 3 90 48 23 72 25 37 Kromosom orangtua 2 43 13 2 66 49 56 10 89 53 20 75 99 4 8 Keturunan 10 39 45 66 49 56 10 89 90 48 23 72 25 37

2.2.3.2.4 Perkawinan silang untuk pengkodean pohon

Proses perkawinan silang pada pengkodean pohon dimulai dengan pemilihan satu titik perkawinan silang pada kedua orangtua, kemudian bagian dari orangtua

yang berada di bawah titik perkawinan silang dipertukarkan untuk menghasilkan anak

baru.

(36)

2.2.3.3Mutasi

Mutasi merupakan proses mengubah nilai dari 1 atau beberapa gen dalam suatu kromosom. Tujuannya adalah untuk membantu mempercepat terjadinya perbedaan diantara semua kromosom dalam populasi sehingga pencarian dapat menjelajah keseluruh ruang pencarian, tetapi mutasi tidak boleh terlalu sering dilakukan karena akan membuat algoritma genetika berubah menjadi pencarian acak.

Proses mutasi dalam biologi adalah mengubah isi allele gen pada suatu locus dengan nilai allele yang lain. Proses mutasi dilakukan secara acak, sehingga tidak selalu menjamin bahwa setelah proses mutasi akan diperoleh kromosom dengan fitness yang lebih baik dibandingkan dengan sebelum mutasi. Oleh karena itu terjadi kontraversi dalam penerapannya pada algoritma genetika. Mutasi seringkali tetap dipergunakan hanya saja dengan probabilitas mutasi yang kecil. Tentang probabilitas perkawinan silang dan mutasi akan dijelaskan pada bagian berikut pada bab ini.

(37)

2.2.3.3.1 Mutasi pada pengkodean biner

Mutasi dalam pengkodean biner merupakan operasi yang sangat sederhana. Bit pada kromosom yang terpilih secara acak (atau menggunakan skema tertentu) diinversi nilainya, diubah nilainya menjadi lawannya.

Tabel 2.15 Contoh mutasi pada pengkodean biner

Kromosom sebelum mutasi 1 0 0 1 0 1 1 1 Kromosom sesudah mutasi 1 0 0 1 0 0 1 1

2.2.3.3.2 Mutasi pada pengkodean permutasi

Proses mutasi pada pengkodean biner tidak dapat diterapkan pada pengkodean permutasi karena konsistensi urutan permutasi harus selalu diperhatikan. Salah satu cara yang dapat dilakukan adalah dengan memilih dua posisi (locus) pada kromosom dan kemudian saling dipertukarkan

Tabel 2.16 Contoh mutasi pada pengkodean permutasi

Kromosom sebelum mutasi 1 2 3 4 5 6 8 9 7 Kromosom sesudah mutasi 1 8 3 4 5 6 2 9 7

2.2.3.3.3 Mutasi pada pengkodean nilai

(38)

sembarang posisi gen pada kromosom, kemudian ditambahkan atau dikurangkan dengan suatu nilai kecil tertentu yang diambil secara acak. Cara ini juga berlaku pengkodean dengan bilangan bulat. Selain itu cara mutasi lain yang relevan dapat digunakan.

Tabel 2.17 Contoh mutasi pada pengkodean nilai riil dengan nilai yang ditambahkan atau dikurangkan dengan 0,10

Kromosom sebelum mutasi 1,43 1,09 4,51 9,11 6,94 Kromosom sesudah mutasi 1,43 1,19 4,51 9,01 6,94

2.2.3.3.4 Mutasi pada pengkodean pohon

Mutasi dapat dilakukan antara lain dengan mengubah operator (+, -, *, /) atau

nilai yang terkandung pada suatu verteks pohon yang dipilih. Atau dapat juga

dilakukan pemilihan dua verteks dari pohon dan saling mempertukarkan operator atau nilainya.

2.2.4 Update Generasi

(39)

Selain itu terdapat skema update secra kontinu (continuous update) yang mengizinkan orangtua dan anak untuk bercampur dalam satu generasi. Mulanya dipilih k orangtua secara acak, kemudian dibuat anak sebanyak k dengan memilih orangtua tersebut secara seragam. Kromosom pada populasi baru merupakan pemilihan kromosom antara orangtua terpilih dan anak yang dihasilkan berdasarkan fitnessnya. Dengan cara ini penekanan selektif berasal seluruhnya dari pemilihan terhadap yang bertahan hidup (survivor).

Skema update lainnya adalah steady-state update, dimana dilakukan pemilihan dua orangtua dari populasi yang kemudian digunakan untuk membentuk 1 (atau 2) anak. Hasilnya digunakan untuk menggantikan :

1. Orangtuanya

2. Kromosom terjelek dalam populasi 3. Kromosom tertua dalam populasi

(40)

2.2.5 Parameter dalam Algoritma Genetika

Dua parameter dasar yang penting dari algoritma genetika adalah probabilitas

perkawinan silang dan probabilitas mutasi.

Probabilitas perkawinan silang menyatakan seberapa sering proses perkawinan

silang akan terjadi diantara 2 kromosom orangtua. Jika tidak terjadi perkawinan

silang, keturunan merupakan salinan mutlak dari orangtuanya. Jika terjadi perkawinan

silang, keturunan dibuat dari bagian-bagian kromosom orangtua. Jika probabilitas perkawinan silang 100%, maka keseluruhan keturunan dibuat dengan perkawinan

silang. Jika probabilitas perkawinan silang 0%, maka seluruh generasi baru dibuat

dari salinan kromosom-kromosom dari populasi lama, tetapi ini tidak berarti bahwa generasi baru sama dengan yang lama karena adanya penekanan selektif. Meskipun

perkawinan silang bertujuan untuk mendapatkan kromosom yang memiliki bagian

baik dari orangtuanya atau bahkan menjadi lebih baik dari orangtuanya, ada baiknya juga jika kita membiarkan beberapa bagian dari populasi untuk bertahan ke generasi

berikutnya.

Dari hasil penelitian yang sudah dilakukan oleh praktisi algoritma genetika terbukti bahwa angka probabilitas perkawinan silang sebaiknya cukup tinggi, yaitu antara 80% sampai 95% untuk memberikan hasil yang baik. Untuk beberapa masalah tertentu probabilitas perkawinan silang 60% memeberikan hasil yang lebih baik (Obitko, 1998).

(41)

probabilitas mutasi 0%, tidak ada yang diubah. Probabilitas mutasi dalan algoritma genetika seharusnya diberi nilai yang kecil. Umumnya probabilitas mutasi diset untuk mendapatkan rata-rata satu mutasi per kromosom, yaitu angka/ allele = 1/ (panjang kromosom). Dari hasil yang sudah pernah dicoba ternyata angka probabilitas terbaik adalah antara 0,5% sampai 1%. Mutasi diperlukan untuk menjaga perbedaan kromosom dalam populasi, untuk menghindari terjadinya konvergensi prematur.

(42)

Penekanan selektif dilakukan dengan memilih jenis seleksi yang sesuai. Umumnya jenis seleksi roda roulette sering digunakan, tetapi kadang seleksi rangking dilaporkan lebih baik. Terdapat juga beberapa metode lebih lanjut yang dapat mengubah parameter seleksi yang digunakan selama ekseskusi algoritma genetika. Prinsip elitism disarankan untuk digunakan jika tidak digunakan metode lain untuk menyimpan solusi terbaik pada suatu populasi ke populasi berikutnya. Sebaikya juga dicoba seleksi steady state untuk proses update populasi.

(43)

2.2.6 Pengenalan Delphi

Delphi merupaka salah satu bahasa pemrograman tingkat tinggi erbasis

Windows. Delphi digolongkan ke dalam bahasa pemrograman visual yang menitik

beratkan pada pemrograman berorientasi objek object oriented programming. Delphi dikembangkan menggunakan bahsa pascal. Aplikasi merupakan penerapan, pengimplementasian suatu permasalahan pekerjaan ke dalam suatu sarana atau media yang dapat digunakan untuk menerapkan permasalahan tersebut, sehingga menjadi suatu bentuk program tanpa menghilangkan nilai-nilai dasar dari permasalahan yang ada. Aplikasi dapat dibedakan menjadi dua yaitu Aplikasi Windows dan Aplikasi Konsol. Aplikasi Windows adalah aplikasi yang berjalan pada Windows. Aplikasi non-Windows contohnya yang berjalan pada DOS yang biasa disebut aplikasi Konsol.

Secara umum, sebuah aplikasi paling sedikit melibatkan sebuah form.

Namun biasabya sebuah aplikasi melibatkan banyak form. Sebuah form umumnya melibatkan komponen lain kotak Combo Box dan Tombol Radio Button

merupakan contoh komponen tersebut. Tetapi tidak semua komponen terlihat secara visual, komponen yang terlihat sevara visual biasa disebut dengan kontrol pada Delphi. Sebuah aplikasi akan diletakkan pada sebuah Project. Sebuah

project dapat membawahi beberapa form. Form merupakan inti dari sebuah

(44)

2.2.6.1Keunggulan Delphi

1. IDE (Integrated Development Environment) atau lingkungan

pengembangan aplikasi sendiri adalah satu dari beberapa keunggulan delphi, didalamnya terdapat menu – menu yang memudahkan kita untuk membuat suatu proyek program,

2. Proses Kompilasi cepat, pada saat aplikasi yang kita buat dijalankan pada Delphi, maka secara otomatis akan dibaca sebagai sebuah program, tanpa dijalankan terpisah.

3. Mudah digunakan, source kode delphi yang merupakan turunan dari pascal, sehingga tidak diperlukan suatu penyesuain lagi.

4. Bersifat multi purphase, artinya bahasa pemograman Delphi dapat digunakan untuk mengembangkan berbagai keperluan pengembangan aplikasi

2.2.6.2OOP (Object Oriented Programming)

OOP adalah metode pemograman dengan membentu sebuah aplikasi yang mendekati keadaan dunia yang sesungguhnya. Hal itu bisa dilakukan dengan cara mendisain object untuk menyelesaikan masalah.

2.2.6.2.1 Tiga unsure OOP

1. Encapsulation atau pemodelan

Encapsulation adalah konsep penggabungan data dengan operator. Dalam

(45)

Encapsulation juga disebut dengan penyembunyian informasi (information hiding) . Contoh = ketika kita menyalakan sebuah TV kita tidak tahu apa yang terjadi dengan proses dan percakapan antar alat yang berhubungan dengan TV tersebut sehingga mampu menampilkan sebuah gambar. Atau = ketika melakukan klik pada subuah object dalam suatu aplikasi program kita tidak tahu apa yang dilakukan program sehingga ditampilkan hasil yang sesuai. Catatan = dari dua contoh kasus tersebut terdapat kesamaan proses mengenai information hiding

yang tidak diketahui oleh user sampai hasil ditampilkan.

2. Inheritance atau penurunan

Inherintance adalah sebuah object yang dapat diturunkan menjadi object

yang baru dengan tidak menghilangkan sifat asli dari object tersebut. Contoh = TV merupakan salah satu media elektronik yang dgunakan untuk menampilkan gambar dengan tujuan untuk memberikan informasi kepada konsumen. Secara umum TV memunyai cara kerja yang sama dengan media elektronik yang lain dlam proses penyampaian informasi, tetapi mempunyai sifat yang unik yang dapat membedakan dengan media electronik yang ada. Atau = Dalam aplikasi program kita sering menggunakan command button, untuk beberapa perintah yang berbeda.

3. Polymorphism atau Polimorfisme

Polymorphism merupakan penggunaan berbagai macam object yang berbeda

(46)

informasi, tetapi cara kerja dari masing – masing system pasti berbeda. Atau Object Simpan dan Update adalah icon yang berasal dari induk yang sama yaitu , command button tetapi cara kerja tersebut berbeda – beda.

2.2.7 Pengertian Database

Database dalam pembuatan program dengan bahasa pemrograman berbasis visual, merupakan suatu hal yang sangat penting. Karena database sering digunakan untuk menampung keluar masuknya data dalam suatu program aplikasi. Terkadang database juga sering digunakan untuk membantu proses pengolahan data yang rumit.

Bahasa pemrograman Delphi dilengkapi dengan beberapa tool yang sangat membantu dalam proses pembuatan program. Di antaranya adalah tool dengan nama database desktop. Database yang bias digunakan untuk membuat program menggunakan Delphi ada berbagai macam jenis, di antaranya adalah database dengan tipe paradox, MS Acces, FoxPro, Dbase, Oracle, MS SQL Server dan Interbase.

2.2.8 Alat Pengembang Sistem

2.2.8.1Diagram konteks

(47)

2.2.8.2DFD (Data Flow Diagram)

Data Flow Diagram adalah diagram sistem yang menggambarkan cara kerja aplikasi secara logic. Mulai dari tingkat paling tinggi sampai dengan tingkat paling rendah. Pada perancangan ini terdiri dari perancangan awal (preliminary

design) dan perancangan rinci (detailed design) sesuai dengan tahap-tahap

rekayasa perangkat lunak. Adapun penjelasan dari perancangan awal adalah perancangan sistem yang menggambarkan tentang hubungan antara sistem dengan lingkungan luar sistem.

Hubungan ini dapat digambarkan dengan menggunakan diagram konteks. Sedangkan perancangan rinci adalah perancangan sistem yang menggambarkan tentang proses yang terjadi pada sistem serta arus data yang mengalir antar proses. DFD merupakan alat yang digunakan pada metode pengembangan sistem yang terstruktur, DFD ini menggambarkan arus data di dalam sistem yang terstruktur dan jelas serta merupakan dokumentasi sistem yang baik.

2.2.8.3Entity Relationship Diagram (ERD)

Entity Relationship Diagram (ERD) adalah suatu model diagram yang

menyatakan keterhubungan suatu entity dengan entity yang lain. Atau juga dapat dikatakan sebagai sebuah teknik untuk menggambarkan informasi yang dibutuhkan dalam sistem dan hubungan antar data-data tersebut.

Secara terjemahan dalam bahasa Indonesia, Entity Relationship Diagram

(48)

Diagram akan didapatkan data-data yang dibutuhkan sistem. Dengan begitu maka akan didapatkan pula kejelasan aktivitas yang dilakukan dalam sistem.

Didalam Entity Relationship Diagram (ERD) dikenal beberapa komponen, yaitu sebagai berikut :

1. Entitas (Entity)

Adalah suatu objek yang memiliki hubungan dengan objek lain. Dalam ERD digambarkan dengan bentuk persegi panjang.

2. Hubungan (Relationship)

Dimana entitas dapat berhubungan dengan entitas lain, hubungan ini disebut dengan entity relationship yang digambarkan dengan garis. Berikut adalah beberapa jenis hubungan yang dapat terjadi dalam suatu basis data :

1) Relasi 1-1 (One to One) Hubungan antara file pertama dengan file

kedua adalah satu berbanding satu.

2) Relasi 1-N (One to Many) Hubungan antara file pertama dengan

file kedua adalah satu berbanding banyak, tetapi tidak sebaliknya,

dimana file kedua hanya berhubungan dengan satu entitas pada

file pertama.

3) Relasi N-1 (Many to One) Hubungan antara file pertama dengan

(49)

dimana file pertama hanya berhubungan dengan satu entitas pada

file kedua.

4) Relasi N-N (Many to Many) Hubungan antara file pertama dengan

file kedua adalah banyak berbanding banyak.

3. Atribut

Atribut adalah elemen dari entitas yang berfungsi sebagai deskripsi karakter entitas dan digambarkan dengan bentuk elips.

2.2.8.4Kamus Data

Kamus data atau data directory adalah katalog fakta tentang data dan kebutuhan-kebutuhan informasi dari suatu sistem informasi. Dengan menggunakan kamus data, analisis sistem dapat mendefinisikan data yang mengalir di sistem dengan lengkap. Pada tahap perancangan sistem, kamus data dapat digunakan untuk merancang input, output, dan merancang database

(50)

44

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Analisis sistem dilakukan untuk memperoleh definisi permasalahan dan gambaran yang tepat dari apa yang akan dilakukan oleh sistem. Analisis sistem bertujuan untuk mengetahui bagaimana seluk beluk sistem yang akan diteliti.

3.1.1 Analisis Sistem Yang Sedang Berjalan

Analisis sistem yang berjalan bertujuan untuk memberikan gambaran tentang proses yang selama ini dilakukan. Proses penjadwalan yang dilakukan selama ini yaitu masih dilakukan secara manual dengan menggunakan Microssoft Excel.

(51)

Tutor Bagian Akademik

Data level, tutor, ruang, waktu

Pembentukan Jadwal

Input Data level, tutor, ruang, waktu

Jadwal. xls

Jadwal Bimbel & tes toefl untuk

semua Level

Jadwal Bimbel & tes toefl untuk

semua Level

Jadwal Bentrok?

Jadwal Bimbel & tes toefl untuk

semua Level tidak ya

(52)

berjalan, yaitu :

1. Bagian akademik menyiapkan data level, tutor, kelas, ruang dan waktu untuk proses penjadwalan.

2. Kemudian bagian akademik melakukan proses penjadwalan dengan mencocokan anatara level, tutor, ruang dan waktu.

3. Bagian Akademik input data ke komputer dengan menggunakan software

Microssoft Excel dan disimpan dalm bentuk file jadwal.xls masih bersifat

sementara.

4. Setelah jadwal terbentuk, bagian akademik memberikan jadwal kepada setiap tutor dan tutor melakukan proses pengecekan apakah terjadi bentrokan pada jadwal yang sudah dibuat.

5. Bila masih terjadi bentrokan maka panitia kembali melakukan proses penjadwalan. Tapi jika tidak terjadi bentrok maka jadwal tersebut sudah dapat ditampilkan.

3.1.2. Analisis Penjadwalan Manual

3.1.2.1.Karakteristik Komponen Utama

Untuk memahami aturan-aturan yang akan digunakan, pada bagian ini akan dijelaskan karakteristik dari masing-masing variabel yang merupakan komponen utama dari sistem penjadwalan yang digunakan di Lembaga Pendidikan Telstar dengan menggunakan contoh.

(53)

Jam

Bimbel

Waktu Hari Tutor

1 07.00-08.00 Senin – Sabtu 2 08.00-09.00 Senin – Sabtu 3 09.00-10.00 Senin – Sabtu 4 10.00-11.00 Senin – Sabtu

5 11.00-12.00 Senin – Sabtu 6 12.00-13.00 Senin – Sabtu 7 13.00-14.00 Senin – Sabtu 8 14.00-15.00 Senin – Sabtu 9 15.00-16.00 Senin – Sabtu 10 16.00-17.00 Senin – Sabtu

Komponen berikutnya adalah peserta, sebagai peserta bimbingan disarankan untuk mengambil level yang sudah di tentukan, apabila peserta ingin mengambil level yang tidak sesuai maka peserta akan di tes terlebih dahulu.

Komponen utama yang juga memiliki peranan penting adalah satuan bimbingan belajar, yaitu durasi waktu per jam bimbingan belajar. Satuan waktu yang digunakan di Lembaga Pendidikan Telstar adalah 60 menit per jam bimbingan.

(54)

ruangan berbeda-beda tergantung dari besarnya ruangan.

Kombinasi semua komponen utama membentuk penjadwalan bimbingan belajar. Penjadwalan bimbingan belajar dikatakan optimal jika semua aturan yang ditentukan dapat terpenuhi.

3.1.2.2.Data Masukan

Data input dari bimbingan belajar di lembaga pendidikan bahasa Inggris Telstar yang digunakan terdiri dari Data Level, Data Tutor, Data Waktu, Data Ruang, dan Data Penugasan. Sebagai berikut:

1. Data Level

Pembagian level atau tingkat di lembaga pendidikan bahasa Inggris Telstar ada 13 level yang dibagi menjadi 2 kategori. Semua level dapat di ampu oleh semua tutor.

Tabel 3.2 Data Level

No Kategori Nama Level Banyak Pertemuan(x) /

Minggu

1

Junior Grade

Pre Beginner1 (SD Kelas 1-3) 3

2 Pre Beginner2 (SD Kelas 4-6) 3

3 Low Beginner (SMP Kelas 1) 3

4 Beginner (SMP Kelas 2) 3

(55)

Senior Grade

1)

7 Elementary (SMA Kelas 2 ) 3

8 Higher Elementary (SMA Kelas

3 )

3

9 Lower Intermediate 2

10 Intermediate 2

11 Higher Intermediate 2

12 Lower Advanced 2

13 Advanced 2

2. Data Tutor

Data tutor yang ada di lembaga pendidikan bahasa Inggris Telstar untuk cabang kopo

Tabel 3.3 Data Tutor

ID Tutor Nama Tutor

001 Joko Setiadi

002 Suryana, S.Pd

003 Drs. Hidayat

004 Dedi Erwin

005 Sri Mulyana

006 Purnomo

007 Suyanto

(56)

Data waktu dalam satu hari, selama 6 hari yaitu, Senin - Sabtu yang ada di lembaga pendidikan bahasa Inggris Telstar untuk cabang kopo.

Tabel 3.4 Data Waktu

Jam Bimbel Waktu Hari

1 08.00-09.00 Senin-Sabtu

2 09.00-10.00 Senin-Sabtu

3 10.00-11.00 Senin-Sabtu

4 11.00-12.00 Senin-Sabtu

5 12.00-13.00 Senin-Sabtu

6 13.00-14.00 Senin-Sabtu

7 14.00-15.00 Senin-Sabtu

8 15.00-16.00 Senin-Sabtu

9 16.00-17.00 Senin-Sabtu

10 17.00-18.00 Senin-Sabtu

4. Data Ruang

Tabel 3.5 Data Ruang

Nama Ruangan Kapasitas

TLS01 10

TLS02 10

TLS03 10

TLS04 10

(57)

No Level Hari Jam Bimbel Ruang Tutor

1 Pre Beginner1 Kamis 1 TLS01

2 Pre Beginner1 Selasa 1 TLS01

3 Pre Beginner Sabtu 5 TLS03

4 Low Beginner Senin 7 TLS04

5 Beginner Jum’at 6 TLS05

6 Higher beginner Rabu 2 TLS02

7 Elementary Kamis 8 TLS04

8

Higher Elementary

Sabtu 9 TLS05

9 Elementary Jumat 7 TLS03

10

Lower Elementary

Selasa 6 TLS02

3.2 Deskripsi Masalah Penjadwalan Bimbingan Belajar

Permasalahan yang akan dibahas adalah penjadwalan bimbingan belajar dan Tes Toefl di Lembaga Pendidikan Bahasa Inggris Telstar. Penjadwalan bimbingan belajar merupakan pekerjaan yang tidak mudah, apalagi tempat bimbingan belajarnya mempunyai ruangan yang sedikt dibandingkan peserta bimbingan.

(58)

perjam) 60 menit. Ruangan yang digunakan adalah ruangan TLS1-TLS5 dan staf tutor terdiri dari 8 orang.

Level yang akan dijadwalkan sebanyak 13 level, adapun proses penjadwalan bimbingan belajar ini, hari yang akan dijadwalkan adalah hari senin-sabtu. Penggunaan waktu setiap ruangan diharapkan dipergunakan seefisien mungkin, artinya tidak ada slot waktu kosong kecuali hari jum’at karena waktu

tersebut dipergunakan untuk melaksanakan shalat jum’at dan diharapkan semua

jadwal tersebut dapat terselesaikan sesuai dengan batas waktu yang telah ditentukan.

Permasalahan yang harus dihindari dalam penyusunan suatu jadwal bimbingan belajar didapatkan ketika terjadi pelanggaran terhadap kendala yang termasuk ke dalam hardconstraint.

Aturan umun penjadwalan adalah sebagai berikut :

1. Jadwal bimbingan yang dihasilkan hanya baik bagi periode waktu tertentu, dalam hal ini per 3 bulan, setelah itu komponen-komponen penyusunnya bisa mengalami perubahan sehingga jadwal yang lalu tidak dapat dipergunakan lagi.

2. Jadwal bimbingan merupakan kombinasi yang mungkin dari komponen-komponen utama, yaitu tutor, ruang, waktu, dan peserta pada suatu kelas level tertentu. Ketidaklengkapan dari komponen utama menyebabkan jadwal tidak dapat digunakan.

(59)

waktu yang sama.

5. Tidak ada peserta yang menghadiri dua kelas level yang berbeda pada waktu yang sama.

6. Ada batasan yang pasti pada kesediaan ruangan dan waktu

Aturan khusus penjadwalan bimbingan belajar di Telstar :

1. Jadwal bimbingan yang disusun hanya berlaku untuk 3 bulan 2. Tutor ditempatkan pada kelas level yang diampunya sebelum

jadwal dibuat, suatu level ditawarkan hanya jika ada tutor yang bisa mengampunya.

3. Satu level dapat diampu lebih dari seorang tutor.

4. Waktu kuliah dalam sehari dimulai dari jam 07.00 sampai 17.00. Lama setiap satuan waktu kuliah adalah 60 menit, dalam jangka waktu 1 hari terdapat 10 slot waktu, maka dalam 6 hari (hari aktif dalam 1 minggu)terdapat 60 slot waktu.

(60)

Algoritma Genetika

Masalah penjadwalan bimbingan belajar di Telstar akan menggunakan algoritma genetika untuk mengoptimasikan jadwal yang telah ada. Adapun beberapa hal yang harus diperhatikan pada penggunaan algoritma genetika dalam proses operasi penjadwalan yaitu :

3.2.1.1. Penetapan Parameter

Hal pertama yang dilakukan dalam pengujian terhadap algoritma genetika adalah menentukan parameter-parameter yang terbaik sehingga tujuan pembuatan algoritma tercapai dengan maksimal.

Beberapa parameter yang harus ditentukan adalah jumlah populasi dalam satu generasi, jumlah generasi maksimal sebagai urutan pemberhentian algoritma, jenis operator persilangan, peluang persilangan, jenis operator mutasi serta peluang mutasi yang akan digunakan, ukuran populasi terbentuk dari kumpulan kromosom dalam satu generasi. Ukuran populasi tersebut digunakan sebagai jarak pencarian untuk melakukan crossover.

(61)

Level [13] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] 2. Waktu, terdiri dari 10 slot waktu

Waktu [10] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 3. Ruang, terdiri dari 5 ruang

Ruang [5] = [1, 2, 3, 4, 5]

3.2.1.2. Inisialisasi Populasi

Pada inisialisasi ini akan dibuat sebuah populasi dari sekumpulan kromosom. Alternatif yang akan digunakan untuk menentukan populasi awal yaitu dengan menentukan secara acak. Satu kromosom merupakan ururan penjadwalan ruang, level, waktu dan tutor yang diwakili oleh nomor penugasan yang ditulis kedalam tabel-waktu (time-table) yang terdiri dari waktu yang dipergunakan (jam dan hari), kromosom tersebut menunjukan ruangan yang dipergunakan untuk bimbingan belajar, jadi sebagaimana telah disebutkan bahwa ruangan yang digunakan sebanyak 5 ruang kelas, 13 level, dan 10 waktu slot.

Kromosom acak yang digunakan untuk kasus ini ada 6 kromosom yang terdiri dari gen, allele didalamnya. Di dalam kromoson terdapat gen yang nilainya diambil acak dari parameter yang telah di tentukan.

(62)
(63)

Kromosom [32] = [level;pertemuan ke-;waktu;ruang] = [ 12, 2, 5, 1] Kromosom [33] = [level;pertemuan ke-;waktu;ruang] = [ 13, 1, 3, 1] Kromosom [34] = [level;pertemuan ke-;waktu;ruang] = [ 13, 2, 4, 2]

3.2.1.3.Fungsi Evaluasi

Ada dua hal yang harus dilakukan dalam melakukan evaluasi kromosom,

yaitu : menentukan nilai aturan dan nilai penalti untuk menentukan nilai fitness dari setiap kromosom.

Nilai Penalti

Hasilnya sebagai berikut : Kromosom [1] = (0)

Kromosom [2] = (3) Kromosom [3] = (0)

(64)

Kromosom [15] = (3) Kromosom [16] = (0)

Kromosom [17] = (0) Kromosom [18] = (0) Kromosom [19] = (3) Kromosom [20] = (3) Kromosom [21] = (0) Kromosom [22] = (3) Kromosom [23] = (3) Kromosom [24] = (3) Kromosom [25] = (3) Kromosom [26] = (0) Kromosom [27] = (3) Kromosom [28] = (3)

Kromosom [29] = (0) Kromosom [30] = (3)

Kromosom [31] = (0) Kromosom [32] = (3) Kromosom [33] = (0) Kromosom [34] = (0)

(65)
(66)

Nilai fitness kromosom [25] : 3 Nilai fitness kromosom [26] : 0 Nilai fitness kromosom [27] : 3 Nilai fitness kromosom [28] : 3 Nilai fitness kromosom [29] : 0 Nilai fitness kromosom [30] : 3 Nilai fitness kromosom [31] : 0 Nilai fitness kromosom [32] : 3 Nilai fitness kromosom [33] : 0 Nilai fitness kromosom [34] : 0

Total nilai fitness : 0+3+0+3+3+3+3+0+3+3+3+0+3+0+3+0+ 0+ 0+ 3+ 3+ 0+ 3+ 3+ 3+ 3+ 0+ 3+ 3+ 0+ 3+ 0+ 3+ 0+0 = 60

3.2.1.4.Seleksi

Seleksi ini bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang paling fit. Ada beberapa metode seleksi dari induk yang digunakan dalam algoritma genetik seperti yang telah dibahas pada bab sebelumnya, khususnya untuk kasus ini digunakan seleksi roulette wheel. Tapi sebelum melakukan proses genetik ini, ada beberapa syarat yang harus dilakaukan terlebih dahulu yaitu, mencari probabilitas dan nilai kumulatif probabilitas untuk bisa melakukan seleksi.

a) Mencari Probabilitas

(67)
(68)

P [25] = 3 / 60 = 0,05 P [26] = 0 / 60 = 0 P [27] = 3 / 60 = 0,05 P [28] = 3 / 60 = 0,05 P [29] = 0 / 60 = 0 P [30] = 3 / 60 = 0,05 P [31] = 0 / 60 = 0 P [32] = 3 / 60 = 0,05 P [33] = 0 / 60 = 0 P [34] = 0 / 60 = 0

b) Nilai Kumulatif Probabilitas C [1] = 0

(69)

C [13] = 0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05 C [14] = 0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0 C [15] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05 C [16] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 C [17] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0

C [18] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0

C [19] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0+0,05

C [20] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0+0,05+0,05

C [21] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0+0,05+0,05+0

C [22] =

(70)

C [23] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0+0,05+0,05+0+0,05+0,05

C [24] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0+0,05+0,05+0+0,05+0,05+0,05

C [25] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0+0,05+0,05+0+0,05+0,05+0,05+0,05

C [26] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0+0,05+0,05+0+0,05+0,05+0,05+0,05+0

C [27] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0+0,05+0,05+0+0,05+0,05+0,05+0,05+0+0,05

C [28] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0+0,05+0,05+0+0,05+0,05+0,05+0,05+0+0,05+0,05

C [29] =

0+0,05+0+0,05+0,05+0,05+0,05+0+0.05+0.05+0,05+0+0,05+0+0,05+0 +0+0+0,05+0,05+0+0,05+0,05+0,05+0,05+0+0,05+0,05+0

C [30] =

Gambar

Tabel 2.6 Keadaan setelah dirangking
Gambar 3.19 Perancangan Menu Data Tutor
Gambar 3.20 Perancangan Menu Data Ruang
Gambar 3.22 Perancangan Menu Data Jenis Ruangan
+7

Referensi

Dokumen terkait