• Tidak ada hasil yang ditemukan

Sistem Simulasi Penjadwalan Kuliah Dengan Menggunakan Algoritma Genetik

N/A
N/A
Protected

Academic year: 2016

Membagikan "Sistem Simulasi Penjadwalan Kuliah Dengan Menggunakan Algoritma Genetik"

Copied!
111
0
0

Teks penuh

(1)

SKRIPSI

REYNOLD LUMBAN TOBING 050803027

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(2)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

REYNOLD LUMBAN TOBING

050803027

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : SISTEM SIMULASI PENJADWALAN

KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIK

Kategori : SKRIPSI

Nomor Induk Mahasiswa : 050803027

Program Studi : SARJANA (S1) MATEMATIKA

Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU

PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Januari 2010

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Syahriol Sitorus, S.Si, M.IT Drs. Sawaluddin, M.IT NIP.19710310 199703 1 004 NIP.19591231 199802 1 001

Diketahui/ Disetujui oleh

Departemen Matematika FMIPA USU

(4)

PERNYATAAN

SISTEM SIMULASI PENJADWALAN KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIK

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Januari 2010

(5)

PENGHARGAAN

Puji dan syukur kehadirat Tuhan Yesus Kristus atas semua yang telah diberikan sehingga penulis dapat menyelesaikan tulisan ini. Terpujilah Tuhan.

Ucapan terimakasih saya sampaikan kepada Drs. Sawaluddin, M.IT dan Syahriol Sitorus, S.Si, M.IT selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan kepada penulis dalam menyelesaikan tulisan ini. Kepada prof. Dr. Herman Mawengkang dan Drs. James P. Marbun, M.Kom selaku dosen penguji. Ucapan terimakasih juga penulis tujukan kepada Ketua dan Sekretaris Departemen Matematika FMIPA USU Dr. Saib Suwilo, M.Sc dan Drs. Henry Rani Sitepu, M.Si, kepada Dra. Normalina Napitupulu, M.Sc selaku dosen pengajar Algoritma Genetik yang telah memberikan masukan untuk penyelesaian tulisan ini serta seluruh Dosen dan staf pengajar Departemen Matematika FMIPA USU.

(6)

ABSTRAK

(7)

UNIVERSITY TIMETABLING SIMULATION SYSTEM WITH GENETIC ALGORITHM

ABSTRACT

(8)

DAFTAR ISI

2.2 Struktur Umum Algoritma Genetik 10 2.3 Pengkodean 13

2.5 Uraian Singkat Java 2 Standard Edition 21 2.5.1 Mengenal Java 2 Standard Edition 21 3.1.1 Identifikasi Masalah 27 3.1.2 Analisis Algoritma Genetik Pada Penjadwalan 28

(9)

3.1.2.2 EvaluasiPenalty Kromosom 31

3.1.2.3 Proses Regenerasi 32

3.1.2.4 Pengujian 33

3.1.3 Mapping Algoritma Genetik 33

3.1.4 Aliran Informasi 39

3.1.4.1 Context Diagram 39

3.1.4.2 Data Flow Diagram(DFD) Level 0 39 3.1.4.3 Data Flow Diagram(DFD) Level 1 40

3.1.5 Pemodelan Data 44

3.2 Perancangan 47

3.2.1 Lingkungan Imlementasi 47

3.2.2 Perancangan Antarmuka 47

3.2.3 Perancangan Proses 49

Bab 4 PERANCANGAN SISTEM 59

4.1 Hasil Perancangan Sistem 59

4.2 Hasil Algoritma Genetik 64

4.3 Evaluasi Algoritma Genetik 65

Bab 5 KESIMPULAN DAN SARAN 66

5.1 Kesimpulan 66

5.2 Saran 67

DAFTAR PUSTAKA 68

LAMPIRAN A.LISTING PROGRAM FORM STARTUP 70

(10)

DAFTAR TABEL

Halaman

Tabel 2.1 ContohCrossover 1-titik 16

Tabel 2.2 ContohCrossover 2-titik 17

Tabel 2.3 ContohCrossover seragam 17

Tabel 2.4 Contoh Mutasi pada pengkodean biner 18 Tabel 2.5 Contoh Mutasi pada pengkodean permutasi 18 Tabel 2.6 Tabel Package yang terdapat dalam J2SE 24

Tabel 2.7 Keyword dalam Java 25

Tabel 2.8 Tipe Data dalam Java 26

Tabel 3.1 Matriks Dosen PengajarAvailable 30

Tabel 3.2 Matriks Kelas Mata Kuliah 30

Tabel 3.3 Matriks RuangAvailable 30

Tabel 3.4 BobotPenalty Setiap GolonganPenalty 32 Tabel 3.5 BobotPenalty Setiap Prioritas 32 Tabel 3.6 Deskripsi Proses Pendataan Jurusan 50 Tabel 3.7 Deskripsi Proses Pendataan Kelas 50 Tabel 3.8 Deskripsi Proses Setting Tahun Jadwal 50 Tabel 3.9 Deskripsi Proses Penentuan Durasi Kuliah 51 Tabel 3.10 Deskripsi Proses Pendataan Mata Kuliah 51 Tabel 3.11 Deskripsi Proses Penempatan Mata Kuliah 51 Tabel 3.12 Deskripsi Proses Penentuan Hari Kuliah 52 Tabel 3.13 Deskripsi Proses Penentuan Jam Kuliah 52 Tabel 3.14 Deskripsi Proses WaktuNot Available 52 Tabel 3.15 Deskripsi Proses Pendataan Ruang Kuliah 53 Tabel 3.16 Deskripsi Proses Waktu RuangNot Available 53 Tabel 3.17 Deskripsi Proses Pendataan Dosen 53 Tabel 3.18 Deskripsi Proses Penempatan Dosen 53 Tabel 3.19 Deskripsi Proses Waktu Dosen Not Available 54 Tabel 3.20 Deskripsi Proses Penyusunan Jadwal 54

Tabel 3.21 Deskripsi Data Jurusan 55

Tabel 3.22 Deskripsi Data Kelas 55

Tabel 3.23 Deskripsi Data Dosen 55

Tabel 3.24 Deskripsi Data Pengajar 55

Tabel 3.25 Deskripsi Data Not_Dosen 56

Tabel 3.26 Deskripsi Data Mata Kuliah 56

Tabel 3.27 Deskripsi Data dt_Matakuliah 56

Tabel 3.28 Deskripsi Data SKS 56

Tabel 3.29 Deskripsi Data Kuliah 56

Tabel 3.30 Deskripsi Data Hari 57

Tabel 3.31 Deskripsi Data Jam 57

Tabel 3.32 Deskripsi Data Not_Hari 57

Tabel 3.33 Deskripsi Data Ruang 57

(11)

Tabel 3.35 Deskripsi Data Jadwal GA 58

(12)

DAFTAR GAMBAR

Halaman

Gambar 1.1 Diagram Konsepsi 5

Gambar 2.1 Diagram Alir Algoritma Genetik 11

Gambar 2.2 Tool-Tool Dasar JDK 23

Gambar 3.1 Algoritma Penyelesaian Jadwal Kuliah 31

Gambar 3.2 Algoritma Penjadwalan Kuliah 34

Gambar 3.3 IlustrasiPointer Penjadwalan Kuliah 36

Gambar 3.4 Persilangan Individu 38

Gambar 3.5 Mutasi Individu 38

Gambar 3.6 Context Diagram 39

Gambar 3.7 Data Flow Diagram (DFD) Level 0 40 Gambar 3.8 DFD Level 1 Proses Pendataan Kelas dan Jurusan 41 Gambar 3.9 DFD Level 1 Proses 2 Pendataan Kurikulum 41 Gambar 3.10 DFD Level 1 Proses 3 Waktu Perkuliahan 42 Gambar 3.11 DFD Level 1 Proses 4 Pendataan Ruang Kuliah 42 Gambar 3.12 DFD Level 1 Proses 5 Pendataan Pengajar 43 Gambar 3.13 DFD Level 1 Proses 6 Penyusunan Jadwal Kuliah 43 Gambar 3.14 Entity Relationship Database (ERD) 45

Gambar 3.15 Skema Diagram 46

Gambar 3.16 Diagram Alir Program Simulasi Penjadwalan Kuliah 48 Gambar 3.17 Flowchart Program Simulasi Penjadwalan Kuliah 49 Gambar 4.1 Menjalankan Program dari Konsole Linux 59 Gambar 4.2 Halaman Startup dan Konfigurasi 60

Gambar 4.3 Form Utama 60

Gambar 4.4 Form Simulasi Jadwal berdasarkan Personal 61 Gambar 4.5 Form Simulasi Jadwal berdasarkan Mata Kuliah 62 Gambar 4.6 Form Simulasi Jadwal berdasarkan Ruangan 62 Gambar 4.7 Form Simulasi Jadwal dengan Algoritma Genetik 63 Gambar 4.8 Form Simulasi Jadwal dengan Algoritma Genetika untuk Hasil

Capaian 100% 63

(13)

adalah karuni a besar dari TanganM u.

Skr i psi i ni kupersembahkan teri sti mewa untuk

Ayahanda dan I bunda terci nta yang selalu ada di hati dan

di seti ap langkah keci lku

dan Adek-adekku tersayang Alberd L umban Tobi ng dan

Anggi ta Chri sti ara L umban Tobi ng

(14)

ABSTRAK

(15)

