Aplikasi penjadwalan kegiatan akademik di Lembaga Kursus e-learning for kids

(1)

(2)

(3)

(4)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

MOCHAMAD DERY SATRIO

10108717

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

BANDUNG


(5)

Nama lengkap : MOCHAMAD DERY SATRIO Tempat dan Tanggal Lahir :Bekasi, 02 Desember 1988

Jenis Kelamin :Laki - laki

Status : Belum Menikah

Kewarganegaraan : Indonesia

E-Mail : dery_satrio@yahoo.co.id

Alamat : Jl. Setia Darma 1 Rt 01 Rw 02 No 45

Tambun, Bekasi

Telepon : 08818058174

B. PENDIDIKAN FORMAL

2008 – Sekarang : Universitas Komputer Indonesia 2007 – 2008 : Universitas Muhamadiyah Jakarta

2004 – 2007 : SMA NEGERI 9 BEKASI

2001 – 2004 : SMP NEGERI 2 TAMBUN


(6)

iii

Assalamu’alaikum Warrahmatullahi Wabarakatuh.

Puji syukur penulis panjatkan kehadirat Allah S.W.T yang telah memberikan rahmat dan karunia-Nya, shalawat serta salam semoga tercurah kepada Rasulullah SAW, sehingga penulis dapat menyelesaikan skripsi dengan judul“APLIKASI PENJADWALAN KEGIATAN AKADEMIK DI

LEMBAGA KURSUS E-LEARNING FOR KIDS”.

Adapun tujuan dari penyusunan skripsi ini adalah untuk memenuhi salah satu syarat dalam menyelesaikan studi jenjang strata satu (S1) di Program Studi Teknik Informatika, Universitas Komputer Indonesia.

Penulis menyadari dengan keterbatasan literatur, pengalaman serta ilmu dan pengetahuan yang dimiliki, maka penulis membutuhkan peran serta dari pihak lain dalam proses penyelesaian skripsi ini. Oleh karena itu penulis menyampaikan ucapan terima kasih yang sebesar-besarnya kepada:

1. ALLAH SWT, karena berkat izin dan ridho-Nya penulis dapat menyelesaikan pendidikan ini.

2. Kedua orangtua tercinta, yang senantiasa memberikan dukungan dan kasih sayang yang tidak pernah henti, do’a yang tiada terputus, pengorbanan baik moril dan materil.

3. Bapak Dr. Eddy Suryanto Soegoto, M.Sc, selaku Rektor Universitas Komputer Indonesia..

4. Bapak Prof. Dr. Ir Denny Kurniadie, M.Sc, selaku Dekan Fakultas dan Ilmu Komputer.

5. Bapak Irawan Afrianto, S.T,. M.T. selaku ketua Program Studi Teknik Informatika.


(7)

iv

mendukung dalam penyelesaian penelitian.

8. Rekan-rekan Ninja Racing Club Bandung yang memberikan motivasi dalam penyelesaian penelitian.

9. Dosen-dosen Program Studi Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia yang telah banyak memberikan ilmu-ilmu yang bermanfaat selama menempuh pendidikan jenjang strata satu (S1) di Universitas Komputer Indonesia.

10.Teman-teman Kost TTM 66. Terima kasih atas kebersamaan, canda tawa, doa dan dukungan yang telah diberikan kepada penulis.

11.Serta semua pihak yang telah turut membantu baik secara langsung maupun tidak langsung dalam penyusunan skripsi ini, yang tidak bisa disebutkan satu persatu.

Didalam penulisan skripsi ini, penulis telah berusaha semaksimal mungkin, walaupun demikian penulis menyadari bahwa skripsi ini jauh dari sempurna. Oleh karena itu penulis akan selalu menerima segala masukkan yang tujuannya untuk menyempurnakan skripsi ini.

Akhir kata, semoga Allah SWT senantiasa melimpahkan karunia-Nya dan membalas segala amal budi serta kebaikan pihak-pihak yang telah membantu penulis dalam penyusunan laporan ini dan semoga tulisan ini dapat memberikan manfaat bagi pihak-pihak yang membutuhkan.

Wassalamu’alaikum Warrahmatullahi Wabarakatuh.

Bandung, Desember 2013


(8)

v

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... ix

DAFTAR SIMBOL ... xi

DAFTAR LAMPIRAN ... xiii

BAB I PENDAHULUAN ... 1

I.1 Latar Belakang Masalah ... 1

I.2 Rumusan Masalah ... 2

I.3 Maksud dan Tujuan ... 2

I.4 Batasan Masalah ... 2

I.5 Metodologi Peneltitian ... 3

I.6 Sistematika Penulisan ... 5

BAB II TINJAUAN PUSTAKA ... 7

II.1 Profil Perusahaan ... 7

II.1.1 Sejarah Perusahaan ... 7

II.1.2 Struktur Organisasi Perusahaan ... 7

II.1.3 Deskripsi Tugas... 8

II.2 Landasan Teori ... 9

II.2.1 Basis Data ... 9

II.2.2 Pengertian Algoritma Genetik ... 9

II.2.3 Prosedur Algoritma Genetik ... 10

II.2.3.1 Teknik Pengkodean ... 14

II.2.3.2 Evaluasi Fitness... 17

II.2.4 Operator Dalam Algoritma Genetik ... 18


(9)

vi

II.2.5.1 Probabilitas Mutasi ... 24

II.2.6 Algoritma Tabu Search... 24

II.2.6.1 Ide Dasar Tabu Search ... 26

II.2.7 Internet ... 27

II.2.7.1 Perkembangan Internet ... 27

II.2.8 Entity Relationship Diagram (ERD) ... 27

II.2.9 Diagram Konteks ... 30

II.2.10 Data Flow Diagram (DFD) ... 30

II.2.11 Kamus Data... 31

II.2.12 Tinjauan Perangkat Lunak ... 31

II.2.12.1 MYSQL ... 31

II.2.12.2 Adobe Dreamweaver ... 33

II.2.12.3 Personal Home Page... 34

BAB III ANALISIS DAN PERANCANGAN SISTEM ... 35

III.1 Analisis Sistem ... 35

III.1.1 Analisis Prosedur Sistem Yang Berjalan ... 35

III.1.1.1 Aturan Penjadwalan ... 37

III.1.2 Analisis Algoritma Genetik dan Tabu Search ... 38

III.1.1.1 Data Penelitian ... 38

III.1.2.2 Penetapan Parameter ... 42

III.1.3 Analisis Kebutuhan Fungsional ... 61

III.1.3.1 Entity Relationship Diagram (ERD) ... 61

III.1.3.2 Struktur Entitas ... 62

III.1.3.3 Diagram Konteks ... 62

III.1.3.4 Data Flow Diagram (DFD) ... 63

III.1.3.5 Spesifikasi Proses ... 69


(10)

vii

III.2.2 Perancangan Antar Muka ... 86

III.2.3 Perancangan Pesan ... 94

III.2.4 Jaringan Semantik ... 95

III.2.5 Perancangan Prosedural... 96

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM ... 101

IV.1 Implementasi Sistem ... 101

IV.1.1 Implementasi Perangkat Keras ... 101

IV.1.2 Implementasi Perangkat Lunak... 101

IV.1.3 Implementasi Database ... 102

IV.1.4 Implementasi Antarmuka ... 106

IV.2 Pengujian Sistem ... 107

IV.2.1 Rencana Pengujian Alpha ... 107

IV.2.2 Kasus dan Hasil Pengujian Alpha ... 108

IV.2.3 Kesimpulan Hasil Pengujian Alpha ... 118

IV.2.4 Rencana Pengujian Beta ... 119

IV.2.5 Kesimpulan Hasil Pengujian Beta ... 120

BAB V KESIMPULAN DAN SARAN... 121

V.1 Kesimpulan ... 121

V.2 Saran ... 121


(11)

122

DAFTAR PUSTAKA

[1]. Prahasta, Eddy (2001), Model Waterfall, Informatika, Bandung.

[2]. Fathansyah (2007), Buku Teks Komputer Basis Data, Informatika, Bandung. [3]. Faisal, A., Fadlisyah (2009), Algoritma Genetik, Graha Ilmu, Yogyakarta. [4]. Hanita, Mery, Penerapan Algoritma Genetika Pada Penjadwalan Mata

Kuliah, Tugas Akhir, Matematika, Universitas Bengkulu, 2011

[5]. Amico, M.D., Trubian M., “Applying Tabu Search to the jobshop

Schedulling Problem”, Annals of Operations Research, Vol.41, 231-253, 1993

[6]. Panggabean, P., Henry, Penjadwalan Job Shop Statik Dengan Algoritma Tabu Search, Tugas Akhir, Ilmu Komputer, Unpar Bandung, 2005

[7]. Jogiyanto, H.M. (1999), Pengenalan Komputer, Edisi Ketiga, Andi, Yogyakarta.

[8]. Sukmaaji, A., Rianto (2008), Jaringan Komputer, Andi, Yogyakarta.

[9]. Kristanto, A. (2008), Perancangan Sistem Informasi dan Aplikasinya, Gava Media, Yogyakarta.

[10]. Kadir, Abdul (2009), Membuat Aplikasi Web dengan PHP dan Database MySQL, Andi, Yogyakarta.

[11]. Basuki, A. (2003), Algoritma Genetika, PENS-ITS, Surabaya


(12)

1

Pembuatan jadwal kegiatan akademik adalah hal yang rumit, karena harus menghadapi permasalahan bagaimana menjadwalkan mata pelajaran dengan kendala waktu, pengajar yang tersedia, kapasitas ruangan yang terbatas, dan pengajar yang memiliki kegiatan diluar lembaga akademik. Begitu juga yang dialami oleh lembaga kursus E-Learning For Kids. Lembaga kursus E-Learning For Kids dalam pembuatan jadwal masih menggunakan cara manual yaitu dengan pencarian kolom-kolom mana saja yang masih kosong, kemudian menempatkan jadwal pada kolom tersebut. Cara ini kurang efektif karena membutuhkan waktu yang lama dan jadwal yang dihasilkan cenderung menumpuk pada hari-hari tertentu dan tingkat ke akuratannya tidak bisa dijamin.

Terdapat berbagai aspek yang mempengaruhi penjadwalan kegiatan akademik, yang diantaranya adalah permintaan pengajar yang bersangkutan tidak bisa mengajar pada waktu tertentu dan tidak boleh adanya jadwal kegiatan akademik yang bentrok antar pengajar, kelas, ruang ataupun waktu kursus. Maka dibutuhkan sebuah metode optimasi yang dapat menyelesaikan masalah multi kriteria dan multi objektif tersebut, salah satunya adalah dengan menggunakan algoritma genetik.

Menurut Basuki [11], ciri-ciri permasalahan yang dapat dikerjakan dengan menggunakan algoritma genetik adalah mempunyai multi kriteria dan multi objektif, mempunyai kemungkinan solusi yang jumlahnya banyak dan membutuhkan solusi “real time” dalam arti solusi dapat diperoleh dengan cepat. Namun algoritma genetik juga memiliki kelemahan, yaitu kurang mampu dalam pengidentifikasian solusi lokal sehingga proses pencarian mengalami pengulangan pada daerah solusi yang sama, hal ini menyebakan solusi yang dihasilkan kurang variatif. Oleh sebab itu dibutuhkan kombinasi algoritma genetik dengan algoritma lainnya untuk menutupi kelemahan tersebut. Salah satunya adalah dengan kombinasi algoritma genetik dan tabu search. Tabu search menggunakan tabu list


