OPTIMASI MASALAH KNAPSACK MENGGUNAKAN ALGORITMA BRANCH AND BOUND SKRIPSI Untuk memenuhi sebagai persyaratan guna memperoleh derajat Sarjana S-1 Program Studi Matematika
Diajukan oleh FITRIATUL MALAIKHAH 12610023
Kepada
PROGRAM STUDI MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SUNAN KALIJAGA YOGYAKARTA 2016
i
HALAMAN PERSEMBAHAN
Karya ini saya persembahkan untuk: Bapak Ibrahim dan Ibu Elah tercinta Keluarga Besar bin Ibrahim Sahabat-sahabatku
Teman-teman Matematika angkatan 2012 Beserta Almamater tercinta Program Studi Matematika Fakultas Sains dan Teknologi UIN Sunan Kalijaga Yogyakarta
v
HALAMAN MOTTO
“Karena sesungguhnya sesudah kesulitan itu ada kemudahan. Sesungguhnya sesudah kesulitan itu ada kemudahan. Maka apabila kamu telah selesai (dari sesuatu urusan), kerjakanlah dengan sungguh-sungguh (urusan) yang lain. Dan hanya kepada Tuhan-mulah kamu berarap (QS. Al-Insyirah: 5-8)”
“Berbaik Sangkalah kepada Allah”
vi
KATA PENGANTAR
Assalamu’alaikum Wr. Wb. Alhamdulillaahirabbil’aalamiin, puji syukur kepada Allah yang telah melimpahkan rahmat, hidayah, dan karunia-Nya sehingga penulis dapat menyelesaikan penulisan skripsi yang berjudul “Optimasi Masalah Knapsack Menggunakan Algoritma Branch and Bound” guna memenuhi syarat memperoleh gelar kesarjanaan di Program Studi Matematika Fakultas Sains dan Teknologi UIN Sunan Kalijaga Yogyakarta. Shalawat serta salam senantiasa tercurahkan kepada Baginda Rasulullah Muhammad SAW, yang selalu menjadi suri tauladan bagi seluruh umat manusia dari zaman kegelapan menuju zaman terang seperti saat ini. Penulis menyadari bahwa proses penulisan skripsi ini tidak terlepas dari bantuan, dukungan, motivasi, dan bimbingan dari berbagai pihak. Oleh karena itu, penulis mengucapkan terimakasih kepada: 1.
Bapak Ibrahim dan Ibu Elah Fadhilah tercinta, terimakasih atas segala doa, dukungan moril maupun materil dan motivasi sampai saat ini sehingga penulis selalu bersemangat untuk menjalani perkuliahan hingga penulisan skripsi dapat terselesaikan, serta ceu Eni, ceu Elis, ceu Muna, ceu Emah, ceu Pipit, Amay tersayang yang doa dan shalawatnya selalu mengiringi setiap langkahku.
vii
2.
Seluruh keluarga besar bin Mughni dan bin Istakhori. Terimakasih selalu memberikan doa, kasih sayang dan perhatian, sehingga penulisan skripsi ini dapat terselesaikan.
3.
Habib Luthfi bin Ali bin Yahya Pekalongan. Terimakasih telah menjadi guru inspirasi dan motivasi sehingga penulisan skripsi ini dapat terselesaikan.
4.
Bapak Prof. Drs. Yudian Wahyudi, MA, Ph.D., selaku Rektor UIN Sunan Kalijaga Yogyakarta.
5.
Ibu Dr. Hj. Maizer Said Nahdi, M.Si., selaku Dekan Fakultas Sains dan Teknologi UIN Sunan Kalijaga Yogyakarta.
6.
Bapak Dr. Muhammad Wakhid Musthofa, M.Si., selaku Ketua Program Studi Matematika Fakultas Sains dan Teknologi UIN Sunan Kalijaga Yogyakarta.
7.
Bapak Muchammad Abrori, M.Kom., selaku Dosen Penasihat Akademik mahasiswa Program Studi Matematika angkatan 2012 atas segala arahan dan bimbingan selama masa studi.
8.
Bapak Noor Saif Muhammad Mussafi, M.Sc., selaku dosen pembimbing skripsi. Terimakasih selalu meluangkan waktu untuk membimbing, serta memberikan pengarahan sehingga skripsi ini dapat terselesaikan dengan baik.
9.
Bapak/Ibu Dosen dan Staf
Fakultas Sains dan Teknologi UIN Sunan
Kalijaga Yogyakarta. Terimakasih atas ilmu, bimbingan dan pelayanan selama masa perkuliahan dan penyusunan skripsi. 10. Mahendra Fakhrul Fathan. Terimakasih atas segala doa dan semangat tulusnya kepada penulis untuk segera menyelesakan penulisan skripsi.
viii
11. Sahabatku MARMOS (Arum, Diani, Lisa dan Rindu),. Terimakasih telah memberikan kebahagiaan dan arti tulus dari persahabatan semenjak empat tahun silam. Semoga persahabatan ini tetap ada sampai tua walaupun terpisah jarak nantinya. 12. Teman-teman matematika angkatan 2012. Terimakasih atas kebersamaan dan cerita yang telah kita buat bersama. Serta seluruh keluarga HM-PS Matematika. Terimakasih telah mengajarkan banyak hal tentang organisasi dan pengalaman yang penulis dapatkan. 13. Teman-teman kota kelahiranku: Bila, Sofi, Tya, Danu, Kiki, Wawan, Heny, Hidayah, Oow, A’la, dan teman-teman Salafiyah juga SMAN 4 Pekalongan Terimakasih atas waktu bermain dan selalu membuat penulis rindu pulang. 14. Teman-teman KKN 171 (Amel, Atika, Ela, Yaya, Fitri, Ananto, Nay, Bang Flo, Bang Nashih). Keluarga baru selama dua bulan KKN dan semoga seterusnya.
Terimakasih
atas
persaudaraannya,
ketulusannya,
dan
kegilaannya. Terimakasih juga sudah memberikan semangat dan motivasi mengerjakan skripsi. Terimakasih juga untuk Bapak dan Ibu Paijo selaku orangtua baru yang selalu dirindukan, beserta masyarakat Prahu yang telah memberikan kesempatan kepada penulis untuk mempelajari apa yang penulis belum dapatkan sebelumnya dan kebersamaan yang tak mudah dilupakan. 15. Teman-teman Gama Exacta (Mba Jea, Mis Mila, Mba Lia, Om Wulan, Mas Syarif, Mas Taufan, Pak Joko, Pak Emin, Mas Roni). Terimakasih telah mengajarkan dunia kerja dan kedewasaan kepada penulis. Terimakasih atas doa dan semangatnya kepada penulis untuk segera menyelesaikan skripsi.
ix
16. Teman-teman 396 Ciro Boarding House (Hana, Mba Eno, Hima, Mba Lita, Mba Riza, Mba Yan, Duwi, Mba Elis, Mba Rahma, Mba Kika, Teh Elyn). Terimakasih telah menjadi saudara terdekat selama di Jogja. Terimakasih telah atas semangat dan dukungan kepada penulis dalam mengerjakan skripsi. 17. Semua pihak yang tidak dapat penulis sebutkan satu per satu. Terimakasih telah membantu dan memberikan dukungan serta doa sehingga penulis dapat menyelesaikan skripsi ini. Semoga Allah SWt memberikan balasan kepada mereka dengan kebaikan. Penulis menyadari bahwa penulisan skripsi ini masih jauh dari sempurna, sehingga diharapkan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Semoga skripsi ini dapat memberikan manfaat untuk penulis dan pembaca. Wassalamu’alaikum Wr.Wb Yogyakarta, 21 November 2016
Fitriatul Malaikhah
x
DAFTAR ISI
HALAMAN JUDUL ..................................................................................... i HALAMAN PENGESAHAN SKRIPSI ...................................................... ii HALAMAN PERSETUJUAN SKRIPSI .................................................... iii HALAMAN PERNYATAAN KEASLIAN SKRIPSI ................................ iv HALAMAN PERSEMBAHAN ................................................................... v HALAMAN MOTTO ................................................................................... vi KATA PENGANTAR ................................................................................... vii DAFTAR ISI .................................................................................................. xi DAFTAR GAMBAR ..................................................................................... xiv DAFTAR TABEL ......................................................................................... xvi DAFTAR LAMPIRAN ................................................................................. xvii DAFTAR LAMBANG .................................................................................. xviii ABSTRAK ..................................................................................................... xix BAB I PENDAHULUAN .............................................................................. 1 1.1 Latar Belakang ......................................................................................... 1 1.2 Batasan Masalah ....................................................................................... 3 1.3 Rumusan Masalah ..................................................................................... 4 1.4 Tujuan Penelitian ...................................................................................... 4 1.5 Manfaat Penelitian ................................................................................... 4 1.6 Tinjauan Pustaka ...................................................................................... 4 1.7 Sistematika Penulisan ............................................................................... 6
xi
1.8 Metode Penelitian ..................................................................................... 7 BAB II LANDASAN TEORI ....................................................................... 9 2.1 Optimasi .................................................................................................... 9 2.1.1
Definisi Optimasi ......................................................................... 9
2.1.2
Metode Optimasi .......................................................................... 10
2.1.3
Masalah Optimasi ......................................................................... 12
2.2 Program Linier .......................................................................................... 13 2.2.1
Definisi Program Linier ................................................................. 13
2.2.2
Model Program Linier .................................................................... 14
2.3 Masalah Knapsack .................................................................................... 17 2.3.1
Macam-macam Masalah Knapsack .............................................. 18
2.3.2
Integer Knapsack (knaosack 0-1) ................................................. 18
2.4 Graph ...................................................................................................... 20 2.4.1
Definisi Graph ............................................................................... 20
2.4.2
Graf Terhubung (connected graph) ............................................... 21
2.4.3
Derajat ............................................................................................ 22
2.4.4
Siklus (cycle) .................................................................................. 22
2.4.5
Pohon (Tree) .................................................................................. 22
2.4.6
Pohon Berakar ................................................................................ 23
2.4.7
Terminologi pada Pohon Berakar .................................................. 23
2.5 Pengantar Algoritma dan Algoritma Branch and Bound ........................... 26 2.5.1
Algoritma Branch and Bound ........................................................ 27
2.6 MATLAB ................................................................................................... 29
xii
2.6.1
GUI (Graphical User Interface) pada MATLAB .......................... 30
2.6.2
Operator Relasi dan Logika ........................................................... 32
2.6.3
Statement Control pada MATLAB ................................................ 33
2.7 Pengetahuan Umum tentang Mendaki ....................................................... 35 2.7.1
Pendakian Gunung ......................................................................... 35
2.7.2
Perencanaan Perjalanan .................................................................. 36
2.7.3
Perlengkapan Perjalanan ................................................................ 37
2.7.4
Ransel ............................................................................................. 44
BAB III PEMBAHASAN ............................................................................. 48 3.1 Konsep dan Langkah Kerja Algoritma Branch and Bound ..................... 48 3.2 Penerapan Algoritma Branch and Bound dalam Pengoptimalan Masalah Knapsack .................................................................................................. 53 3.3 Rancang
Bangun
Optimasi
Masalah
Knapsack
Menggunakan
Algoritma Branch and Bound .................................................................. 95 BAB IV PENUTUP ....................................................................................... 110 4.1 Kesimpulan ............................................................................................... 110 4.2 Saran .......................................................................................................... 111 DAFTAR PUSTAKA .................................................................................... 113 LAMPIRAN ................................................................................................... 115
xiii
DAFTAR GAMBAR Gambar 2.1 Minimum dari f(x) sama dengan Maksimum dari –f(x) ............. 10 Gambar 2.2 Contoh Graph ............................................................................ 21 Gambar 2.3 Contoh Graph Terhubung ......................................................... 21 Gambar 2.4 Contoh Pohon ............................................................................ 23 Gambar 2.5 Contoh Children, Parent, dan Sibling ....................................... 24 Gambar 2.6 Contoh Tingkat dan Tinggi ........................................................ 25 Gambar 2.7 Proses GUI ................................................................................. 30 Gambar 2.8 Tampilan Fig-File....................................................................... 31 Gambar 2.9 Tampilan m.file .......................................................................... 32 Gambar 2.10 Ilustrasi Packing Ransel .......................................................... 47 Gambar 3.1 Percabangan pada Iterasi 1 ........................................................ 58 Gambar 3.2 Percabangan pada Iterasi 2 ......................................................... 60 Gambar 3.3 Percabangan pada Iterasi 3 ......................................................... 63 Gambar 3.4 Percabangan pada Iterasi 4 ......................................................... 65 Gambar 3.5 Percabangan pada Iterasi 5 ......................................................... 67 Gambar 3.6 Percabangan pada Iterasi 6 ......................................................... 69 Gambar 3.7a Percabangan pada Iterasi 7 ....................................................... 71 Gambar 3.7b Percabangan pada Iterasi 7 ....................................................... 72 Gambar 3.8 Percabangan pada Iterasi 8 ......................................................... 74 Gambar 3.9a Percabangan pada Iterasi 9 ....................................................... 76 Gambar 3.9b Percabangan pada Iterasi 9 ....................................................... 77 Gambar 3.10a Percabangan pada Iterasi 10 ................................................... 79
xiv
Gambar 3.11a Percabangan pada Iterasi 11 ................................................... 81 Gambar 3.11b Percabangan pada Iterasi 11 ................................................... 82 Gambar 3.12 Percabangan pada Iterasi 12 ..................................................... 84 Gambar 3.13a Percabangan pada Iterasi 13 ................................................... 86 Gambar 3.13b Percabangan pada Iterasi 13 ................................................... 87 Gambar 3.14a Percabangan pada Iterasi 14 ................................................... 89 Gambar 3.14b Percabangan pada Iterasi 14 ................................................... 90 Gambar 3.15a Percabangan pada Iterasi 15 ................................................... 91 Gambar 3.15b Percabangan pada Iterasi 15 ................................................... 92 Gambar 3.16 Figure Program ........................................................................ 99 Gambar 3.17 Pembuatan Background Program ............................................. 100 Gambar 3.18 Background Knapsack .............................................................. 101 Gambar 3.19 Tampilan Awal Program .......................................................... 106 Gambar 3.20 Form Input Data ........................................................................ 108 Gambar 3.21 Output Program ....................................................................... 108
xv
DAFTAR TABEL Tabel 2.1 Operator Relasi ............................................................................... 32 Tabel 2.2 Operator Logika ............................................................................. 33 Tabel 2.3 Perlengkapan Jalan ......................................................................... 38 Tabel 2.4 Perlengkapan Masak ...................................................................... 42 Tabel 2.5 Perlengkapan Tidur ........................................................................ 43 Tabel 2.6 Ukuran Ransel ................................................................................ 45 Tabel 3.1 Contoh Data Masalah Knapsack .................................................... 51 Tabel 3.2 Data Identifikasi Maslah Knapsack dengan Studi Kasus Pendaki Gunung ............................................................................................................ 55 Tabel 3.3Hasil Pilihan Barang Menggunakan Algoritma Branch and Bound 94 Tabel 3.4 String Property Static Text1 ........................................................... 96
xvi
DAFTAR LAMBANG
: Himpunan simpul : Himpunan sisi : Fungsi tujuan yang meruakan nilai optimal (maksimum atau minimum) : Kenaikan nilai Z apabila ada penambahan tingkat kegiatan dengan satu satuan unti dapat disebut juga koefisien pada variabel keputusan. : Peubah pengmabilan keputusan atau kegiatan (yang ingin dicari; yang tidak diketahui). : Banyaknya sumber
yang diperlukan untuk menghasilkan setiap
unit j. : Kapasitas sumber yang tersedia untuk dialokasikan ke setiap unit kegiatan. : Macam batasan sumber atau fasilitas yang tersedia. : Macam kegiatan yang menggunakan sumber atau fasilitas yang tersedia. : Barang ke-i : Nilai keuntungan barang ke-i : Nilai bobot barang ke-i : Nilai bobot muatan suatu media : Daya angkut yang tersisa setelah barang ke-i dimasukkan
xviii
DAFTAR LAMPIRAN
Lampiran 1 Angket Penelitian Perlengkapan Pendakian ................................ 115 Lampiran 2 Source Code Rancang Bangun Optimasi Masalah Knapsack Menggunakan Algoritma Branch and Bound ................................................. 137
xvii
ABSTRAK
Sebagian besar masalah perencanaan dalam dunia nyata merupakan masalah optimasi. Salah satu masalah optimasi yang dihadapi adalah masalah knapsack yang merupakan masalah pemilihan barang dengan pembatasan kapasitas maksimum daya tampung. Pemilihan barang didasarkan pada kombinasi barang yang akan menghasilkan nilai kepentingan tertinggi dan masih memenuhi batasan kapasitas daya tampung. Masalah yang menarik untuk dibahas adalah masalah knapsack yang dihadapi oleh para pendaki gunung. Mereka akan dihadapkan pada masalah pemilhan barang yang akan dibawa saat mendaki. Hal yang perlu diperhatikan adalah tas ransel mempunyai kapasitas maksimum sehingga tidak semua barang dapat dimasukkan. Terdapat beberapa algoritma yang dapat digunakan untuk menyelesaikan masalah knapsack. Algoritma yang digunakan pada penelitian ini adalah algoritma Branch and Bound. Proses pencarian solusi pada algoritma ini menggunakan skema Breadth First Search (pencarian melebar). Langkah kerja algoritma Branch and Bound dalam optimasi masalah knapsack dimulai dengan merepresentasikan pencarian solusi ke dalam bentuk pohon berakar. Selanjutnya dilakukan proses branching dan bounding terhadap pohon berakar. Branching adalah pembagian permasalahan menjadi beberapa subregion yang mungkin mengarah ke solusi. Sedangkan bounding merupakan pencarian nilai batas untuk solusi optimal di dalam subregional yang mengarah ke solusi. Tahapan branching dan bounding dihubungkan dengan strategi pencarian yang ditentukan berdasarkan kriteria knapsack. Proses pencarian solusi dilakukan secara manual dan rancang bangun menggunakan bahasa pemrograman MATLAB. Berdasarkan hasil penelitian mengenai masalah knapsack yang dihadapi oleh pendaki gunung dengan kapasitas tas ransel 25 liter, diperoleh hasil optimal yaitu 15 barang terpilih dari total 21 barang yang tersedia, dengan jumlah volume 23,7813 liter, nilai kepentingan 163, dan hanya menyisakan ruang kosong sebesar 1,2187 liter. Kata kunci: optimasi, masalah knapsack, algoritma Branch and Bound, MATLAB
xix
BAB I PENDAHULUAN
1.1
Latar Belakang Optimasi merupakan salah satu masalah klasik yang dihadapi dalam
berbagai bidang ilmu, termasuk di bidang matematika maupun informatika. Optimasi dalam penyelesaian masalah merupakan suatu cara pengambilan keputusan sehingga didapatkan hasil penyelesaian yang optimal sesuai dengan kendala. Banyak persoalan optimasi dunia nyata yang sering dijumpai dalam kehidupan sehari-hari maupun industri. Sebagai contoh penyusunan jadwal perkuliahan, penentuan rute kendaraan umum, penentuan jumlah pekerja pada sebuah proses produksi. Masalah optimasi lain yang menarik untuk dibahas adalah masalah yang dihadapi oleh para pendaki gunung. Peralatan pendakian berjumlah banyak, namun tidak semua barang dapat dibawa saat mendaki gunung. Hal tersebut karena tas ransel yang menjadi media tampung memiliki nilai konstanta yang merupakan nilai pembatas untuk barang-barang yang akan dimasukkan. Maka ditentukan sebuah cara untuk pemilihan barang-barang tersebut dengan tujuan menghasilkan hasil optimum tetapi tidak melebihi kemampuan tas ransel tersebut untuk menampungnya. Kemudian masalah tersebut dinamakan masalah knapsack. Masalah Knapsack merupakan salah satu masalah optimasi pada pemilihan barang yang akan dimasukkan ke dalam suatu media yang memiliki keterbatasan
1
2
ruang atau daya tampung. Barang-barang yang akan dimasukkan memiliki berat dan nilai masing-masing yang digunakan untuk menentukan prioritas dalam pemilihan tersebut. Nilai barang dalam hal ini dapat berupa tingkat kepentingan, harga barang, nilai sejarah, dan lain sebagainya. Media tampung dalam hal ini memiliki nilai konstanta yang merupakan nilai pembatas maksimum untuk barang-barang yang akan dimasukkan ke dalam media tersebut. Dari permasalahan diatas, ditemukan sebuah cara pemilihan barang yang akan dimasukkan ke dalam suatu media dengan tujuan menghasilkan hasil optimum tetapi tidak melebihi kemampuan suatu media untuk menampungnya. Ada berbagai metode yang dapat digunakan untuk menyelesaikan masalah knapsack. Algoritma
Branch and Bound menjadi salah satu alternatif untuk
menyelesaikan masalah knapsack. Algoritma Branch and Bound diperkenalkan pertama kali oleh A.H. Land dan A.G. Doig pada tahun 1960. Konsep algoritma ini adalah menyelesaikan masalah dengan membaginya menjadi partisi yang lebih kecil secara terus menerus hingga mendapat solusi optimal. Penyelesaian masalah knapsack dengan tipe knapsack 0-1 menghasilkan konsep binner pada setiap pengambilan keputusannya. Artinya setiap masalah pada knapsack 0-1 akan dibagi menjadi dua cabang yaitu 0 (barang tidak terpilih) dan 1 (barang terpilih). Hal tersebut sesuai dengan konsep percabangan pada Algoritma Branch and Bound yang membagi setiap masalah menjadi partisi yang lebih kecil secara terus menerus hingga mendapat solusi optimal. Berdasarkan uraian di atas, maka dalam penelitian ini akan dibahas mengenai optimasi masalah knapsack menggunakan Algoritma
Branch and
3
Bound. Untuk ini penelitian ini berjudul Optimasi Masalah Knapsack Menggunakan Algoritma Branch and Bound. 1.2
Batasan Masalah
a) Masalah knapsack yang diasumsikan adalah knapsack 0-1, artinya setiap barang hanya tersedia satu unit, untuk selanjutnya diputuskan akan diambil atau ditinggalkan. b) Penulisan skripsi ini hanya akan membahas tentang nilai muatan dari suatu media, bukan kepada kekuatan media tersebut. c) Penulisan skripsi ini hanya akan membahas pemilihan barang yang dimasukkan ke dalam suatu media (kriteria knapsack) dengan Algortima Branch and Bound sehingga mendapat nilai yang optimal. 1.3
Rumusan Masalah Rumusan masalah yang akan dibahas dalam penelitian ini adalah sebagai
berikut: 1. Bagaimana konsep dan cara kerja Algoritma Branch and Bound dalam pengoptimalan masalah knapsack? 2. Bagaimana penerapan Algoritma Branch and Bound dalam pengoptimalan masalah knapsack? 3. Bagaimana rancang bangun optimasi masalah knapsack menggunakan Algoritma Branch and Bound?
4
1.4
Tujuan Penelitian Berdasarkan rumusan masalah di atas,maka tujuan dari penelitian ini adalah:
1. Mengetahui konsep dan cara kerja Algoritma
Branch and Bound dalam
pengoptimalan masalah knapsack. 2. Mengetahui penerapan Algoritma Branch and Bound dalam pengoptimalan masalah knapsack. 3. Mengetahui rancang bangun optimasi masalah knapsack menggunakan Algoritma Branch and Bound. 1.5
Manfaat Penelitian Hasil dari penelitian ini diharapkan dapat memberikan manfaat bagi para
pembaca antara lain: 1. Manfaat bagi akademisi yaitu menambah pemahaman dari aplikasi program linier terhadap cara pengoptimalan masalah knapsack menggunakan Algortima Branch and Bound. 2. Manfaat bagi pendaki yaitu memberikan rekomendasi pengambilan barang yang akan dimasukkan ke dalam tas ransel (kriteria knapsack) sehingga barang-barang yang dibawa akan mempunyai nilai kepentingan (prioritas barang yang dibawa) tinggi. 1.6
Tinjauan Pustaka Masalah knapsack maupun algoritma Branch and Bound sudah pernah
dikaji namun dengan jenis dan studi kasus yang berbeda-beda. Beberapa penelitian yang pernah mengkaji masalah knapsack maupun algoritma Branch and Bound adalah:
5
Jurnal yang berjudul “A Branch and Bound Algorithm for The Knapsack Problem” yang ditulis oleh Peter J. Kolesar (Management Science, Vol. 13 No. 9,1967). Pokok bahasan jurnal tersebut, yaitu mengenai penyelesaian masalah Knapsack dengan Algoritma Branch and Bound. Jurnal tersebut menggunakan knapsack dengan tipe fractional. Tipe ini berarti barang yang tidak memenuhi kriteria knapsack akan diambil sebagian, sehingga nantinya barang tersebut dapat dimasukkan ke dalam media tampung (memenuhi kriteria knapsack). Pada penelitian ini akan dibahas perkembangan dari jurnal tersebut tetapi dengan tipe knapsack yang berbeda yaitu knapsack dengan tipe integer. Penelitian yang berjudul “Implementasi Algoritma
Branch and Bound
untuk Optimasi Rute Pengangkutan Sampah kota Yogyakarta” karya M.Shofi Alkhoirodai tahun 2013. Penelitian M.Shofi ini membahas tentang penerapan Algoritma Branch and Bound dalam pencarian rute terpendek pengangkutan sampah kota Yogyakarta. Pada penelitian M.Shofi ini batas atas untuk setiap percabangan diambil dari nilai terkecil karena tujuannya adalah meminimalkan jarak. Kasus pada skripsi tersebut adalah optimasi rute pengangkutan sampah. Pada penelitian ini akan digunakan algoritma yang sama yaitu algoritma Branch and Bound, melainkan dengan kasus yang berbeda yaitu masalah knapsack. Penelitian yang berjudul Optimasi Strategi Algoritma Greedy untuk Menyelesaikan Permasalahan Knapsack karya Paryati (Seminar Nasional Informatika, 2009). Penelitian Paryati ini membahas tentang penyelesaian permasalahan knapsack menggunakan Algoritma Greedy. Penelitian yang dilakukan oleh Paryati, prioritas pengambilan barang dibagi menjadi tiga yaitu
6
greedy by profit, greedy by weight, dan greedy by value. Pada penelitian ini akan dibahas masalah knapsack yang sama seperti penelitian Paryati, namun algoritma yang digunakan untuk menyelesaikannya berbeda, yaitu algoritma Branch and Bound. Berdasarkan tinjauan pustaka diatas, penelitian ini akan mencari solusi masalah knapsack dengan tipe knapsack 0-1. Algoritma yang digunakan yakni Algoritma Branch and Bound. Kemudian akan dibuat program penyelesaian masalah knapsack menggunakan bahasa pemrograman MATLAB. Dengan demikian diharapkan dapat menghasilkan suatu hasil yang lebih beragam. 1.7
Sistematika Penulisan Sistematika penulisan pada skripsi ini adalah sebagai berikut: BAB I PENDAHULUAN Bab pendahuluan berisi latar belakang, batasan masalah, rumusan masalah, tujuan penelitian, manfaat penelitian, tinjauan pustaka, sistematika penulisan, dan metode penelitian. BAB II DASAR TEORI Dasar teori berisi tentang Optimasi, Program Linier, Masalah knapsack, Graph, Pengantar Algoritma dan Algoritma Branch and Bound, MATLAB, dan Pengetahuan Umum tentang Pendakian. BAB III PEMBAHASAN Pada bab ini akan dibahas mengenai konsep dan cara kerja Algoritma Branch and Bound dalam pengoptimalan masalah knapsack, penerapan Algoritma Branch and Bound dalam pengoptimalan masalah knapsack, dan
7
rancang bangun optimasi masalah knapsack menggunakan Algoritma Branch and Bound. BAB IV KESIMPULAN DAN SARAN Berisi tentang kesimpulan dari penelitian yang peneliti lakukan serta berisi saran-saran yang dapat dikembangkan bagi penelitian selanjutnya terkait dengan penerapan Algoritma Branch and Bound. 1.8
Metode Penelitian Metode penelitian yang digunakan dalam penyusunan skripsi ini adalah: 1. Studi pustaka, yaitu pengumpulan data yang dilakukan dengan cara membaca buku-buku catatan secara literatur, mempelajari, dan meneliti berbagai buku bacaan yang berkaitan dengan masalah yang dibahas. 2. Studi lapangan, yaitu dengan pengambilan data dan mengamati pemilihan barang yang akan di masukkan ke dalam tas ransel. Hal tersebut diperoleh dari responden yang notabene adalah pendaki yang setiap tahunnya selalu melakukan pendakian. Kemudian melakukan perhitungan terhadap peralatan pendakian dan volume tas ransel. Selanjutnya diberikan skema penelitian yang meliputi langkah penelitian,
pengumpulan data, studi literatur, hasil solusi dan pembahasan serta kesimpulan yaitu sebagai berikut:
8
Permasalahan
Persiapan Penelitian Pustaka Penelitian
Objek Penelitian
observasi
Pelaksanaan Penelitian Teknik Pengumpulan Data
Tempat dan Waktu Penelitian
Pengolahan Data
Pengumpulan Data
Studi literatur: 1 Masalah Knapsack 2 Algoritma Branch and Bound Penyelesaian 3 Teori Graf
Analisis Algoritma Branch and Bound Analisis Masalah Knapsack
Pelaporan Hasil Kesimpulan
Keterangan gambar: : Tahap kegiatan : Ruang lingkup kegiatan : Arah alur kegiatan
BAB IV PENUTUP A.
Kesimpulan Berdasarkan hasil pembahasan tentang Optimasi Masalah Knapsack
Menggunakan Algoritma Branch and Bound dapat ditarik kesimpulan sebagai berikut: 1. Penyelesaian masalah knapsack 0-1 menggunakan algoritma Branch and Bound melalui dua tahap, yaitu branching dan bounding. Branching adalah proses
pembagian
permasalahan
menjadi
subregion-subregion
yang
mengarah ke solusi. Prosedur ini dilakukan berulang-ulang secara rekursif, maka semua subregional secara alami membentuk struktur pohon pencarian. Bounding adalah cara untuk mencari nilai batas atas atau batas bawah untuk solusi optimal di dalam subregional yang mengarah ke solusi. Tahapan branching dan bounding dihubungkan dengan strategi pencarian, yaitu strategi untuk menyeleksi tiap-tiap node yang dihasilkan. Pemilihan node ditentukan berdasarkan kriteria knapsack sehingga mendapatkan node yang optimum. 2. Masalah knapsack 0-1 dapat diterapkan pada proses pemilihan barang yang akan dibawa oleh pendaki gunung. Barang pendakian yang berjumlah banyak seperti terlihat pada tabel 3.2, namun tidak semua barang dapat dibawa saat mendaki mengingat tas ransel yang menjadi media tampung memiliki kapasitas terbatas, seperti pada penelitian ini adalah 25 liter. Oleh karena itu dilakukan proses pemilihan barang menggunakan algoritma Branch and 110
111
Bound dandidapatkan solusi optimum yaitu jumlah barang yang dibawa adalah 15 dengan volume total 23,7813 liter, nilai kepentingan 163, dengan volume sisa adalah 1,2187 liter. Hal ini menunjukkan bahwa penyelesaian masalah knapsack 0-1 menggunakan algoritma Branch and Bound menghasilkan solusi yang optimal. Hasil perhitungan algoritma Branch and Bound untuk barang-barang yang dipilih dapat dilihat pada tabel 3.3. 3. Berdasarkan pembahasan mengenai rancang bangun optimasi masalah knapsack menggunakan algoritma Branch and Bound diperoleh kesimpulan sebagai berikut: a. Program (rancang bangun) dibuat menggunakan MATLAB yang dimulai dengan membuat pseude code utama menggunakan m.file sebagai kode untuk menjalankan program dan kemudian desain tampilan untuk program menggunakan fig-file sehingga diperoleh program dalam bentuk GUI (Graphical User Interface) pada MATLAB. b. Secara garis besar hasil dari pengujian porgram sama dengan perhitungan manual, yaitu diperoleh barang yang dipilih, volume total, dan nilai dari media tampung tersebut seperti terlihat pada tabel 3.3. B. Saran Berdasarkan penelitian yang telah dilakukan, maka terdapat beberapa saran sebagai berikut: 1. Pada penelitian ini menggunakan tipe knapsack 0-1. Disarankan bagi peneliti selanjutnya dapat menggunakan knapsack dengan tipe yang lain, seperti
112
fractional knapsack, maupun unbounded knapsack. Dengan demikian memberikan hasil penelitian yang bervariasi. 2. Optimasi masalah knapsack 0-1 pada penelitian diselesaikan menggunakan algoritma Branch and Bound. Diharapkan pada penelitian selanjutnya dapat menggunakan algoritma yang lain, seperti algoritma backtracking. 3. Optimasi masalah knapsack 0-1 pada algoritma Branch and Bound ini diselesaikan menggunakan bahasa pemrograman MATLAB. Disarankan bagi peneliti selanjutnya dapat menggunakan bahasa pemrograman lain, seperti VB.Net, PHP, Java, dan lain-lain.
DAFTAR PUSTAKA
Abdussakir Dkk. 2009. Teori Graf (Dasar untuk Tugas Akhir/Skripsi). Universitas Islam Negeri Malang. Agustin, Hendri. 2005. Mendaki Gunung : Pengenalan dan Teknis-teknis Dasar Pendakian Gunung. Yogyakarta: Bigraf Publishing. Agustin, Hendri. 2006. Panduan Teknis Pendakian Gunung. Yogyakarta: Andi Publisher. Alkhoirodai, M.Shofi. 2013. Implementasi Algoritma Branch and Bound untuk Optimasi Rute Pengangkutan Sampah kota Yogyakarta. Universitas Islam Negeri Sunan Kalijaga Yogyakarta. Bronson, R. 1996. Teori dan Soal-soal Operations Research. (Terjemahan Hans Wospakrik). Jakarta: Erlangga. Bondy, J.A. dan U.S.R. Marty. 1982. Graph Theory with Applications. Elsevier Science Publishing Co., Inc.. Diah, Katika. 2010. Penyelesaian Knapsack Problem Menggunakan Algoritma Genetika. Seminar Nasional Informatika 2009 (semnasIF 2009). UPN ”Veteran” Yogyakarta, 23 Mei 2009. Dimyati, A, & tarliyah, T. 1999. Operation Research “Model-Model Pengambilan Keputusan”. Bandung: PT. Sinar bara Algesindo. Kakiay, Thomas J. 2008. Pemrograman Linier. Yogyakarta : ANDI. Kl’ockner Kerstin. 2005. Depth and Breadth First Processing of Search Result Lists: An Example Paper in the SUGCHI Style. Kolesar, J. Peter. 1967. A Branch and Bound Algorithm for The Knapsack Problem. Management Science : Columbia University. Merisa, Sulasmina. 2010. Pemecahan Masalah Knapsack dengan Metode Branch and Bound. Universitas Andalas. Munir, Rinaldi. 2007. Strategi Algoritmik. Bandung : Informatika Bandung. Paryati. 2009. Optimasi Strategi Greedy untuk Menyelesaikan Permasalahan Knapsack 0-1. UPN Veteran Yogyakarta. 1
2
Peranginangin, Kasiman. 2006. Pengenalan MATLAB. Yogyakarta: ANDI. Purwanto, Budi Eko. 2008. Perancangan dan Analisis Algoritma.Yogyakarta. Suarga. 2006. Algoritma Pemrograman. Yogyakarta: ANDI. Sugiharto,Aris. 2006. Pemrograman GUI dengna Matlab. Yogyakarta: Andi. Susanta, B. 1994. Program Linear. Jakarta: Departemen Pendidikan dan Kebudayaa Dirjen Dikti. Wicaksono, Praseyo Andy. 2007. Strategi Algoritmik: Eksplorasi Algoritma Brute Force, Greedy dan Pemrograman Dinamis pada Penyelesaian Masalah 0/1 Knapsack. Bandung : STEU, Institut Teknologi Bandung. Wijaya, Marvin CH. Prijono, Agus. 2007. Pengolahan Citra Digital Menggunakan MATLAB. Bandung: Informatika Bandung. Yamit, Zulian. 1991. Linear Programming. Yogyakarta: Bagian Pnerbitan Fakultas Ekonomi Universitas Islam Indonesia.
Lampiran 2 Source Code Rancang Bangun Optimasi Masalah Knapsack Menggunakan Algoritma Branch and Bound function varargout = KNAPSACK(varargin) % KNAPSACK M-file for KNAPSACK.fig % KNAPSACK, by itself, creates a new KNAPSACK or raises the existing % singleton*. % % H = KNAPSACK returns the handle to a new KNAPSACK or the handle to % the existing singleton*. % % KNAPSACK('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in KNAPSACK.M with the given input arguments. % % KNAPSACK('Property','Value',...) creates a new KNAPSACK or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before KNAPSACK_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to KNAPSACK_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help KNAPSACK % Last Modified by GUIDE v2.5 06-Nov-2015 20:54:31 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @KNAPSACK_OpeningFcn, ... 'gui_OutputFcn', @KNAPSACK_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
% --- Executes just before KNAPSACK is made visible.
function KNAPSACK_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to KNAPSACK (see VARARGIN) % Choose default command line output for KNAPSACK handles.output = hObject; handles.output = hObject; hback = axes('unit','normalized','position',[0 0 1 1]); uistack(hback,'bottom'); [back, map]=imread('KNAPSACK.jpg'); image(back) colormap(map) set(hback,'handlevisibility','off','visible','off') % Update handles structure guidata(hObject, handles); % UIWAIT makes KNAPSACK wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = KNAPSACK_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;
function kapasitas_Callback(hObject, eventdata, handles) % hObject handle to kapasitas (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of kapasitas as text % str2double(get(hObject,'String')) returns contents of kapasitas as a double
% --- Executes during object creation, after setting all properties. function kapasitas_CreateFcn(hObject, eventdata, handles) % hObject handle to kapasitas (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function bykbarang_Callback(hObject, eventdata, handles) % hObject handle to bykbarang (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of bykbarang as text % str2double(get(hObject,'String')) returns contents of bykbarang as a double
% --- Executes during object creation, after setting all properties. function bykbarang_CreateFcn(hObject, eventdata, handles) % hObject handle to bykbarang (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function volume_Callback(hObject, eventdata, handles) % hObject handle to volume (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of volume as text % str2double(get(hObject,'String')) returns contents of volume as a double
% --- Executes during object creation, after setting all properties. function volume_CreateFcn(hObject, eventdata, handles) % hObject handle to volume (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
function barangdiambil_Callback(hObject, eventdata, handles) % hObject handle to barangdiambil (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of barangdiambil as text % str2double(get(hObject,'String')) returns contents of barangdiambil as a double
% --- Executes during object creation, after setting all properties. function barangdiambil_CreateFcn(hObject, eventdata, handles) % hObject handle to barangdiambil (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function keuntungan_Callback(hObject, eventdata, handles) % hObject handle to keuntungan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of keuntungan as text % str2double(get(hObject,'String')) returns contents of keuntungan as a double
% --- Executes during object creation, after setting all properties. function keuntungan_CreateFcn(hObject, eventdata, handles) % hObject handle to keuntungan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in proses. function proses_Callback(hObject, eventdata, handles)
% hObject handle to proses (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) m=str2num(get(handles.kapasitas,'string')); n=str2num(get(handles.bykbarang,'string')); w = str2num(get(handles.volume,'string')); v = str2num(get(handles.nilai,'string')); w=w'; v=v'; A=[w v]; vol=A(:,1); V=A(:,2); r=V./vol; R=max(r);
f1=0; n_barang=0; sisa=m-n_barang; Gi=max(r)*(sisa); c=f1+Gi;b=0; Wbaru=sisa; r0=r; barang=zeros(1,n); for i=1:n k=0; for j=1:n if barang(j)==0 if (Wbaru-vol(j))>=0 k=k+1;r1=r0; r1(j)=-r0(j); c(k)=(f1+V(j))+(R*(Wbaru-vol(j))); Cj(k)=j; end end end c if k==0 break else [untung indx]=max(c); barang(Cj(indx))=1; f1=f1+V(Cj(indx)); Wbaru=Wbaru-vol(Cj(indx)); r0(Cj(indx))=-r0(Cj(indx)); keuntungan(i)=f1; barang_bab1(i,:)=barang; end c=[]; disp(num2str(barang)); end vol_bar=0; for i=1:n if barang(i)==1 disp(num2str(i));
vol_bar=vol_bar+vol(i); end end kk=[]; vb=[]; nb=[]; for i=1:n if barang(i)==1 kk(i)=i; vb(i)=vol(i); nb(i)=V(i) end end keuntungan=f1; set(handles.barangdiambil,'string', kk); set(handles.volumediambil,'string', vb); set(handles.nilaidiambil,'string', nb); set(handles.keuntungan,'string',f1); set(handles.volume2,'string',vol_bar);
function nilai_Callback(hObject, eventdata, handles) % hObject handle to nilai (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of nilai as text % str2double(get(hObject,'String')) returns contents of nilai as a double
% --- Executes during object creation, after setting all properties. function nilai_CreateFcn(hObject, eventdata, handles) % hObject handle to nilai (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit7_Callback(hObject, eventdata, handles) % hObject handle to edit7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit7 as text % str2double(get(hObject,'String')) returns contents of edit7 as a double
% --- Executes during object creation, after setting all properties. function edit7_CreateFcn(hObject, eventdata, handles) % hObject handle to edit7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function volume2_Callback(hObject, eventdata, handles) % hObject handle to volume2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of volume2 as text % str2double(get(hObject,'String')) returns contents of volume2 as a double
% --- Executes during object creation, after setting all properties. function volume2_CreateFcn(hObject, eventdata, handles) % hObject handle to volume2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in reset. function reset_Callback(hObject, eventdata, handles) % hObject handle to reset (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
set(handles.kapasitas,'string',''); set(handles.bykbarang,'string',''); set(handles.volume,'string',''); set(handles.nilai,'string',''); set(handles.barangdiambil,'string', ''); set(handles.volumediambil,'string', ''); set(handles.nilaidiambil,'string', ''); set(handles.keuntungan,'string',''); set(handles.volume2,'string','');
function volumediambil_Callback(hObject, eventdata, handles) % hObject handle to volumediambil (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of volumediambil as text % str2double(get(hObject,'String')) returns contents of volumediambil as a double
% --- Executes during object creation, after setting all properties. function volumediambil_CreateFcn(hObject, eventdata, handles) % hObject handle to volumediambil (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function nilaidiambil_Callback(hObject, eventdata, handles) % hObject handle to nilaidiambil (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of nilaidiambil as text % str2double(get(hObject,'String')) returns contents of nilaidiambil as a double
% --- Executes during object creation, after setting all properties. function nilaidiambil_CreateFcn(hObject, eventdata, handles) % hObject handle to nilaidiambil (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) run help;
CURICULUM VITAE
Nama
: Fitriatul Malaikhah
Tempat, Tanggal Lahir
: Pekalongan, 12 Maret 1994
Alamat
: Jl. Tondano gg.14a no.11 Pekalongan
Alamat Email
:
[email protected]
Telepon
: 0857 2588 8240
Jenis Kelamin
: Perempuan
Agama
: Islam
Status
: Belum menikah
Tinggi / Berat Badan
: 160 / 52
Kesehatan
: Baik Sekali
Kewarganegaraan
: Indonesia
DATA PENDIDIKAN SD
: MSI 01 Kauman Pekalongan
SMP
: SMP Salafiyah Pekalongan
SMA
: SMA N 04 Pekalongan
Perguruan Tinggi
: UIN Sunan Kalijaga Yogyakarta
Fakultas / Jurusan
: Sains dan Tekhnologi / Matematika
Konsentrasi
: Matematika Terapan
PRESTASI 2013
: Pemenang Juara 2 Lomba Badmintoon tingkat Prodi Matematika
2014
: Pemenang Juara 2 Lomba Badmintoon tingkat Prodi Matematika
PENGALAMAN ORGANISASI 2010-2011
: Anggota OSIS SMAN N 04 Pekalongan
2010-2011
: Anggota Dewan Ambalan Yos Sudarso – Tri Buana Tungga Dewi
2013 – 2014 : Anggota HM-PS Prodi Matematika PENGALAMAN KERJA 2012
: Tentor Matematika siswa SD-SMP
KEMAMPUAN Aplikasi dan Program Komputer (Microsof Office, Microsoft Excel, Power Point) Aplikasi Website, dan Blog HOBBY Internet (Browsing) Mendengarkan Musik (Musik klasik, pop, instrumental) Membaca (Buku Motivasi dan Novel) Olahraga (Badminton)