UNIVERSITY TIMETABLING SIMULATION SYSTEM WITH GENETIC ALGORITHM

ABSTRACT

(16)

PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi yang pesat memberikan banyak kemudahan dalam

penyelesaian masalah dan pencapaian hasil kerja yang memuaskan bagi

kehidupan manusia. Salah satu teknologi itu adalah teknologi komputer.

Keberadaan komputer sampai saat ini telah mengalami berbagai kemajuan.

Kemampuan komputer untuk melakukan suatu pekerjaan atau tugas pun

semakin baik. Jika dahulu komputer digunakan untuk memproses data secara

sederhana, maka saat ini penggunaan komputer sudah sangat luas pengaruh dan

manfaatnya meliputi segala aspek kehidupan manusia.

Salah satu aspek kehidupan itu sendiri dimana penggunaan komputer

saat ini digunakan untuk membuat aplikasi komputasi untuk dalam masalah

penjadwalan, yang dalam hal ini yaitu dalam penjadwalan kuliah. Melaksanakan

pekerjaan secara efektif dan efisien agar tujuan tercapai merupakan hal yang

penting dalam masalah penjadwalan. Oleh karena itu pemahaman mengenai

konsep penjadwalan sangat penting, sehingga para pelaksana mengetahui kapan

waktu harus memulai suatu pekerjaan dan kapan waktu mengakhirinya.

Penjadwalan kegiatan belajar mengajar dalam suatu kampus adalah hal

yang rumit. Permasalahan yang sering disebut dengan University Timetabling

Problems (UTP) ini. Selain dilihat dari sisi mahasiswa, juga harus dilihat dari

sisi dosen, yaitu kemungkinan-kemungkinan dosen akan mengampu lebih dari

satu mata kuliah yang ada, sebab ada kemungkinan jumlah mata kuliah dan

(17)

tidak mengajar dua mata kuliah berbeda pada hari dan jam yang sama. Selain

itu, harus dipertimbangkan juga ketersediaan kelas sehingga kegiatan

perkuliahan dapat dilaksanakan.

Salah satu metode simulasi yang dapat digunakan untuk menyelesaikan

permasalahan tersebut adalah dengan menggunakan pendekatan algoritma

genetik. Algoritma genetik merupakan pendekatan komputasional untuk

menyelesaikan masalah yang dimodelkan dengan proses evolusi biologis.

Diharapkan dengan digunakannya algoritma genetik akan diperoleh optimasi

penjadwalan yaitu kondisi dimana terjadi kombinasi terbaik untuk pasangan

mata kuliah dan dosen pengajar secara keseluruhan, tidak ada permasalahan

bentrokan jadwal pada sisi mahasiswa, serta ketersediaan ruang yang cukup dan

sesuai secara fasilitas untuk seluruh mata kuliah yang ada.

Pada penelitian ini, sistem simulasi penjadwalan dibuat dengan

melibatkan parameter-paramenter terdiri atas mata kuliah, slot waktu dengan

sejumlah batasan (hari dan jam), mahasiswa, dosen, ruangan dan kapasitasnya,

dan syarat (constraint) tertentu. Memasukkan parameter mahasiswa, dan

mengaturnya supaya bentrokan pada mahasiswa seminimal mungkin. Juga

menghidari mahasiswa kuliah lebih dari 3 mata kuliah dalam sehari. Maka

melalui penelitian ini penulis mencoba mengusulkan beberapa alternatif pilihan

dari jadwal yang dihasilkan dan mengusulkan perubahan (seminimal mungkin)

jika masih terjadi bentrokan jadwal. Terdapat berbagai aspek yang berkaitan

dalam penjadwalan tersebut yang harus dilibatkan dalam pertimbangan di

antaranya :

1. Terdapat jadwal-jadwal di mana dosen yang bersangkutan tidak bisa

mengajar.

2. Tidak boleh adanya jadwal kuliah yang beririsan dengan jadwal kuliah

angkatan sebelumnya maupun sesudahnya, sehingga mahasiswa dapat

mengambil mata kuliah angkatan sebelumnya maupun sesudahnya.

3. Distribusi jadwal perkuliahan diharapkan dapat merata tiap harinya

(18)

4. Pekerjaan penjadwalan mata kuliah ini akan semakin berat jika

melibatkan semakin banyak kelas per-angkatannya.

Di samping aspek-aspek di atas, dalam penyusunan sistem simulasi

jadwal kuliah ini pun terdapat sangat banyak kemungkinan yang selayaknya

dicoba untuk menemukan penjadwalan yang terbaik. Karena itu dibutuhkan

metode optimasi dengan menggunakan algoritma genetik yang dapat diterapkan

untuk mengerjakan sistem simulasi penjadwalan kuliah ini.

1.2 Perumusan Masalah

Permasalahan yang terdapat dalam penelitian ini adalah sebagai berikut:

1. Bagaimana membangun sistem simulasi penjadwalan kuliah yang dapat

meminimalkan bentrokan sehingga diperoleh suatu sistem simulasi

penjawalan kuliah.

2. Bagaimana kinerja algoritma genetik dalam penjadwalan kuliah sehingga

diperoleh suatu sistem simulasi penjadwalan kuliah yang baik dan

optimal.

1.3 Pembatasan Masalah

Agar pembahasan penelitian ini lebih terarah maka diberikan batasan-batasan

masalah yang akan dibahas. Yang menjadi batasan masalah pada penelitian ini

adalah :

1. Semua parameter danrestriction yang telah ditentukan dapat diinput.

2. Pemecahan permasalahan dengan metode algoritma genetik.

3. Perancangan aplikasi panjadwalan berbasis desktop.

4. Berbasis Client Server dan tetap memperhatikan sistem keamanan

(19)

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah penerapan algoritma genetik untuk

menghasilkan sistem simulasi penjadwalan kuliah. Jadwal yang dihasilkan dapat

meminimalkan bentrokan seminimal mungkin, sehingga dapat lebih

memudahkan penggunanya dalam mendapatkan solusi untuk penanganan

penjadwalan kuliah.

1.5 Tinjauan Pustaka

Sebagai pendukung teori dalam penulisan studi ini, penulis menggunakan

beberapa buku dan jurnal, antara lain :

Michael Negnevitsky (2005). Secara umum, proses dari algoritma

genetik ini berisi step-step procedural sekuensial yang memproses sebuah

populasi kromosom buatan (artificial) menjadi populasi baru lainnya. Algoritma

ini menggunakan proses seleksi natural dan teknik-teknik yang terinspirasi dari

teori genetik, yaitu:crossover dan mutasi.

William B. Langdon (2000). Kekuatan algoritma genetik dalam

menemukan solusi optimal telah direkomendasikan dalam berbagai bidang

aplikasi seperti finansial, pengolahan citra, pengontrol pipa gas dan penjadwalan

produksi. Dan belakangan ini pemanfaatan algoritma genetik semakin meluas di

banyak program aplikasi lain sepertigame programming dantext mining.

Rimcharoen (2006). Algoritma genetik menggambarkan populasi seperti

sebuah probabilitas distribusi dari kumpulan solusi, oleh karena itu tidak semua

populasi perlu untuk disimpan. Dalam setiap generasi, algoritma genetik

menghasilkan individu-individu berdasarkan pada probabilitas yang

dispesifikasikan dalam probability vector. Individu-individu tersebut akan

dievaluasikan dan probability vector akan berubah berdasarkan individu yang

(20)

memori yang sedikit dan mencapai kualitas yang sebanding dan mempunyai

hasil dengan jumlah yang hampir sama dengan yang dihasilkan oleh Basic

Genetik Algorithm.

1.6 Manfaat Penelitian

Manfaat yang dapat diambil dari penelitian ini adalah:

1. Memperkaya literatur dalam bidang sistem simulasi penjadwalan kuliah

khususnya dengan menggunakan algoritma genetik.

2. Dapat dijadikan sebagai dasar atau pedoman untuk pengembangan

sistem simulasi penjadwalan kuliah tingkat lanjut.

1.7 Diagram Konsepsi

Disini penulis menggambarkan diagram konsepsi dari tahapan algoritma genetik

terhadap sistem simulasi penjadwalan kuliah:

Gambar 1.1 Diagram Konsepsi Analisa Algoritma Genetik

Implementasi J2SE

Proses Input Data

Generate dengan Program

(21)

Penjelasan Diagram Konsepsi

1. Analisa Algoritma Genetik.

Pada tahapan ini akan dianalisa bagaimana alur proses dari algoritma

Genetik, dimana mendefenisikan gen, kromosom, individu dan populasi

untuk setiap parameter untuk membuat simulasi penjadwalan kuliah.

2. Implementasi J2SE

Pada tahap ini adalah implementasi pada program J2SE. Sesuai dengan

tahap analisa diawal yang pertama kali dibuat dengan membuat defenisi

dari masing-masing parameter dari genetik. Sehingga dapat

diimplementasikan dalam bentuk program penjadwalan kuliah.

3. ProsesInput Data

Pada tahapan ini merupakan proses input data dari semua

parameter-parameter penjadwalan sehingga bisa diolah dalam program yang telah

diimplementasikan.

4. Generate dengan Program

Pada tahap ini merupakan proses pembentukan jadwal kuliah dengan

Generate semua data input yang telah dimasukkan, sehingga dapat

dihasilkan jadwal kuliah.

5. Analisa HasilGenerate

Dalam tahapan ini merupakan analisa hasilGenerate program yang telah