(13)

untuk menolak solusi-solusi yang memenuhi atribut tertentu guna mencegah proses pencarian mengalami cycling pada daerah solusi yang sama dan menuntun proses pencarian menelusuri daerah solusi yang belum dikunjungi.

Diharapkan dengan digunakannya kombinasi algoritma genetik dan tabu search akan diperoleh optimasi penjadwalan yang menghasilkan kombinasi terbaik untuk pasangan kelas dan pengajar secara keseluruhan, tidak ada permasalahan bentrokan jadwal pada sisi pengajar dan siswa, serta ketersediaan ruang yang cukup untuk seluruh kelas yang ada.

I.2 Rumusan Masalah

Berdasarkan latar belakang masalah, dapat dirumuskan bahwa masalah yang dihadapi adalah bagaimana menghasilkan kombinasi terbaik untuk pasangan pengajar dan level secara keseluruhan, serta ketersediaan ruangan belajar yang cukup dengan tidak melanggar ketentuan yang ada.

I.3 Maksud dan Tujuan

Berdasarkan rumusan masalah yang diteliti, maka maksud dari penulisan tugas akhir ini adalah untuk membangun aplikasi penjadwalan untuk membuat jadwal kegiatan akademik di lembaga kursus E-Learning For Kids dengan menggunakan kombinasi algoritma genetik dan tabu search.

Sedangkan tujuan yang akan dicapai dari penelitian ini adalah :

1. Mempermudah dalam membuat jadwal kegiatan akademik di lembaga kursus E-Learning For Kids

2. Jadwal yang dihasilkan tidak mengalami bentrok dari sisi pengajar, siswa maupun ruangan

I.4 Batasan Masalah

Adapun batasan masalah dalam penelitian dan pembangunan aplikasi ini adalah sebagai berikut :

1. Metode penjadwalan yang diterapkan untuk aplikasi ini adalah kombinasi Algoritma Genetik dan Tabu Search

2. Aplikasi yang akan dibangun berbasis web secara online

3. Model analisis perangkat lunak yang digunakan adalah pemodelan analisis terstruktur, dimana tools yang digunakan adalah Flowmap dan


(14)

EntityRelationship Diagram (ERD),sedangkan untuk menggambarkan diagram proses menggunakan Data Flow Diagram (DFD).

4. Data yang akan diolah pada aplikasi ini adalah data pengajar, data ruangan kelas, data waktu pengajar dan data level

I.5 Metodologi Penelitian

Metodologi penelitian yang digunakan dalam penulisan tugas akhir ini terdiri dari dua tahap yaitu tahap pengumpulan data dan tahap pembuatan perangkat lunak.

1. Tahap pengumpulan data

Pada tahap pengumpulan data, metode yang digunakan adalah sebagai berikut : a. Studi Literatur

Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan aplikasi penjadwalan kegiatan akademik di lembaga kursus E-Learning For Kids.

b. Observasi

Penulis melakukan peninjauan langsung ke tempat lembaga kursus E-Learning For Kids. Tujuannya adalah untuk mengetahui proses kegiatan kursus agar penulis mendapatkan data yang diperlukan secara langsung. c. Interview

Teknik pengumpulan data dengan cara mewawancarai secara langsung pihak lembaga kursus E-Learning For Kids.

2. Tahap pembuatan perangkat lunak

Pada tahap ini digunakan metode waterfall, yang meliputi beberapa proses diantaranya seperti gambar I.1 berikut ini :


(15)

Gambar I.1 Metode Waterfall [1] a. Observasi dan Interview

Merupakan bagian dari sistem yang terbesar dalam pengerjaan suatu proyek, dimulai dengan menetapkan berbagai kebutuhan dari semua elemen yang diperlukan sistem dan mengalokasikannya kedalam pembentukan perangkat lunak.

b. Analisis Sistem Berjalan

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

c. Perancangan Sistem

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

d. Pembuatan Sistem

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

e. Testing

Merupakan tahap pengujian terhadap perangkat lunak yang dibangun. f. Pemeliharaan

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


(16)

I.6 Sistematika Penulisan

Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN

Menguraikan tentang latar belakang permasalahan, mencoba merumuskan inti permasalahan yang dihadapi, menentukan tujuan dan kegunaan penelitian, yang kemudian diikuti dengan pembatasan masalah, asumsi, serta sistematika penulisan.

BAB II TINJAUAN PUSTAKA

Pada bab ini menjelaskan tentang tinjauan Instansi dan landasan teori yang menjelaskan tentang teori umum yang berkaitan dengan judul, teori program yang berhubungan dengan aplikasi yang dibangun, teori khusus yaitu berkaitan dengan istilah-istilah yang dipakai dalam pembuatan aplikasi penjadwalan.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini menjelasakan analisis terhadap seluruh spesifikasi sistem yang mencakup analisis prosedur yang sedang berjalan, pengkodean, kebutuhan non fungsional dan analisis basis data. Selain analisis sistem, bab ini terdapat juga perancangan antar muka untuk aplikasi yang akan dibangun sesuai dengan hasil analisis yang telah dibuat. Tool untuk memodelkan sistem menggunakan Data Flow Diagram (DFD) dan EntityRelationship Diagram ( ERD ).

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi hasil implementasi dari hasil analisis dan perancangan yang telah dibuat disertai juga dengan hasil pengujian dari aplikasi penjadwalan kegiatan akademik di lembaga kursus E-Learning For Kids untuk mengetahui kesesuaian aplikasi yang dibangun berdasarkan tujuan yang ingin dicapai.

BAB V KESIMPULAN DAN SARAN

Bab ini mengulas tentang kesimpulan yang berisi hasil-hasil yang diperoleh setelah dilakukan analisis, desain, dan implementasi dari perancangan perangkat lunak yang dibangun dan telah dikembangkan serta saran-saran yang akan


(17)

memberikan catatan penting dan kemungkinan perbaikan yang perlu dilakukan untuk pembangunan perangkat lunak selanjutnya.


(18)

7

II.1.1 Sejarah Perusahaan

Anak adalah aset masa depan yang akan menggantikan generasi sekarang. Namun saat ini sulit mendapatkan lembaga yang menyelenggarakan kursus bahasa inggris yang berkualitas dan mudah dijangkau oleh seluruh lapisan masyarakat baik dari segi biaya maupun lokasi. Menghadapi hal tersebut muncul suatu gagasan untuk membuka suatu lembaga pendidikan yang berbasiskan pengajaran bahasa inggris. Sehingga pada tanggal 14 agustus 2011 terbentuklah Lembaga pendidikan tersebut yang diberi nama E-Learning For Kids.

E-learning For Kids adalah penggabungan huruf E yang diambil dari kata English yaitu bahasa Inggris, Learning yang artinya belajar dan For Kids artinya untuk anak-anak. Karena E-Learning For Kids mengusung program E-Learning For Kids (TK – Kelas 6 Sd). E-learning For Kids adalah sebuah lembaga kursus yang berbasiskan bahasa Inggris dalam proses pembelajarannya. Setiap satu unit E-Learning memiliki program pengajaran yang berbeda-beda karena pengelolaannya bersifat mandiri pada masing-masing unit E-Learning.

II.1.2 Struktur Organisasi Perusahaan

Organisasi adalah sekelompok orang yang bekerja sama untuk mencapai tujuan yang telah di rencanakan, dari pengertian tersebut organisasi dapat di simpulkan sebagai kumpulan orang-orang yang bekerja sama dengan dasar persamaan tujuan.

Organisasi perusahaan sangatlah penting didalam menjamin kelangsungan dan kelancaran mekanisme kerja perusahaan, adanya organisasi dapat menciptakan suatu sistem pembagian kerja atau tugas yang sesuai dengan kebutuhan perusahaan sehingga mempermudah kegiatan operasional perusahaan dalam mencapai tujuan.

Untuk lebih jelasnya dapat dilihat pada gambar II.1 dibawah ini yang merupakan struktur organisasi di E-Learning For Kids Cabang Kota bekasi :


(19)

Gambar II.1 Struktur Organisasi E-Learning for kids

II.1.3 Deskripsi Tugas

Deskripsi tugas digunakan untuk mengetahui tugas, wewenang dan tanggung jawab dari masing-masing bagian. Adapun deskripsi tugas yang ada di E-Learning for kids adalah sebagai berikut :

1. Manager

Bertugas sebagai pengawas dan mengkoordinasikan semua pekerjaan yang dilaksanakan oleh para staf E-Learning For Kids. Yang bertujuan untuk menjaga konsistensi kerja dalam mencapai tujuan perusahaan secara efektif dan efisien.

2. Wakil Manager

Bertugas membantu setiap pelaksaan dari kegiatan E-Learning For Kids. 3. Staf Keuangan

Bertugas mengkoordinasi serta mengawasi arus masuk dan arus keluar uang perusahaan.

4. Staf Administrasi

Bertugas mengurus setiap pemberkasan, pendaftaran dan administrasi E-Learning mulai dari pembayaran, promosi, pembukuan dan pembuatan jadwal kegiatan akademik.

5. Staf Pengajar

Bertugas memberikan materi pengajaran kepada siswa dan ikut membimbing siswa dalam menerapkan setiap materi yang diberikan selama kegiatan belajar berlangsung, baik dilingkungan e-learning maupun kesehariannya.


(20)

II.2 Landasan Teori II.2.1 Basis Data

Basis data terdiri dari dua kata, yaitu basis dan data. Basis dapat diartikan sebagai markas, gudang atau tempat penyimpanan. Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia, hewan, peristiwa, konsep, keadaan, dan sebagainya, yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya. Basis data merupakan himpunan kelompok data yang saling berkaitan dan tempat untuk menampung dan mengorganisasikan seluruh data yang ada dalam sistem, sehingga dapat dieksplorasi untuk menyusun informasi–informasi dalam berbagai bentuk [2].

Dapat disimpulkan bahwa basis data adalah kumpulan data atau arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik dengan tujuan mempermudah pengambilan data dengan waktu yang cepat.

II.2.2 Pengertian Algoritma Genetik

Algoritma genetik merupakan teknik search stochastic yang berdasarkan mekanisme seleksi alam dan genetika natural [3]. Yang membedakan algoritma genetik dengan berbagai algoritma konvensional lainnya adalah bahwa algoritma genetik memulai dengan suatu himpunan penyelesaian acak awal yang disebut populasi. Masing-masing individu didalam populasi disebut kromosom, yang mempresentasikan suatu penyelesaian terhadap masalah yang ditangani. Sebuah kromosom terdiri dari sebuah string yang terdiri berbagai simbol, dan biasanya tidak mutlak, string tersebut berupa sederetan bit-bit biner 0 dan 1. Sebuah kromosom tumbuh dan berkembang biak melalui berbagai iterasi yang berulang-ulang yang disebut juga generasi. Pada masing-masing generasi, berbagai kromosom yang dihasilkan akan di evaluasi menggunakan suatu pengukuran fitness. Untuk menghasilkan suatu generasi yang baru, berbagai kromosom baru yang disebut offspring dibentuk dengan salah satu cara berikut :

