DAFTAR REFERENSI [CEN07] [DIM97] [HOR78] [MUN06] [NEA96] [WIK07-a] [WIK07-b] http://www.centralsteel.com Dimyati T.T., & Dimyati A., Operation Research: Model-Model Pengambilan Keputusan, Sinar Baru, Bandung, 1992. Horowitz, Ellis, & Sartaj Sahni, Fundanental of Computer Algorithms, Pitman Publishing Limited, 1978. Munir, Rinaldi, Strategi Algoritmik, Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, 2006. Neapolitan, Richrad R., Foundations of Algorithms, D.C. Heath and Company, 1996. http://en.wikipedia.org/wiki/category:optimization_algorithms http://id.wikipedia.org/wiki/pola xii
DAFTAR PUSTAKA [CEN07] [DIM97] [HOR78] [MUN06] [NEA96] [WIK07-a] [WIK07-b] http://www.centralsteel.com Dimyati T.T., & Dimyati A., Operation Research: Model-Model Pengambilan Keputusan, Sinar Baru, Bandung, 1992. Horowitz, Ellis, & Sartaj Sahni, Fundanental of Computer Algorithms, Pitman Publishing Limited, 1978. Munir, Rinaldi, Strategi Algoritmik, Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, 2006. Neapolitan, Richrad R., Foundations of Algorithms, D.C. Heath and Company, 1996. http://en.wikipedia.org/wiki/category:optimization_algorithms http://id.wikipedia.org/wiki/pola xiii
LAMPIRAN A TABEL PERANCANGAN KELAS PERANGKAT LUNAK Pada Lampiran A ditampilkan daftar operasi dan atribut Kelas Utilities, Kelas ElmtList, Kelas ElmtListProgdin, dan Kelas ElmtSolution, serta kelas antarmuka pada tahap perancangan. 1. Kelas Utilities Daftar operasi dan atribut yang terdapat pada kelas Utilities dapat dilihat pada Tabel A-1 dan Tabel A-2. Tabel A-1 Daftar operasi yang terdapat pada kelas Utilities getmax public Fungsi untuk mendapatkan nilai paling maksimum dari data yang terdapat pada kolom-kolom yang ada dalam satu baris datagridview getmin public Fungsi untuk mendapatkan nilai paling minimal dari data yang terdapat pada kolom-kolom yang ada dalam satu baris datagridview finished public Fungsi yang dilakukan untuk mengetahui apakah semua anggota list integer adalah nilai maksimum allzero public Fungsi untuk mengetahui apakah semua nilai pada list integer adalah 0. zeronotexistprogdin public Fungsi untuk mengetahui apakah terdapat list yang semuanya bernilai 0 pada ListProgdin. ispositif public Fungsi untuk mengetahui apakah terdapat nilai negatif jika sebuah list L1 semua isinya dikurangi dengan semua isi pada list L2. Sum public Fungsi untuk mendapatkan jumlah panjang yang dihasilkan oleh suatu pola pemotongan A-1
AminB public Fungsi untuk mendapatkan nilai list L1 jika dikurangi nilai list L2. AplusB public Fungsi untuk mendapatkan nilai list L1 jika ditambah nilai list L2. ComparePatternBySisa public Fungsi yang dilkakukan untuk menentukan aturan pengurutan pada algoritma greedy. firstelmtisexist public Fungsi yang mengembalikan nilai true jika nilai elemen pertama yang terdapat pada list yang ada pada elmtprogdin E sama dengan nilai elemen pertama yang ada pada salah satu elemen pada listprogdin L. indexexisted public Fungsi yang mengembalikan nilai index dari elemen yang diketemukan pada fungsi firstelmtisexist getallminimal public Prosedur untuk mendapatkan semua nilai yang minimal dari sebuah tahap penyelesaian pada algoritma program dinamis. getminimalfinished public Mendapatkan nilai sisa paling minimal dari semua urutan pola yang sudah selesai pada tahapan algoritma program dinamis. createpattern public Prosedur yang dijalankan untuk membuat daftar pola yang terdefinisi untuk pemotongan. bruteforce public Prosedur yang dijalankan untuk menyelesaikan masalah pola pemotongan dengan metode penyelesaian brute force greedy public Prosedur yang dijalankan untuk menyelesaikan masalah pola pemotongan dengan algoritma greedy A-2
programdinamis public Prosedur yang dijalankan untuk menyelesaikan masalah pola pemotongan dengan algoritma program dinamis createsolution public Prosedur yang dijalankan untuk menyelesaikan masalah pola pemotongan. iselement public Fungsi untuk memeriksa apakah suatu string merupakan merupakan bagian dari salah satu elemen suatu List<ElmtSolution>. elementindex public Fungsi yang mengembalikan nilai index elemen dari suatu List<ElmtSolution> yang mengandung nilai string S. simplesolution public Prosedur yang dilakukan untuk mempersingkat penyajian suatu List<string> Tabel A-2 Daftar atribut yang terdapat pada kelas Utilities F2 private Form2 F3 private Form3 2. Kelas ElmtList Daftar operasi dan atribut yang terdapat pada kelas ElmtList dapat dilihat pada Tabel A-3 dan Tabel A-4. Tabel A-3 Daftar operasi yang terdapat pada kelas ElmtList ListPattern public Fungsi untuk mendapatkan mengeset nilai atribut listpattern dari sebuah onjek instansiasi A-3
ElmtList. Name public Fungsi untuk mendapatkan dan mengeset nilai atribut name dari sebuah onjek instansiasi ElmtList. Sisa public Fungsi untuk mendapatkan dan mengeset nilai atribut sisa dari sebuah onjek instansiasi ElmtList. Tabel A-4 Daftar atribut yang terdapat pada kelas ElmtList listpattern private List<int> Name private string Sisa private integer 3. Kelas ElmtListProgdin Daftar operasi dan atribut yang terdapat pada kelas ElmtListProgdin dapat dilihat pada Tabel A-5 dan Tabel A-6. Tabel A-5 Daftar operasi yang terdapat pada kelas ElmtListProgdin PatternName public Fungsi untuk mendapatkan mengeset nilai atribut patternname dari sebuah onjek instansiasi ElmtList. Sisa public Fungsi untuk mendapatkan dan mengeset nilai atribut sisa dari sebuah onjek instansiasi ElmtList. Problem public Fungsi untuk mendapatkan dan mengeset nilai atribut problem dari sebuah onjek instansiasi ElmtList. A-4
Tabel A-6 Daftar atribut yang terdapat pada kelas ElmtListProgdin patternname private List<string> Sisa private integer Problem private List<integer> 4. Kelas ElmtSolution Daftar operasi dan atribut yang terdapat pada kelas ElmtSolution dapat dilihat pada Tabel A-7 dan Tabel A-8. Tabel A-7 Daftar operasi yang terdapat pada kelas ElmtSolution Pattern public Fungsi untuk mendapatkan mengeset nilai atribut pattern dari sebuah onjek instansiasi ElmtSolution. Count public Fungsi untuk mendapatkan dan mengeset nilai atribut count dari sebuah onjek instansiasi ElmtSolution. Tabel A-8 Daftar atribut yang terdapat pada kelas ElmtSolution Pattern private string Count private integer Tabel A-9 Daftar operasi yang terdapat pada kelas antarmuka Form1 button1_click private Prosedur yang dijalankan jika aktor menekan button1(tombol Next ) pada Form1. Textbox1 public Fungsi untuk mendapatkan dan A-5
mengeset nilai Textbox1 Textbox2 public Fungsi untuk mendapatkan dan mengeset nilai Textbox2 Tabel A-10 Daftar atribut yang terdapat pada kelas Form1 textbox1 private Sistem.Windows.Forms.TextBox textbox2 private Sistem.Windows.Forms.TextBox label1 private Sistem.Windows.Forms.Label label2 private Sistem.Windows.Forms.Label button1 private Sistem.Windows.Forms.Button Tabel A-11 Daftar operasi yang terdapat pada kelas Form2 Datagridview1 public Fungsi untuk mendapatkan dan mengeset nilai yang ada pada datagridview1 Datagridview2 public Fungsi untuk mendapatkan dan mengeset nilai yang ada pada datagridview2 getf3 public Fungsi untuk mendapatkan dan mengeset nilai yang ada pada F3 getf4 public Fungsi untuk mendapatkan dan mengeset nilai yang ada pada F4 button1_click private Prosedur yang dilakukan ketika button1 pada kelas Form2 di klik oleh aktor button2_click private Prosedur yang dilakukan ketika button2 pada kelas Form2 di klik oleh aktor Pattern public Fungsi untuk mengeset dan mendapatkan pattern A-6
Tabel A-12 Daftar atribut yang terdapat pada kelas Form2 datagridview1 private Sistem.Windows.Forms.Datagridview datagridview2 private Sistem.Windows.Forms.Datagridview label1 private Sistem.Windows.Forms.Label label2 private Sistem.Windows.Forms.Label label4 Private Sistem.Windows.Forms.Label label5 Private Sistem.Windows.Forms.Label label6 Private Sistem.Windows.Forms.Label button1 private Sistem.Windows.Forms.Button button2 private Sistem.Windows.Forms.Button F1 private Form1 F3 private Form2 pattern private List<ElmtList> Tabel A-13 Daftar operasi yang terdapat pada kelas Form3 button1_click private Prosedur yang dijalankan jika aktor menekan button1(tombol Create Solution ) pada Form3. button2_click private Prosedur yang dijalankan jika aktor menekan button2(tombol Back ) pada Form3. Solution public Fungsi untuk mengeset atau mendapatkan solution SisaMin public Fungsi untuk mengeset atau mendapatkan sisamin Tabel A-14 Daftar atribut yang terdapat pada kelas Form3 datagridview1 private Sistem.Windows.Forms.Datagridview label1 private Sistem.Windows.Forms.Label label2 private Sistem.Windows.Forms.Label button1 private Sistem.Windows.Forms.Button button2 private Sistem.Windows.Forms.Button F1 private Sistem.Windows.Forms.Form1 A-7
F2 private Sistem.Windows.Forms.Form2 solution private List<ElmtListSolution> sisamin private integer radiobutton1 private Sistem.Windows.Forms.RadioButton radiobutton2 private Sistem.Windows.Forms.RadioButton radiobutton3 private Sistem.Windows.Forms.RadioButton Tabel A-15 Daftar operasi yang terdapat pada kelas Form5 button1_click private Prosedur yang dijalankan jika aktor menekan button1(tombol Back ) pada Form3 dan akan membawa aktor ke kembali ke Form2. button2_click private Prosedur yang dijalankan jika aktor menekan button2(tombol Finish ) pada Form3 dan akan membawa aktor ke halaman awal. Tabel A-16 Daftar atribut yang terdapat pada kelas Form5 datagridview1 private Sistem.Windows.Forms.Datagridview label1 private Sistem.Windows.Forms.Label label2 private Sistem.Windows.Forms.Label label3 private Sistem.Windows.Forms.Label label4 private Sistem.Windows.Forms.Label label5 private Sistem.Windows.Forms.Label label6 private Sistem.Windows.Forms.Label button1 private Sistem.Windows.Forms.Button button2 private Sistem.Windows.Forms.Button F3 private Sistem.Windows.Forms.Form1 textbox1 private Sistem.Windows.Forms.TextBox textbox2 private Sistem.Windows.Forms.TextBox textbox3 private Sistem.Windows.Forms.TextBox A-8
textbox4 private Sistem.Windows.Forms.TextBox Tabel A-17 Daftar operasi yang terdapat pada kelas Form5 button1_click private Prosedur yang dijalankan jika aktor menekan button1(tombol Run ) pada Form6 dan akan membawa aktor ke Form1. button2_click private Prosedur yang dijalankan jika aktor menekan button2(tombol Exit ) pada Form6 dan akan membawa aktor keluar dari program. Tabel A-18 Daftar atribut yang terdapat pada kelas Form5 label1 private Sistem.Windows.Forms.Label label2 private Sistem.Windows.Forms.Label label3 private Sistem.Windows.Forms.Label label4 private Sistem.Windows.Forms.Label button1 private Sistem.Windows.Forms.Button button2 private Sistem.Windows.Forms.Button A-9
LAMPIRAN B TABEL IMPLEMENTASI KELAS PERANGKAT LUNAK Pada Lampiran B terdapat tabel daftar implementasi kelas pada perangkat lunak dalam bahasa C# Visual Studio 2005. Tabel B-1 Daftar implementasi operasi yang terdapat pada kelas Utilities (private, Implementasi Operasi Kelas public) getmax private public void getmax(datagridview D) getmin private public void getmin(datagridview D) finished private private void finished(list<int> L) allzero private private void allzero(list<int> L) zeronotexistprogdin private private void zeronotexistprogdin(list<elmtlistprogdin> L) ispositif private private void ispositif(list<int> L1, List<int> L2) Sum private private void Sum(List<int> L) AminB private private void AminB(List<int> L1, List<int> L2) AplusB private private void AplusB(List<int> L1, List<int> L2) ComparePatternBySisa private private static int ComparePatternBySisa(ElmtList E1, ElmtList E2) firstelmtisexist private private bool firstelmtisexist(elmtlistprogdin E, List<ElmtListProgdin> L) indexexisted private private int indexexisted(elmtlistprogdin E, List<ElmtListProgdin> L) getallminimal private private void getallminimal(list<elmtlistprogdin> L) getminimalfinished private private void getminimalfinished(list<elmtlistprogdin> L) B-1
(private, Implementasi Operasi Kelas public) createpattern public public void createpattern(list<elmtlist> Pattern) bruteforce public public void bruteforce(list<elmtlist> Pattern, List<string> Solution, int sisamin) greedy public public void greedy(list<elmtlist> Pattern, List<string> Solution, int sisamin) programdinamis public public void programdinamis(list<elmtlist> Pattern, List<string> Solution, int sisamin) createsolution public public void createsolution(list<elmtlist> Pattern,List<ElmtSolution> Solution,int sisamin) iselement private private bool iselement(string S, List<ElmtSolution> L1) elementindex private private int elementindex(string S, List<ElmtSolution> L1) simplesolution private private void simplesolution(list<string> L, List<ElmtSolution> L1) Tabel B-2 Daftar atribut yang terdapat pada kelas Utilities Implementasi Atribut Kelas F2 private private Form2 F2; F3 private private Form2 F3; Tabel B-3 Daftar operasi yang terdapat pada kelas ElmtList Implementasi Operasi Kelas ListPattern public public List<int> ListPattern Name public public string Name Sisa public public int Sisa BarSteel public Public int BarSteel B-2
Tabel B-4 Daftar atribut yang terdapat pada kelas ElmtList Implementasi Atribut Kelas listpattern private private List<int> listpattern; name private private string name; sisa private private int sisa; barsteel private private int barsteel; Tabel B-5 Daftar operasi yang terdapat pada kelas ElmtListProgdin Implementasi Operasi Kelas PatternName public public List<string> PatternName Sisa public public int Sisa Problem public public List<int> Problem; Tabel B-6 Daftar atribut yang terdapat pada kelas ElmtListProgdin Implementasi Atribut Kelas patternname private private List<string> patternname; Sisa private private int sisa Problem private private List<int> problem; Tabel B-7 Daftar operasi yang terdapat pada kelas ElmtSolution Implementasi Operasi Kelas Pattern public public string Pattern; Count public public int Count; Tabel B-8 Daftar atribut yang terdapat pada kelas ElmtListProgdin Implementasi Atribut Kelas Pattern private private string pattern; Count private private int count; B-3
LAMPIRAN C HASIL PENGUJIAN PERANGKAT LUNAK Lampiran C berisi tabel solusi pengujian perangkat lunak. Tabel C-1 Solusi Tahap 1 menggunakan brute force Pattern4 4 Pattern1 5 Pattern0 7 Tabel C-2 Solusi Tahap 1 menggunakan greedy Pattern1 9 Pattern0 3 Pattern3 4 Tabel C-3 Solusi Tahap 1 menggunakan program dinamis Pattern3 4 Pattern0 3 Pattern1 9 Tabel C-4 Solusi Tahap 2 dengan menggunakan brute force Pattern4 8 Pattern3 21 Pattern0 50 Tabel C-5 Solusi Tahap 2 dengan menggunakan greedy Pattern4 8 Pattern3 21 Pattern0 50 C-1
Tabel C-6 Solusi Tahap 2 dengan menggunakan program dinamis Pattern4 18 Pattern3 1 Pattern0 50 Pattern1 20 Tabel C-7 Solusi Tahap 3 dengan menggunakan brute force Pattern12 2 Pattern11 4 Pattern7 7 Pattern5 2 Pattern2 3 Pattern1 5 Pattern0 2 Tabel C-8 Solusi Tahap 3 dengan menggunakan greedy Pattern3 2 Pattern2 1 Pattern1 5 Pattern0 2 Pattern11 6 Pattern5 2 Pattern7 7 Tabel C-9 Solusi Tahap 3 dengan menggunakan program dinamis Pattern13 4 Pattern11 2 Pattern9 3 Pattern7 1 Pattern0 2 Pattern1 5 Pattern2 5 C-2
Tabel C-10 Solusi Tahap 4 menggunakan greedy Pattern6 1 Pattern5 18 Pattern4 11 Pattern3 20 Pattern2 22 Pattern0 13 Pattern8 16 Pattern1 14 Tabel C-11 Solusi Tahap 4 menggunakan program dinamis Pattern8 16 Pattern1 14 Pattern2 22 Pattern0 13 Pattern3 20 Pattern4 11 Pattern6 1 Pattern5 18 Tabel C-12 Solusi Tahap 5 menggunakan greedy Pattern25 28 Pattern13 73 Pattern12 49 Pattern22 27 Pattern19 16 Pattern11 68 Pattern10 33 Pattern16 25 Pattern58 40 Pattern28 64 Pattern14 5 Pattern47 51 Pattern38 35 Pattern18 43 Pattern15 71 C-3
Tabel C-13 Solusi Tahap 5 menggunakan program dinamis Pattern67 20 Pattern47 51 Pattern38 35 Pattern32 32 Pattern18 23 Pattern15 71 Pattern14 5 Pattern16 45 Pattern10 33 Pattern19 56 Pattern11 68 Pattern22 27 Pattern12 49 Pattern25 28 Pattern13 73 Tabel C-14 Solusi Tahap 6 menggunakan greedy Pattern25 123 Pattern10 85 Pattern12 93 Pattern19 86 Pattern14 87 Pattern58 1 Pattern13 59 Pattern16 54 Pattern65 1 Pattern11 47 Pattern51 42 Pattern46 41 Pattern40 55 Pattern22 176 Pattern28 211 Pattern53 97 C-4
Tabel C-15 Solusi Tahap 6 menggunakan program dinamis Pattern67 50 Pattern51 62 Pattern49 1 Pattern40 55 Pattern32 105 Pattern26 97 Pattern24 32 Pattern22 144 Pattern16 54 Pattern13 59 Pattern11 47 Pattern25 26 Pattern19 87 Pattern14 87 Pattern12 93 Pattern10 85 Tabel C-16 Solusi Tahap 7 menggunakan greedy Pattern10 200 Pattern5 500 Pattern8 450 Pattern26 60 Pattern16 130 Pattern4 148 Pattern12 110 Tabel C-17 Solusi Tahap 7 menggunakan program dinamis Pattern25 120 Pattern16 10 Pattern14 110 Pattern6 390 Pattern4 92 Pattern8 450 Pattern10 200 C-5