dijalankan, dimana akan dilihat hasilnya telah optimal atau belum.

Sehingga akan meng-generate ulang apabila hasil dari jadwal yang

sebelumnya belum optimal.

1.8 Metodologi Penelitian

Dalam melakukan penelitian ini, penulis menggunakan beberapa metode

penelitian, antara lain:

(22)

Penulisan ini dimulai dengan studi kepustakaan yaitu dengan membaca

buku-buku, jurnal-jurnal dan bahan-bahan referensi dari internet untuk

memperoleh pengertian dan pengetahuan mengenai algoritma genetik,

artificial intelligence, analisis dan perancangan sistem, penjadwalan,

perancangan, dan pemrograman Java 2 Standard Edition.

2. Analisis

Pada tahap ini dilakukan pengumpulan fakta-fakta yang mendukung

perancangan sistem simulasi penjadwalan kuliah dengan mengadakan

konsultasi dengan dosen pembimbing maupun dosen yang

berkemampuan di bidang ini dan membandingkan dengan yang ada pada

buku penuntun, mendaftarkan semua ruangan yang bisa dipakai,

membuat slot waktu untuk masing-masing ruangan, mendefinisikan gen

atau kromosom atau individu dan populasi, membuat algoritma dan

flowchart, merancang sistem database dan proses jadwal kuliah,

meliputi:

a. Membuat ERD (Entity Relationship Diagram) untuk

menggambarkan hubungan entitas.

b. Membuat skema diagram.

c. MembuatContext Diagram.

d. Membuat DFD (Data Flow Diagram) level 0 dan level 1 untuk

menggambarkan proses-proses yang terjadi dalam sistem

penjadwalan kuliah.

3. Perancangan dan Implementasi

Perancangan dan implementasi sistem simulasi penjadwalan kuliah

berdasarkan metode yang digunakan dalam algoritma genetik dengan

menggunakan bahasa pemrograman Java 2 Standard Edition (J2SE) dan

MySQL 5.1.30 untuk sistem databasenya.

4. Pengujian

Pada tahap ini sistem simulasi yang sudah dirancang diuji oleh pemakai

dan membandingkan solusi pada sistem dengan pemikiran dosen

(23)

5. Penyusunan laporan dan kesimpulan akhir.

Menyusun laporan hasil analisa simulasi ke dalam format penulisan

(24)

LANDASAN TEORI

2.1 Pengertian Algoritma Genetik

Algoritma ini ditemukan di Universitas Michigan, Amerika Serikat oleh John

Holland (1975) melalui sebuah penelitian dan dipopulerkan oleh salah satu

muridnya, David Goldberg (1989). Dimana mendefenisikan algoritma genetik

ini sebagai metode algoritma pencarian berdasarkan pada mekanisme seleksi

alam dan genetik alam.

Algoritma genetik adalah algoritma yang berusaha menerapkan

pemahaman mengenai evolusi alamiah pada tugas-tugas pemecahan-masalah

(problem solving). Pendekatan yang diambil oleh algoritma ini adalah dengan

menggabungkan secara acak berbagai pilihan solusi terbaik di dalam suatu

kumpulan untuk mendapatkan generasi solusi terbaik berikutnya yaitu pada

suatu kondisi yang memaksimalkan kecocokannya atau lazim disebut fitness.

Generasi ini akan merepresentasikan perbaikan-perbaikan pada populasi

awalnya. Dengan melakukan proses ini secara berulang, algoritma ini

diharapkan dapat mensimulasikan proses evolusioner.

Pada akhirnya, akan didapatkan solusi-solusi yang paling tepat bagi

permasalahan yang dihadapi. Untuk menggunakan algoritma genetik, solusi

permasalahan direpresentasikan sebagai khromosom. Tiga aspek yang penting

untuk penggunaan algoritma genetik:

1. Defenisi fungsifitness

2. Defenisi dan implementasi representasi genetik

(25)

Jika ketiga aspek di atas telah didefinisikan, algoritma genetik akan

bekerja dengan baik. Tentu saja, algoritma genetik bukanlah solusi terbaik untuk

memecahkan segala masalah. Sebagai contoh, metode tradisional telah diatur

untuk untuk mencari penyelesaian dari fungsi analitisconvex yang “berperilaku

baik” yang variabelnya sedikit. Pada kasus-kasus ini, metode berbasis kalkulus

lebih unggul dari algoritma genetik karena metode ini dengan cepat menemukan

solusi minimum ketika algoritma genetik masih menganalisa bobot dari populasi

awal.

Untuk problem-problem ini pengguna harus mengakui fakta dari

pengalaman ini dan memakai metode tradisional yang lebih cepat tersebut. Akan

tetapi, banyak persoalan realistis yang berada di luar golongan ini. Selain itu,

untuk persoalan yang tidak terlalu rumit, banyak cara yang lebih cepat dari

algoritma genetik. Jumlah besar dari populasi solusi, yang merupakan

keunggulan dari algoritma genetik, juga harus mengakui kekurangannya dalam

dalam kecepatan pada sekumpulan komputer yang dipasang secara seri-fitness

function dari tiap solusi harus dievaluasi. Namun, bila tersedia

komputer-komputer yang paralel, tiap prosesor dapat mengevaluasi fungsi yang terpisah

pada saat yang bersamaan. Karena itulah, algoritma genetik sangat cocok untuk

perhitungan yang paralel.

2.2 Struktur Umum Algoritma Genetik

Algoritma genetik memberikan suatu pilihan bagi penentuan nilai parameter

dengan meniru cara reproduksi genetik, pembentukan kromosom baru serta

seleksi alami seperti yang terjadi pada makhluk hidup. Algoritma Genetik secara

(26)

Tidak

Ya

Gambar 2.1 Diagram Alir Algoritma Genetik

Golberg (1989) mengemukakan bahwa algoritma genetik mempunyai

karakteristik-karakteristik yang perlu diketahui sehingga dapat terbedakan dari

prosedur pencarian atau optimasi yang lain, yaitu:

1. Algoritma genetik dengan pengkodean dari himpunan solusi

permasalahan berdasarkan parameter yang telah ditetapkan dean bukan

parameter itu sendiri.

2. Algoritma genetik pencarian pada sebuah solusi dari sejumlah

individu-individu yang merupakan solusi permasalahan bukan hanya dari sebuah

individu.

3. Algoritma genetik informasi fungsi objektif (fitness), sebagai cara untuk

mengevaluasi individu yang mempunyai solusi terbaik, bukan turunan

dari suatu fungsi.

4. Algoritma genetik menggunakan aturan-aturan transisi peluang, bukan

aturan-aturan deterministik. Skema Pengkodean

Inisialisasi Populasi

Fungsi Objektif

Generasi Tua/ lama

Seleksi

Perkawinan Silang (Crossover)

Mutasi

Generasi Baru

Fungsi Objektif

Kondisi Terminasi

(27)

Variabel dan parameter yang digunakan pada algoritma genetik adalah:

1. Fungsifitness (fungsi tujuan) yang dimiliki oleh masing-masing individu

untuk menentukan tingkat kesesuaian individu tersebut dengan criteria

yang ingin dicapai.

2. Populasi jumlah individu yang dilibatkan pada setiap generasi.

3. Probabilitas terjadinya persilangan (crossover) pada suatu generasi.

4. Probabilitas terjadinya mutasi pada setiap individu.

5. Jumlah generasi yang akan dibentuk yang menentukan lama penerapan

algoritma genetik.

Secara umum struktur dari suatu algoritma genetik dapat mendefenisikan

dengan langkah-langkah sebagai berikut:

1. Membangkitkan populasi awal

Populasi awal ini dibangkitkan secara random sehingga didapatkan

solusi awal. Populasi itu sendiri terdiri atas sejumlah kromosom yang

merepresentasikan solusi yang diinginkan.

2. Membentuk generasi baru

Untuk membentuk generasi baru, digunakan operator reproduksi/ seleksi,

crossover dan mutasi. Proses ini dilakukan berulang-ulang sehingga

didapatkan jumlah kromosom yang cukup untuk membentuk generasi

baru dimana generasi baru ini merupakan representasi dari solusi baru.

Generasi baru ini dikenal denga istilah anak (offspring).

3. Evaluasi solusi

Pada tiap generasi, kromosom akan melalui proses evaluasi dengan

menggunakan alat ukur yang dinamakan fitness. Nilai fitness suatu

kromosom menggambarkan kualitas kromosom dalam populasi tersebut.

Proses ini akan mengevaluasi setiap populasi dengan menghitung nilai

fitness setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria

berhenti. Bila kriteria berhenti belum terpenuhi maka akan dibentuk lagi

generasi baru dengan mengulangi langkah 2. Beberapa kriteria berhenti

sering digunakan antara lain: berhenti pada generasi tertentu, berhenti

(28)

tertinggi tidak berubah, berhenti dalamn generasi tidak didapatkan nilai

fitness yang lebih tinggi.

Fungsifitness tersebut sebagai berikut:

(2.1)

dimana:

Dari persamaan diatas nilai fitness ditentukan oleh nilaipenalty.Penalty

tersebut menunjukkan jumlah pelanggaran kendala pada suatu kromosom.

Semakin tinggi nilai fitness akan semakin besar kemungkinan kromosom

tersebut terpilih ke generasi berikutnya. Jadi nilai penalty berbanding terbalik

dengan nilaifitness, semakin kecil nilai penalty (jumlah pelanggaran) semakin