1. Memadukan dua kromosom dari generasi terakhir menggunakan operator crossover.


(21)

2. Memodifikasi sebuah kromosom menggunakan operator mutasi. Dan generasi yang baru dihasilkan dengan cara :

1. Penseleksian berdasarkan nilai fitness, berbagai parent dan offspring 2. Menolak yang lainnya untuk menjaga ukuran populasi agar tetap konstan

Berbagai kromosom yang memiliki probabilitas yang tinggi akan diseleksi. Setelah beberapa generasi, algoritma akan menemukan kromosom yang paling baik, yang diharapkan merepresentasikan solusi optimum dan suboptimal terhadap suatu permasalahan optimisasi suatu fungsi [3]. Algoritma ini didasarkan pada proses genetika yang ada dalam makhluk hidup, yaitu perkembangan populasi yang alami, secara lambat laun mengikuti proses seleksi alam atau dengan kata lain siapa yang kuat, dia yang bertahan. Proses seleksi alamiah ini melibatkan perubahan gen yang terjadi pada individu melalui proses perkembangbiakan. Dalam algoritma genetik ini, proses perkembangbiakan ini menjadi proses dasar yang menjadi perhatian utama, dengan dasar berpikir bagaimana mendapatkan keturunan yang lebih baik atau bagaimana menghasilkan keturunan yang optimal

II.2.3 Prosedur Algoritma Genetik

Algoritma Genetika merepresentasikan individu sebagai sebuah kromosom, kromosom ini merupakan suatu solusi yang masih berbentuk simbol. Algoritma ini menyelesaikan permasalahan dalam pencarian kromosom yang terbaik. Kromosom-kromosom terbaik diperoleh dengan cara populasi awal yang dibangun secara acak dan populasi berikutnya yang merupakan hasil evolusi kromosom-kromosom melalui proses iterasi (seleksi, crossover dan mutasi) yang disebut dengan istilah generasi. Pada setiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang disebut dengan fungsi fitness. Nilai fitness dari suatu kromosom akan menunjukkan kualitas kromosom dalam populasi tersebut. Setelah melalui beberapa generasi, maka akan diperoleh kromosom terbaik [4].


(22)

Beberapa definisi penting dalam algoritma genetika adalah sebagai berikut:

a) Gen adalah sebuah nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom. Dalam algoritma genetika, gen ini dapat berupa nilai biner, float, integer, kombinatorial maupun karakter.

b) Allel adalah nilai dari gen.

c) Kromosom adalah gabungan gen yang membentuk nilai tertentu.

d) Individu menyatakan suatu nilai atau menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat.

e) Populasi merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi

f) Generasi menyatakan hasil evolusi kromosom-kromosom melalui proses iterasi.

g) Nilai fitness menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapatkan.

Prosedur algoritma genetik secara umum dapat dilihat pada flowchart berikut :


(23)

Gambar II.2 Flowchart Algoritma Genetik [4]

Dari gambar diatas, struktur umum dari suatu algoritma genetik dapat didefinisikan dengan langkah-langkah sebagai berikut :

1. Pengkodean

pengkodean adalah suatu teknik untuk menyatakan populasi awal sebagai calon solusi suatu masalah ke dalam suatu kromosom sebagai suatu kunci pokok persoalan ketika menggunakan algoritma genetika.


(24)

2. Prosedur Inisialisasi (membangkitkan populasi awal)

Prosedur inisialisasi (membangkitkan populasi awal) adalah membangkitkan sejumlah individu secara acak atau melalui prosedur tertentu. Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis operator genetika yang akan diimplementasikan. Setelah ukuran populasi ditentukan, kemudian harus dilakukan inisialisasi terhadap kromosom yang terdapat pada populasi tersebut. Inisialisasi kromosom dilakukan secara acak, namun demikian harus tetap memperhatikan domain solusi dan kendala permasalahan yang ada.

3. Evaluasi Fitness

Proses ini merupakan proses untuk mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom dan mengevaluasinya. Individu yang memiliki nilai fitness tinggi pada kromosomnya yang akan dipertahankan, sedangkan individu yang pada kromosomnya bernilai fitness rendah akan diganti

4. Seleksi

Proses seleksi merupakan proses untuk menentukan individu-individu mana saja yang akan dipilih untuk dilakukan crossover.

5. Crossover

Proses crossover ini merupakan proses untuk menambah keanekaragaman string dalam satu populasi.

6. Mutasi

Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen dalam suatu kromosom.

7. Fitness Terbaik

Fitness terbaik merupakan kriteria yang digunakan untuk menghentikan proses algoritma genetik. Apabila kriteria berhenti belum terpenuhi maka akan dibentuk lagi generasi baru dengan mengulangi langkah 4.

8. Hasil


(25)

II.2.3.1 Teknik Pengkodean

Pengkodean adalah cara untuk mempresentasikan masalah kedalam bentuk kromosom. Ada beberapa cara pengkodean dan pemilihannya tergantung dari masalah yang akan diselesaikan. Teknik pengkodean yang digunakan dalam penelitian tugas akhir ini adalah pengkodean nilai. Berikut ini adalah beberapa jenis pengkodean yang sering digunakan.

1. Pengkodean Biner

Pengkodean biner adalah pengkodean yang paling umum digunakan karena algoritma genetik awalnya menggunakan pengkodean ini. Pada pengkodean biner setiap kromosom merupakan barisan bit 0 atau 1. Pengkodean biner memberikan banyak kemungkinan kromosom meskipun hanya memiliki jumlah allele yang sedikit, 1 atau 0. Tetapi pengkodean ini sering tidak sesuai untuk beberapa masalah dan kadang harus dilakukan pengkoreksian setelah crossover dan mutasi [4].

Contoh masalah yang sesuai menggunakan pengkodean biner adalah masalah ransel (knapsack), dimana terdapat beberapa jenis benda dan ukuran yang berat yang berbeda dengan kapasitas ransel terbatas. Permasalahannya adalah memilih sejumlah barang untuk memaksimumkan nilai dari barang-barang tersebut didalam ransel, tetapi total ukuran barang-barang tersebut tidak boleh 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 didalam ransel. Bit 1 berarti benda ada didalam ransel, sedangkan bit 0 berarti benda tidak berada didalam ransel. Contoh pengkodean biner dapat dilihat pada tabel II.1 berikut.

Tabel II.1 Contoh Pengkodean Biner

Kromosom A 1010101011

Kromosom B 1100110010

2. Pengkodean Nilai (value encoding)

Pengkodean nilai dapat digunakan pada masalah yang mempunyai nilai yang rumit, dimana nilai yang dienkodekan langsung merupakan representasi dari


(26)

masalah. Contohnya adalah pengkodean data yang menggunakan angka riil yang akan menjadi susah jika menggunakan pengkodean biner karena setiap angka riil tidak dapat dipresentasikan secara tepat hanya dalam bentuk bit 1 atau 0. Dalam pengkodean nilai, setiap kromosom merupakan barisan dari beberapa nilai. Nilai bisa berupa apa saja, seperti bilangan biasa, bilangan riil, kode, karakter sampai dengan obyek-obyek yang rumit. Pengkodean nilai sangat baik untuk beberapa masalah khusus, dilain sisi crossover dan mutasi diperlukan untuk pengkodean ini sering kali memerlukan pengembangan tersendiri yang lebih spesifik pada masalah.

Contoh masalah yang menggunakan pengkodean ini adalah masalah pencarian robot pada jaringan saraf (neural network). Terdapat sebuah jaringan saraf dengan arsiteknya. Permasalahannya adalah mencari bobot masukan dari neuron-neuron untuk melatih jaringan untuk 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. Contoh pengkodean nilai dapat dilihat pada tabel II.2 berikut.

Tabel II.2 Contoh Pengkodean Nilai

Kromosom A 1.345, 4.534, 7.654, 8.789

Kromosom B ABC, ADC, BAC, CAD

Kromosom C 1, 2, 3, 4, 5

Kromosom D Forward, Backward, Right, Left

3. Pengkodean Permutasi

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

Pengkodean permutasi hanya berguna pada masalah pengurutan. Crossover dan mutasi yang dilakukan pada pengkodean ini harus menghasilkan kromosom yang memiliki konsistensi urutan. Masalah yang dapat diselesaikan dengan


(27)

pengkodean ini adalah masalah travelling salesman problem. Terdapat sejumlah kota dan jarak diantara semua kota tersebut, tapi 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. Contoh pengkodean permutasi dapat dilihat pada tabel II.3 berikut.

Tabel II.3 Contoh Pengkodean Permutasi Kromosom A 2 6 7 5 1 3 4 9 8 10 Kromosom B 10 5 4 9 7 1 3 2 6 8

4. Pengkodean Pohon

Pengkodean pohon lebih banyak digunakan untuk menyusun program atau ekspresi bagi pemrograman genetika. Setiap kromosom merupakan pohon dari sejumlah objek, seperti fungsi atau perintah didalam bahasa pemrograman. Pengkodean pohon sangat baik bagi penyusunan program. Bahasa pemrograman LISP sering digunakan untuk melakukan pengkodean pohon, karena program didalamnya dapat direpresentasikan kedalam bentuk ini dan dapat dengan mudah dilakukan parse menjadi sebuah pohon, sehingga perkawinan silang dan mutasi dapat dilakukan relatif lebih mudah.

Contoh masalah yang direpresentasikan dengan pengkodean pohon adalah masalah mencari fungsi berdasarkan nilai-nilai yang diberikan, diberikan beberapa nilai masukan dan keluaran. Permasalahannya adalah mencari fungsi yang akan memberikan nilai keluaran terbaik untuk semua masukan. Masalah ini dapat dienkodekan kedalam pengkodean pohon dengan kromosom merupakan fungsi-fungsi yang dinyatakan dalam pohon. Contoh pengkodean pohon dapat dilihat pada gambar II.3 berikut.


(28)

gambar II.3 Contoh Pengkodean Pohon

II.2.3.2 Evaluasi Fitness

