xii
DAFTAR REFERENSI
[CEN07]
http://www.centralsteel.com
[DIM97]
Dimyati T.T., & Dimyati A., Operation Research: Model-Model
Pengambilan Keputusan, Sinar Baru, Bandung, 1992.
[HOR78]
Horowitz, Ellis, & Sartaj Sahni, Fundanental of Computer Algorithms,
Pitman Publishing Limited, 1978.
[MUN06]
Munir, Rinaldi, Strategi Algoritmik, Program Studi Teknik
Informatika, Sekolah Teknik Elektro dan Informatika Institut
Teknologi Bandung, 2006.
[NEA96]
Neapolitan, Richrad R., Foundations of Algorithms, D.C. Heath and
Company, 1996.
[WIK07-a]
http://en.wikipedia.org/wiki/Category:Optimization_algorithms
xiii
[CEN07]
http://www.centralsteel.com
[DIM97]
Dimyati T.T., & Dimyati A., Operation Research: Model-Model
Pengambilan Keputusan, Sinar Baru, Bandung, 1992.
[HOR78]
Horowitz, Ellis, & Sartaj Sahni, Fundanental of Computer Algorithms,
Pitman Publishing Limited, 1978.
[MUN06]
Munir, Rinaldi, Strategi Algoritmik, Program Studi Teknik
Informatika, Sekolah Teknik Elektro dan Informatika Institut
Teknologi Bandung, 2006.
[NEA96]
Neapolitan, Richrad R., Foundations of Algorithms, D.C. Heath and
Company, 1996.
[WIK07-a]
http://en.wikipedia.org/wiki/Category:Optimization_algorithms
A-1
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 te rdapat pada kelas Utilities
Nama Oper asi Visibility (private, public)
Ke terangan
getMax public Fungsi untuk mendapatkan nila i paling ma ksimu m dari data yang terdapat pada kolo m-kolo m yang ada dalam satu baris datagridview
getMin public Fungsi untuk mendapatkan nila i paling minima l da ri data yang terdapat pada kolo m-kolo m yang ada dalam satu baris datagridview
finished public Fungsi yang dilakukan untuk mengetahui apakah semua anggota
list integer adalah nila i ma ksimu m allZero public Fungsi untuk mengetahui apakah
semua nila i pada list integer adalah 0.
zeroNotExistProgdin public Fungsi untuk mengetahui apakah terdapat list yang semuanya bernila i 0 pada ListProgdin.
isPositif public Fungsi untuk mengetahui apakah terdapat nilai negatif jika sebuah
list L1 semua isinya diku rangi
dengan semua isi pada list L2.
Sum public Fungsi untuk mendapatkan ju mlah panjang yang dihasilkan oleh suatu pola pemotongan
A-2
AminB public Fungsi untuk mendapatkan nila i list L1 jika d ikurangi nila i list L2.
AplusB public Fungsi untuk mendapatkan nila i list L1 jika d ita mbah nilai list L2.
ComparePatternBySisa public Fungsi yang dilkaku kan untuk menentukan aturan pengurutan pada algorit ma greedy.
firstElmtIsExist public Fungsi yang mengembalikan nilai true jika n ila i e le men perta ma yang terdapat pada list yang ada pada
elmtProgdin E sama dengan nila i
ele men perta ma yang ada pada salah satu elemen pada listprogdin L.
indexExisted public Fungsi yang mengembalikan nilai inde x dari e le men yang
dikete mukan pada fungsi
firstElmtIsExist
getAllMinimal public Prosedur untuk mendapatkan semua nila i yang minima l dari sebuah tahap penyelesaian pada algorit ma p rogra m dina mis.
getMinimalFinished public Mendapatkan nila i sisa paling minimal dari semua urutan pola yang sudah selesai pada tahapan algorit ma p rogra m dina mis.
createPattern public Prosedur yang dijalankan untuk me mbuat daftar pola yang terdefinisi untuk pe motongan.
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
A-3
Nama Oper asi Visibility (private, public)
Ke terangan
programDinamis public Prosedur yang dijalankan untuk
menyelesaikan masalah pola pemotongan dengan algoritma program dina mis
createSolution public Prosedur yang dijalankan untuk menyelesaikan masalah pola pemotongan.
isElement public Fungsi untuk me meriksa apakah suatu string merupakan merupakan bagian dari salah satu elemen suatu
List<ElmtSolution>.
elementIndex public Fungsi yang mengembalikan nilai inde x e le men dari suatu
List<ElmtSolution> yang
mengandung nilai string S.
simpleSolution public Prosedur yang dilakukan untuk me mpe rsingkat penyajian suatu
List<string>
Tabel A-2 Daftar atribut yang terdapat pada kelas Utilities
Nama Atri but Visibility (private, public)
Ti pe
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 te rdapat pada kelas ElmtList
Nama Oper asi Visibility (private, public)
Ke terangan
ListPattern public Fungsi untuk mendapatkan mengeset nilai atribut listPattern dari sebuah onjek instansiasi
A-4
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
Nama Atri but Visibility (private, public)
Ti pe
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 te rdapat pada kelas ElmtListProgdin
Nama Oper asi Visibility (private, public)
Ke terangan
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
A-5
Tabel A-6 Daftar atribut yang terdapat pada kelas ElmtListProgdin
Nama Atri but Visibility (private, public)
Ti pe
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 te rdapat pada kelas ElmtSolution
Nama Oper asi Visibility (private, public)
Ke terangan
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
Nama Atri but Visibility (private, public)
Ti pe
Pattern private string
Count private integer
Tabel A-9 Daftar operasi yang te rdapat pada kelas antarmuka Form1
Nama Oper asi Visibility (private, public)
Ke terangan
button1_click private Prosedur yang dijalankan jika aktor menekan button1(Tombol “Next”) pada Form1.
A-6
mengeset nilai Textbox1
Textbox2 public Fungsi untuk mendapatkan dan mengeset nilai Textbox2
Tabel A-10 Daftar atribut yang terdapat pada kelas Form1
Nama Atri but Visibility (private, public)
Ti pe
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 te rdapat pada kelas Form2
Nama Oper asi Visibility (private, public)
Ke terangan
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-7
Tabel A-12 Daftar atribut yang terdapat pada kelas Form2
Nama Atri but Visibility (private, public)
Ti pe
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 te rdapat pada kelas Form3
Nama Oper asi Visibility (private, public)
Ke terangan
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
Nama Atri but Visibility (private, public)
Ti pe
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
A-8
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 te rdapat pada kelas Form5
Nama Oper asi Visibility (private, public)
Ke terangan
button1_click private Prosedur yang dijalankan jika
aktor menekan button1(Tombol
“Back”) pada Form3 dan akan me mba wa a ktor ke ke mba li ke
Form2.
button2_click private Prosedur yang dijalankan jika
aktor menekan button2(Tombol
“Finish”) pada Form3 dan akan me mba wa a ktor ke hala man awal.
Tabel A-16 Daftar atribut yang terdapat pada kelas Form5
Nama Atri but Visibility (private, public)
Ti pe
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-9
Nama Atri but Visibility (private, public)
Ti pe
textBox4 private Sistem.Windows.Forms.TextBox
Tabel A-17 Daftar operasi yang te rdapat pada kelas Form5
Nama Oper asi Visibility (private, public)
Ke terangan
button1_click private Prosedur yang dijalankan jika
aktor menekan button1(Tombol
“Run”) pada Form6 dan akan me mba wa a ktor ke Form1.
button2_click private Prosedur yang dijalankan jika
aktor menekan button2(Tombol
“Exit”) pada Form6 dan akan me mba wa a ktor keluar dari program.
Tabel A-18 Daftar atribut yang terdapat pada kelas Form5
Nama Atri but Visibility (private, public)
Ti pe
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
B-1
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
Nama Oper asi
Visibility (private, public)
Imple me ntasi Operasi Kelas
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-2
Nama Oper asi
Visibility (private, public)
Imple me ntasi Operasi Kelas
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
Nama Atri but
Visibility
(private, public) Imple me ntasi Atri but Kelas F2 private private Form2 F2;
F3 private private Form2 F3;
Tabel B-3 Daftar ope rasi yang terdapat pada kelas ElmtList
Nama Oper asi
Visibility
(private, public) Imple me ntasi Operasi Kelas
ListPattern public public List<int>
ListPattern
Name public public string Name
Sisa public public int Sisa
B-3
Nama Atri but
Visibility
(private, public) Imple me ntasi Atri but 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 ope rasi yang terdapat pada kelas ElmtListProgdin
Nama Oper asi Visibility
(private, public) Imple me ntasi 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
Nama Atri but
Visibility
(private, public) Imple me ntasi Atri but Kelas
patternName private private List<string>
patternName;
Sisa private private int sisa
Problem private private List<int>
problem;
Tabel B-7 Daftar ope rasi yang terdapat pada kelas ElmtSolution
Nama Oper asi
Visibility
(private, public) Imple me ntasi Operasi Kelas
Pattern public public string Pattern; Count public public int Count;
Tabel B-8 Daftar atribut yang terdapat pada kelas ElmtListProgdin
Nama Atri but
Visibility
(private, public) Imple me ntasi Atri but Kelas
Pattern private private string pattern;
C-1
LAMPIRAN C
HASIL PENGUJIAN PERANGKAT LUNAK
Lampiran C berisi tabel solusi pengujian perangkat lunak.
Tabel C-1 Solusi Tahap 1 me nggunakan brute force
Pattern Count
Pattern4 4
Pattern1 5
Pattern0 7
Tabel C-2 Solusi Tahap 1 me nggunakan greedy
Pattern Count
Pattern1 9
Pattern0 3
Pattern3 4
Tabel C-3 Solusi Tahap 1 me nggunakan program dinamis
Pattern Count
Pattern3 4
Pattern0 3
Pattern1 9
Tabel C-4 Solusi Tahap 2 dengan me nggunakan brute force
Pattern Count
Pattern4 8
Pattern3 21
Pattern0 50
Tabel C-5 Solusi Tahap 2 dengan me nggunakan greedy
Pattern Count
Pattern4 8
Pattern3 21
C-2
Pattern Count Pattern4 18 Pattern3 1 Pattern0 50 Pattern1 20Tabel C-7 Solusi Tahap 3 dengan me nggunakan brute force
Pattern Count Pattern12 2 Pattern11 4 Pattern7 7 Pattern5 2 Pattern2 3 Pattern1 5 Pattern0 2
Tabel C-8 Solusi Tahap 3 dengan me nggunakan greedy
Pattern Count Pattern3 2 Pattern2 1 Pattern1 5 Pattern0 2 Pattern11 6 Pattern5 2 Pattern7 7
Tabel C-9 Solusi Tahap 3 dengan me nggunakan program dinamis
Pattern Count Pattern13 4 Pattern11 2 Pattern9 3 Pattern7 1 Pattern0 2 Pattern1 5 Pattern2 5
C-3
Tabel C-10 Solusi Tahap 4 me nggunakan greedy
Pattern Count Pattern6 1 Pattern5 18 Pattern4 11 Pattern3 20 Pattern2 22 Pattern0 13 Pattern8 16 Pattern1 14
Tabel C-11 Solusi Tahap 4 me nggunakan program dinamis
Pattern Count Pattern8 16 Pattern1 14 Pattern2 22 Pattern0 13 Pattern3 20 Pattern4 11 Pattern6 1 Pattern5 18
Tabel C-12 Solusi Tahap 5 me nggunakan greedy
Pattern Count 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-4
Pattern Count 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 73Tabel C-14 Solusi Tahap 6 me nggunakan greedy
Pattern Count 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-5
Tabel C-15 Solusi Tahap 6 me nggunakan program dinamis
Pattern Count 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 me nggunakan greedy
Pattern Count Pattern10 200 Pattern5 500 Pattern8 450 Pattern26 60 Pattern16 130 Pattern4 148 Pattern12 110
Tabel C-17 Solusi Tahap 7 me nggunakan program dinamis
Pattern Count Pattern25 120 Pattern16 10 Pattern14 110 Pattern6 390 Pattern4 92 Pattern8 450 Pattern10 200