besar nilaifitnessnya.

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 genetik.

Berdasarkan jenis symbol yang digunakan sebagai nilai suatu gen,

(29)

1. Pengkodean biner merupakan cara pengkodean yang paling umum

digunakan karena adalah yang pertama kali digunakan dalam algoritma

genetik oleh Holland. Keuntungan pengkodean ini adalah sederhana

untuk diciptakan dan mudah dimanipulasi. Pengkodean biner

memberikan banyak kemungkinan untuk kromosom walaupun dengan

jumlah nilai-nilai yang mungkin terjadi pada suatu gen yang sedikit (0

dan 1). Di pihak lain, pengkodean biner sering tidak sesuai untuk banyak

masalah dan kadang pengoreksian harus dilakukan setelah operasi

crossover dan mutasi.

2. Pengkodean bilang riil adalah suatu pengkodean bilangan dalam bentuk

riil. Masalah optimalisasi fungsi dan optimalisasi kendala lebih tepat jika

diselesaikan dengan pengkodean bilangan riil karena struktur topologi

ruang genotif untuk pengkodean bilangan riil identik dengan ruang

fenotifnya, sehingga mudah membentuk operator genetik yang efektif

dengan cara memakai teknik yang dapat digunakan yang berasal dari

metode konvensional.

3. Pengkodean bilangan bulat adalah metode yang mengkodekan bilangan

dalam bentuk bilangan bulat. Pengkodean ini baik digunakan untuk

masalah optimisasi kombinatorial.

4. Pengkodean struktur data adalah model pengkodean yang menggunakan

struktur data. Pengkodean ini digunakan untuk masalah kehidupan yang

lebih kompleks seperti perencanaan jalur robot, dan masalah pewarnaan

Graph.

2.4 Operator 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 premature, yaitu mencapai solusi optimum yang belum

(30)

Operator genetik yang digunakan setelah proses evaluasi tahap pertama

membentuk populasi baru dari generasi sekarang. Operator-operator tersebut

adalah operator seleksi,crossover dan mutasi.

2.4.1 Seleksi

Seleksi bertujuan memberikan kesempatan reproduksi yang lebih besar bagi

anggota populasi yang paling fit. Langkah pertama dalam seleksi ini adalah

pencarian nilaifitness. Masing-masing individu dalam suatu wadah seleksi akan

menerima probabilitas reproduksi yang tergantung pada nilai objektif dirinya

sendiri terhadap nilai objektif dari semua individu dalam wadah seleksi tersebut.

Nilaifitness inilah yang nantinya akan digunakan pada tahap seleksi berikutnya

(Kusumadewi, 2003).

Kemampuan algoritma genetik untuk memproduksi kromosom yang

lebih baik secara progresif tergantung pada penekanan selektif (selective

pressure) yang diterapkan ke populasi. Penekanan selektif dapat diterapkan

dalam dua cara. Cara pertama adalah membuat lebih banyak kromosom anak

yang dipelihara dalam populasi dan memilih hanya kromosom-kromosom

terbaik bagi generasi berikut. Walaupun orang tua dipilih secara acak, metode

ini akan terus menghasilkan kromosom yang lebih baik berhubungan dengan

penekanan selektif yang diterapkan pada individu anak tersebut.

Cara lain menerapkan penekanan selektif adalah memilih orang tua yang

lebih baik ketika membuat keturunan baru. Dengan metode ini, hanya

kromosom sebanyak yang dipelihara dalam populasi yang perlu dibuat bagi

generasi berikutnya. Walaupun penekanan selektif tidak diterapkan ke level

keturunan, metode ini akan terus menghasilkan kromosom yang lebih baik,

(31)

Ada beberapa metode untuk memilih kromosom yang sering digunakan

antara lain adalah seleksi roda rolet (roulette wheel selection), seleksi ranking

(rank selection) dam seleksi turnamen (tournament selection).

Dalam penelitian ini, metode yang digunakan adalah seleksi roda rolet

(roulette wheel selection). Pada seleksi ini, orang tua dipilih berdasarkan fitness

mereka. Lebih baik kualitas suatu kromosom, lebih besar peluangnya untuk

terpilih. Probabilitas suatu individu terpilih untuk crossover sebanding dengan

fitness-nya. Cara penyeleksian ini merupakan peniruan dari permainan roda

rolet.

2.4.2Crossover

Crossover (perkawinan silang) bertujuan menambah keanekaragaman string

dalam populasi dengan penyilangan antar-string yang diperoleh dari

sebelumnya. Beberapa jeniscrossover tersebut adalah:

1. Crossover 1-titik

Padacrossover dilakukan dengan memisahkan suatu string menjadi dua

bagian dan selanjutnya salah satu bagian dipertukarkan dengan salah satu

bagian dari string yang lain yang telah dipisahkan dengan cara yang

sama. Proses yang demikian dinamakan operator crossover satu titik

seperti diperlihatkan pada gambar berikut:

Tabel 2.1 ContohCrossover 1-titik Kromosom Orangtua 1 11001011 Kromosom Orangtua 2 11011111

Keturunan 11001111

2. Crossover 2-titik

Proses crossover ini dilakukan dengan memilih dua titik crossover.

Kromosom keturunan kemudian dibentuk dengan barisan bit dari awal

(32)

bagian dari titik crossover pertama dan kedua disalin dari orangtua

kedua, kemudian selebihnya disalin dari orangtua pertama lagi.

Tabel 2.2 ContohCrossover 2-titik Kromosom Orangtua 1 11001011 Kromosom Orangtua 2 11011111

Keturunan 11011111

3. Crossover seragam

Crossover seragam manghasilkan kromosom keturunan dengan

menyalin bit-bit secara acak dari kedua orangtuanya.

Tabel 2.3 ContohCrossover seragam Kromosom Orangtua 1 11001011 Kromosom Orangtua 2 11011111

Keturunan 11011111

2.4.3 Mutasi

Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen dalam

suatu kromosom. Operasi crossover yang dilakukan pada kromosom dengan

tujuan untuk memperoleh kromosom-kromosom baru sebagai kandidat solusi

pada generasi mendatang denga fitness yang lebih baik, dan lama-kelamaan

menuju solusi optimum yang diinginkan. Akan tetapi, untuk mencapai hal ini,

penekanan selektif juga memegang peranan yang penting. Jika dalam proses

pemilihan kromosom-kromosom cenderung pada kromosom yang memiliki

fitness yang tinggi saja, konvergensi premature, yaitu mencapai solusi yang

optimal lokal sangat mudah terjadi

Untuk menghindari konvergensi premature tersebut dan tetap menjaga

perbedaan (diversity) kromosom-kromosom dalam populasi, selain melakukan

(33)

Proses mutasi dalam system biologi berlangsung dengan mengubah isi allele

gen pada suatu locus dengan allele yang lain. Proses mutasi ini bersifat acak

sehingga tidak selalu menjamin bahwa setelah proses mutasi akan diperoleh

kromosom denganfitness yang lebih baik.

Operator mutasi merupakan operasi yang menyangkut satu kromosom

tertentu. Beberapa cara operasi mutasi diterapkan dalam algoritma genetik

menurut jenis pengkodean terhadapphenotype, 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 terpilih secara acak (atau menggunakan skema

tertentu) pada kromosom, yang disebutinverse bit.

Tabel 2.4 Contoh Mutasi pada pengkodean biner Kromosom sebelum mutasi 1 0 0 1 01 1 1 Kromosom setelah mutasi 1 0 0 1 00 1 1

2. Mutasi dalam Pengkodean Permutasi

Proses mutasi yang dilakukan dalam pengkodean biner dengan

mengubah langsung bit-bit pada kromosom tidak dapat dilakukan pada

pengkodean permutasi karena konsistensi urutan permutasi harus

diperhatikan. Salah satu cara yang dapat dilakukan adalah dengan

memilih dua posisi (locus) dari kromosom dan kemudian nilainya saling

dipertukarkan.

Tabel 2.5 Contoh Mutasi pada pengkodean permutasi Kromosom sebelum mutasi 1 23 4 6 5 87 9 Kromosom setelah mutasi 1 27 4 6 5 83 9

3. Mutasi dalam Pengkodean Nilai

Mutasi pada pengkodean nilai hampir sama dengan yang dilakukan pada

(34)

Penerapannya bergantung pada jenis nilai yang digunakan. Sebagai

contoh untuk nilai riil, proses mutasi dapat dilakukan seperti yang

dilakukan pada pengkodean permutasi, dengan saling mempertukarkan

nilai dua gen pada kromosom.

4. Mutasi dalam Pengkodean Pohon

Mutasi dalam pengkodean pohon dapat dilakukan antara lain dengan

cara mengubah operator (+, -, *, /) atau nilai yang terkandung pada suatu

verteks pohon yang dipilih. Atau, dapat juga dilakukan dengan memilih

dua verteks dari pohon dan saling mempertukarkan operator atau

nilainya.

Tidak setiap gen selalu dimutasi tetapi mutasi dikontrol dengan

probabilitas tertentu yang disebut dengan mutation rate (probabilitas mutasi)

dengan notasiPm. Jenis operator mutasi antara lain:

1. Mutasi Terarah

Mutasi terarah tergantung dari informasi gen. Informasi gen tersebut

berupa nilai pelanggaran gen (violation gen). Ini berarti bahwa setiap gen

mempunyai peluang yang berbeda untuk terjadi mutasi. Gen yang