Evaluasi fitness merupakan proses untuk mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom. Besar atau kecilnya nilai fitness dihasilkan dari nilai kromosom tersebut apakah melanggar coinstraint atau tidak, jika tidak maka menghasilkan nilai fitness yang tinggi. Individu yang memiliki nilai fitness tinggi pada kromosomnya yang akan dipertahankan, sedangkan individu yang nilai fitnessnya rendah akan diganti atau dibuang. Nilai fitness yang dihasilkan Fungsi yang digunakan untuk menghitung nilai kecocokan atau derajat optimalitas suatu kromosom disebut dengan fitness function. Nilai yang dihasilkan oleh fungsi tersebut menandakan seberapa optimal solusi yang diperoleh. Nilai yang dihasilkan oleh fungsi fitness merepresentasikan seberapa banyak jumlah persyaratan yang dilanggar. Faktor-faktor yang dapat mempengaruhi evaluasi fitness terhadap alternatif solusi tersebut merupakan pelanggaran yang telah ditentukan sebelumnya. Setiap pelanggaran yang terjadi akan diberikan nilai 1, agar tidak terjadi nilai fitness yang tak terhingga maka jumlah total semua pelanggaran ditambah 1. Semakin sedikit jumlah pelanggarannya maka jadwal yang dihasilkan akan semakin baik. Fungsi fitness digunakan untuk menghitung ke-optimalan suatu jadwal kuliah terhadap batasan yang diberikan. Umumnya, semakin besar nilai fitness, semakin optimal jadwal yang dihasilkan. Sehingga, kita dapat menuliskan rumus fungsi fitness sebagai berikut:


(29)

=

1

1+( WD + BR )

(

II.1)

Keterangan :

WD : Banyaknya Waktu pengajar yang dilanggar BR : Banyaknya Bentrok Ruang yang digunakan

II.2.4 Operator Dalam Algoritma Genetik

Algoritma genetik merupakan proses pencarian yang heuristik dan acak sehingga penekanan pemilihan operator yang digunakan sangat menentukan keberhasilan algoritma genetik dalam menemukan solusi optimum suatu masalah yang diberikan. 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. Ada 3 operator genetik yaitu seleksi, crossover dan mutasi.

II.2.4.1Seleksi

Seleksi merupakan proses pemilihan individu/ kromosom dari generasi lama untuk dijadikan orangtua yang akan saling dikawin silang untuk membentuk individu baru di generasi baru. Yang menjadi permasalahan adalah bagaimana cara memilih kromosom untuk dijadikan orangtua. Berdasarkan teori evolusi Darwin, kromosom yang terbaik seharusnya dapat bertahan hidup dan membentuk keturunan baru. Ada beberapa jenis metode seleksi, berikut ini adalah beberapa metode seleksi yang sering digunakan. Seleksi yang digunakan dalam penelitian tugas akhir ini adalah seleksi roda roulette

1. Seleksi Roda Roulette

Pada metode seleksi ini, orangtua dipilih berdasarkan kesesuaiannya, semakin baik kromosom, semakin tinggi kesempatannya untuk terpilih. Semua kromosom dari populasi diletakkan pada sebuah roda roulette, setiap kromosom memiliki luas bagian yang berdasarkan fungsi kesesuaian yang lebih besar memiliki probabilitas terpilih yang lebih besar. Kekurangan metode ini adalah bila kromosom terbaik memiliki kesesuaian 90% dari seluruh roda roulette, maka kromosom yang lainnya akan memiliki kesempatan yang sangat kecil untuk terpilih. Seleksi roda roulette dapat dilihat pada gambar II.4 berikut


(30)

Gambar I.4 Seleksi Roda Roulette 2. Seleksi Rangking

Seleksi ini memperbaiki proses seleksi yang sebelumnya yaitu roulette wheel karena pada seleksi tersebut kemungkinan selain satu kromosom mempunyai nilai fitness yang mendominasi hingga 90% bisa terjadi, sehingga nilai fitness yang lain akan mempunyai kemungkinan yang sangat kecil untuk terpilih. Seleksi rangking dipakai untuk mengatasi masalah diatas, pertama populasi diurutkan lalu setiap kromosom mendapatkan kesesuaian dari rangking ini. Yang terburuk akan memiliki kesesuaian 1, terburuk kedua memiliki kesesuaian 2, dan seterusnya. Kromosom yang terbaik akan memiliki kesesuaian N (jumlah kromosom dalam populasi). Pada gambar II.5 dan gambar II.6 dapat terlihat bagaimana situasi berubah setelah mengganti kesesuaian dengan nomor urut. Setelah proses ini, semua kromosom memiliki kesempatan untuk terpilih, namun metode ini akan menuntun ke konvergensi yang lebih lambat, karena kromosom yang terbaik tidak jauh berbeda dengan yang lain. Seleksi rangking dapat dilihat pada gambar II.5 dan gambar II.6 berikut

Gambar II.5 Sebelum Rangking Kromosom

1 58% Kromosom

2 23% Kromosom

3 10%

Kromosom 4 9%

Kromosom 1 71% Kromosom

2 9%

Kromosom 3 11%

Kromosom 4 9%


(31)

Gambar II.6 Sesudah Rangking 3. Seleksi Steady State

Metode ini tidak banyak digunakan dalam proses seleksi karena dilakukan dengan mempertahankan individu yang terbaik. Pada setiap generasi, akan dipilih beberapa kromosom yang memiliki nilai fitness terburuk akan digantikan dengan offspring yang baru, sehingga pada generasi selanjutnya akan terdapat beberapa populasi yang dipertahankan.

II.2.4.2 Crossover

Crossover merupakan proses pada algoritma genetik yang bekerja untuk menggabungkan dua kromosom orang tua (parent) menjadi kromosom baru (offspring) pada suatu waktu. Sebuah kromosom yang mengarah pada solusi yang baik dapat diperoleh melalui proses crossover pada dua buah kromosom. Tidak semua kromosom mengalami persilangan. Cara sederhana pada proses persilangan yaitu dengan memilih suatu titik yang dipisahkan secara random dan kemudian membentuk offspring dengan cara mengkombinasikan segmen dari satu induk ke sebelah kiri dari titik yang dipisahkan dengan segmen dari induk yang lain ke sebelah kanan dari titik yang dipisahkan. Ada beberapa jenis metode persilangan, berikut ini adalah beberapa metode persilangan yang sering digunakan.

1. Crossover Satu Titik

Proses crossover dilakukan dengan memisahkan suatu string menjadi dua bagian, kemudian salah satu bagian dipertukarkan dengan salah satu bagian

Kromosom 1 40%

Kromosom 2 25% Kromosom 3

18% Kromosom 4


(32)

dari string lain yang telah dipisahkan. Misalkan ada 2 kromosom dengan panjang 12 :

Induk 1 : 0 1 1 1 0 | 0 1 0 1 1 1 0

Induk 2 : 1 1 0 1 0 | 0 0 0 1 1 0 1 Kromosom yang dipilih : 5

Anak 1 : 0 1 1 1 0 | 0 0 0 1 1 0 1 Anak 2 : 1 1 0 1 0 | 0 1 0 1 1 1 0

2. Crossover Banyak Titik

Proses crossover ini dilakukan dengan memisahkan suatu string menjadi beberapa bagian dan selanjutnya dipertukarkan dengan bagian dari string yang lain yang telah dipisahkan. Misalkan ada 2 kromosom dengan panjang 12 :

Induk 1 : 0 1 | 1 1 0 0 | 1 0 1 1 | 1 0

Induk 2 : 0 1 | 0 1 0 0 | 0 0 1 1 | 0 1

Posisi yang dipilih : kromosom setelah 2, 6 dan 10 Kromosom baru yang terbetuk :

Anak 1 : 0 1 | 0 1 0 0 | 1 0 1 1 | 0 1 Anak 2 : 1 1 | 1 1 0 0 | 0 0 1 1 | 1 0

3. Crossover Aritmatika

Suatu operasi aritmatika digunakan untuk menghasilkan offspring yang baru. Kromosom baru dihasilkan dari operasi aritmatika yang dilakukan terhadap kedua orangtuanya.

Contoh :

Kromosom Parent 1 : 11001011 Kromosom Parent 2 : 11011111 Offspring : 11001001 4. Crossover Pengkodean Permutasi

Prosesnya adalah dengan memilih satu titik tertentu, dari permutasi pertama sampai dengan titik crossover disalin dari orangtua pertamanya, sedangkan sisanya didapatkan dengan cara melihat satu persatu nilai pada orang tua


(33)

kedua, jika belum ada pada kromosom keturunan, maka nilai tersebut ditambahkan.

Contoh :

Kromosom Parent 1 : 123456789 Kromosom Parent 2 : 453689721 Offspring : 12345689

II.2.4.3 Mutasi

Mutasi merupakan proses untuk mengubah salah satu atau lebih gen dari suatu kromosom. Proses ini berperan untuk menggantikan gen yang hilang dari populasi akibat proses seleksi yang memungkinkan munculnya kembali gen yang tidak muncul pada inisialisasi populasi. Beberapa cara operasi mutasi yang diterapkan dalam algoritma genetika menurut jenis pengkodeannya, antara lain : 1. Mutasi Dalam Pengkodean Biner

Mutasi pada pengkodean biner merupakan operasi yang sangat sederhana. Proses yang dilakukan adalah menginversi nilai bit pada posisi tertentu yang dipilih secara acak (atau dengan menggunakan skema tertentu ) pada kromosom. 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. Mutasi Pada Pengkodean Nilai

Proses mutasi pada pengkodean biner dapat diterapkan pada pengkodean nilai karena tidak perlu menjaga konsistensi adanya urutan pada kromosom. Tetapi yang dilakukan bukanlah menginversi bit, melainkan tergantung dari jenis nilai yang dipergunakan. Misalnya nilai yang berupa bilangan riil dimutasi dengan cara saling menukar nilai dua gen yang terdapat pada kromosom, tetapi cara ini tidak memberikan manfaat untuk menjamin adanya perbedaan dalam populasi, semua kromosom dengan mudah memiliki nilai yang sama dan akhirnya terjadi konvergensi prematur. Cara lain yang lebih baik adalah dengan memilih 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


(34)

itu cara mutasi lain yang relevan dapat digunakan. Contoh mutasi pada pengkodean nilai :

Kromosom sebelum mutasi : 1,45 2,67 1,87 2,56 Kromosom sesudah mutasi : 1,55 2,67 1,77 2,56 3. Mutasi Pada Pengkodean Pohon

Mutasi dapat dilakukan dengan mengubah operator (+, -, *, /) atau nilai yang terkandung pada suatu vertex pohon yang dipilih, atau juga dapat dilakukan pemilihan dua vertex dari pohon dan saling dipertukarkan operator atau nilainya. Contoh mutasi pada pengkodean nilai adapat dilihat pada tabel II.4 berikut.

Tabel II.4 Contoh Mutasi Pada Pengkodean Mutasi

4. Mutasi Pada Pengkodean Permutasi

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

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


(35)

II.2.5 Parameter Dalam Algoritma Genetik

Dua parameter dasar yang penting dari algoritma genetika adalah probabilitas crossover dan probabilitas mutasi.

II.2.5.1 Probabilitas Crossover

Probabilitas crossover akan mengendalikan operator crossover dalam setiap generasi dalam populasi yang mengalami crossover. Semakin besar nilai probabilitas crossover, akan semakin cepat struktur individu baru terbentuk ke dalam populasi. Sedangkan apabila nilai probabilitas crossover terlalu besar, individu yang merupakan kandidat solusi terbaik mungkin akan dapat hilang lebih cepat pada generasi selanjutnya. Disarankan nilai probabilitas crossover berkisar antara 80 % - 95 %.

II.2.5.2 Probabilitas Mutasi

