SISTEM PENDUKUNG KEPUTUSAN PENJADWALAN
MATA KULIAH DENGAN MODEL PEMROGRAMAN
HEURISTIC MENGGUNAKAN ALGORITMA A*
(STUDI KASUS: S1 ILMU KOMPUTER
FMIPA USU)
SKRIPSI
KADAR ERATOSTHENES SITEPU
061401091
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
SISTEM PENDUKUNG KEPUTUSAN PENJADWALAN MATA KULIAH DENGAN MODEL PEMROGRAMAN
HEURISTIC MENGGUNAKAN ALGORITMA A*
(STUDI KASUS: S1 ILMU KOMPUTER FMIPA USU)
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer
KADAR ERATOSTHENES SITEPU 061401091
PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : SISTEM PENDUKUNG KEPUTUSAN
PENJADWALAN MATA KULIAH DENGAN MODEL PEMROGRAMAN HEURISTIC MENGGUNAKAN ALGORITMA A* (STUDI KASUS: S1 ILMU KOMPUTER FMIPA USU)
Kategori : SKRIPSI
Nama : KADAR ERATOSTHENES SITEPU
Nomor Induk Mahasiswa : 061401091
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 21 Desember 2010
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Drs. Agus Salim Harahap, M.Si Drs. Suyanto, M.Kom
NIP 195408281981031004 NIP 195908131986011002
Diketahui/Disetujui oleh
Departemen Ilmu Komputer FMIPA USU Ketua,
PERNYATAAN
SISTEM PENDUKUNG KEPUTUSAN PENJADWALAN MATA KULIAH DENGAN MODEL PEMROGRAMAN
HEURISTIC MENGGUNAKAN ALGORITMA A* (STUDI KASUS: S1 ILMU KOMPUTER
FMIPA USU)
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 21 Desember 2010
PENGHARGAAN
Segala puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus, dengan limpah karunia-Nya penulisan skripsi ini berhasil diselesaikan dalam waktu yang telah ditetapkan.
Ucapan terima kasih saya sampaikan kepada Bapak Drs. Suyanto, M.Kom dan Bapak Drs. Agus Salim Harahap, M.Si selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan kajian ini. Serta kepada Bapak Syahril Efendi, S.Si, M.I.T. dan Bapak M. Andri Budiman, S.T., MCompSc., M.E.M. selaku pembanding yang telah memberikan saran dan kritiknya yang banyak membantu dalam proses penyelesaian skripsi ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Ilmu Komputer, Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syahriol Sitorus, S.Si., M.I.T., Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen dan staf/pegawai pada Departemen Ilmu Komputer FMIPA USU, serta rekan-rekan mahasiswa angkatan 2006 terutama untuk sahabat saya Friendly, Pangeran, Handy, Ferry, Evin, Rain, dan Ferdinandus. Akhirnya, tidak terlupakan saya ucapkan terima kasih yang sebanyak-banyaknya kepada Ayahanda Dalin Mehuli Sitepu, Ibunda Sedia br. Ginting, dan saudari saya serta semua sanak-keluarga dan teman-teman yang telah memberikan bantuan materil dan spiritual dalam masa kuliah dan dalam penyelesaian skripsi ini. Semoga Tuhan akan membalasnya.
ABSTRAK
DECISION SUPPORT SYSTEM FOR COURSE SCHEDULING WITH HEURISTIC PROGRAMMING MODEL BY USING A*
ALGORITHM (CASE STUDY: S1 ILMU KOMPUTER FMIPA USU)
ABSTRACT
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
1.2.Perumusan Masalah 2
1.3.Batasan Masalah 3
1.4.Tujuan 3
1.5.Manfaat 3
1.6.Metodologi Penelitian 4
1.7.Sistematika Penulisan 5
Bab 2 Landasan Teori 6
2.1.Penjadwalan 6
2.1.1. Definisi Penjadwalan 6
2.1.2. Penjadwalan Mata Kuliah 7
2.1.3. Masalah Jadwal Mata Kuliah 8
2.2.Sistem Pendukung Keputusan 10
2.2.1. Definisi SPK 13
2.2.2. Konfigurasi SPK 13
2.2.3. Karakteristik dan Kemampuan SPK 14
2.2.4. Komponen-Komponen SPK 15
2.2.4.1. Subsistem Manajemen Data 16
2.2.4.2. Subsistem Manajemen Model 18
2.2.4.3. Subsistem Antarmuka Pengguna 19
2.2.4.4. Subsistem Manajemen Berbasis Pengetahuan 19
2.2.5. Model 20
2.2.5.1. Manfaat Model 20
2.2.5.2. Kategori Model 21
2.2.6. Pemrograman Heuristic 22
2.3.Algoritma A* 24
2.4.Delphi 7.0 27
2.5.MySQL 27
3.1.Analisis Masalah Penjadwalan Mata Kuliah 30
3.2.Analisis dan Perancangan Komponen Sistem 33
3.2.1. Subsistem Manajemen Berbasis Pengetahuan 33
3.2.1.1. Hard Constraints 34
3.2.1.2. Soft Constraints 35
3.2.1.3. Tree 36
3.2.1.4. Nilai Konflik Mata Kuliah 37
3.2.1.5. Nilai Kualitas Solusi Jadwal Mata Kuliah 45
3.2.1.6. Nilai Efektivitas Penjadwalan Mata Kuliah 50
3.2.2. Subsistem Manajemen Model 51
3.2.2.1. Model Pemrograman Heuristic 51
3.2.2.2. Algoritma Penjadwalan Mata Kuliah Menggunakan A* 59 3.2.2.3. Sistem Pendukung Keputusan Penjadwalan Mata Kuliah 62
3.2.3. Subsistem Manajemen Data 63
3.2.3.1. Analisis Data Sistem 63
3.2.3.1.1. Data Internal 63
3.2.3.1.2. Data Eksternal 64
3.2.3.2. Data Flow Diagram (DFD) 65
3.2.3.2.1. Diagram Konteks 65
3.2.3.2.2. DFD Level 1 66
3.2.3.2.3. DFD Level 2 68
3.2.3.3. Kamus Data 68
3.2.3.4. Entity Relationship Diagram (ERD) 68
3.2.4. Subsistem Antarmuka Pengguna 69
Bab 4 Implementasi dan Pengujian Sistem 72
4.1.Implementasi Sistem 72
4.1.1. Lingkungan Implementasi 72
4.1.2. Implementasi Antarmuka Sistem 73
4.1.2.1. Form Utama 73
4.1.2.2. Form New 73
4.1.2.3. Form Open/Delete 74
4.1.2.4. Form Jadwal 74
4.2.Pengujian Sistem 75
4.2.1. Data Pengujian 76
4.2.2. Hasil Pengujian Sistem 79
Bab 5 Kesimpulan dan Saran 89
5.1.Kesimpulan 89
5.2.Saran 89
Daftar Pustaka 91
Lampiran A: DFD Level 2 93
Lampiran B: Kamus Data 99
Lampiran C: Implementasi Antarmuka Sistem 103
DAFTAR TABEL
Halaman
Tabel 2.1 Contoh sebuah tabel 7
Tabel 2.2 Kategori-Kategori Model 21
Tabel 2.3 Contoh-contoh heuristic 22
Tabel 3.1 Heuristic dari Kriteria Penjadwalan 51
Tabel 3.2 Spesifikasi Proses DFD Level 1 67
Tabel 4.1a Konflik Mata Kuliah 77
Tabel 4.1b Konflik Mata Kuliah 78
Tabel 4.2 Konflik Mata Kuliah KTB 103 Kelas 10 Kom A 81
Tabel 4.3 Konflik Mata Kuliah KTB 304 Kelas 08 Kom A 82
Tabel 4.4 Konflik Mata Kuliah KTC 302 Kelas 08 Kom A 83
Tabel 4.5 Konflik Mata Kuliah UNI 106 Kelas 09 Kom A 84
Tabel A.1 Spesifikasi Proses DFD Level 2 P1 93
Tabel A.2 Spesifikasi Proses DFD Level 2 P2 94
Tabel A.3 Spesifikasi Proses DFD Level 2 P3 95
Tabel A.4 Spesifikasi Proses DFD Level 2 P4 96
Tabel A.5 Spesifikasi Proses DFD Level 2 P5 97
Tabel B.1 Kamus Data 99
Tabel D.1 Data Dosen 109
Tabel D.2 Data Ruangan 110
Tabel D.3 Data Mahasiswa 111
Tabel D.4 Data Mata Kuliah Tingkat I 111
Tabel D.5 Data Mata Kuliah Tingkat II 112
Tabel D.6 Data Mata Kuliah Tingkat III 113
Tabel D.7 Data Mata Kuliah Tingkat IV 114
DAFTAR GAMBAR
Halaman
Gambar 2.1 SPK Dalam Sudut Pandang Konotasional 11
Gambar 2.2 Skematik SPK 16
Gambar 3.1 Tree dari slot waktu 36
Gambar 3.2 Flowchart Untuk Mencari Konflik Dosen 39
Gambar 3.3 Flowchart Untuk Mencari Konflik Kelas 41
Gambar 3.4 Flowchart Untuk Mencari Konflik Tingkat 43
Gambar 3.5 Flowchart Untuk Mencari Nilai Konflik Mata Kuliah 44
Gambar 3.6a Flowchart Untuk Mencari Kualitas Mata Kuliah 46
Gambar 3.6b Flowchart Untuk Mencari Kualitas Mata Kuliah 47
Gambar 3.6c Flowchart Untuk Mencari Kualitas Mata Kuliah 48
Gambar 3.7 Flowchart Untuk Mencari Nilai Kualitas Solusi Jadwal Mata Kuliah 49 Gambar 3.8 Flowchart Untuk Mencari Nilai Efektivitas Penjadwalan Mata Kuliah 50
Gambar 3.9 Flowchart Heuristic Untuk Mata Kuliah Berstatus ‘Biasa’ 57
Gambar 3.10 Flowchart Heuristic Untuk Mata Kuliah Berstatus ‘Bersama’ 58 Gambar 3.11 Flowchart Penjadwalan Mata Kuliah Menggunakan Algoritma A* 61
Gambar 3.12 Flowchart Proses-Proses Dalam Sistem 62
Gambar 3.13 Diagram Konteks (DFD Level 0) 66
Gambar 3.14 DFD Level 1 67
Gambar 3.15 Diagram Entity Relationship 69
Gambar 3.16 Struktur Menu dan Form Antarmuka Sistem 71
Gambar 4.1 Pemberitahuan bahwa Mata Kuliah KTB 103 kelas 10 Kom A tidak
dapat dijadwalkan 79
Gambar 4.2 Pemberitahuan bahwa Mata Kuliah KTB 304 kelas 08 Kom A tidak
dapat dijadwalkan 80
Gambar 4.3 Pemberitahuan bahwa Mata Kuliah KTC 302 kelas 08 Kom A tidak
dapat dijadwalkan 80
Gambar 4.4 Pemberitahuan bahwa Mata Kuliah UNI 106 kelas 09 Kom A tidak
dapat dijadwalkan 80
Gambar 4.5 Pemberitahuan Nilai Kualitas Solusi Jadwal Mata Kuliah 85
Gambar 4.6 Pemberitahuan Nilai Efektivitas Penjadwalan Mata Kuliah 85
Gambar 4.7 Jadwal Mata Kuliah Untuk Ruang Java 86
Gambar 4.8 Jadwal Mata Kuliah Untuk Ruang Basic 87
Gambar 4.9 Jadwal Mata Kuliah Untuk Ruang Pascal 87
Gambar 4.10 Jadwal Mata Kuliah Untuk Ruang Fortran 88
Gambar A.1 DFD Level 2 P1 93
Gambar A.2 DFD Level 2 P2 94
Gambar A.3 DFD Level 2 P3 94
Gambar A.4 DFD Level 2 P4 95
Gambar A.5 DFD Level 2 P5 97
Gambar C.1 Tampilan Implementasi Antarmuka Form Utama 103
Gambar C.3 Tampilan Implementasi Antarmuka Form Open/Delete 104
Gambar C.4 Tampilan Implementasi Antarmuka Tab Dosen 104
Gambar C.5 Tampilan Implementasi Antarmuka Tab Mahasiswa 105
Gambar C.6 Tampilan Implementasi Antarmuka Tab Ruangan 106
Gambar C.7 Tampilan Implementasi Antarmuka Tab Mata Kuliah 107
ABSTRAK
DECISION SUPPORT SYSTEM FOR COURSE SCHEDULING WITH HEURISTIC PROGRAMMING MODEL BY USING A*
ALGORITHM (CASE STUDY: S1 ILMU KOMPUTER FMIPA USU)
ABSTRACT
BAB I
PENDAHULUAN
1.1. Latar Belakang
Jadwal mata kuliah merupakan hal yang penting dalam proses perkuliahan. Setiap
jurusan pada universitas memiliki jadwal mata kuliah yang disusun sedemikian rupa
untuk menjaga berlangsungnya perkuliahan di jurusan tersebut. Jadwal mata kuliah
yang baik memiliki distribusi mata kuliah yang merata setiap harinya untuk setiap
tingkatnya tanpa mengalami kendala dalam proses perkuliahan.
Dalam penyusunan jadwal mata kuliah bukanlah pekerjaan yang mudah. Ada
beberapa aspek yang mempengaruhi dalam penyusunan jadwal mata kuliah yaitu
dosen, mahasiswa, mata kuliah, ruangan kuliah, dan slot waktu. Setiap aspek tersebut
memiliki keadaan yang dapat menjadi masalah dan konflik dalam penyusunan jadwal
mata kuliah. Misalnya masalah yang dihadapi dari aspek dosen adalah konflik dosen
yaitu seorang dosen terjadwal mengajar kuliah pada dua lokasi yang berbeda pada
suatu waktu. Atau dari aspek mahasiswa, masalah yang dihadapi adalah banyaknya
kelas per angkatannya. Di samping masalah-masalah tersebut, masih banyak lagi
kemungkinan masalah yang dapat muncul dari masing-masing aspek tersebut.
Untuk mengatasi masalah-masalah yang disebutkan di atas dapat dilakukan
dengan cara komputerisasi dengan membangun sebuah sistem pendukung keputusan.
Sistem akan menerima semua masalah tersebut sebagai masalah terstruktur untuk
menghasilkan solusi penjadwalan mata kuliah yang baik. Masalah terstruktur
merupakan masalah yang dimungkinkan untuk menggunakan algoritma atau peraturan
mengenai keputusan agar masalah dapat diidentifikasi atau dipahami. Dengan
identifikasi pemecahan pengganti dan mengevaluasinya, serta menentukan pemecahan
yang terbaik.
Sebuah sistem pendukung keputusan membutuhkan sebuah model
penyelesaian masalah yang dihadapi. Untuk dapat menentukan model yang tepat dapat
dilakukan dengan mengidentifikasi masalah dan menganalisis lingkungan masalah
serta mengidentifikasi variabel-variabel yang terlibat dalam pengambilan keputusan.
Dalam penjadwalan mata kuliah, masalah yang dihadapi merupakan masalah
kompleks yang diselesaikan secara rutin atau berulang-ulang. Masalah kompleksnya
dapat dilihat dari setiap aspek dalam penyusunan jadwal mata kuliah yang saling
berhubungan dengan aspek lainnya. Kemudian penjadwalan tersebut dilakukan setiap
semester dengan keadaan lingkungan masalah yang berbeda setiap semesternya.
Sehingga model yang tepat untuk sistem ini adalah model pemrograman heuristic.
Menurut George Polya, heuristic didefinisikan sebagai studi metode dan aturan
penemuan. Dalam penyusunan jadwal mata kuliah, heuristic dinyatakan sebagai
aturan untuk melakukan pemilihan slot waktu yang paling dapat diharapkan mencapai
solusi masalah yang dapat diterima. Slot waktu diibaratkan sebuah jalur atau lintasan
yang akan ditelusuri oleh mata kuliah yang akan dijadwalkan, sehingga untuk
mendapatkan jalur atau lintasan terpendek untuk mencapai solusi dibutuhkan sebuah
algoritma. Algoritma yang optimal dalam menghasilkan jalur atau lintasan terpendek
dalam menemukan solusi dari masalah adalah algoritma A*.
1.2. Perumusan Masalah
Dari latar belakang yang dijelaskan sebelumnya, rumusan masalah yang diberikan
adalah:
a. Bagaimana mengatasi masalah terstruktur yang timbul dari mata kuliah, dosen,
mahasiswa, dan ruangan kuliah agar dapat dialokasikan pada slot waktu dalam
b. Bagaimana mengimplementasikan algoritma A* dalam membangun sistem
pendukung keputusan penjadwalan mata kuliah dengan model pemrograman
heuristic.
1.3. Batasan Masalah
Batasan masalah dalam skripsi ini adalah:
a. Sistem ini hanya dapat melakukan penjadwalan mata kuliah untuk satu jurusan
saja.
b. Mata kuliah yang dijadwalkan hanya mata kuliah wajib dan bersifat teori.
c. Sistem ini dirancang untuk komputer PC (stand alone).
d. Sistem ini akan dibangun menggunakan Delphi 7.0.
1.4. Tujuan
Tujuan dari penulisan skripsi ini adalah:
a. Menemukan solusi untuk mengatasi masalah terstruktur yang timbul dari mata
kuliah, dosen, mahasiswa, dan ruangan kuliah agar dapat dialokasikan pada
slot waktu dalam membangun jadwal mata kuliah.
b. Membangun sistem pendukung keputusan penjadwalan mata kuliah dengan
model pemrograman heuristic menggunakan algoritma A*.
1.5. Manfaat
Penulisan skripsi ini bermanfaat bagi instansi pendidikan terutama perguruan tinggi
atau sekolah tinggi dalam penyusunan jadwal mata kuliah sehingga lebih efisien dan
1.6. Metodologi Penelitian
Skripsi ini akan dikerjakan dengan metodologi sebagai berikut:
1. Studi Literatur
Metode ini dilaksanakan dengan melakukan studi kepustakaan dari buku-buku,
e-book, jurnal, makalah dan internet yang dapat mendukung penulisan tugas
akhir.
2. Analisis
Metode ini dilaksanakan dengan melakukan pengumpulan data dan fakta
tentang sistem penjadwalan mata kuliah serta melakukan analisis terhadap
masalah yang ada.
3. Perancangan
Metode ini dilaksanakan dengan melakukan perancangan terhadap sistem yang
akan dibangun berdasarkan analisis yang telah dilakukan.
4. Implementasi
Metode ini dilaksanakan dengan melakukan implementasi rancangan sistem ke
dalam bahasa pemrograman menggunakan Delphi 7.0.
5. Pengujian
Metode ini dilaksanakan dengan melakukan pengujian terhadap sistem yang
telah diimplementasikan untuk mengetahui apakah sistem sudah berjalan
dengan benar.
6. Penyusunan laporan dan penarikan kesimpulan.
Metode ini dilaksanakan dengan membuat laporan hasil analisis dan
perancangan ke dalam format penulisan tugas akhir dengan disertai
1.7. Sistematika Penulisan
Dalam penulisan skripsi ini, sistematika penulisan dibagi menjadi lima bab yaitu:
1. Bab I Pendahuluan, berisikan penjelasan mengenai latar belakang,
perumusan masalah, batasan masalah, tujuan, manfaat, metodologi penelitian,
serta sistematika penelitian yang digunakan untuk menyusun laporan.
2. Bab II Landasan Teori, berisikan dasar teori yang digunakan dalam analisis,
perancangan dan implementasi skripsi.
3. Bab III Analisis dan Perancangan Sistem, berisikan analisis terhadap
masalah serta perancangan sistem pendukung keputusan yang akan dibangun
sebagai dasar dalam tahap implementasi sistem.
4. Bab IV Implementasi dan Pengujian Sistem, berisikan implementasi dari
sistem berdasarkan analisis dan perancangan yang telah dilakukan serta
melakukan pengujian sistem.
5. Bab V Kesimpulan dan Saran, berisi kesimpulan dan saran yang didapatkan
BAB II
LANDASAN TEORI
2.1. Penjadwalan
2.1.1. Definisi Penjadwalan
Chambers (1999, hal: 22) menyatakan bahwa jadwal didefinisikan sebagai sesuatu
yang menjelaskan di mana dan kapan orang-orang dan sumber daya berada pada suatu
waktu. Berdasarkan Kamus Besar Bahasa Indonesia, jadwal merupakan pembagian
waktu berdasarkan rencana pengaturan urutan kerja. Jadwal juga didefinisikan sebagai
daftar atau tabel kegiatan atau rencana kegiatan dengan pembagian waktu pelaksanaan
yang terperinci. Sedangkan penjadwalan merupakan proses, cara, perbuatan
menjadwalkan atau memasukkan dalam jadwal (Departemen Pendidikan dan
Kebudayaan, 1995).
Kebanyakan orang terbiasa dengan jadwal sekolah yang disajikan sebagai tabel
hari dalam seminggu dan slot waktu. Dapat dilihat bahwa setiap hari dibagi ke dalam
slot waktu. Setiap slot waktu memiliki daftar mata pelajaran yang sedang diajarkan,
oleh siapa dan di mana. Jadwal dapat dinyatakan dalam sejumlah cara yang berbeda,
masing-masing siswa harus memiliki jadwal sendiri tergantung pada mata pelajaran,
begitu juga masing-masing guru dan ruang, semua ini adalah perspektif yang berbeda
Tabel 2.1 Contoh sebuah jadwal
Situasi lain di mana jadwal diperlukan (Chambers, 1999), yaitu:
1. Manufacturing - jalur produksi, perencanaan proyek.
2. Travel- kereta api, bus, dll.
3. Ujian universitas/sekolah.
4. Mata kuliah universitas.
5. Jadwal sekolah.
6. Jadwal televisi/radio/media.
7. Pertemuan/Rapat.
Situasi di atas membutuhkan jadwal dengan berbagai kerumitan tergantung
pada jumlah sumber daya yang dijadwalkan, jumlah slot waktu dan lokasi.
2.1.2. Penjadwalan Mata Kuliah
Penjadwalan mata kuliah adalah kegiatan administratif yang paling utama di
universitas. Dalam masalah penjadwalan mata kuliah, sejumlah mata kuliah yang
dialokasikan ke sejumlah ruang kelas yang tersedia dan sejumlah slot waktu disertai
dengan constraints. Constraints terbagi atas dua jenis, yaitu hard constraints dan soft
constraints (Petrovic dan Burke, 2004).
Mr. Smith Mr. Jhon
Room 1 Room2
Class A Class B
COMPUTER Mr. Carlie Room 1 Class C
PHYSICS Mr. Donald Room 2 Class A
Hard constraints merupakan batas-batas yang harus diterapkan pada
penjadwalan mata kuliah dan harus dipenuhi. Solusi yang tidak melanggar hard
constraints disebut solusi layak. Hard constraints yang umum dalam penjadwalan
mata kuliah adalah sebagai berikut:
a. Seorang dosen hanya dapat memberi kuliah untuk satu lokasi pada waktu
tertentu.
b. Seorang mahasiswa hanya dapat mengikuti kuliah untuk satu lokasi pada
waktu tertentu.
c. Sebuah lokasi (ruangan) hanya dapat digunakan untuk satu mata kuliah pada
waktu tertentu.
d. Mahasiswa tidak dapat dialokasikan pada suatu lokasi yang menyebabkan
lokasi melebihi kapasitas maksimum.
Soft constraints didefinisikan sebagai batas-batas mengenai alokasi sumber
daya yang jika dilanggar masih dapat menghasilkan solusi yang layak tetapi sedapat
mungkin untuk dipenuhi. Dalam kenyataannya, masalah penjadwalan mata kuliah
biasanya tidak mungkin untuk memenuhi semua soft constraints. Kualitas jadwal yang
layak dapat dinilai berdasarkan seberapa baik soft constraints dapat dipenuhi. Namun,
beberapa masalah yang kompleks sulit menemukan solusi yang layak. Sebagai contoh,
soft constraints yang mungkin ingin dicapai dalam jadwal sehubungan dengan aspek
mata kuliah adalah meminimalkan terjadinya jadwal mata kuliah satu tingkat yang
beturut-turut.
Beberapa univeristas dengan jumlah mata kuliah yang akan dijadwalkan dan
berbagai constraints yang harus dipertimbangkan membuat penyusunan jadwal mata
kuliah menjadi sangat sulit (Petrovic dan Burke, 2004).
2.1.3. Masalah Jadwal Mata Kuliah
Selama pembuatan jadwal mata kuliah, dibutuhkan penerapan constraints yang
bertentangan yang berarti bahwa dalam usaha untuk memenuhi salah satu constraint
dapat mengarah pada pelanggaran terhadap constraint yang lain. Pada situasi seperti
ini dapat dilihat bahwa kepuasan pada constraint yang pertama akan mungkin
mengarah pada pelanggaran constraint yang kedua.
Pengamatan tersebut didukung sebuah pernyataan multikriteria dari masalah
jadwal mata kuliah di mana kriteria mengukur pelanggaran dari constraints yang
sama. Sebuah universitas dapat menetapkan kualitas dari jadwal mata kuliah dari
sudut pandang yang berbeda (departemen, mahasiswa, pembuat jadwal). Universitas
sering memberikan kepentingan yang berbeda dengan constraints yang dikenakan
pada masalah jadwal mata kuliah.
Berikut notasi dalam masalah jadwal mata kuliah:
a. N adalah jumlah mata kuliah.
b. P adalah jumlah slot waktu.
c. ln adalah jumlah dosen yang mengajar mata kuliah n, n = 1, …, N, yang
sudah diletakkan pada slot waktu P.
d. rp adalah jumlah ruangan yang dapat dijadwalkan pada slot waktu p, p =1,
…, P.
e. C = [cnm]NxN adalah matriks simetris yang merepresentasikan konflik dari
mata kuliah
f. cnm adalah jumlah mahasiswa yang mengambil mata kuliah n dan m
dimana n, m = 1, …, N.
g. K adalah jumlah kriteria.
h. T = [tnp]NxP adalah matriks yang merepresentasikan penempatan mata
kuliah ke dalam slot waktu.
i. tnp = 1, jika mata kuliah n dijadwalkan pada slot waktu p, n = 1, …, N, p =
1, …, P dan 0 untuk yang lainnya.
j. fk(T) adalah nilai dari kriteria Ck, k = 1, …, K.
Masalah multikriteria jadwal mata kuliah dapat dinyatakan dalam cara berikut.
Tentukan jumlah slot waktu P, jumlah mata kuliah N dengan jumlah dosen yang
dibutuhkan, tentukan jadwal dari T yang membuat semua komponen vektor WF =
(w1f1(T), …, wkfk(T), …, wKfK(T)) sekecil mungkin, berdasarkan:
Constraint (2.1) memastikan bahwa setiap mata kuliah memiliki jumlah dosen yang
dibutuhkan. Constraint (2.2) memastian bahwa dosen dapat ditampung di sejumlah
ruangan. Dan constraint (2.3) memastikan bahwa mata kuliah yang telah memiliki
mahasiswa yang sama tidak dijadwalkan pada slot waktu yang sama (Petrovic dan
Burke, 2004).
2.2. Sistem Pendukung Keputusan
Konsep Sistem Pendukung Keputusan (SPK) pertama kali diperkenalkan pada awal
tahun 1970-an oleh Michael S. Scott Morton dengan istilah Management Decision
System. Konsep SPK ditandai dengan sistem interaktif berbasis komputer yang
membantu pengambil keputusan memanfaatkan data dan model untuk menyelesaikan
masalah-masalah yang tidak terstruktur.
Pada dasarnya SPK merupakan pengembangan lebih lanjut dari Sistem
Informasi Manajemen terkomputerisasi (Computerized Management Information
System), yang dirancang sedemikian rupa sehingga bersifat interaktif dengan
pemakainya. Sifat interaktif ini dimaksudkan untuk memudahkan integrasi antara
teknis analisis, serta pengalaman dan wawasan manajerial guna membentuk suatu
kerangka keputusan yang bersifat fleksibel.
Dalam sudut pandang konotasional, SPK adalah kemajuan secara revolusioner
dari SIM (Sistem Informasi Manajemen) dan PDE (Pengolahan Data Elektronik).
Pernyataan ini, dapat dilihat pada gambar di bawah ini (Suryadi dan Ramdhani, 1998).
Gambar 2.1 SPK Dalam Sudut Pandang Konotasional
PDE diterapkan pada level operasional organisasi. Karakteristik PDE meliputi
aktivitas-aktivitas:
a. Menitikberatkan pada data, penyimpanan, pengolahan, dan aliran pada
level operasional.
b. Membantu pengolahan transaksi-transaksi secara lebih efisien.
c. Memungkinkan pengolahan komputer secara lebih terjadwal dan optimum.
d. Menyediakan pembukuan (file) terpadu untuk kegiatan yang saling
berkaitan.
Dengan adanya peningkatan kemampuan dan kecepatan piranti keras, sistem
operasi on line, pilihan komunikasi data yang menarik dan kemampuan penuh dari
terminal, aktivitas pada level PDE ini menjadi lebih lancar dan lebih efisien dalam
penggunaan fasilitas dalam pengolahan data transaksi.
Secara umum SIM difokuskan pada tingkat yang lebih tinggi dalam organisasi.
SIM memiliki karakter sebagai berikut:
a. Menitikberatkan pada informasi bagi para manajer menengah.
b. Menangani aliran-aliran informasi yang terstruktur.
c. Memadukan PDE dari kegiatan-kegiatan berdasarkan fungsi usaha (SIM
Pemasaran, SIM Produksi, dan lain-lain).
d. Melayani kebutuhan informasi dan pembuatan laporan, umumnya melalui
suatu basis data.
Dari karakteristik di atas, terlihat bahwa Sistem Informasi Manajemen
berorientasi pada struktur aliran informasi dan operasional (rutinitas).
SPK, menurut tinjauan konotatif ini, merupakan sistem yang ditujukan kepada
tingkatan manajemen yang lebih tinggi lagi, dengan penekanan karakteristik sebagai
berikut.
a. Berfokus pada keputusan, ditujukan pada manajer puncak dan pengambil
keputusan.
b. Menekankan pada fleksibilitas, adaptabilitas, dan respon yang cepat.
c. Mampu mendukung berbagai gaya pengambilan keputusan dari
masing-masing pribadi manajer.
SPK dirancang untuk mendukung seluruh tahap pengambilan keputusan mulai
dari mengidentifikasi masalah, memilih data yang relevan, menentukan pendekatan
yang relevan, menentukan pendekatan yang digunakan dalam proses pengambilan
2.2.1. Definisi SPK
Definisi awal SPK menunjukkan SPK sebagai sebuah sistem yang dimaksudkan untuk
mendukung para pengambil keputusan manajerial dalam situasi keputusan
semiterstruktur. SPK dimaksudkan untuk menjadi alat bantu bagi para pengambil
keputusan untuk memperluas kapabilitas mereka, namun tidak untuk menggantikan
penilaian mereka. SPK ditujukan untuk keputusan-keputusan yang memerlukan
penilaian atau pada keputusan-keputusan yang sama sekali tidak dapat didukung oleh
algoritma (Turban et al, 2005).
Little (1970) mendefinisikan SPK sebagai sekumpulan prosedur berbasis
model untuk data pemrosesan dan penilaian guna membantu para manajer mengambil
keputusan. Dia menyatakan bahwa untuk sukses, sistem tersebut haruslah sederhana,
cepat, mudah dikontrol, adaptif, lengkap dengan isu-isu penting, dan mudah
berkomunikasi. Bonczek, dkk., (1980) mendefinisikan SPK sebagai sistem berbasis
komputer yang terdiri dari tiga komponen yang saling berinteraksi: sistem bahasa
(mekanisme untuk memberikan komunikasi antara pengguna dan komponen DSS
lain), sistem pengetahuan (repositori pengetahuan domain masalah yang ada pada
SPK apakah sebagai data atau sebagai prosedur), dan sistem pemrosesan masalah
(hubungan antara dua komponen lainnya, terdiri dari satu atau lebih kapabilitas
manipulasi masalah umum yang diperlukan untuk pengambilan keputusan).
2.2.2. Konfigurasi SPK
Dukungan keputusan dapat diberikan dalam banyak konfigurasi yang berbeda-beda.
Konfigurasi tersebut tergantung pada sifat situasi keputusan manajemen dan teknologi
spesifik yang digunakan untuk dukungan. Teknologi ini dirakit dari empat komponen
dasar (masing-masing dengan beberapa variasi): data, model, antarmuka pengguna,
dan (opsional) pengetahuan. Masing-masing komponen dikelola dengan perangkat
lunak yang tersedia secara komersil atau harus diprogram untuk tugas spesifik. Cara
komponen tersebut dirakit menentukan kapabilitas utamanya dan sifat dukungan yang
2.2.3. Karakteristik dan Kemampuan SPK
Berikut ini adalah karakteristik dan kemampuan ideal dari suatu sistem pendukung
keputusan (Turban et al, 2005).
1. Dukungan untuk pengambilan keputusan, terutama pada situasi semiterstruktur
dan tak terstruktur, dengan menyertakan penilaian manusia dan informasi
terkomputerisasi. Masalah-masalah tersebut tidak dapat dipecahkan (atau tidak
dapat dipecahkan dengan konvenien) oleh sistem komputer lain atau oleh
metode atau alat kuantitatif standar.
2. Dukungan untuk semua level manajerial, dari eksekutif puncak sampai
manajer lini
3. Dukungan untuk individu dan kelompok. Masalah yang kurang terstruktur
sering memerlukan keterlibatan individu dari departemen dan tingkat
organisasional yang berbeda atau bahkan dari organisasi lain.
4. Dukungan untuk keputusan independen dan atau sekuensial. Keputusan dapat
dibuat satu kali, beberapa kali, atau berulang (dalam interval yang sama).
5. Dukungan di semua fase proses pengambilan keputusan: inteligensi, desain,
pilihan, dan implementasi.
6. Dukungan di berbagai proses dan gaya pengambilan keputusan.
7. Adaptivitas sepanjang waktu. Pengambil keputusan seharusnya reaktif, dapat
menghadapi perubahan kondisi secara cepat, dan dapat mengadaptasikan SPK
untuk memenuhi perubahan tersebut.
8. Pengguna merasa seperti di rumah. User friendly, kapabilitas grafis yang
sangat kuat, dan antarmuka manusia-mesin interaktif dengan satu bahasa alami
dapat sangat meningkatkan keefektifan SPK.
9. Peningkatan terhadap keefektifan pengambilan keputusan (akurasi, timeliness,
kualitas) ketimbang pada efisiensinya (biaya pengambilan keputusan). Ketika
SPK disebarkan, pengambilan keputusan sering membutuhkan waktu yang
lebih lama, namun keputusannya lebih baik.
10.Kontrol penuh oleh pengambil keputusan terhadap semua langkah proses
menekankan untuk mendukung pengambil keputusan, bukannya
menggantikan.
11.Pengguna akhir dapat mengembangkan dan memodifikasikan sendiri sistem
sederhana. Sistem yang lebih besar dapat dibangun dengan bantuan ahli sistem
informasi.
12.Biasanya model-model digunakan untuk menganalisis situasi pengambilan
keputusan. Kemampuan pemodelan memungkinkan eksperimen dengan
berbagai strategi yang berbeda di bawah konfigurasi yang berbeda.
13.Akses disediakan untuk berbagai sumber data, format, dan tipe, mulai dari
sistem informasi geografis (GIS) sampai sistem berorientasi objek.
14.Dapat dilakukan sebagai alat standalone yang digunakan oleh seorang
pengambil keputusan pada satu lokasi atau didistribusikan di satu organisasi
keseluruhan dan di beberapa organisasi sepanjang rantai persediaan.
Karakteristik dan kemampuan dari SPK tersebut membolehkan para pengambil
keputusan untuk membuat keputusan yang lebih baik dan lebih konsisten pada satu
cara yang dibatasi waktu. Kemampuan tersebut disediakan oleh berbagai komponen
utama SPK.
2.2.4. Komponen-Komponen SPK
Aplikasi SPK dapat terdiri dari beberapa subsistem (Turban et al, 2005), yaitu:
a. Subsistem manajemen data.
b. Subsistem manajemen model.
c. Subsistem antarmuka pengguna.
Komponen-komponen SPK dapat ditunjukkan pada gambar di bawah ini.
Gambar 2.2 Skematik SPK
2.2.4.1. Subsistem Manajemen Data
Subsistem manajemen data memasukkan satu basis data yang berisi data yang relevan
untuk situasi dan dikelola oleh perangkat lunak yang disebut Database Management
System (DBMS).
Subsistem manajemen data terdiri dari elemen berikut ini:
a. Basis data SPK
Basis data adalah kumpulan data yang saling terkait yang diorganisasikan
untuk memenuhi kebutuhan dan struktur sebuah organisasi dan dapat
digunakan oleh lebih dari satu orang untuk lebih dari satu aplikasi. Data pada
basis data SPK diekstrak dari sumber data internal dan eksternal, juga dari data
Manajemen Data
Manajemen Model
Subsistem berbasis pengetahuan
Antarmuka pengguna
Pengguna Sistem lain yang berbasis komputer Data: eksternal
personal milik satu atau lebih pengguna. Hasil ekstraksi ditempatkan pada
basis data aplikasi khusus.
b. Database Management System (DBMS)
Basis data dibuat, diakses, dan diperbarui oleh sebuah DBMS. SPK dibuat
dengan sebuah DBMS relasional komersial standar yang memberikan berbagai
kapabilitas. Sebuah basis data yang yang efektif dan manajemennya dapat
mendukung banyak kegiatan manajerial; navigasi umum di antara
record-record, mendukung pembuatan dan pemeliharaan sebuah kumpulan hubungan
data yang berbeda-beda, dan laporan merupakan hasil yang umum.
c. Direktori data
Direktori data merupakan sebuah katalog dari semua data di dalam basis data.
Ia berisi definisi data dan fungsi utamanya adalah untuk menjawab pertanyaan
mengenai ketersediaan data, sumbernya, dan makna eksak dari data. Direktori
ini terutama cocok untuk mendukung fase inteligensi dari proses pengambilan
keputusan karena membantu men-scan data dan mengidentifikasi area masalah
dan peluang-peluang. Direktori, seperti semua catalog lainnya, mendukung
penambahan entri baru, menghapus entri, dan mendapatkan kembali informasi
mengenai objek-objek khusus.
d. Query facility
Membangun dan menggunakan SPK sering memerlukan akses, manipulasi,
dan query data. Tugas-tugas tersebut dilakukan oleh query facility. Ia
menerima permintaan untuk data dari komponen SPK lain, menentukan
bagaimana permintaan dapat dipenuhi, memformulasi permintaan dengan
detail, dan mengembalikan hasilnya kepada pemberi permintaan. Query
2.2.4.2. Subsistem Manajemen Model
Subsistem manajemen model merupakan paket perangkat lunak yang memasukkan
model keuangan, statistik, ilmu manajemen, atau model kuantitatif lainnya yang
memberikan kapabilitas analitik dan manajemen perangkat lunak yang tepat.
Subsistem manajemen model dari SPK terdiri dari elemen-elemen berikut ini:
a. Basis model
Basis model berisi rutin dan statistik khusus, keuangan, forecasting, ilmu
manajemen, dan model kuantitatif lainnya yang memberikan kapabilitas
analisi pada sebuah SPK. Model dalam basis model dapat dibagi menjadi
empat kategori utama, yaitu strategis, taktis, operasional, dan analitik.
b. Sistem manajemen basis model
Fungsi perangkat lunak sistem manajemen basis model (MBMS) adalah untuk
membuat model dengan menggunakan bahasa pemrograman, alat SPK dan
atau subrutin, dan blok pembangunan lainnya.
c. Bahasa pemodelan
SPK berkaitan dengan masalah semiterstruktur dan tidak terstruktur, karena itu
sering perlu untuk mengustomasi model-model dengan menggunakan alat dan
bahasa pemrograman.
d. Direktori model
Direktori model adalah katalog dari semua model dan perangkat lunak lainnya
pada basis model. Direktori model berisi definisi model dan fungsi utamanya
adalah menjawab pertanyaan tentang ketersediaan dan kapabilitas model.
e. Eksekusi model, integrasi, dan prosesor perintah
Aktivitas-aktivitas ini dikontrol oleh manajemen model. Eksekusi model
adalah proses mengontrol jalannya model saat ini. Integrasi model mencakup
SPK dengan aplikasi lain. Sedangkan perintah dalam manajemen model
digunakan untuk menerima dan menginterpretasikan instruksi-instruksi
pemodelan dari komponen antarmuka pengguna dan merutekannya ke MBMS,
eksekusi model, atau fungsi-fungsi integrasi.
2.2.4.3. Subsistem Antarmuka Pengguna
Antarmuka pengguna merupakan sistem dari sisi pengguna karena antarmuka adalah
satu-satunya bagian dari sistem yang dilihat oleh pengguna. Antarmuka pengguna
mancakup semua aspek komunikasi antara satu pengguna dan SPK. Cakupannya tidak
hanya perangkat keras dan perangkat lunak, tetapi juga faktor-faktor yang diberikan
dengan kemudahan penggunaan, kemampuan untuk dapat diakses, dan interaksi
manusia dan mesin. Antarmuka yang sulit merupakan satu alasan utama mengapa para
manajer tidak menggunakan komputer dan analisis kuantitatif.
Subsistem antarmuka pengguna dikelola oleh perangkat lunak yang disebut
sistem manajemen antarmuka pengguna (UIMS).
2.2.4.4. Subsistem Manajemen Berbasis Pengetahuan
Banyak masalah tak terstruktur dan bahkan semi terstruktur yang sangat kompleks
sehingga solusinya memerlukan keahlian. Keahlian tersebut dapat diberikan oleh
suatu sistem pakar atau sistem cerdas lainnya. Komponen subsistem manajemen
berbasis pengetahuan menyediakan keahlian yang diperlukan untuk memecahkan
beberapa aspek masalah dan memberikan pengetahuan yang dapat meningkatkan
operasi SPK yang lain.
Komponen pengetahuan terdiri dari satu atau lebih sistem cerdas. Sama seperti
basis data dan perangkat lunak manajemen model, perangkat lunak manajemen
Sistem pendukung keputusan yang memasukkan komponen seperti itu disebut SPK
cerdas.
2.2.5. Model
Karakteristik utama sebuah SPK adalah inklusif pada sedikitnya satu model. Model
merupakan representasi atau abstraksi sederhana dari realitas. Model biasanya
disederhanakan karena realitas terlalu kompleks untuk digambarkan secara tepat dan
karena banyak dari kompleksitas tersebut secara aktual tidak relevan untuk
memecahkan masalah khusus.
Model dapat merepresentasikan sistem atau masalah dengan berbagai tingkatan
abstraksi. Model diklasifikasikan berdasarkan tingkat abstraksi, seperti ikonik, analog,
atau matematika. Model ikonik adalah model dengan abstraksi paling rendah yang
merupakan replika fisik dari sebuah sistem, biasanya pada skala yang berbeda dari
aslinya. Model analog merupakan model yang bertindak seperti sistem riil, tetapi tidak
mirip. Model ini lebih abstrak dibandingkan model ikonik dan merupakan representasi
simbolis dari realitas. Sedangkan model matematika merupakan model yang lebih
abstrak daripada model analog dan ikonik (Turban et al, 2005).
2.2.5.1. Manfaat Model
SPK menggunakan model-model untuk alasan berikut ini (Turban et al, 2005).
a. Manipulasi model (mengubah variabel keputusan atau lingkungan) jauh lebih
mudah daripada memanipulasi sistem riil.
b. Model memungkinkan kompresi waktu.
c. Biaya analisis pemodelan jauh lebih rendah daripada biaya eksperimen yang
serupa yang dilakukan pada sebuah sistem riil.
d. Biaya pembuatan masalah selama eksperimen coba-salah jauh lebih rendah
e. Lingkungan bisnis mencakup ketidakpastian yang dapat dipertimbangkan.
f. Model matematika memungkinkan analisis terhadap sejumlah solusi yang
mungkin yang sangat besar, dan kadang-kadang tak terbatas.
g. Model memperkuat pembelajaran dan pelatihan.
h. Metode model dan solusi tersedia di web.
2.2.5.2. Kategori Model
Model dalam SPK dikelompokkan menjadi tujuh kelompok dan mendaftarkan
beberapa teknik representatif untuk setiap kategori (Turban et al, 2005). Berikut tabel
ketujuh kategori model-model tersebut.
Tabel 2.2 Kategori-Kategori Model
Kategori Proses dan Tujuan Teknik-Teknik
Representatif
Optimalisasi
masalah dengan
sedikit alternative
Menemukan solusi terbaik dari
sejumlah alternatif.
Tabel keputusan, pohon
keputusan
Optimalisasi dengan
algoritma
Menemukan solusi terbaik dari
sejumlah besar alternatif dengan
menggunakan proses pendekatan
langkah demi langkah.
Model pemrograman
matematika linier dan
lainnya, model jaringan
Optimalisasi dengan
rumusan analitik
Menemukan solusi terbaik
dalam satu langkah dengan
menggunakan satu rumus.
Beberapa model
inventori
Simulasi Menemukan satu solusi yang
cukup baik atau yang terbaik di
antara berbagai alternatif yang
dipilih dengan menggunakan
eksperimen.
Beberapa tipe simulasi
Heuristic Menemukan satu solusi yang
cukup baik dengan
Pemrograman heuristic,
menggunakan aturan-aturan.
Model-model
prediktif
Memprediksi masa depan untuk
skenario yang ditentukan.
Model forecasting,
analisis Markov
Model-model
lainnya
Memecahkan kasus
bagaimana-jika dengan menggunakan
sebuah rumus.
Pemodelah keuangan,
waiting lines
2.2.6. Pemrograman Heuristic
Heuristic (bahasa Yunani untuk kata discovery) adalah aturan keputusan yang
mengatur bagaimana sebuah masalah harus dipecahkan (Turban et al, 2005). Heuristic
juga didefinisikan sebagai kriteria, metode, atau prinsip untuk menemukan jalan dari
beberapa alternatif tindakan yang paling efektif untuk mencapai tujuan tertentu (Pearl,
1984). Sedangkan menurut George Polya, heuristic didefinisikan sebagai studi metode
dan aturan penemuan (Setiawan, 1993, hal: 80). Biasanya, heuristic dikembangkan
berdasarkan basis analisis yang solid terhadap masalah, kadang-kadang melibatkan
eksperimen yang didesain secara cermat. Sebaliknya, petunjuk biasanya
dikembangkan sebagai hasil dari pengalaman coba-salah. Beberapa heuristic diambil
dari petunjuk. Heuristic search (atau pemrograman) adalah prosedur
langkah-demi-langkah (seperti algoritma) yang diulang sampai ditemukan sebuah solusi yang
memuaskan. Contoh-contoh heuristic didaftarkan pada Tabel 2.3.
Tabel 2.3 Contoh-contoh heuristic
Pekerjaan berurutan melalui sebuah
mesin
Melakukan pekerjaan yang pertama-tama
memerlukan least time.
Pembelian saham Jika rasio harga dibanding pengeluaran
lebih dari 10, tidak membeli saham.
Travel Tidak menggunakan jalan bebas hambatan
Investasi kapital pada proyek
teknologi tinggi
Mempertimbangkan hanya proyek-proyek
dengan periode pengembalian terestimasi
kurang dari 2 tahun.
Pembelian sebuah rumah Membeli hanya di lingkungan yang bagus,
tetapi hanya membeli dalam rentang harga
yang lebih rendah.
Pengambil keputusan menggunakan heuristic atau aturan utama dengan
berbagai alasan, beberapa alasan lebih masuk akal daripada alasan yang lainnya.
Sebagai contoh, pengambil keputusan dapat menggunakan sebuah heuristic jika
mereka tidak tahu cara terbaik untuk memecahkan sebuah masalah atau jika
teknik-teknik optimalisasi belum dilakukan.
Proses heuristic dapat dijelaskan sebagai pengembangan berbagai aturan untuk
membantu memecahkan masalah-masalah rumit, menemukan cara-cara mendapatkan
dan menginterpretasikan informasi yang terus berubah, dan kemudian
mengembang-kan metode-metode yang memimpin kepada suatu algoritma komputasional atau
solusi umum.
Sekalipun heuristic dilakukan terutama untuk memecahkan masalah yang tidak
terstruktur, namun heuristic juga dapat digunakan untuk memberikan solusi yang
memuaskan untuk masalah tertentu yang kompleks namun terstruktur, dengan jauh
lebih cepat dan lebih murah ketimbang algoritma optimalisasi. Kesulitan utama
menggunakan heuristic adalah heuristic bukan satu algoritma umum. Dengan
demikian, heuristic dapat digunakan hanya untuk situasi spesifik.
Pemrograman heuristic merupakan pendekatan yang melibatkan cara heuristic
(role of thumb) yang dapat menghasilkan solusi yang layak dan cukup baik pada
pelbagai permasalahan yang kompleks. Cukup baik (good enough) biasanya dalam
jangkauan 90 sampai dengan 99,99 persen dari solusi optimal sebenarnya (Subakti,
Pemikiran heuristic tidak perlu berjalan dalam cara yang langsung. Pemikiran
ini meliputi pencarian, pembelajaran, evaluasi, penilaian, dan kemudian pencarian
ulang, pembelajaran ulang, dan penilaian ulang saat terjadi eksplorasi dan
pembuktian. Pengetahuan yang didapatkan dari kesuksesan atau kegagalan pada saat
yang sama merupakan umpan balik dan memodifikasi proses pencarian. Biasanya
tujuan atau masalah atau pemecahan yang terkait atau masalah yang disederhanakan
perlu ditentukan kembali sebelum masalah utama dapat dipecahkan (Turban et al,
2005).
2.3. Algoritma A*
Secara umum, pencarian jalur terpendek dapat dibagi menjadi dua metode yaitu
metode algoritma konvensional dan algoritma heuristic. Metode algoritma
konvensional diterapkan dengan cara perhitungan matematis biasa, sedangkan metode
algoritma heuristic diterapkan dengan perhitungan kecerdasan buatan dengan
menentukan basis pengetahuan dan perhitungannya (Mutakhiroh et al, 2007).
Metode algoritma heuristic dapat menyelesaikan masalah pencarian jalur
terpendek dengan hasil yang lebih variatif dan dengan waktu perhitungan yang lebih
singkat. Pada metode algoritma konvensional, logika yang dipakai hanya dengan
membandingkan jarak masing-masing simpul dan kemudian mencari jarak yang
terpendek. Namun, kelemahan metode algoritma konvensional pada keakuratan hasil
yang didapatkan serta tingkat kesalahan yang dihasilkan pada perhitungan. Hal
tersebut tidak akan menjadi masalah jika data yang dibutuhkan hanya sedikit,
sebaliknya maka akan menyebabkan peningkatan tingkat kesalahan perhitungan dan
penurunan keakuratan. Secara konsep algoritma, metode algoritma konvensional lebih
mudah untuk dipahami, tetapi hasil yang diperoleh dari metode algoritma heuristic
lebih variatif.
Di dalam mempelajari tingkah laku suatu heuristic tidak hanya dibutuhkan
terpendek untuk mencapai data yang diinginkan (goal). Hal ini adalah penting jika
sebuah aplikasi mempunyai biaya tinggi untuk langkah-langkah solusi ekstranya,
seperti misalnya merencanakan sebuah jalur untuk sebuah robot autonomous pada
sebuah lingkungan yang berbahaya. Heuristic yang menemukan lintasan terpendek
kapan saja dan di mana berada disebut admissible. Suatu algoritma pencarian disebut
admissible jika algoritma tersebut terjamin dalam hal pencarian jalur yang minimal
pada suatu solusi di manapun jalur tersebut berada (Kristanto, 2004).
Salah satu metode algoritma heuristic yang digunakan untuk melakukan
pencarian jalur terpendek adalah algoritma A*. A* (admissible heuristic) adalah
strategi best first search yang menggunakan estimasi solusi biaya terkecil untuk
mencapai suatu tujuan dengan jarak tempuh terdekat dan memiliki nilai heuristic yang
digunakan sebagai dasar pertimbangan (Seminar Nasional Sains dan Teknologi-II,
2008). Algoritma A* menghasilkan jalur optimal mulai dari tempat awal kemudian
melalui simpul menuju tempat yang dituju.
Notasi yang dipakai oleh algoritma A* adalah:
f(n) = g(n) + h(n) (2.4)
Dalam notasi standar yang dipakai untuk algoritma A* di atas, digunakan g(n)
untuk mewakili biaya rute dari simpul awal ke simpul n. Lalu h(n) mewakili perkiraan
biaya dari simpul n ke simpul tujuan, yang dihitung dengan fungsi heuristic. A*
‘menyeimbangkan’ kedua nilai ini dalam mencari jalan dari simpul awal ke simpul
tujuan. Dalam menentukan simpul yang akan dikembangkan, algoritma ini akan
memilih simpul dengan nilai f(n) = g(n) + h(n) yang paling kecil (Adipranata et al,
2007).
Beberapa terminologi dasar yang terdapat pada algoritma A* (Viktor et al,
2010) adalah:
b. simpul (nodes) merupakan petak-petak kecil sebagai representasi dari
pathfinding. Bentuknya dapat berupa persegi, lingkaran, maupun segitiga.
c. A merupakan simpul yang sedang dijalankan dalam algoritma pencarian jalan
terependek.
d. open list merupakan tempat menyimpan data simpul yang mungkin diakses
dari starting point maupun simpul yang sedang dijalankan.
e. closed list merupakan tempat menyimpan data simpul sebelum A yang juga
merupakan bagian dari jalur terpendek yang telah berhasil didapatkan.
f. harga (cost) merupakan nilai dari f(n).
g. halangan (unwalkable) merupakan sebuah atribut yang menyatakan bahwa
sebuah simpul tidak dapat dilalui oleh A.
Berikut ini adalah algoritma A* (Pearl, 1984):
1. Letakkan simpul awal s pada OPEN.
2. Jika OPEN kosong, pencarian berakhir.
3. Pindahkan simpul n yang memiliki nilai f minimum dari OPEN ke CLOSED.
4. Jika n adalah simpul tujuan, pencarian berhasil dan berakhir dengan
menelusuri kembali pointer dari n sampai s.
5. Ekspansikan n, bangkitkan semua successor dari simpul n, dan tambahkan ke
pointer tersebut kembali ke n. Untuk setiap successor n’ dari simpul n:
a. Jika n’ tidak ada pada OPEN atau CLOSED, estimasi h(n’) (sebuah
perkiraan dari biaya perjalanan terbaik dari n’ ke beberapa simpul tujuan),
dan hitung f(n’) = g(n’) + h(n’) dimana g(n’) = g(n) + c(n, n’) dan g(s) =
0.
b. Jika n’ sudah berada pada OPEN atau CLOSED, letakkan pointer
perjalanan pada hasil g(n’) yang terendah.
c. Jika n’ membutuhkan penyesuaian pointer dan ditemukan pada CLOSED,
buka kembali n’.
2.4. Delphi 7.0
Borland Delphi atau yang biasa disebut Delphi saja merupakan sarana pemrograman
aplikasi visual. Bahasa pemorgraman yang digunakan adalah bahasa pemrograman
Pascal atau yang kemudian juga disebut bahasa pemrograman Delphi. Delphi
merupakan generasi penerus dari Turbo Pascal. Turbo Pascal dirancang untuk
dijalankan pada sistem opersai DOS, sedangkan Delphi dirancang untuk beroperasi di
bawah sistem operasi Windows (Wahana Komputer, 2003).
Borland Delphi versi pertama dirilis pada tahun 1995, kemudian berlanjut
sampai Delphi 7.0 yang dirilis pada tahun 2002 dan kini versi terbarunya adalah
Delphi 8.0 dan 2005.
Keunggulan bahasa pemrograman Delphi terletak pada produktivitas, kualitas,
pengembangan perangkat lunak, kecepatan kompilasi, pola desain yang menarik serta
diperkuat dengan pemrogramannya yang terstruktur. Keunggulan lain dari Delphi
adalah dapat digunakan untuk merancang program aplikasi yang memiliki tampilan
seperti program aplikasi lain yang berbasis Windows (Madcoms, 2003).
Delphi memiliki sarana yang tangguh untuk pembuatan aplikasi, mulai dari
sarana untuk pembuatan form, menu, toolbar, hingga kemampuan untuk menangani
pengelolaan basis data yang besar. Kelebihan-kelebihan yang dimiliki Delphi antara
lain karena pada Delphi, form dan komponen-komponennya dapat dipakai ulang dan
dikembangkan, tersedia template aplikasi dan form template, memiliki lingkungan
pengembangan visual yang dapat diatur sesuai kebutuhan, serta kemampuan
mangakses data dari bermacam-macam format.
2.5. MySQL
MySQL adalah database server relasional yang gratis di bawah lisensi GNU General
Public License. MySQL dikembangkan oleh MySQL AB, sebuah perusahaan
pengembangan MySQL adalah pengguanaan mSQL untuk koneksi ke tabel
mempergunakan rutin level rendah (ISAM). Setelah beberapa pengujian diperoleh
kesimpulan mSQL tidak cukup cepat dan fleksibel untuk memenuhi kebutuhan.
Sehingga dihasilkan suatu antarmuka SQL baru pada basis data tetapi dengan
Application Programming Interface (API) yang mirip SQL. API ini dipilih
sedemikian sehingga memudahkan porting kode (Utdirartatmo, 2002).
MySQL juga disebut sebagai suatu sistem manajemen basis data. Suatu basis
data adalah sebuah kumpulan data yang terstruktur. Untuk menambahkan, mengakses,
dan memproses data yang tersimpan pada suatu basis data komputer diperlukan sistem
manajemen basis data seperti MySQL. MySQL mampu menangani basis data
berukuran besar yaitu bisa memuat 60 ribu tabel dan 50 juta record. Karena komputer
sangat unggul dalam menangani sejumlah besar data, sistem manajemen basis data
memainkan suatu peranan yang penting dalam komputasi, baik sebagai utility
stand-alone maupun bagian dari aplikasi lainnya.
Perintah-perintah dasar Structured Query Language (SQL) yang dipergunakan
pada MySQL adalah sebagai berikut (Utdirartatmo, 2002).
a. CREATE DATABASE
Perintah ini berfungsi untuk membuat database baru
b. DROP DATABASE
Berfungsi untuk menghapus database.
c. CREATE TABLE
Perintah ini berfungsi untuk membat table baru.
d. DESCRIBE
Perintah ini berguna untuk menampilkan deskripsi dari sebua tabel.
e. ALTER TABLE
Perintah ini berfungsi untuk melakukan modifikasi tabel.
f. DROP TABLE
Perintah ini digunakan untuk menghapus tabel.
g. DELETE
h. GRANT
Perintah ini berfungsi untuk memberikan privilege akses kepada pengguna
terhadap tabel dan dapat juga digunakan untuk membuat pengguna baru.
i. LOCK TABLES
Perintah ini berfungsi untuk menutup akses pengguna terhadap tabel.
j. UNLOCK TABLES
Perintah ini berfungsi untuk membuka akses yang sebelumnya dikunci.
k. INSERT INTO
Perintah ini berfungsi untuk memasukkan data ke dalam tabel.
l. LOAD DATA INFILE
Perintah ini gunakan untuk membaca data dari file teks.
m. SELECT
Perintah ini berfungsi untuk menampilkan record dari suatu tabel.
n. UPDATE
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Masalah Penjadwalan Mata Kuliah
Dalam penjadwalan mata kuliah, ada lima kriteria yang menjadi pertimbangan dalam
menyusun jadwal mata kuliah yaitu dosen, mahasiswa, ruangan, mata kuliah dan slot
waktu. Masing-masing kriteria tersebut dapat menimbulkan masalah dalam
melakukan penjadwalan mata kuliah.
Dalam penyusunan jadwal mata kuliah perlu diketahui bahwa setiap kriteria
memiliki keterkaitan dengan kriteria yang lainnya sehingga pada saat menjadwalkan
suatu kriteria perlu diperhatikan kriteria-kriteria yang lain. Sebagai contoh, kriteria
dosen memiliki hubungan dengan kriteria mata kuliah karena dosen adalah tenaga
pengajar dari mata kuliah. Contoh yang lain adalah kriteria ruangan dengan kriteria
mahasiswa yang memiliki hubungan antara kapasitas dari suatu ruangan dengan
jumlah mahasiswa dari sebuah kelas mahasiswa.
Untuk mengetahui hubungan dari kriteria-kriteria tersebut di atas, dibutuhkan
penjelasan masing-masing kriteria agar dapat dipahami bagaimana hubungan dari
masing-masing kriteria tersebut.
1. Dosen
Dosen merupakan tenaga pengajar dari suatu mata kuliah. Seorang dosen dapat
2. Mahasiswa
Mahasiswa merupakan orang-orang yang belajar di perguruan tinggi atau
unversitas. Mahasiswa dalam suatu jurusan terdiri dari beberapa angkatan.
Setiap angkatan terdiri dari satu atau lebih kelas mahasiswa. Dan
masing-masing kelas mahasiswa yang terdiri dari sejumlah mahasiswa tersebut
mengikuti kuliah dari beberapa mata kuliah sesuai dengan tingkat dan jurusan
mereka.
3. Ruangan
Ruangan merupakan tempat berlangsungnya sebuah perkuliahan dari suatu
mata kuliah. Sebuah ruangan kuliah memliki sejumlah fasilitas yang
disediakan untuk berlangsungnya perkuliahan. Salah satu fasilitas yang pokok
adalah kursi mahasiswa. Banyaknya kursi mahasiswa atau daya tampung
(kapasitas) dari ruangan tersebut akan menjadi pertimbangan yang penting
dalam membangun jadwal mata kuliah. Selain itu, ada beberapa fasilitas yang
harus dimiliki sebuah ruangan yang juga dapat menjadi pertimbangan dalam
membangun jadwal mata kuliah, misalnya fasilitas alat multimedia.
4. Mata kuliah
Mata kuliah merupakan satuan pelajaran yang diajarkan di tingkat perguruan
tinggi. Suatu mata kuliah diajarkan minimal oleh seorang dosen dan memiliki
beberapa kelas mahasiswa yang mengikuti kuliah tersebut yang sesuai dengan
tingkat mata kuliah.
5. Slot waktu
Slot waktu merupakan tempat mengalokasikan sumber daya mata kuliah,
dosen, mahasiswa, dan ruangan ke dalam jadwal yang telah memenuhi
batasan-batasan yang telah ditentukan.
Masalah yang muncul ketika melakukan penjadwalan mata kuliah adalah
konflik yang terjadi antara mata kuliah, ruangan yang tersedia, dan jumlah slot waktu
Pada studi kasus di skripsi ini, konflik mata kuliah yang menjadi permasalahan
dalam penjadwalan dan sangat perlu dihindari adalah konflik dosen, konflik kelas
mahasiswa, dan konflik tingkat mata kuliah. Konflik dosen yang dimaksud adalah
suatu kejadian di mana seorang dosen memberi kuliah pada dua lokasi atau lebih yang
berbeda pada suatu waktu tertentu. Konflik kelas mahasiswa merupakan suatu
kejadian di mana sekelompok kelas mahasiswa dijadwalkan mengikuti kuliah pada
dua lokasi atau lebih pada suatu waktu tertentu. Sedangkan konflik tingkat mata
kuliah adalah suatu kejadian di mana ada dua mata kuliah atau lebih yang memiliki
tingkat yang sama dijadwalkan pada waktu sama.
Masalah pada kriteria ruangan yang menjadi pertimbangan dalam penjadwalan
mata kuliah adalah jumlah, kapasitas, dan fasilitas infocus dari ruangan yang dapat
digunakan sebagai lokasi untuk melaksanakan perkuliahan. Apabila jumlah, kapasitas,
dan fasilitas infocus dari ruangan yang tersedia tidak memadai, hal ini dapat
menyulitkan penjadwalan mata kuliah. Sekelompok kelas mahasiswa harus
dialokasikan pada ruangan dengan kapasitas yang lebih besar daripada jumlah dari
sekelompok kelas mahasiswa tersebut sehingga tidak menyebabkan overload pada
ruangan. Begitu juga dengan fasilitas pada ruangan, mata kuliah yang membutuhkan
fasilitas infocus dalam proses perkuliahannya dialokasikan pada ruangan yang
memiliki fasilitas infocus.
Pada kriteria slot waktu, yang menjadi pertimbangan dalam membangun
sebuah jadwal adalah jumlah slot yang dapat dialokasikan. Semakin banyak slot waktu
yang dapat dialokasikan dapat membuat pemilihan waktu kuliah semakin banyak
pilihan.
Masalah-masalah penjadwalan mata kuliah di atas diatasi dengan membuat
batasan-batasan yang dapat menghindari dan mengatasi masalah-masalah tersebut.
Batasan-batasan tersebut dituangkan dalam constraints. Sehingga dalam melakukan
penjadwalan, sejumlah mata kuliah yang dialokasikan ke sejumlah ruang kelas yang
tersedia dan sejumlah slot waktu disertai dengan constraints. Constraints yang
dimaksud adalah batasan-batasan yang harus dipenuhi oleh semua kriteria dalam
Constraints ini dibagi menjadi dua jenis, yaitu hard constraints dan soft
constraints. Hard constraints merupakan batas-batas yang harus diterapkan pada
penjadwalan mata kuliah dan harus dipenuhi. Solusi yang tidak melanggar hard
constraints disebut solusi layak. Sedangan soft constraints merupakan batas-batas
mengenai alokasi sumber daya yang jika dilanggar masih dapat menghasilkan solusi
yang layak tetapi sedapat mungkin untuk dipenuhi.
3.2. Analisis dan Perancangan Komponen Sistem
3.2.1. Subsistem Manajemen Berbasis Pengetahuan
Agar sistem ini mampu melakukan penjadwalan mata kuliah, dibutuhkan sebuah
kemampuan untuk mangalokasikan semua sumber daya mata kuliah, dosen,
mahasiswa, dan ruangan ke dalam slot waktu dengan constraints yang sudah
ditentukan. Untuk mencapainya, kemampuan tersebut diisi dengan pengetahuan
terhadap batasan-batasan yang ada di hard constraints dan soft constraints sehingga
sistem dapat mengatasi masalah yang dihadapi ketika penjadwalan mata kuliah
dilakukan.
Semua kriteria penjadwalan sebelum dijadwalkan harus memenuhi
batasan pada hard constraints dan dilanjutkan dengan pengecekan terhadap
batasan-batasan yang ada pada soft constraints setelah solusi jadwal mata kuliah didapatkan.
Masing-masing constraints, baik itu hard constraints maupun soft constraints
memiliki batasan yang berbeda-beda. Pada hard constraints, setiap kriteria harus
memenuhi batasan-batasan yang ada pada constraints tersebut. Jika ada salah satu
batasan pada constraint yang tidak dapat dipenuhi, dapat dipastikan bahwa kriteria
tersebut tidak dapat dijadwalkan pada slot waktu yang dipilih. Berbeda dengan soft
constraints, batasan-batasan yang diberikan tidak harus dipenuhi oleh setiap kriteria,
tetapi hanya sebagai acuan penentuan kualitas solusi penjadwalan yang dihasilkan
memenuhi batasan-batasan yang ada pada soft constraints, kriteria-kriteria tersebut
tetap dijadwalkan pada slot waktu yang terpilih.
Selain pengetahuan terhadap batasan-batasan hard constraints dan soft
constraints, subsistem ini juga berisi pengetahuan sebuah tree, mencari nilai konflik
mata kuliah, mencari nilai kualitas solusi jadwal mata kuliah dan mencari nilai
efektivitas penjadwalan mata kuliah. Tree tersebut akan digunakan sebagai media dari
algoritma A* untuk mencari slot waktu. Nilai konflik mata kuliah digunakan untuk
menentukan mata kuliah yang akan dijadwalkan terlebih dahulu. Nilai kualitas solusi
jadwal mata kuliah digunakan untuk mengetahui rata-rata pemenuhan dari
masing-masing mata kuliah telah terjadwal terhadap batasan-batasan pada soft constraints.
Sedangkan nilai efektivitas penjadwalan mata kuliah digunakan untuk mengetahui
persentase dari mata kuliah yang terjadwal.
3.2.1.1. Hard Constraints
Berdasarkan identifikasi studi kasus skripsi ini serta masalah kriteria-kriteria yang
telah dijelaskan di dalam subbab sebelumnya, batasan-batasan hard constraints yang
digunakan dalam sistem ini dan harus dipenuhi oleh semua kriteria untuk membangun
sebuah jadwal mata kuliah adalah sebagai berikut.
H(1). Seorang dosen hanya dapat memberi kuliah untuk satu lokasi pada suatu
waktu tertentu.
H(2). Seorang dosen hanya dapat memberi kuliah sesuai dengan waktu
ketersediaan dosen untuk mengajar.
H(3). Seorang mahasiswa hanya dapat mengikuti kuliah untuk satu lokasi pada
suatu waktu tertentu.
H(4). Sebuah lokasi (ruangan) hanya dapat digunakan untuk satu mata kuliah
pada sutau waktu tertentu.
H(5). Mahasiswa tidak dapat dialokasikan pada satu lokasi yang jumlah
H(6). Waktu kuliah dilaksanakan setiap hari Senin sampai dengan Sabtu mulai
pukul 08.00 WIB sampai dengan 16.20 WIB.
H(7). Tidak ada kuliah untuk semua lokasi pada hari Jumat pukul 12.10 WIB
sampai dengan 13.00 WIB.
H(8). Mata kuliah yang memiliki tingkat yang sama tidak dapat dijadwalkan pada
waktu yang sama.
H(9). Mata kuliah yang menggunakan infocus dialokasikan pada satu lokasi yang
memiliki fasilitas infocus.
3.2.1.2. Soft Constraints
Soft constraints yang digunakan sebagai acuan penentuan kualitas solusi jadwal mata
kuliah di dalam sistem ini adalah sebagai berikut.
S(1). Meminimalkan terjadinya jadwal mata kuliah berturut-turut dari mata
kuliah yang memiliki kelas mahasiswa yang sama. Constraint ini digunakan
untuk menghindari terjadinya kejenuhan dan kelelahan yang dialami
mahasiswa ketika mengikuti perkuliahan. Constraint ini juga digunakan
untuk mengantisipasi perpindahan ruangan kuliah dari suatu mata kuliah ke
mata kuliah lainnya yang memiliki jarak antarruangan yang cukup jauh
sehingga tidak membuat mahasiswa kerepotan pada saat pergantian mata
kuliah.
S(2). Suatu mata kuliah sebisa mungkin tidak dijadwalkan dengan mata kuliah
yang berada satu tingkat di bawah dan atau satu tingkat di atas mata kuliah
tersebut pada suatu waktu tertentu secara bersama-sama. Constraint ini
dapat memungkinkan seorang mahasiswa yang ingin mengambil mata
kuliah satu tingkat di atasnya sehingga membuat mahasiswa tersebut lebih
cepat tamat atau memungkinkan mahasiswa yang ingin mengambil mata
kuliah di bawahnya untuk mengulang mata kuliah yang gagal sebelumnya.
S(3). Meminimalkan terjadinya jadwal mata kuliah yang menyebabkan seorang
agar seorang dosen tidak mengalami kejenuhan dan kelelahan dalam
memberi kuliah.
Pada sistem yang akan dibangun, batasan-batasan dari ketiga soft constraints
di atas hanya digunakan sebagai penentu kualitas dari solusi jadwal mata kuliah yang
dihasilkan setelah hard constraints diterapkan untuk semua sumber daya mata kuliah,
dosen, mahasiswa, dan ruangan. Nilai kualitas dari jadwal mata kuliah berada diantara
0 sampai dengan 1 yang akan dinyatakan dalam bentuk persen (0-100%).
3.2.1.3. Tree
Dalam proses pencarian waktu kuliah, sistem menggunakan tree sebagai media
pencarian. Tree didefinisikan sebagai kumpulan simpul/node dengan satu elemen
khusus yang disebut root dan node lainnya terbagi menjadi himpunan-himpunan yang
saling tak berhubungan satu sama lain atau disebut subtree (Sanjaya, 2001). Tree
tersebut memiliki size sebanyak 36 simpul dengan kedalaman sampai 8 level. Setiap
simpul berisi slot waktu yang berbeda-beda yang mewakili hari dan jam perkuliahan.
Algoritma A* akan mencari slot waktu yang terbaik (biaya terendah) untuk setiap
mata kuliah yang akan dijadwalkan dengan menelusuri simpul-simpul pada tree untuk
mendapatkan solusi yang diinginkan.
10