mempunyai nilai pelanggaran yang lebih besar maka gen tersebut

mempunyai peluang untuk terjadi mutasi. Mutasi ini menghubungkan

nilai pelanggaran relatif (nilai pelanggaran suatu gen dibagi dengan nilai

pelanggaran total suatu kromosom) dengan probabilitas terjadinya

mutasi dari suatu gen pada kromosom. Hubungan tersebut dinyatakan

secara matematis sebagai berikut:

(2.3)

(2.4)

Keterangan persamaan:

nr(i) : nilai pelanggaran relative gen ke-i

(35)

pm(i) : probabilitas mutasi gen ke-i

pm : probabilitas mutasi

2. Mutasi Biasa

Mutasi biasa tidak tergantung dari informasi gen. Setiap gen mempunyai

peluang yang sama untu terjadi mutasi.

2.4.4 Parameter Genetik

Pengoperasian algoritma genetik dibutuhkan 4 parameter (Juniawati, 2003)

yaitu:

1. Probabilitas Persilangan (Crossover Probability)

Menunjukkan kemungkinan crossover terjadi antara 2 kromosom. Jika

tidak terjadi crossover maka keturunannya akan sama persis dengan

kromosom orangtua, tetapi tidak berarti generasi yang baru akan sama

persis dengan generasi yang lama. Jika probabilitas crossover 100%

maka semua keturunannya dihasilkan dari crossover. Crossover

dilakukan dengan harapan bahwa kromosom yang baru akan lebih baik.

2. Probabilitas Mutasi (Mutation Probability)

Menunjukkan kemungkinan mutasi terjadi pada gen-gen yag menyusun

sebuah kromosom. Jika tidak terjadi mutasi maka keturunan yang

dihasilkan setelah crossover tidak berubah. Jika terjadi mutasi bagian

kromosom akan berubah. Jika probabilitas 100%, semua kromosom

dimutasi. Jika probabilitasnya 0%, tidak ada yang mengalami mutasi.

3. Jumlah Individu

Menunjukkan jumlah kromosom yang terdapat dalam populasi (dalam

satu generasi). Jika hanya sedikit kromosom dalam populasi maka

algoritma genetik akan mempunyai sedikit variasi kemungkinan untuk

melakukan crossover antara orangtua karena hanya sebagian kecil dari

search space yang dipakai. Sebaliknya jika terlalu banyak maka

(36)

4. Jumlah Populasi

Menetukan jumlah populasi atau banyaknya generasi yang dihasilkan,

digunakan sebagai batas akhir proses seleksi, persilangan dan mutasi.

2.5 Uraian Singkat Java 2Standard Edition

Untuk mengembangkan program aplikasi ini penulis menggunakan bahasa

pemrograman berbasis Java 2Standard Edition. Penulis akan memperkenalkan

dari:

1. Mengenal Java 2Standard Edition.

2. Struktur Aplikasi Java 2Standard Edition Development Kit.

3. Beberapa komponen dalam Java yaitu java class-library.

4. Keyword dan tipe data dalam Java 2 Standard Edition.

2.5.1 Mengenal Java 2Standard Edition

Nama Java kebetulan sama dengan pulau tempat tinggal sebagian besar

penduduk Indonesia, Jawa. Meskipun demikian, proses kelahirannya tidak ada

hubungannya secara fisik dengan Indonesia atau pulau Jawa.

Sejarah kelahiran bahasa Java dimulai pada tahun 1991 ketika Sun

Microsystems memulai proyek penelitian yang diberi kode Green. Proyek ini

bertujuan untuk membangun system yang memungkinkan komputer berperan

dalam peralatan rumah tangga. Bahasa ini sangat berkembang pesat terutama

untukweb programming. Dalam beberapa tahun terakhir, Java telah merambah

dunia mobile dengan J2ME (Micro Edition: MIDlet, dipakai dalam mobile

phone, PDA, smart phone dan sebagainya). Java juga banyak dipakai dalam

aplikasiserver dengan J2EE (Enterprise Edition: JSP, servlet). Dalam penelitian

ini penulis menggunakan J2SE (Java 2Standard Edition). Yaitu terutama untuk

(37)

2.5.1.1 Java 2Software Development Kit

Java 2 SDK (Software Development Kit) adalah suatu perangkat lunak yang

digunakan untuk manajemen dan membangun berbagai macam aplikasi Java.

Java SDK sering juga disingkat dengan JDK (Java Development Kit).

Pemrograman windows GUI (Graphical User Interface) adalah interaksi antara

pengguna aplikasi dengan aplikasi dilakukan melalui antarmuka yang disebut

dengan graphical user interface, yaitu antarmuka grafik yang memudahkan

pemakainnya untuk navigasi dengan menggunakan elemenuser interface seperti

button,list,input field, komponen activeX dan lainnya.

Pada saat ini aplikasi sistem simulasi ini ditulis padaplatform windows

dan dengan menggunakan X-window Unix atau Linux pada Ubuntu 8.04

interface. Diharapkan aplikasi ini akan diimplementasikan juga pada platform

yang lain, seperti Apple Machintos,Free BSD dan lainnya.

Aplikasi Java yang dibangun dengan memakai berbagai macam tool dari

(38)

Gambar 2.2Tool-Tool Dasar JDK

2.5.1.2 Pemrograman Berorientasi Objek

Orientasi objek merupakan metode pemrograman modern yang mempunyai

kelebihan ketimbang dengan metode konvensional biasa. Salah satu keuntungan

pemrograman berorientasi objek adalah Reusability (kemampuan untuk

digunakan kembali), yaitu memakai komponen yang sudah pernah dibuat, baik

dibuat sendiri maupun yang dibuat oleh pihak lainnya, untuk kemudian

(39)

2.5.2 JavaClass-Library

Java menyediakan library-library standard yang telah di-compile dan dapat

langsung dipakai. Dalam library ini terdapat bermacam-macam class yang

dikelompokkan ke dalam package-package. Tabel berikut menjelaskan

package-package yang tersedia dalam J2SE, yaitu terdiri dari class-class inti

yang dipakai dalam pemrograman bahasa java.

Tabel 2.6 TabelPackage yang terdapat dalam J2SE

Package Namapackage Keterangan

Language java.lang Class-class utama merupakan inti dari bahasa java

Utilities java.util Class-class yang mendukung utilitas struktur data

I/O java.io Class-class yang mendukung bermacam-macam tipe input/ output

Text java.text

Class-class yang mendukung lokalisasi

untuk penanganan teks, tanggal, bilangan

danmessage

Math java.math

Class-class untuk melakukan perhitungan

aritmatikarbitrary-precesion, baik integer

ataufloating point

AWT java.awt

Abstract Windowing Toolkit.Class untuk

peracanganuser-interface danevent

-handling

Swing javax.swing

Class untuk membuat berbagai komponen

dalam java yang bertingkah laku sama

dengan berbagaiplatform

Javax javax Perluasan/extention dari bahasa java

Applet java.applet Class-class untuk membuat applet

Beans java.beans Class untuk membuat Java Beans

(40)

SQL java.sql Class untuk mendukung akses dan pengolahan data dalam database

RMI java.rmi Class untuk mendukungdistributed programming

Networking java.net Class yang mendukung dalam pembangunan aplikasi jaringan

Security java.security Class untuk mendukung keamanan kriptografi

2.5.3Keyword dan Tipe Data dalam J2SE

2.5.3.1Keyword dalam Java

Pemahaman kata-kata kunci ini sangat penting sebab jika peubah-peubah,

kelas-kelas, objek-objek, tipe-tipe bentukan, atribut-atribut, metode dan sebagainya,

dideklarasikan dengan menggunakan kata-kata kunci yang khas dalam Java,

maka interpreter bahasa Java akan langsung melaporkan adanya kesalahan

(error). Beberapa kara kunci dalam bahasa Java dalam tabel di bawah ini.

Tabel 2.7 Keyword dalam Java

Data

Declaration Loop Conditional Exception Structure Modifier Miscellaneous

(41)

2.5.3.2 Tipe Data dalam Java

Tabel 2.8 Tipe Data dalam Java

Tipe Data Panjang Nilai

byte 8 bit 128 s/d 127

short 16 bit -32768 s/d 32767

int 32 bit -2147483684 s/d 2147483647

long 64 bit -9223372036854775808 s/d

9223372036854775807

float 4 byte -3.4e38 s/d 3.4e38

double 8 byte -1.7e308 s/d 1.7e308

char 16 bit Unicode

(42)
(43)

PEMBAHASAN

3.1 Analisis

Pada subbab ini berisi uraian analisis sistem simulasi penjadwalan kuliah

meliputi identifikasi permasalahan untuk mengetahui hal-hal yang menjadi

permasalahan dan yang harus diselesaikan untuk menerapkan algoritma genetik

dalam proses penjadwalan kuliah sampai pada pemodelan data untuk

menentukan rancangan database.

3.1.1 Identifikasi Masalah

Pada algoritma genetik, terlebih dahulu diidentifikasi tentang kendala yang

dihadapi dalam sistem. Pada penjadwalan terdapat 2 jenis kendala/ prioritas

yang dapat diidentifikasi yaitu kendala yang harus dapat dipenuhi (Hard

Constrains) dan kendalan yang tidak harus dipenuhi (Soft Constraints) tetapi

kendalan ini tetap diusahakan sedapat mungkin dipenuhi (pelanggaran terhadap

kendala dapat diminimalkan). Kendala tersebut muncul karena adanya