Probabilitas mutasi akan mengendalikan operator mutasi pada setiap generasi dimana peluang mutasi yang digunakan biasanya lebih kecil daripada peluang crossover. Pada seleksi alam murni, mutasi jarang sekali muncul. Oleh karena itu, operator mutasi pada algoritma genetik juga tidak selalu terjadi. Untuk itulah nilai peluang mutasi dibuat lebih kecil untuk setiap generasi. Disarankan nilai probabilitas mutasi kecil berkisar antara 0.5 % - 1 %.

Parameter lain yang juga ikut menentukan efisiensi kinerja algoritma genetik adalah ukuran populasi, yaitu banyaknya kromosom dalam satu populasi. Tidak ada aturan yang pasti tentang berapa nilai ukuran populasi. Apabila ukuran populasi kecil berarti hanya tersedia sedikit pilihan untuk crossover dan sebagian kecil dari domain solusi saja yang dieksplorasi untuk setiap generasinya. Sedangkan apabila terlalu besar, kinerja algoritma genetik akan menurun. Penelitian menunjukan ukuran populasi besar tidak mempercepat pencarian solusi. Disarankan ukuran populasi berkisar antara 20–30.

II.2.6 Algoritma Tabu Search

Tabu Search adalah sebuah metode optimasi yang berbasis pada local search. Proses pencarian bergerak dari satu solusi ke solusi berikutnya, dengan cara memilih solusi terbaik dari neighborhood solusi sekarang (current) yang tidak tergolong solusi terlarang (tabu). Ide dasar dari algoritma tabu search adalah


(36)

mencegah proses pencarian dari local search agar tidak melakukan pencarian ulang pada ruang solusi yang sudah ditelusuri dengan memanfaatkan suatu struktur memori yang mencatat sebagian jejak proses pencarian yang telah dilakukan [5].

Struktur memori fundamental dalam tabu search dinamakan tabu list. Tabu list menyimpan atribut dari sebagian move (transisi solusi) yang telah diterapkan pada iterasi-iterasi sebelumnya. Tabu search menggunakan tabu list untuk menolak solusi-solusi yang memenuhi atribut tertentu guna mencegah proses pencarian mengalami pengulangan pada daerah solusi yang sama, dan menuntun proses pencarian menelusuri daerah solusi yang belum dikunjungi. Tanpa menggunakan strategi ini, local search yang sudah menemukan solusi optimum lokal dapat terjebak pada daerah solusi optimum lokal tersebut pada iterasi-iterasi berikutnya.

Perekaman solusi secara lengkap dalam sebuah forbidden list dan pengecekan apakah sebuah kandidat solusi tercatat dalam list tersebut merupakan cara yang mahal, baik dari sisi kebutuhan memori maupun kebutuhan waktu komputasi. Jadi tabu list hanya menyimpan langkah transisi (move) yang merupakan lawan atau kebalikan dari langkah yang telah digunakan dalam iterasi sebelumnya untuk bergerak dari satu solusi ke solusi berikutnya. Dengan kata lain tabu list berisi langkah-langkah yang membalikkan solusi yang baru ke solusi yang lama.

Pada tiap iterasi, dipilih solusi baru yang merupakan solusi terbaik dalam neighborhood dan tidak tergolong sebagai tabu. Kualitas solusi baru ini tidak harus lebih baik dari kualitas solusi sekarang. Apabila solusi baru ini memiliki nilai fungsi objektif lebih baik dibandingkan solusi terbaik yang telah dicapai sebelumnya, maka solusi baru ini dicatat sebagai solusi terbaik yang baru. Sebagai tambahan dari tabu list, dikenal adanya kriteria aspirasi, yaitu suatu penanganan khusus terhadap move yang dinilai dapat menghasilkan solusi yang baik namun move tersebut berstatus tabu. Dalam hal ini, jika move tersebut memenuhi kriteria aspirasi yang telah ditetapkan sebelumnya, maka move tersebut dapat digunakan untuk membentuk solusi berikutnya (status tabunya dibatalkan) [6].


(37)

II.2.6.1 Ide Dasar Tabu Search

Sebuah informasi akan digunakan sebagai petunjuk untuk bergerak dari I ke solusi selanjutnya dalam N(i). Penggunaan memori sebagai pembatas dalam pemilihan beberapa subnet dari N(i) dengan mencegah pergerakan kebeberapa solusi tetangga. Sebuah informasi akan digunakan sebagai petunjuk untuk bergerak dari i ke solusi selanjutnya dalam N(i). Metode tabu search akan menjadi sebuah algoritma yang menyediakan proses eksplorasi yang menjamin setelah sejumlah langkah-langkah solusi dapat dicapai.

Prinsip kerja tabu search dapat dilakukan dengan metode menurun klasik (classical decent method), yaitu :

1. Memilih sebuah langkah awal i dalam S

2. Membangkitkan subset V* sebagai solusi dalam N(i) 3. Mencari j ‘terbaik’ dalam V* dan menetapkan i=j

4. Jika f(j)-f(i) maka berhenti, namun jika tidak kembali kelangkah ke-2. Dalam metode menurun secara umum akan dapat langsung ditetapkan bahwa V* = N(i). Tetapi hal ini seringkali membutuhkan waktu yang lama, untuk itulah cara pemilihan V* yang tepat seringkali dijadikan sebagai peningkatan yang penting dalam metode pencarian.

Sebagai pengecualian pada kasus-kasus istimewa, penggunaan prosedur menurun (descent procedure) secara umum lebih rumit karena kita akan terperangkap pada sebuah minimum lokal yang mungkin masih jauh dari minimum global. Maka untuk proses iterasi dalam eksplorasi apapun sebaiknya dalam beberapa hal juga menerima langkah-langkah yang tidak akan memberikan perkembangan dari i ke j dalam V* (misal f(j)>f(i)). Metode tabu search secara berbeda memilih j ‘terbaik’ dalam V*. Selama pergerakan yang tidak memberi perkembangan itu mungkin, resiko pengunjungan kembali sebuah solusi atau lebih umumnya disebut sebagai siklus mungkin untuk terjadi. Dalam hal inilah penggunaan memori sangat diperlukan untuk mencegah terjadinya pergerakan ke solusi yang telah dikunjungi. Jika memori seperti itu diperkenalkan, maka kita dapat menganggap struktur N(i)tergantung pada pengelilingan yang merupakan pengulangan k. Jadi dapat merujuk ke N(i,k) daripada N(i). Dengan perujukan ini


(38)

dapat mencoba untuk melakukan peningkatan algoritma menurun dalam beberapa hal untuk lebih mendekatkan metode ini ke prosedur dalam metode tabu search secara umum

II.2.7 Internet

Internet (interconnected Network) merupakan jaringan (network) komputer yang terdiri dari ribuan jaringan komputer independen yang dihubungkan satu dengan yang lainnya. Jaringan komputer ini dapat terdiri dari pendidikan, pemerintahan, militer, organisasi bisnis dan organisasi-organisasi lainnya [7].

II.2.7.1 Perkembangan Internet

Jumlah pengguna internet yang besar dan semakin berkembang, telah mewujudkan budaya internet. Internet juga mempunyai pengaruh yang besar atas ilmu, dan pandangan dunia. Dengan hanya menggunakan mesin pencari seperti Google, pengguna di seluruh dunia mempunyai akses yang mudah atas bermacam-macam informasi. Dibanding dengan buku dan perpustakaan, internet melambangkan penyebaran (decentralization) informasi dan data secara ekstrim.

Terkait dengan teknologi pembuatan website sebagai konten dari teknologi internet itu sendiri memicu perkembangan teknik pembuatan website yang semakin canggih dengan fitur-fitur yang sangat beragam tidak hanya terbatas pada teks dan gambar saja, akan tetapi sudah merambah kedalam dunia multimedia dan telekomunikasi visual. Bahkan dengan munculnya teknologi content manajemen sistem pengguna yang awam dengan kemampuan teknis yang sedikipun bisa membuat website sesuai dengan keinginannya tanpa harus berhubungan dengan webmaster dengan content yang dinamis dan selalu uptodate [8].

II.2.8 Entity Relationship Diagram (ERD)

Entity Relationship Diagram atau biasa dikenal dengan diagram E-R berisi komponen-komponen himpunan entitas dan himpunan relasi yang masing-masing dilengkapi dengan atribu-atribut yang merepresentasikan seluruh fakta dari dunia nyata.


(39)

Elemen-elemen Entity Relationship Diagram adalah sebagai berikut [9]. 1. Entity (Entitas)

Pada diagram E-R, entitas digambarkan dengan sebuah persegi panjang. Entitas adalah individu yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu lainnya. Entitas diberi nama dengan kata benda dan dapat dikelompokan dalam empat jenis nama, yaitu: orang, benda, lokasi kejadian (terdapat unsur waktu didalamnya).

2. Relationship (Relasi)

Pada diagram E-R, relasi dapat digambarkan dengan sebuah belah ketupat. Relasimenunjukan adanya hubungan di antara satu entitas dengan entitas lainnya. Pada umumnya relasi diberi nama dengan kata kerja dasar, sehinga memudahkan untuk melakukan pembacaan relasinya.

3. Atribut

Pada diagram E-R atribut adalah segala sesuatu yang mendeskripsikan karakteristik dari entitas.

4. Kardinalitas/Derajat Relasi

Kardinalitas relasi menunjukan jumlah maksimum tupel yang dapat berelasi dengan entitas yang lainnya. Dari sejumlah kemungkinan banyaknya hubungan yang terjadi dari entitas, kardinalitas relasi merujuk kepada hubungan maksimum yang terjadi dari entitas yang satu ke entitas yang lainnya dan begitu juga sebaliknya. Kardinalitas/ Derajat Relasi yang terjadi di antara dua entitas sebagai berikut:

a. One to one Relationship

Tingkat hubungan satu ke satu, dinyatakan dengan satu kejadian pada entitas pertama, hanya mempunyai satu hubungan dengan satu kejadian pada entitas yang kedua dan sebaliknya. Gambar II.7 berikut adalah ilustrasi dari One to one Relationship.


(40)

A B

1 1

Gambar II.7 One to One Relationship b. One to many Relationship

Tingkat hubungan satu ke banyak adalah untuk satu kejadian pada entitas yang pertama dapat mempunyai banyak hubungan dengan kejadian pada entitas yang kedua.

A B

N 1

Gambar II.8 One to Many Relationship c. Many To One Relationship

Untuk banyak kejadian pada entitas yang pertama hanya dapat mempunyai satu hubungan dengan kejadian pada entitas yang kedua. Gambar II.9 berikut adalah ilustrasi dari Many To One Relationship.

A B

1 N

Gambar II.9 Many to One Relationship d. Many to many Relationship

Tingkat hubungan banyak ke banyak terjadi jika tiap kejadian pada sebuah entitas akan mempunyai banyak hubungan dengan kejadian pada entitas lainnya, baik dilihat dari sisi entitas yang pertama maupun dilihat dari sisi yang kedua. Gambar II.10 berikut adalah ilustrasi dari Many to many Relationship.

A B

N

N

Gambar II.10 Many to Many Relationship 5. Key (Kunci)

