BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK
Bab ini berisi analisis dan perancangan terhadap perangkat lunak yang akan dibangun. Analisis dan perancangan tersebut diantaranya adalah pembuatan diagram use case, diagram kelas, skenario use case, modul program, perancangan antarmuka, dan lainlain.
4.1 Deskripsi Umum Sistem Perangkat lunak yang akan dibangun merupakan perangkat lunak berbasis desktop. Secara umum, perangkat lunak ini dibuat untuk mempermudah pekerjaan perusahaan konstruksi dalam melakukan pemotongan terhadap bar steel yang merupakan salah satu bahan baku dalam usaha konstruksi. Perangkat lunak ini dapat melakukan proses pemilihan keputusan urutan pola pemotongan yang optimal dari sejumlah masukan yang dimasukkan oleh pengguna. Masukan yang dimaksud adalah ukuran panjang rol standar bar steel yang dihasilkan pabrik, ukuran-ukuran panjang bar steel yang dibutuhkan oleh pengguna beserta jumlah yang dibutuhkan untuk masing- masing ukuran.
Pada perangkat lunak ini juga dibuat sebuah antarmuka untuk mempermudah pengguna dalam menggunakan perangkat lunak. Pengguna akan berinteraksi dengan perangkat lunak melalui antarmuka yang telah disediakan tersebut. Secara umum skema perangkat lunak dapat dilihat pada Gambar IV-1
Data Ukuran Bar Steel Algoritma yang digunakan
User
Feature : - Create Pattern - Optimize Pattern
Susunan Pola Paling Optimal
SYSTEM
Gambar IV-1 Skema Umum Perangkat Lunak IV-1
4.2 Fitur-Fitur Perangkat Lunak Perangkat lunak hanya memiliki 1 fitur utama yaitu memadukan pola-pola pemotongan terhadap bar steel sehingga sisa bar steel yang tidak digunakan paling minimal. Agar pengguna dapat menggunakan fitur tersebut dengan nyaman, diperlukan beberapa kebutuhan fungsional dan non fungsional yang harus dimiliki oleh perangkat lunak.
4.2.1 Kebutuhan Fungsional Kebutuhan fungsional yang harus dimiliki perangkat lunak adalah sebagai berik ut:
1. Perangkat lunak mampu menerima data masukan dari pengguna tanpa ada batasan maksimum atau minimum jumlah data masukan. 2. Perangkat lunak mampu membuat daftar seluruh pola pemotongan yang dapat diterapkan dari data masukan pengguna. 3. Perangkat lunak mampu membuat susunan pola-pola yang telah terdefinisi dari daftar pola menggunakan algoritma brute force, greedy, dan program dinamis untuk mencari susunan pola pemotongan yang paling optimal. 4. Perangkat lunak mampu menampilkan urutan pola pemotongan yang paling optimal menurut algoritma brute force, greedy, dan program dinamis. 5. Perangkat lunak mampu mencatat berapa waktu yang diperlukan oleh masingmasing algoritma dalam menyelesaikan masalah.
4.2.2 Kebutuhan non Fungsional Kebutuhan non fungsional yang harus dimiliki perangkat lunak adalah sebagai berikut:
1. Perangkat lunak memiliki antarmuka yang menarik dan mudah dimengerti dengan tombol-tombol yang mudah dilihat untuk memudahkan pengguna dalam menggunakan perangkat lunak. 2. Perangkat lunak dibuat dengan rancangan yang baik dan bertahap agar perangkat lunak dapat dikembangkan dengan mudah. 3. Perangkat lunak dapat melakukan proses pencarian solusi yang cepat. IV-2
4.3 Model Use Case 4.3.1 Diagram Use Case Diagram use case perangkat lunak dapat dilihat pada Gambar IV-2. Pada diagram use case dapat dilihat terdapat 2 use case yang dilakukan oleh 1 aktor, yaitu user. User dapat melakukan 2 use case dengan menggunakan perangkat lunak, yaitu membuat daftar pola dan menyusun pola.
Gambar IV-2 Diagram Use Case Perangkat Lunak
4.3.2 Definisi Aktor Pada perangkat lunak yang dibangun, hanya terdapat satu aktor, yaitu user. User adalah satu-satunya pengguna perangkat lunak yang dapat membuat daftar pola, memasukkan data, menyusun pola, dan memilih algoritma yang digunakan. IV-3
4.3.3 Definisi Use Case Terdapat 2 buah use case pada perangkat lunak ini, yaitu:
1. Menyusun pola Use case menyusun pola memungkinkan user untuk meminta sistem menyusun polapola yang telah digenerasi, menggunakan algoritma yang dipilih oleh user tersebut, untuk mendapatkan susunan pola pemotongan yang paling optimal, yaitu susunan pola yang menghasilkan sisa bar steel yang tidak terpakai paling minimal. Use case menyusun pola selalu menyertakan use case daftar pola dalam prosesnya karena untuk dapat menyusun pola, program membutuhkan daftar pola yang didapat dari hasil use case membuat daftar pola.
2. Membuat daftar pola Use case membuat daftar pola memungkinkan user untuk meminta sistem menggenerasi dan menampilkan pola-pola yang dapat diterapkan untuk memotong bar steel sesuai dengan data yang dimasukkan oleh user tersebut. Pola-pola yang dihasilkan oleh use case ini nantinya akan disusun menjadi solusi persoalan pemotongan bar steel pada use case menyusun pola
4.3.4 Skenario Use Case 1. Skenario use case Menyusun Pola Skenario use case Menyusun Pola dapat dilihat pada tabel IV-1.
2. Skenario use case Membuat Daftar Pola Skenario use case Membuat Daftar Pola dapat dilihat pada Tabel IV-2.
4.4 Analisis Kelas 4.4.1 Diagram Analisis Kelas Diagram kelas pada tahap analisis untuk pembangunan perangkat lunak dapat dilihat pada Gambar IV-3. Rencananya akan didefinisikan 6 kelas pada tahap analisis untuk merealisasikan perangkat lunak. IV-4
Tabel IV-1 Skenario Use case Menyusun Pola Nama use case
Menyusun Pola
Aktor Utama
User
Aktor Lain yang
-
Berpart isipasi Deskripsi
Fungsi yang memungkinkan user untuk meminta sistem menyusun pola-pola yang telah digenerasi, menggunakan algorit ma yang dipilih oleh user tersebut, untuk mendapatkan susunan pola pemotongan yang paling optimal, yaitu susunan pola yang menghasilkan sisa bar steel yang tidak terpakai paling minimal. Use case menyusun pola selalu menyertakan use case daftar pola dalam prosesnya.
Prekondisi
Use case Membuat Daftar Po la telah d ilakukan dan user sedang berada pada halaman yang menampilkan daftar pola
Skenario Utama
Aksi Aktor 1.
Respons Sistem
Menekan tombol “Next” 2.
Menjalankan fungsi untuk menyusun pola pemotongan terbaik menggunakan algorit ma yang telah dipilih user.
3.
Menampilkan pola pemotongan terbaik yang direpresentasikan dalam bentuk tabel.
Skenario Alternatif
Aksi Aktor
Respons Sistem
1a. User menekan to mbol “Back”, kemudian skenario kembali ke use case “Membuat Daftar Pola” skenario no mor 3. Kesimpulan
User dapat menemukan susunan pola pemotongan paling optimal dengan use case ini.
Poskondisi
Susunan pola pemotongan paling optimal ditamp ilkan ke layar oleh sistem
IV-5
Tabel IV-2 Skenario use case Membuat Daftar Pola Nama use case
Membuat Daftar Po la
Aktor Utama
User
Aktor Lain yang Berpartisipasi
-
Deskripsi
Fungsi yang memungkinkan user untuk meminta sistem menggenerasi dan menamp ilkan pola-pola yang dapat diterapkan untuk memotong bar steel sesuai dengan data yang dimasukkan oleh user tersebut.
Prekondisi
-
Skenario Utama
Aksi Aktor 1.
Respon Sistem
Memasukkan ju mlah macam bar steel yang dibutuhkan dan yang tersedia. 2.
Menampilkan tabel kosong untuk diisi dengan data pencarian.
3.
Memasukkan data ukuran bar steel standar yang tersedia dan ukuran bar steel yang dibutuhkan, kemudia menekan to mbol “Next”. 4.
Membuat daftar pola yang bisa diterapkan,
5.
Menampilkan daftar pola yang dapat diterapkan dari data yang dimasukkan.yang direpresentasikan dalam bentuk tabel.
Skenario Alternatif
Aksi Aktor
Respon Sistem
3a. User menekan to mbol “Back”, kemudian skenario kembali ke no mor 1. Kesimpulan
User dapat mengetahui pola seperti apa saja yang dapat diterapkan dari data yang dimasukkan
Poskondisi
Susunan daftar pola yang dapat diterapkan ditampilkan ke layar oleh sistem
IV-6
Interface
ListProgdin
ElmtListProgdin
ListPattern
ElmtList
Controller
Gambar IV-3 Diagram Kelas Analisis
4.4.2 Penjelasan Kelas pada Tahap Analisis Kelas-kelas yang dibuat dalam pembangunan perangkat lunak adalah sebagai berikut: 1. Kelas Interface Kelas ini berfungsi sebagai antarmuka pengguna untuk melakukan interaksi dengan perangkat lunak. Pengguna akan melakukan masukan- masukan baik perintah ataupun data lain melalui kelas ini, hasil- hasil keluaran dari perangkat lunak pun akan ditampilkan melalui kelas ini. 2. Kelas Controller Kelas ini adalah kelas controller yang menyimpan semua fungsi utama untuk mengatur jalannya program serta menghubungkan kelas interface dan kelas ListProgdin dan kelas ListPattern. 3. Kelas ListPattern Kelas ini yang terlibat langsung dalam pencarian pola paling optimal. Kelas ini berisi kumpulan ElmtList. 4. Kelas ElmtList Kelas ElmtList berfungsi untuk menyimpan data pattern dan sisa yang telah dihasilkan dengan susunan pattern tersebut. Kelas ini menjadi elemen pada kelas ListPattern. 5. Kelas ListProgdin Kelas ini yang akan digunakan pada pencarian menggunakan algoritma program dinamis. Kelas ini berisi kumpulan ElmtListProgdin. 6. Kelas ElmtListProgdin Kelas ini berisi kumpulan ListPattern beserta sisa yang telah dihasilkan. Kelas ini akan menjadi elemen dari kelas ListProgdin. IV-7
4.5 Perancangan Kelas 4.5.1 Diagram Perancangan Kelas Diagram kelas tahap perancangan dapat dilihat pada Gambar IV-4.
Gambar IV-4 Diagram Perancangan Kelas
4.5.2 Deskripsi Diagram Perancangan Kelas Pada tahap perancangan, terdapat 7 kelas yang terdefinisi, yaitu: 1. Kelas Utilities Kelas yang merupakan turunan dari kelas Controller yang ada pada tahap analisis. Kelas ini merupakan kelas Controller yang menyimpan semua fungsi utama untuk mengatur jalannya program serta menghubungkan kelas Interface dengan kelas ListProgdin dan kelas ListPattern IV-8
2. Kelas ElmtList Kelas ini turunan dari kelas ElmtList yang ada pada tahap analisis. Kelas ElmtList berfungsi menyimpan data pattern dan sisa yang telah dihasilkan dengan susunan pattern tersebut. Kelas ini menjadi elemen pada kelas ListPattern. 3. Kelas ElmtListProgdin Kelas yang merupakan turunan dari kelas ElmtListProgdin yang ada pada tahap analisis. Kelas ini berisi kumpulan ListPattern beserta sisa yang telah dihasilkan. Kelas ini akan menjadi elemen dari kelas ListProgdin. 4. Kelas ElmtSolution Kelas yang merupakan turunan dari kelas ElmtListProgdin yang ada pada tahap analisis. Kelas ini berisi kumpulan nama pattern beserta jumlahnya. Kelas ini akan menjadi elemen dari kelas ListSolution. 5. Kelas ListPattern Kelas yang merupakan turunan dari kelas ListPattern yang ada pada tahap analisis. Kelas ini merupakan kelas entity yang menyimpan nilai- nilai variabel pola pemotongan yang akan disusun menjadi sususan pola optimal yang dibutuhkan selama proses pencarian. 6. Kelas ListProgdin Kelas yang merupakan turunan dari kelas ListProgdin yang ada pada tahap analisis. Kelas ini merupakan kelas entity yang menyimpan nilai- nilai variabel yang dibutuhkan selama proses penyusunan pola pada algoritma program dinamis berlangsung. 7. Kelas ListSolution Kelas yang merupakan turunan dari kelas ElmtListProgdin yang ada pada tahap analisis. Kelas ini berisi kumpulan elemen bertipe ElmtSolution yang akan menjadi struktur data yang akan digunakan saat menampilkan solusi susunan pola pemotongan.
4.5.3 Operasi dan Atribut Daftar operasi dan atribut Kelas Utilities, Kelas ElmtList, Kelas ElmtListProgdin, dan Kelas ElmtSolution pada tahap perancangan dapat dilihat pada Lampiran A, sedangkan penjelasan mengenai operasi dan atribut pada Kelas ListPattern, Kelas ListProgdin, dan Kelas ListSolution akan dijelaskan pada subbab ini. IV-9
1. Kelas ListPattern Kelas list merupakan kelas bawaan dari library Microsoft Visual Studio 2005. Elemen yang digunakan pada list bawaan ini adalah elemen dari kelas bentukan ElmtList.
2. Kelas ListProgdin Kelas list merupakan kelas bawaan dari library Microsoft Visual Studio 2005. Elemen yang digunakan pada list bawaan ini adalah elemen dari kelas bentukan ElmtListProgdin.
3. Kelas ListSolution Kelas list merupakan kelas bawaan dari library Microsoft Visual Studio 2005. Elemen yang digunakan pada list bawaan ini adalah elemen dari kelas bentukan ElmtSolution.
4.6 Perancangan Antarmuka 4.6.1 Perancangan Halaman Form1 Gambar IV-5 merupakan rancangan halaman Form1. Pada halaman ini user diminta untuk memasukkan jumlah macam ukuran bar steel yang tersedia dan jumlah macam ukuran bar steel yang dibutuhkan. Kemudian user dapat melanjutkan penggunaan program ke tahap selanjutnya dengan menekan tombol “Next” yang ada di bawah kanan layar. Dengan menekan tombol “Next” user akan dibawa ke halaman Form2.
Gambar IV-5 Perancangan Halaman Form1 IV-10
Daftar operasi dan atribut yang terdapat pada kelas antarmuka Form1 dapat dilihat pada Lampiran A Tabel A-9 dan Tabel A-10.
4.6.2 Perancangan Halaman Form2 Gambar IV-6 merupakan rancangan halaman Form2. Pada halaman ini user diminta untuk memasukkan data yang diperlukan untuk pencarian susunan pola pemotongan optimal. Datagridview yang di atas digunakan untuk memasukkan ukuran bar steel yang tersedia untuk dipotong-potong, sedangkan datagridview yang di bawah digunakan untuk menerima masukan ukuran-ukuran bar steel yang dibutuhkan beserta jumlah yang diinginkan untuk masing- masing ukuran tersebut. Tombol “Back” digunakan untuk kembali ke Form1, sedangkan tombol “Next” digunakan untuk ke tahap selanjutnya yaitu melihat hasil pembangkitan daftar pola pemotongan pada Form3.
Gambar IV-6 Perancangan Halaman Form2 Daftar operasi dan atribut yang terdapat pada kelas antamuka Form2 dapat dilihat pada Lampiran A Tabel A-11 dan Tabel A-12.
4.6.3 Perancangan Halaman Form3 Gambar IV-7 merupakan rancangan halaman Form3. Pada halaman ini user dapat melihat hasil pembangkitan pola-pola pemotongan yang dibentuk dari data yang IV-11
dimasukkan user. User juga diminta untuk memilih metode yang akan digunakan untuk mencari sususan pola paling optimal dengan menekan salah satu tombol radio yang ada dibawah. Tombol “Back” yang ada dibawah digunakan untuk kembali ke Form2, sedangkan tombol “Create Solution” digunakan untuk melihat solusi akhir, yaitu susunan pola pemotongan, pada Form5.
Daftar operasi dan atribut yang terdapat pada kelas Form3 dapat dilihat pada Lampiran A Tabel A-13 dan Tabel A-14.
Gambar IV-7 Perancangan Halaman Form3
4.6.4 Perancangan Halaman Form5 Gambar IV-8 merupakan rancangan halaman Form5. Pada halaman ini user dapat melihat susunan pola pemotongan paling optimal hasil dari pencarian dengan metode pencarian yang telah dipilih sebelumnya dalam bentuk datagridview . Pada halaman ini juga dapat dilihat berapa sisa bar steel yang tidak terpakai jika menggunakan susunan pola tersebut. Waktu yang dibutuhkan untuk menemukan solusi juga ditampilkan pada halaman ini dalam satuan jam, menit, detik, dan milidetik. User juga dapat kembali ke Form3 untuk mengganti metode penyelesaian dengan menekan tombol “Back” atau selesai dan kembali ke halaman awal dengan menekan tombol “Finish”.
IV-12
Daftar operasi dan atribut yang terdapat pada kelas Form5 dapat dilihat pada Lampiran A Tabel A-15 dan Tabel A-16.
Gambar IV-8 Perancangan Halaman Form5
4.6.5 Perancangan Halaman Form6 Gambar IV-9 merupakan rancangan halaman Form6. Halaman ini merupakan halaman pembuka perangkat lunak. Pada halaman ini user memiliki 2 pilihan, yaitu menjalankan program dengan menekan tombol “Run” atau keluar dari program dengan menekan tombol “Exit”.
Daftar operasi dan atribut yang terdapat pada kelas Form6 dapat dilihat pada Lampiran A Tabel A-17 dan Tabel A-18.
4.7 Modul Program Pada perangkat lunak ini terdapat 3 buah modul utama, yaitu: 1. Modul Antarmuka Modul ini berisi fungsi- fungsi yang akan digunakan untuk menyambungkan fungsi penyelesaian masalah dengan interface. Fungsi- fungsi pada modul ini yang akan mengambil dan menampilkan data dari dan ke antarmuka program.
IV-13
Gambar IV-9 Perancangan Halaman Form6
2. Modul Kontrol Modul ini yang menyimpan semua fungsi utama untuk mengatur jalannya program beserta fungsi pendukung yang digunakan dalam menjalankan fungsi utama. 3. Modul Entitas Modul ini berisi kelas-kelas entitas yang berguna untuk menyimpan variabelvariabel yang akan digunakan selama proses pencarian solusi.
Interaksi dan keterkaitan antara 3 modul tersebut dapat dilihat pada Gambar IV-10
Modul Kontrol
Modul Antarmuka
Modul Entitas
Gambar IV-10 Inte raksi dan keterkaitan antar modul IV-14