aturan-aturan yang berfungsi agar entitas yang ada dalam melakukan proses dapat

berjalan dengan baik. Entitas tersebut meliputi kuliah, dosen, mahasiswa/ kelas,

ruang dan waktu dengan segala keterbatasannya.

1. Hard Constraints

Hard Constraints adalah prioritas umum yang harus dipenuhi dalam

menyusun jadwal kuliah. Ada beberapa ketentuan yang harus

dilaksanakan dengan pertimbangan bahwa apabila prioritas ini tidak

(44)

Prioritas yang termasuk dalamhard constraints meliputi:

a. Tidak boleh ada kuliah yang berjalan bersamaan untuk kelas yang

sama.

b. Tidak boleh ada kapasitas ruang kurang dari jumlah mahasiswa yang

mengambil mata kuliah tersebut.

c. Satu dosen tidak bias memberikan kuliah di dua tempat atau lebih di

tempat yang berbeda pada waktu yang bersamaan

d. Satu ruang kuliah tidak bias digunakan lebih dari satu kuliah dalam

waktu yang bersamaan.

e. Tipe ruang kuliah kuliah harus sama dengan tipe kuliah.

f. Kelas praktikum dilakukan secara berturut-turut.

g. Pada waktu tertentu tidak diperkenankan adanya kuliah. Misalkan:

hari Jumat jam 12.00-14.00, dsb.

h. Durasi perkuliahan dalam 1 minggu dan perhari tidak boleh overlap.

2. Soft Constraints

Soft Constraints ialah prioritas yang tidak dapat terpenuhi, tidak

menyebabkan kesalahan yang fatal.

Prioritas yang termasuk dalamSoft Constraints yaitu:

a. Kelas teori dilakukan secara berturut-turut.

b. Dosen dapat memilih jam mengajar yang diinginkan.

3.1.2 Analisis Algoritma Genetik Pada Penjadwalan

Penerapan algoritma genetik dalam proses penjadwalan kuliah, ada 5 hal yang

penting yang harus dilakukan seperti yang telah disampaikan oleh John Holland

dalam Simple Genetik Algorithm yaitu pengkodean kromosom, membangun

populasi awal, proses seleksi, proses regenerasi mulai dari persilangan dan

mutasi serta proses perulangan regenerasi sampai memperoleh kondisi

(45)

3.1.2.1 Membangun Populasi Awal

Populasi awal pada umumnya dibangun terdiri dari 2 teknik yaitu sebuah

populasi dibangun dari semua informasi constraints dan populasi awal

dibangkitkan secara random.

Pada penelitian ini digunakan teknik populasi awal dengan mengambil

semua informasi constraints dari pusat data, yang terlebih dahulu setiap

informasi constraints tersebut direpresentasikan, kemudian populasi awal

dibangun berdasarkan informasi yang ada sebanyak N kromosom, dengan N

merupakan banyaknya kuliah dan dapat dikatakan bahwa setiap gen dalam

kromosom mewakili suatu kuliah. Populasi awal tersebut kemudian

dibangkitkan secara random untuk selanjutnya dilakukan proses evaluasi setiap

kromosomnya.

Representasi kromosom tersebut sebagai berikut:

1. Ada 3 informasiconstraints utama yaitu:

a. Dosen pengajaravailable.

b. Mata kuliah yang telah ditetapkan pengajarnya.

c. Informasi ruang kuliahavailable.

2. Pada ke-empat informasi diatas dapat direpresentasikan kromosom

dalam bentuk matriks sebagai berikut:

a. Dosen Pengajaravailable

Representasi ini menginformasikan waktu dosen pengajar dapat

mengajar yang dinotasikan D[i,j] dengan i = hari dan j = jam. Bentuk

representasi dalam matriks dapat digambarkan dengan matriks dua

dimensi, dengan panjang baris (Hari [N]) = maksimum hari

perminggu dan panjang kolom (Jam [N]) = maksimum jam perhari.

(46)

Tabel 3.1 Matriks Dosen PengajarAvailable

Bentuk representasi dari mata kuliah adalah matriks satu dimensi

yang dinotasikan KM[i] dengan i = mata kuliah ke-i. Representasi ini

menginformasikan kelas mata kuliah yang telah ditentukan

pengajarnya, dengan panjang matriks = banyak mata kuliah. Bentuk

matriks satu dimensi mata kuliah ditunjukkan pada Tabel 3.2.

Tabel 3.2 Matriks Kelas Mata Kuliah

0 1 N

Kelas Mata Kuliah KM1 KM2 … KMN

c. Ruang Kuliah

Representasi yang menginformasikan waktu ruang yang dapat

digunakan untuk kuliah. Representasi ini dinotasikan R[i,j] dengan

i=hari dan j = jam, dengan panjang baris (Hari[N]) = maksimum hari

perminggu dan panjang kolom (Jam[N]) = maksimum jam perhari.

Bentuk matriks ruang available ditunjukkan pada Tabel 3.3.

Tabel 3.3 Matriks RuangAvailable

(47)

3. Dari constraints yang ada dapat ditunjukkan matriks penyelesaian

penjadwalan kuliah dengan bentuk matriks 3 dimensi, dengan algoritma

sebagai berikut (Gambar 3.1)

For tiap ruang;

For tiap hari;

For tiap jam;

Tempatkan kelas mata kuliahavailable

Gambar 3.1 Algoritma Penyelesaian Jadwal Kuliah

3.1.2.2 EvaluasiPenalty Kromosom

Setiap kromosom pada populasi dievaluasi untuk diketahui nilai penalty (nilai

total pelanggaran). Fungsipenalty disusun berdasarkan prioritas yang dihadapi.

Pada proses evaluasi ini digunakan model seleksi Roulette Wheel Selection,

dengan mengacu nilaifitness ataupenalty.

Proses seleksi yang dilakukan yaitu perhitungan banyaknya pelanggaran

(penalty). Adapun proses seleksi perhitungan pelanggaran tersebut sebagai

berikut:

1. Banyaknya kelas yang bentrok.

2. Kapasitas ruangan yang terlalu kecil dengan jumlah mahasiswa.

3. Tipe ruangan yang tidak sesuai dengan tipe kuliah.

4. Duplikat dosen mengajar.

5. Waktu perkuliahan tertentunot available.

6. Dosen ditempatkan pada waktu dosennot available

7. Kelas teori ditempatkan tidak berturut-turut.

8. Kelas praktikum ditempatkan tidak berturut-turut.

Berdasarkan hal diatas dapat dihitung total nilaipenalty dengan rumus,

penalty = total cost pelanggaran x konstanta beban pelanggaran tersebut. Pada

(48)

Tabel 3.4 BobotPenalty Setiap GolonganPenalty

GolPenalty BobotPenalty

Berat 10

Sedang 8

Ringan 1

Dari seluruh prioritas dan bobot penalty diatas, bobot penalty dari

masing-masing prioritas dapat dilihat pada Tabel 3.5

Tabel 3.5 BobotPenalty Setiap Prioritas

Penalty Gol Penalty

Duplikat kelas mahasiswa Berat

Ruang terlalu kecil Berat

Tipe ruangan tidak sesuai tipe kuliah Berat

Duplikat dosen Berat

DosenNot Available Sedang

WaktuNot Available Berat

Durasi teori tidak berturut-turut Ringan

Durasi praktek tidak berturut-turut Berat

3.1.2.3 Proses Regenerasi

Proses regenerasi adalah proses perubahan gen-gen generasi sekarang ke gen

generasi berikutnya. Proses regenerasi meliputi:

1. Persilangan (Crossover)

Proses yang dilakukan untuk melakukan penukaran bagian kromosom

yaitu dengan memilih gen dengan posisi dan panjang kromosom secara

random dalam satu kromosom, kemudian dilakukan penataan kembali

gen yang tidak terjadicrossover.

Proses persilangan yang digunakan dalam penelitian ini dengan tipaOne

(49)

2. Mutasi (Mutation)

Proses penukaran gen (mutasi) dalam kromosom yang dipilih dilakukan

secara random berdasarkan nilai probabilitas mutasinya. Proses mutasi

yang digunakan dalam penelitian ini dengan menggunakan tipe mutasi

biasa.

3.1.2.4 Pengujian

Proses algoritma genetik akan terjadi perulangan terus-menerus mulai dari awal

sampai proses regenerasi mencapai maksimum. Perulangan tersebut akan

berhenti, bila kriteria penghentian telah terpenuhi. Pada umumnya kriteria

penghentian ada 2 macam yaitu apabila nilai penalty = 0 atau sudah tidak ada

lagi pelanggaran dan banyaknya generasi telah mencapai nilai maksimum.

Dalam penelitian ini digunakan 2 macam kriteria tersebut dalam

melakukan penghentian proses regenerasi. Pertimbangan digunakan 2 kriteria

tersebut adalah apabila pada proses regenerasi tertentu telah mencapai nilai

penalty = 0 maka sistem tidak perlu melakukan proses regenerasi sampai

mencapai generasi maksimum karena individu terbaik telah ditemukan,

sedangkan bila tidak mencapai nilai penalty = 0 maka proses regenerasi akan

mencapai generasi maksimum dengan memilih individu yang mempunyai nilai

penalty paling rendah dan ini merupakan individu terbaik dari individu yang

berbentuk dari generasi-generasi yang ada.