Sebuah atribut atau set atribut yang nilainya mengidentifikasikan entitas secara unik dalam suatu entitas. Key memiliki beberapa jenis sesuai dengan


(41)

kegunaannya masing-masing, yaitu primary key (kunci utama), foreign key (kunci tamu).

II.2.9 Diagram Konteks

Diagram konteks adalah sebuah diagram sederhana yang menggambarkan hubungan antara entitas luar, masukan dan keluaran dari sistem [9]. Dalam penggambaran ini, sistem dianggap sebagai sebuah objek yang tidak dijelaskan secara rinci, karena yang ditekankan adalah interaksi sistem dengan lingkungan yang mengaksesnya.

Diagram konteks merupakan gambaran umum sistem yang akan dibangun. Dapat dikatakan bahwa diagram konteks itu berisi siapa saja yang memberikan data (input) ke sistem serta kepada siapa data informasi yang harus dihasilkan sistem. Gambar II.11 berikut adalah contoh gambar diagram konteks.

Gambar II.11 Contoh Diagram Konteks [9]

II.2.10 Data Flow Diagram (DFD)

Data flow diagram adalah suatu model logika data atau proses yang dibuat untuk menggambarkan dari mana asal data dan kemana tujuan data yang keluar dari sistem, dimana data tersimpan, proses apa yang menghasilkan data tersebut dan interaksi antara data tersimpan dan proses yang dikenakan pada data tersebut


(42)

[9]. DFD adalah suatu grafik yang menjelaskan sebuah sistem dengan menggunakan bentuk-bentuk atau simbol untuk menggambarkan input, proses dan output yang terjadi dalam suatu sistem. DFD juga menggambarkan aliran data dalam sebuah sistem. Dalam mendokumentasikan sebuah sistem, DFD mempunyai level-level mulai dari yang terkecil, yaitu level 0 atau sering disebut diagram konteks. Diagram konteks merupakan gambaran paling umum dari sistem, yang hanya memiliki satu proses saja untuk mewakili seluruh sistem.

II.2.11 Kamus Data

Kamus data adalah peralatan yang ikut berperan dalam perancangan dan membangun sistem informasi karena berfungsi untuk menjelaskan arti aliran data dan penyimpanan dalam penggambaran pada data flow diagram, mendeskripsikan komposisi paket data yang bergerak melalui aliran, dan menjelaskan spesifikasi nilai dan satuan yang relevan terhadap data yang mengalir dalam sistem tersebut [9].

II.2.12 Tinjauan Perangkat Lunak II.2.12.1 MYSQL

MySQL adalah database yang menghubungkan script PHP menggunakan perintah query dan escaps character yang sama dengan PHP. MySQL mempunyai tampilan client yang dapat mempermudah dalam mengakses database dengan kata sandi untuk mengijinkan proses yang boleh dilakukan [10].

MySQL adalah Relational Database Management System (RDMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk meggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat closed Source atau komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Languange). SQL adalah sebuah konsep pengoprasian database, terutama untuk pemulihan atau seleksi dan pemasukan data, yang memungkinkan pengoprasian data dikerjakan dengan mudah secara otomatis. Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat


(43)

oleh user maupun program-program aplikasinya. Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan limakali lebih cepat dibandingkan Interbase. Selain itu MySQL juga memiliki beberapa keistimewaan, antara lain [10]:

1. Protability

MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows,Linux, FreeBSD, Mac Os X Server, Solaris, Amigan, dan masih banyak lagi.

2. Open Source

MySQL didistribusikan secara gratis, dibawah lisensi GPL sehingga dapat digunakan secara percuma.

3. Multi-user

MySQL dapat digunakan oleh berberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.

4. Performance tuning

MySQL memiliki kecepatan yang menakjubkan dalam mengenai query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.

5. Column type

MySQL memiliki tipe kolom yang sangat kompleks, seperti signed/unsignedinteger, float, char, double, text, date, timestamp, dan lain-lain.

6. Command and functions

MySQL memiliki operator fungsi secara penuh yang mendukung perintah select dan where dalam query.

7. Security

MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.


(44)

8. Scability dan limits

MySQL mampu menangani database dalam skala besar, dengan jumlah record lebih dari 50 juta 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.

9. Connectivity

MySQL dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).

10. Localization

MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa. Meskipun demikian, bahasa Indonesia belum termasuk didalamnya.

11. Interface

MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemograman dengan menggunakan fungsi API (Application Programming Interface).

12. Client dan tools

MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi database, dan pada setiap tool yang ada disertakan petunjuk online.

II.2.13 Adobe Dreamweaver

Dreamweaver merupakan perangkat lunak untuk membuat suatu website. Pada awalnya dreamweaver merupakan produk dari Macromedia Inc, dan versi pertama dirilis pada tahun 1997. Versi terakhir dreamweaver yang dikeluarkan oleh Macromedia Inc adalah versi 8 yaitu pada tahun 2005. Kemudian pada tahun 2007 Macromedia Inc dibeli oleh Adobe Systems. Dan versi terakhir dreamweaver yang dikeluarkan oleh Adobe Systems adalah versi 11.5 yang ada dalam Adobe Creative Suite 5.5 dan sering disingkat dengan Adobe CS5.5 pada tahun 2011.


(45)

Sejak awal keluar, dreamweaver menjadi web editor yang banyak digunakan oleh para web developer. Hal ini antara lain karena kemudahan dalam penggunaannya, fasilitas, dan kemampuan dreamweaver yang powerful dan menunjang peningkatan produktifitas dan efektifitas untuk mendesain atau membangun website. Dreamweaver juga dilengkapi dengan fasilitas untuk manajemen situs yang cukup lengkap kelengkapan fiturnya dan juga dukungannya terhadap teknologi terkini.

II.2.14 Personal Home Page (PHP)

PHP adalah salah satu bahasa server-side yang didesain khusus untuk aplikasi web.PHP dulunya merupakan proyek pribadi dari Rasmus Lerdorf (dengan dikeluarkannya php versi 1) yang digunakan untuk membuat homepage pribadinya. Versi pertama ini berupa kumpulan script PERL. Untuk versi keduanya, Rasmus menulis ulang script-script PERL tersebut menggunakan bahasa C, kemudian menambahkan fasilitas untuk form html dan koneksi MYSQL. Adapun PHP didapat dari singkatan Personal Home Page.

Dengan menggunakan PHP maka maintenance suatu situs web menjadi lebih mudah. Proses update data dapat dilakukan dengan menggunakan aplikasi yang dibuat dengan menggunakan script PHP. PHP/FI merupakan nama awal dari PHP. PHP/FI adalah Form Interface, dibuat pertama kali oleh Rasmus Lerdoff. PHP, awalnya merupakan program CGI yang dikhususkan untuk menerima input melalui form yang ditampilkan dalam web.

PHP secara dasar dapat mengerjakan semua yang dapat dikerjakan oleh program CGI, seperti mendapatkan data dari form, menghasilkan isi halaman web yang dinamis, dan menerima cookies. Kemampuan (Feature) PHP yang paling diandalkan dan signifikan adalah dukungan kebanyak database. Membuat halaman web yang menggunakan data dari database dengan sangat mudah dapat dilakukan [10].


(46)

35

III.1 Analisis Sistem

Definisi analisis sistem adalah penguraian dari suatu sistem informasi yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi permasalahan, kesempatan, hambatan yang terjadi dan kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan [7].

Sistem yang berjalan di lembaga kursus E-Learning For Kids saat ini masih menggunakan cara manual, yaitu dengan melakukan pencarian kolom-kolom mana saja yang masih kosong kemudian menempatkan jadwal pada kolom-kolom tersebut. Cara ini kurang efektif karena membutuhkan waktu yang lama dan jadwal yang dihasilkan cenderung menghasilkan jadwal yang menumpuk pada hari-hari tertentu dan tingkat ke akuratannya tidak bisa dijamin. Oleh sebab itu, untuk menyelesaikan masalah tersebut dibutuhkan sebuah sistem baru dengan membangun aplikasi penjadwalan sehingga pembuatan jadwal di lembaga kursus E-Learning For Kids menjadi lebih cepat, tidak ada permasalahan bentrokan pada sisi ruangdan pengajar, serta jadwal yang dihasilkan tidak mengalami penumpukan pada hari-hari tententu.

III.1.1 Analisis Prosedur 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, yaitu dengan pencarian kolom-kolom mana saja yang masih kosong, kemudian menempatkan jadwal pada kolom-kolom tersebut.

Penjadwalan kegiatan akademik yang selama ini dilakukan, dikerjakan oleh pegawai. Selama ini lembaga kursus E-Learning For Kids mengalami kendala terjadinya bentrokan untuk setiap jadwal bimbingan belajar. Terdapat 4 jenis data yang akan dijadwalkan yaitu data pengajar, data ruangan kelas, data


(47)

waktu, dan data level. Analisis sistem yang sedang berjalan dapat digambarkan dengan flowmap. Lihat gambar III.1 berikut.

Penjadwalan

Bagian Administrasi Pengajar

Keterangan :

A : Arsip jadwal kegiatan akademik

Gambar III.1 Flowmap Penjadwalan Kegiatan Akademik

Keterangan Flowmap penjadwalan kegiatan akademik yang sedang berjalan di lembaga kursus E-Learning For Kids yaitu :

1. Bagian administrasi menyiapkan data level, data pengajar, data ruang dan data waktu untuk proses penjadwalan.

Data Level, pengajar, ruang, waktu

Pembentuk an Jadwal

Jadwal Sementara

Jadwal Sementara

Pengecek an Jadwal

Jadwal Bentrok Jadwal yang

sudah jadi

Ya Tidak


(48)

2. Kemudian bagian administrasi melakukan proses penjadwalan dengan mencocokan antara level, pengajar, ruang dan waktu di kolom-kolom mana saja yang masih kosong.

3. Setelah jadwal terbentuk (masih bersifat sementara), bagian administrasi memberikan jadwal kepada setiap pengajar dan pengajar melakukan proses pengecekan apakah terjadi bentrokan pada jadwal yang sudah dibuat.

4. Bila masih terjadi bentrokan maka bagian administrasi kembali melakukan proses penjadwalan. Tapi jika tidak terjadi bentrok maka jadwal tersebut sudah dapat diarsipkan.

III.1.1.1 Aturan Penjadwalan

Permasalahan yang harus dihindari dalam penyusunan jadwal kegiatan akademik adalah ketika terjadi pelanggaran terhadap kendala yang termasuk kedalam hard constraint. Hard constraint adalah suatu syarat dimana tidak boleh terjadi pelanggaran terhadap kendala yang ditetapkan.

Aturan penjadwalan kegiatan akademik di E-Learning For Kids adalah : 1. Jadwal kegiatan akademik yang disusun hanya berlaku untuk 6 bulan.

2. Tidak ada pengajar yang mengajar didua kelas yang berbeda pada waktu yang sama

3. Satu level dapat diajar lebih dari 1 orang pengajar.

4. Jadwal yang dihasilkan disusun berdasarkan seluruh pengajar yang tersedia 5. Waktu kursus dalam sehari dimulai dari jam 07.00-16.00 WIB. Lama setiap