3.1.3Mapping Algoritma Genetik

Pada proses dalam algoritma genetik dalam penelitian ini adalah

(50)

Algoritma yang digunakan dalam menyelesaikan permasalahan

penjadwalan kuliah dapat dilihat pada Gambar 3.2, dengan tujuan utama tetap

dengan algoritma genetik.

Menentukan nilai konstanta yang diperlukan……….(1)

Inisialisasi database………(2)

Inisialisasi penyelesaian dalam bentukpointer………..(3)

While regenerasi < max_generasi {

Disposepointer cost_Penalty paling besar………(4)

Hitung nilai rata-rataPenalty………...(5)

While jml_populasi < max_populasi {

Regenerasi……….(6)

}

If cost_Penalty < 1 {

Regenerasi:=max_regenerasi-1………...(7)

}

Inc(regenerasi);

}

Cetak_penyelesaian

Gambar 3.2 Algoritma Penjadwalan Kuliah

Deskripsi Gambar 3.2:

Ada beberapa asumsi penulis dalam istilah-istilah dalam algoritma genetik:

1. Gen : informasi constraints seperti: ruang, hari, jam, mata kuliah, kelas

mahasiswa, dosen beserta seluruh atributnya.

2. Kromosom : mewakili kelas mata kuliah yang telah ditempatkan yang

digambarkan pada matriks 3 dimensi (Matriks[ruang][hari][jam]).

3. Individu : satu individu mewakili seluruh kelas mata kuliah yang terjadi

pada tahun ajaran tersebut, yang memiliki berbagai variasi. Digambarkan

(51)

Berikut ini penjelasan Algoritma Penjadwalan Kuliah

1. Menetukan nilai konstanta yang diperlukan

Berikut ini konstanta yang diperlukan:

a. KonstantaPenalty:

Untuk menetukan prioritas Hard Constraints dan Soft Constraints.

Nilai konstanta dapat dilihat pada Sub Bab 3.1.2.2, Tabel 3.4 dan

Tabel 3.5.

b. Konstanta pendukung

1. Max_populasi : Jumlah maksimum populasi dalam satu

generasi.

2. Crossover_rate : Probabilitas persilangan.

3. Mutation_rate : Probabilitas mutasi.

4. Max_regenerasi : Jumlah maksimum regenerasi.

2. Inisialisasi database

Pada prosedur ini merupakan awal pembentukan populasi, dengan

mengambil seluruh gen/ informasi dalam database yang terdiri atas mata

kuliah, ruang, kelas mahasiswa, waktu dosen dengan semua atributnya,

dapat dilihat pada Sub Bab 3.1.2.1 Membangun Populasi Awal.

3. Inisialisasi penyelesaian dalam bentukpointer

Penyelesaian dari setiap generasi akan disimpan dalam pointer dengan

bentuk Linked List. Kemudian digunakan sebagai pembanding antar

generasi, untuk memilih individu yang terbaik.

(52)

Gambar 3.3 IlustrasiPointer Penjadwalan Kuliah

Penjelasan Gambar 3.3:

a. Pertama kali di deklarasikan alokasi memori pointer new

(Temp_pointer).

b. Nilai satu cell pointer berisi informasi seluruh ruang, hari dan jam

yang digunakan kuliah dalam satu semester tahun ajaran, dengan

seluruh informasi dalam bentuk matriks 3 dimensi yang masih

bernilai nol (ruang dan waktu belum ditempatkan mata kuliah

tertentu). Proses ini merupakan proses inisialisasipointer.

c. Sebelum masuk kepointer (c) setelahpointer (b) terdapat

prosedur-prosedur yang dilalui yaitu:

1. Penempatan tiap ruang, hari, jam terhadap mata kuliah tertentu

beserta durasi mata kuliah tersebut.

2. Dihitung nilaipenalty (pelanggaraan) tiap kromosom.

3. Setiap kromosom beserta nilaiPenaltynya dimasukkan ke dalam

(53)

4. Pada awal generasi dialokasikan memori pointer Linked Listkepala

dan bagian ekornya new(first) dan new(last), dengan kedua nilai

pointer yang sama.

5. Pada generasi selanjutnya digambarkan pada pointer bentuk Linked

List yang sebenarnya dengan prinsip LIFO (Last In First Out), tetapi

pointer tersebut akan diurutkan berdasarkan nilai Penaltynya mulai

dari kepala dengan nilai total Penalty paling kecil samapi bagian

ekor dengan nilai Penalty terbesar.Linked List tersebut dapat dilihat

pada poin (1) dan (2).

4. Dispose pointer dengancost Penalty terbesar (proses seleksi alam)

Pada prosedur ini dilakukan untuk menghilangkan individu dengan

penalty terbesar dari tiap generasi. Fungsi dari prosedur ini untuk

menghemat memori pointer agar tidak terlalu banyak alokasi memori

pointer dan ini merupakan proses seleksi alam, dengan individu yang

kurang bagus akan dihapus dengan melihat nilaiPenaltynya.

Banyak individu yang dihilangkan dalam penelitian ini adalah 0,5 x

banyaknya individu tiap generasi.

5. Nilai rata-ratapenalty

Prosedur yang digunakan untuk menghitung rata-rata seluruh penalty

setelah ada individu yang dihilangkan. Dengan perhitungan:

(3.1)

Keterangan:

Ptot : Totalpenalty seluruh generasi

I : Jumlah individu

6. Regenerasi

Proses regenerasi bentuk pointer seperti pada point 3 inisialisasi

penyelesaian dalam bentuk pointer, yaitu pointer tetap diurutkan

berdasarkan penalty terkecil. Tetapi sebelum itu dilakukan proses

persilangan dan mutasi, serta memastikan jumlah kromosom tiap

individu.

tot

P

I

(54)

a. Proses Persilangan

Bentuk individu dalam proses persilangan dapat dimisalkan pada

pointer Gambar 3.4

Gambar 3.4 Persilangan Individu b. Proses Mutasi

Misal proses mutasi dapat dilihat padapointer Gambar 3.5

Gambar 3.5 Mutasi Individu

c. Memastikan Jumlah Kromosom Setiap Individu.

Pada proses persilangan dan mutasi sangat rentang adanya

kromosom yang hilang karena digantikan kromosom lain maupun

kelebihan kromosom (terbentuk kromosom yang kembar). Untuk

mengatasi hal tersebut diperlukan proses penyeleksian kembali tiap

kromosom dalam individu agar jumlah kromosom sesuai seperti

jumlah kromosom pada populasi awal.

d. Individu-individu yang terbentuk ke dalam pointer utama sesuai

dengan nilaipenalty masing-masing individu.

7. Melihat Kondisi

Proses setelah regenerasi yaitu mengecek total penalty apakah sudah

mencapaipenalty = 0 atau belum, jika sudah mencapai akan keluar dari

perulangan, sehingga tidak perlu sampai generasi maksimum, jika tidak

(55)

3.1.4 Aliran Informasi

Hal yang perlu dilakukan sebelum mendesain sebuah sistem aplikasi diperlukan

penggambaran proses-proses yang terjadi dalam sistem yang dapat digambarkan

pada Context Diagram dan lebih didetailkan pada Data Flow Diagram (DFD).

Sehingga dengan dua macam bagan tersebut dapat menggambarkan secara jelas

aliran informasi dalam proses penjadwalan kuliah.

3.1.4.1Context Diagram

Context diagram sistem penjadwalan kuliah dapat dilihat pada gambar di bawah

ini (Gambar 3.6):

Gambar 3.6 Context Diagram

3.1.4.2Data Flow Diagram (DFD) Level 0

DFD Level 0 pada sistem penjadwalan kuliah dapat dilihat pada gambar di

(56)

Gambar 3.7 Data Flow Diagram (DFD) Level 0

3.1.4.3 Data Flow Diagram (DFD) Level 1

(57)

Gambar 3.8 DFD Level 1 Proses Pendataan Kelas dan Jurusan

Dari Proses 2: Pendataan Kurikulum

Gambar 3.9 DFD Level 1 Proses 2 Pendataan Kurikulum

(58)

Gambar 3.10 DFD Level 1 Proses 3 Waktu Perkuliahan

Dari Proses 4: Pendataan Ruang Kuliah

Gambar 3.11 DFD Level 1 Proses 4 Pendataan Ruang Kuliah

(59)

Gambar 3.12 DFD Level 1 Proses 5 Pendataan Pengajar

Dari Proses 6: Penyusunan Jadwal Kuliah

(60)

3.1.5 Pemodelan Data

Pemodelan data merupakan bagian yang menggambarkan perancangan dari

sudut sumber data yang digunakan untuk membuat tabel database yang

ternormalisasi. Pemodelan data ini terdapat 2 penggambaran yaitu Entity

Relationship Diagram (ERD) yaitu menggambarkan hubungan relasi

antarentitas sebagai langkah agar tabel ternormalisasi pada Gambar 3.14 dan

skema diagram yaitu menggambarkan relasi antara tabel yang telah normal pada

(61)
(62)
(63)

3.2 Perancangan

3.2.1 Lingkungan Implementasi

Sistem ini dibangun dengan didukung perangkat keras dan perangkat lunak yang

meliputi:

1. Perangkat Keras

Spesifikasi perangkat keras yang digunakan dalam penelitian ini sebagai

berikut:

a. Processor Intel Pentium Celeron 1,6 GHz, Package Socket 478

mPGA.

b. Memory DDR2RAM 512 MB sebanyak 1 Keping.

c. Hardisk 80 GB.

d. VGA 64 MB.

e. Monitor 14 Inch, Keyboard, Mouse.

2. Perangkat Lunak

a. Sistem Operasi Microsoft Windows XP SP2 dan Linux Ubuntu 8.04.

b. JDK version 1.6.0_13 for Java 2 Standard Edition.

c. JCreator Pro LE 4.00.028 dan Netbeans 6.5

d. MySQL Server Versi 5.1.30/ XAMPP-linux-1.7.

3.2.2 Perancangan Antarmuka

Penyusunan program penjadwalan kuliiah secara umum disusun berdasarkan

urutan proses/ kerangka pemikiran yang digambarkan pada diagram alir proses

Gambar 3.16 dan struktur program dapat dilihat pada hirarki program Gambar

(64)

Gambar 3.16 Diagram Alir Program Simulasi Penjadwalan Kuliah

Hirarki Program

Gambaran umum penggunaan program dapat digambarkan pada flowchart

(65)

Gambar 3.17Flowchart Program Simulasi Penjadwalan Kuliah

3.2.3 Perancangan Proses

Berisi deskripsi yang menjelaskan tentang system simulasi penjadwalan kuliah.

Perancangan proses ini mengacu pada DFD Level 0 dan Level 1. Deskripsi

(66)

Proses 1: Pendataan Jurusan dan Kelas

Tabel 3.6 Deskripsi Proses Pendataan Jurusan Nama Proses Pendataan Jurusan (Proses 1.1)

Input ke kd_jurusan, nama

Output ke - Status OK

- Proses input kelas (Proses 1.2)

- Penyusunan jadwal kuliah (Proses 6.1)

File Tersimpan Kelas

Deskripsi Input data jurusan

Tabel 3.7 Deskripsi Proses Pendataan Kelas Nama Proses Pendataan Kelas (Proses 1.2)

Input ke kd_kelas, kd_jurusan, kelas, angkatan,

kapasitas

Output ke - Status OK

- Proses Pendataan Kurikulum (Proses 2)

File Tersimpan Kelas

Deskripsi Input data kelas

Proses 2: Pendataan Kurikulum

Tabel 3.8 Deskripsi Proses Setting Tahun Jadwal Nama Proses Setting Tahun Jadwal (Proses 2.1)

Input ke Id, tahun

Output ke - Status OK

File Tersimpan Tahun

Deskripsi Untuk menamai tabel jadwalGA sesuai tahun

(67)

Tabel 3.9 Deskripsi Proses Penentuan Durasi Kuliah Nama Proses Penetuan Durasi Kuliah PerSKS (Proses 2.2)

Input ke Tipe, durasi_perSKS

Output ke - Proses pendataan mata kuliah

File Tersimpan SKS

Deskripsi Untuk menentukan durasi perkuliahan 1 SKS

teori dan praktek

Tabel 3.10 Deskripsi Proses Pendataan Mata Kuliah Nama Proses Pendataan mata kuliah (Proses 2.3)

Input ke kd_mk, nama, semester, TotSKS, TotDurasi

kd_mk, kd_dtmk, tipe, SKS, durasi

Output ke - Status OK

- Proses penempatan mata kuliah (Proses

2.4)

- Proses penyusunan jadwal kuliah

(Proses 6)

File Tersimpan Mata kuliah, dt_mata kuliah

Deskripsi Input data mata kuliah baik tipe teori maupun

praktek.

Tabel 3.11 Deskripsi Proses Penempatan Mata Kuliah Nama Proses Penempatan mata kuliah dengan jurusan

(Proses 2.5)

Input ke kd_jurusan, kd_mk

Output ke - Status OK

- Proses pendataan pengajar (Proses 5)

File Tersimpan Kuliah

Deskripsi Menentukan kurikulum mata kuliah tiap

(68)

Proses 3: Waktu Perkuliahan

Tabel 3.12 Deskripsi Proses Penentuan Hari Kuliah Nama Proses Penentuan hari kuliah/ minggu (Proses 3.1)

Input ke kd_hari, nama

Output ke - Status OK

- Proses waktu tidak dapat kuliah (Proses

3.3)

- Proses pendataan pengajar (Proses 5)

- Proses Penyusunan jadwal kuliah

(proses 6)

File Tersimpan Hari

Deskripsi Input data hari perkuliahan dalam satu minggu.

Tabel 3.13 Deskripsi Proses Penentuan Jam Kuliah Nama Proses Penentuan jam kuliah/ hari (Proses 3.2)

Input ke kd_jam, awal, akhir

Output ke - Status OK

- Proses waktu tidak dapat kuliah (Proses

3.3)

- Proses pendataan pengajar (Proses 5)

- Proses Penyusunan jadwal kuliah

(proses 6)

File Tersimpan Jam

Deskripsi Input data jam perkuliahan dalam satu hari.

Tabel 3.14 Deskripsi Proses WaktuNot Available

Nama Proses Waktu tidak dapat dipakai kuliah (Proses 3.3)

Input ke kd_hari, kd_jam

Output ke - Status OK

File Tersimpan Not_hari

(69)

Proses 4: Pendataan Ruang Kuliah

Tabel 3.15 Deskripsi Proses Pendataan Ruang Kuliah Nama Proses Pendataan ruang kuliah (Proses 4.1)

Input ke kd_ruang, nama, tipe, kapasitas

Output ke - Status OK

- Proses ruang tidak bias dipakai (Proses

4.2)

- Proses Penyusunan jadwal kuliah

(proses 6)

File Tersimpan Ruang

Deskripsi Input data ruang perkuliahan.

Tabel 3.16 Deskripsi Proses Waktu RuangNot Available

Nama Proses Waktu ruang tidak dapat dipakai kuliah

(Proses 4.2)

Input ke kd_ruang, kd_hari, kd_jam

Output ke - Status OK

File Tersimpan Not_ruang

Deskripsi Input data waktu tidak bias dipakai kuliah.

Proses 5: Pendataan Pengajar

Tabel 3.17 Deskripsi Proses Pendataan Dosen Nama Proses Pendataan dosen (Proses 5.1)

Input ke kd_dosen, nip, nama, jk_dosen, alamat, email,

phone

Output ke - Status OK

- Proses penempatan dosen (Proses 5.2)

- Proses waktu dosen tidak bias mengajar

(Proses 5.3)

File Tersimpan Dosen

(70)

Tabel 3.18 Deskripsi Proses Penempatan Dosen Nama Proses Penempatan dosen (Proses 5.2)

Input ke kd_dosen, kd_mk

Output ke - Status OK

File Tersimpan Pengajar

Deskripsi Penempatan dosen mengajar mata kuliah

tertentu.

Tabel 3.19 Deskripsi Proses Waktu Dosen Not Available Nama Proses Waktu dosen tidak bias mengajar (Proses 5.3)

Input ke kd_dosen, kd_hari, kd_jam

Output ke - Status OK

File Tersimpan Not_dosen

Deskripsi Input data dosen tidak bias mengajar.

Proses 6: Penyusunan Mata Kuliah

Tabel 3.20 Deskripsi Proses Penyusunan Jadwal Nama Proses Penyusunan jadwal kuliah (Proses 6)

Input ke kd_dtmk, kd_kelas, kd_ruang, kd_hari, kd_jam

Output ke - Status OK

- Proses jadwal kuliah (Proses 7)

- Proses jadwal mengajar (Proses 8)

File Tersimpan JadwalGA<semester>

Deskripsi Proses penyusunan jadwal kuliah, dengan file

tersimpa <semester> sesuai seting input

Gambar

Gambar 2.2 Tool-Tool Dasar JDK
Tabel 2.6 Tabel Package yang terdapat dalam J2SE
Gambar 3.2 Algoritma Penjadwalan Kuliah
Gambar 3.3 Ilustrasi Pointer Penjadwalan Kuliah
+7

Referensi

Dokumen terkait

Hasil penelitian ini menunjukkan bahwa kepemimpinan yang ada di Perpustakaan Universitas Muhammadiyah Yogyakarta sudah sesuai dengan teori milik B.M Bass mengenai

Saya sering tidak menggunakan pertimbangan system pengendalian intern dalam audit laporan keuangan. Saya sering tidak menggunakan informasi asersi dalam merumuskan tujuan audit

Berdasarkan hasil penelitian ini dapat dijelaskan bahwa serbuk bunga sukun jantan dengan kadar 2 gram dalam bentuk mat yang ditetesi air sebanyak 16 ml berpengaruh

Bapak dan Ibu dosen Jurusan Fisika FMIPA Universitas Udayana yang telah memberikan referensi pustaka dalam penyelesaian Tugas Akhir ini.. Kedua orang tua Bapak I Wayang

Perforasi dari kandung kemih bisa terjadi saat TURP berkaitan dengan instrumen pembedahan, pada reseksi yang sukar, distensi berlebihan dari kantung kemih dan letusan

Tarian saman termasuk salah satu tarian yang cukup unik,kerena hanya menampilkan gerak tepuk tangan gerakan-gerakan lainnya, seperti gerak guncang, kirep,

Area penyimpanan, persiapan, dan aplikasi harus mempunyai ventilasi yang baik , hal ini untuk mencegah pembentukan uap dengan konsentrasi tinggi yang melebihi batas limit

Kecerdasan Buatan (Artificial Intelligence) merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan pemrograman komputer untuk melakukan sesuatu hal