satuan waktu kursus adalah 60 menit, dalam jangka waktu 1 hari terdapat 9 slot waktu, maka dalam 5 hari (senin sampai dengan jumat) terdapat 45 slot waktu.

Agar tercapainya penjadwalan yang baik, maka sejumlah batasan dan syarat diatas tidak boleh dilanggar. Penjadwalan yang baik adalah penjadwalan yang tidak mengandung bentrok antara komponen yang dijadwalkan, dalam hal ini berupa pengajar, level, waktu, ruangan, dan kesediaan waktu pengajar.


(49)

III.1.2 Analisis Algoritma Genetik dan Tabu Search III.1.2.1 Data Penelitian

Data yang digunakan untuk penyusunan jadwal kegiatan akademik adalah jadwal kegiatan akademik di E-Learning For Kids. Data tersebut berupa data pengajar, data kesediaan waktu pengajar, data level / jenjang pendidikan, data ruang, dan data waktu. Data yang nantinya akan diperlukan sebagai data masukan kemudian disusun kedalam tabel yang terdiri dari 6 buah tabel, yaitu tabel pengajar, tabel kesediaan waktu pengajar, tabel level, tabel ruang, tabel hari dan tabel jam.

1. Data Pengajar

Data pengajar yang ada di lembaga kursus E-Learning For Kids cabang kota bekasi. Lihat tabel III.1

Tabel III.1 Data Pengajar

2. Data Kesediaan Waktu Pengajar

Data kesediaan waktu pengajar di lembaga kursus E-Learning For Kids cabang kota bekasi selama 5 hari yaitu senin sampai dengan jumat. Seluruh pengajar dapat mengajar pada hari senin sampai dengan jumat, hanya jam kesediaan mengajarnya saja yang berbeda. Lihat tabel III.2 berikut

Tabel III.2 Kesedian Waktu Pengajar Mengajar

Kode Pengajar Nama Pengajar

P01 Yuni

P02 Irnawati W. Putri

P03 Iis Sunarti

P04 Roida Purnama

P05 Susanti

Kode Waktu

Pengajar Waktu Hari Kode Pengajar

WP01 07.00 - 08.00 Senin s/d Jumat P01, P02, P03, P04 WP02 08.00 - 09.00 Senin s/d Jumat P01, P05


(50)

3. Data Level / Jenjang Pendidikan

Pembagian level atau jenjang pendidikan di lembaga kursus E-Learning For Kids terdiri dari 4 level yaitu Start Star, Smart Star 1, Smart Star 2, dan Smart star 3. Semua level terdapat dua kelas dan semua level dapat diajar oleh semua pengajar. Lihat tabel III.3

Tabel III.3 Data Level Bimbingan Kursus

4. Data Ruang

Sebagai tempat penyelenggaraan bimbingan kursus, Semua ruang bimbingan di Lembaga Kursus E-Learning For Kids dapat digunakan pada

WP03 09.00 - 10.00 Senin s/d Jumat P01, P05 WP04 10.00 - 11.00 Senin s/d Jumat P01, P02, P05 WP05 11.00 - 12.00 Senin s/d Jumat P01, P05

WP06 12.00 - 13.00 Senin s/d Jumat P01, P02, P03, P04, P05 WP07 13.00 - 14.00 Senin s/d Jumat P01, P02, P03, P04, P05 WP08 14.00 - 15.00 Senin s/d Jumat P01, P02, P03, P04 WP09 15.00 - 16.00 Senin s/d Jumat P01, P04, P02

Kode

Kelas Nama Kelas Nama Level

Banyak Pertemuan / Minggu

K1A 1A

Start Star 3

K1B 1B 3

K2A 2A

Smart Star 1 3

K2B 2B 3

K3A 3A

Smart Star 2 3

K3B 3B 3

K4A 4A

Smart Star 3 3


(51)

semua jam bimbingan yang ada. Kapasitas masing-masing ruangan sama yaitu dengan maksimal 10 siswa per kelas. Lihat tabel III.4

Tabel III.4 Data Ruang

5. Data Hari

Data hari di lembaga kursus E-Learning For Kids selama 5 hari yaitu senin sampai dengan jumat. Lihat tabel III.5

Tabel III.5 Data Hari Bimbingan Kursus

Kode Hari Nama Hari

H01 Senin

H02 Selasa

H03 Rabu

H04 Kamis

H05 Jumat

6. Data Jam

Data jam di lembaga kursus E-Learning For Kids terdiri dari 9 jam, mulai dari jam 07.00 sampai dengan jam 16.00 WIB. Lihat tabel III.6

Tabel III.6 Data Jam Bimbingan Kursus

Kode Jam Jam

J01 07.00 – 08.00

J02 08.00 – 09.00

J03 09.00 – 10.00

J04 10.00 – 11.00

Kode Ruangan Nama Ruangan

R01 1

R02 2

R03 3


(52)

J05 11.00 – 12.00

J06 12.00 – 13.00

J07 13.00 – 14.00

J08 14.00 – 15.00

J09 15.00 – 16.00

Berdasarkan data diatas, Dalam waktu satu hari yang digunakan untuk bimbingan kursus terdapat 9 jam , hari yang digunakan untuk bimbingan kursus adalah dari hari senin sampai dengan jumat, berarti ada 5 hari bimbingan belajar dalam satu minggu, sehingga total slot waktu yang disediakan dalam satu minggu adalah 9 x 5 = 45 slot waktu. Untuk lebih jelasnya lihat tabel III.7 berikut

Tabel III.7 Slot Waktu Bimbingan Kursus

Jam

Slot Waktu

Senin Selasa Rabu Kamis Jumat

07.00 – 08.00 1 10 19 28 37

08.00 – 09.00 2 11 20 29 38

09.00 – 10.00 3 12 21 30 39

10.00 – 11.00 4 13 22 31 40

11.00 – 12.00 5 14 23 32 41

12.00 – 13.00 6 15 24 33 42

13.00 – 14.00 7 16 25 34 43

14.00 – 15.00 8 17 26 35 44

15.00 – 16.00 9 18 27 36 45

Metode yang digunakan untuk mengoptimalkan jadwal kegiatan akademik yang telah ada, penulis menggunakan metode algoritma genetik dan tabu search. Pengoptimalan jadwal menggunakan algoritma genetik dan tabu search didasarkan pada mekanisme sistem natural yaitu genetik dan seleksi alam. Seperti dalam metode random, pencarian dimulai dari suatu titik uji tertentu. Titik uji


(53)

tersebut dianggap sebagai alternatif solusi. Pada algoritma genetik, dibuat kumpulan dari alternatif solusi yang disebut sebagai populasi. Dengan adanya populasi ini, maka algoritma genetik melakukan proses pencarian dari titik uji sekaligus. Pemilihan nilai alternatif solusi ini dilakukan secara random. Sedangkan fungsi tabu search disini adalah untuk mencegah proses pencarian mengalami pengulangan pada daerah solusi yang sama, dan menuntun proses pencarian menelusuri daerah solusi yang belum dikunjungi.

III.1.2.2 Penetapan Parameter

Hal pertama yang dilakukan dalam pengujian terhadap kombinasi algoritma genetik dan tabu search adalah menentukan parameter, sehingga tujuan pembuatan jadwal kegiatan akademik dengan menggunakan kombinasi algoritma genetik dan tabu search dapat tercapai dengan maksimal. Beberapa parameter yang harus ditentukan adalah cara pengkodean, inisialisasi populasi (pembentukan populasi awal), evaluasi fitness, seleksi, crossover, tabu list, mutasi dan kondisi selesai. Berikut ini adalah parameter algoritma genetik dan tabu search :

1. Pengkodean

Parameter yang pertama kali ditentukan untuk melakukan proses algoritma genetik adalah teknik pengkodean. Pengkodean adalah cara untuk mempresentasikan masalah kedalam bentuk kromosom, pengkodean yang akan digunakan untuk aplikasi penjadwalan ini adalah pengkodean nilai. Setiap kromosom merupakan barisan dari beberapa nilai. Nilai bisa berupa apa saja, seperti bilangan biasa, bilangan riil dan karakter. Data yang akan dikodekan kedalam algoritma genetik ini adalah data pengajar, data hari, data jam, data kelas dan data ruang. Semuanya dirubah menjadi bilangan berdasarkan id atau kode.

1. Pengajar terdiri dari 5 orang pengajar Pengajar : P01, P02, P03, P04, P05 2. Hari terdiri dari 5 hari

Hari : H01, H02, H03, H04, H05 3. Jam terdiri dari 9 slot

Jam : J01, J02, J03, J04, J05, J06, J07, J08, J09


(54)

Kelas : 01A, 01B, 02A, 02B, 03A, 03B, 04A, 04B 5. Ruangan terdiri dari 4 ruang

Ruang : R01, R02, R03, R04

Berdasarkan proses pengkodean diatas, maka sebuah kromosom akan berbentuk :

Kromosom = P01 H01 J01 K01A R01

Urutan kode pada setiap gen mewakili kode pengajar (P01), kode hari (H01), kode jam (J01), kode kelas (K01A), dan kode ruang (R01). Penempatan urutan kode pada setiap gen dilakukan secara tetap berdasarkan suatu bilangan yang dibangkitkan secara acak (random). Pada bilangan tersebut merupakan jumlah dari seluruh level dan ruang yang tersedia.

Untuk lebih jelasnya lihat tabel III.1-III.6.

6. Inisialisasi Populasi (pembentukan populasi awal)

Prosedur inisialisasi (membangkitkan populasi awal) adalah membangkitkan sejumlah individu secara acak (random). Pencarian solusi dimulai dari suatu titik uji tertentu. Titik uji tersebut dianggap alternatif solusi yang disebut sebagai populasi. Ukuran populasi tergantung pada masalah yang akan diselesaikan. Setelah ukuran populasi ditentukan, kemudian dilakukan pembangkitan populasi awal dengan cara melakukan inisialisasi solusi kedalam sejumlah kromosom. Panjang satu kromosom ditentukan berdasarkan permasalahan yang diteliti.

Parameter algoritma genetik yang ditetapkan adalah : Ukuran populasi (UkPop) = 12

Jumlah gen (N) = 5

Probabilitas crossover (Pc) = 0,8 Probabilitas mutasi (Pm) = 0,05 Generasi maksimum (MaxG) = 100

Berdasarkan penetapan parameter algoritma genetik diatas, Satu populasi terdiri dari 12 kromosom yang terdiri dari 5 gen. Panjang satu kromosom adalah gabungan gen berdasarkan jumlah dari seluruh pengajar, hari, jam, kelas dan ruang.


(55)

Kromosom 1= P02H01J04K01AR02

Kromosom 2= P03H01J01K01BR03

Kromosom 3= P01H02J08K02AR01

Kromosom 4= P04H05J02K02BR04

Kromosom 5= P05H03J03K03AR02

Kromosom 6= P04H04J04K03BR04

Kromosom 7= P02H03J09K04AR01

Kromosom 8= P01H01J06K04BR03

Kromosom 9= P02H02J02K01AR04

Kromosom 10= P03H03J03K01BR03

Kromosom 11= P03H01J05K02AR01

Kromosom 12= P04H05J02K03AR02

7. Evaluasi Fitness

Evaluasi fitness merupakan proses untuk mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom. individu yang memiliki nilai fitness tinggi pada kromosomnya yang akan dipertahankan, sedangkan individu yang nilai fitnessnya rendah akan diganti atau dibuang. Fungsi yang digunakan untuk menghitung nilai kecocokan atau derajat optimalitas suatu kromosom disebut dengan fitness function. Nilai yang dihasilkan oleh fungsi tersebut menandakan seberapa optimal solusi yang diperoleh. Nilai yang dihasilkan oleh fungsi fitness merepresentasikan seberapa banyak jumlah persyaratan yang dilanggar. Faktor-faktor yang dapat mempengaruhi evaluasi fitness terhadap alternatif solusi tersebut merupakan pelanggaran yang telah ditentukan sebelumnya. Setiap pelanggaran yang terjadi akan diberikan nilai 1, agar tidak terjadi nilai fitness yang tak terhingga maka jumlah total semua pelanggaran ditambah 1. Semakin sedikit jumlah pelanggarannya maka jadwal yang dihasilkan akan semakin baik. Rumus menghitung nilai fitnes suatu kromosom dapat dilihat di Bab II halaman 22.

Berdasarkan data yang tersedia, maka nilai fitness yang dihasilkan adalah sebagai berikut :


(56)

Fitness Kromosom 1 = 1

1 + ( 0 + 0 )

= 1

Fitness Kromosom 2 = 1

1 + ( 0 + 0 )

= 1

Fitness Kromosom 3 = 1

1 + ( 0 + 0 )

= 1

Fitness Kromosom 4 = 1

1 + ( 1 + 0 )

= 0,5

Fitness Kromosom 5 = 1

1 + ( 0 + 0 )

= 1

Fitness Kromosom 6 = 1

1 + ( 1 + 0 )

= 0,5

Fitness Kromosom 7 = 1

1 + ( 1 + 0 )

= 0,5

Fitness Kromosom 8 = 1

1 + ( 0 + 0 )

= 1

Fitness Kromosom 9 = 1

1 + ( 1 + 0 )

= 0,5

Fitness Kromosom 10 = 1

1 + ( 1 + 0 )

= 0,5

Fitness Kromosom 11 = 1

1 + ( 1 + 0 )

= 0,5

Fitness Kromosom 12 = 1

1 + ( 1 + 0 )

= 0,5

Menentukan nilai dari bentroknya waktu pengajar yang dilanggar dan ruang yang digunakan dihitung berdasarkan nilai gen yang ada didalam suatu kromosom, misalnya untuk menghitung fitnes pada kromosom satu, terdapat 5


(1)

Pengamatan Data tidak tersimpan dalam database sesuai dengan yang diharapkan

Kesimpulan Diterima

b. Pengolahan mengubah data level dapat dilihat pada tabel IV.18 berikut. Tabel IV.18 Pengujian Mengubah Data Level

Kasus dan Hasil Uji (Data Normal) Data masukan Nama level : Start star 1

Yang diharapkan Data yang telah di ubah tersimpan dalam database dan menampilkan data yang sudah tersimpan

Pengamatan Data level yang diubah sesuai dengan yang diharapkan

Kesimpulan Diterima

Kasus dan Hasil Uji (Data Salah) Data Masukan Nama Kelas : (kosong)

Yang diharapkan Menampilkan pesan “data tidak lengkap”

Pengamatan Menampilkan pesan “ data tidak lengkap” sesuai dengan yang diharapkan

Kesimpulan Diterima

c. Pengolahan menghapus data level dapat dilihat pada tabel IV.19 berikut.

Tabel IV.19 Pengujian Menghapus Data Level Kasus dan Hasil Uji (Data Normal)

Data masukan Pilih Data level dan Klik Tombol “Hapus” Yang diharapkan Menampilkan form konfirmasi “yakin data akan

dihapus ?” Pilih Iya atau Batal Tekan Iya tampil pesan sukses :”data berhasil dihapus”, Tekan Batal kembali ke halaman data level

Pengamatan Menampilkan form konfirmasi “yakin data akan dihapus ?” Pilih Iya atau Batal Tekan Iya tampil pesan


(2)

sukses :”data berhasil dihapus”, Tekan Batal kembali ke halaman data level sesuai dengan yang diharapkan

Kesimpulan Diterima

7. Pengujian Pengolahan Data Ruang

a. Pengolahan menambah data ruang dapat dilihat pada tabel IV.20 berikut.

Tabel IV.20 Pengujian Menambah Data Ruang Kasus dan Hasil Uji (Data Normal)

Data masukan Nama ruang : R05

Yang diharapkan Menampilkan pesan “data berhasil disimpan”

Pengamatan Data tersimpan dalam database dan menampilkan data berhasil tersimpan sesuai dengan yang diharapkan

Kesimpulan Diterima

Kasus dan Hasil Uji (Data Salah) Data Masukan Nama kelas : (kosong)

Yang diharapkan Menampilkan pesan ”data tidak lengkap”

Pengamatan Data tidak tersimpan dalam database sesuai dengan yang diharapkan

Kesimpulan Diterima

b. Pengolahan mengubah data ruang dapat dilihat pada tabel IV.21 berikut Tabel IV.21 Pengujian Mengubah Data Ruang

Kasus dan Hasil Uji (Data Normal) Data masukan Nama ruang : R06

Yang diharapkan Data yang telah di ubah tersimpan dalam database dan menampilkan data yang sudah tersimpan

Pengamatan Data level yang diubah sesuai dengan yang diharapkan

Kesimpulan Diterima


(3)

Data Masukan Nama ruang : (kosong)

Yang diharapkan Menampilkan pesan “data tidak lengkap”

Pengamatan Menampilkan pesan “ data tidak lengkap” sesuai dengan yang diharapkan

Kesimpulan Diterima

c. Pengolahan menghapus data ruang dapat dilihat pada tabel IV.22 berikut.

Tabel IV.22 Pengujian Menghapus Data Ruang Kasus dan Hasil Uji (Data Normal)

Data masukan Pilih Data ruang dan Klik Tombol “Hapus” Yang diharapkan Menampilkan form konfirmasi “yakin data akan

dihapus ?” Pilih Iya atau Batal Tekan Iya tampil pesan sukses :”data berhasil dihapus”, Tekan Batal kembali ke halaman data ruang. Sesuai dengan yang

diharapkan

Pengamatan Menampilkan form konfirmasi “yakin data akan dihapus ?” Pilih Iya atau Batal Tekan Iya tampil pesan sukses :”data berhasil dihapus”, Tekan Batal kembali ke halaman data ruang. Sesuai dengan yang

diharapkan

Kesimpulan Diterima

IV.2.3 Kesimpulan Hasil Pengujian Alpha

Berdasarkan hasil pengujian alpha (fungsional) dengan kasus uji diatas dapat ditarik kesimpulan sebagai berikut:

1. Jika data yang dimasukkan benar maka sistem secara fungsional akan mengeluarkan keluaran sesuai dengan yang diharapkan

2. Jika data yang dimasukkan salah pada sistem maka sistem akan menunjukkan pemberitahuan kesalahan masukkan dan tombol simpan tidak akan berfungsi.


(4)

secara fungsional sistem sudah dapat menghasilkan keluaran yang diharapkan., tetapi tidak menutup kemungkinan dapat terjadi kesalahan pada saat aplikasi digunakan. Sehingga membutuhkan proses maintenance untuk lebih mengetahui kekurangan dari aplikasi.

IV.2.4 Rencana Pengujian Beta

Pengujian beta merupakan pengujian yang dilakukan secara objektif dimana pengujian dilakukan secara langsung ke lembaga kursus E-Learning For Kids dengan menggunakan metode interview dengan cara mewawancarai user untuk mengetahui apakah aplikasi penjadwalan yang telah dibangun sudah sesuai atau belum dengan yang diharapkan. Responden untuk pengujian beta ini hanya berjumlah 1 orang saja yaitu admin.

Wawancara dilakukan kepada admin yang telah menggunakan sistem dan melakukan seluruh proses yang ada dalam sistem. Selanjutnya diajukan 4 pertanyaan utama, hasil wawancara yang telah dilakukan adalah sebagai berikut:

1. Apakah dengan adanya aplikasi penjadwalan ini dapat membantu dalam proses penjadwalan?

Jawaban : aplikasi ini membantu dalam proses penjadwalan, karena tidak lagi mengalami kesulitan dalam proses penjadwalan

2. Apakah aplikasi penjadwalan ini mudah digunakan?

Jawaban : aplikasi penjadwalan ini cukup mudah, hanya membutuhkan sedikit latihan agar terbiasa menggunakannya

3. Bagaimana pendapat anda tentang jadwal yang dihasilkan oleh aplikasi penjadwalan ini?

Jawaban : jadwal yang dihasilkan cukup baik, waktu mengajar tidak menumpuk pada hari-hari tertentu

4. Bagaimana pendapat anda tentang tampilan aplikasi ini, apakah cukup menarik?

Jawaban : tampilan aplikasi ini cukup bagus, mungkin kedepannya bisa dibuat lebih menarik lagi terutama pada halaman pengajar


(5)

IV.2.5 Kesimpulan Hasil Pengujian Beta

Berdasarkan hasil wawancara diatas yang didapatkan dari pengujian beta, maka hasil dari wawancara menyatakan penerapan aplikasi penjadwalan ini sudah sesuai dengan tujuan yaitu membantu proses penjadwalan, mudah digunakan, menghasilkan jadwal yang baik yaitu jadwal mengajar tidak menumpuk pada hari tertentu serta memiliki tampilan yang cukup menarik.


(6)

121

diperoleh setelah dilakukan analisis, desain, dan implementasi dari perancangan perangkat lunak yang dibangun dan telah dikembangkan serta saran-saran yang akan memberikan catatan penting dan kemungkinan perbaikan yang perlu dilakukan untuk pembangunan perangkat lunak selanjutnya.

V.1 Kesimpulan

Berdasarkan hasil yang didapatkan dalam penelitian dan penyusunan tugas akhir ini serta disesuaikan dengan tujuannya, maka diperoleh kesimpulan sebagai berikut:

1. Kombinasi algoritma genetik dan tabu search dapat diterapkan untuk menyelesaikan permasalahan yang terjadi pada saat penyusunan jadwal bimbingan belajar di lembaga kursus E-Learning For Kids.

2. Jadwal yang dihasilkan masih mengalami bentrok dari sisi waku bimbingan kursus maupun pengajar sehingga perlu adanya pengembangan pada aplikasi ini

V.2 Saran

Saran-saran terhadap penggunaan sistem yang ingin mengembangkan aplikasi penjawalan ini, penulis memberikan saran adalah sebagai berikut :

1. Perlu adanya analisis pada penerapan perhitungan nilai fitness, sehingga dapat diperoleh jadwal yang tidak mengalami bentrok.

2. Perlu adanya pengembangan dalam desain tampilan agar lebih menarik 3. Perlu adanya pengembangan jam-jam khusus yang tidak dapat digunakan