TA : Rancang Bangun Aplikasi Cutting Stock Optimization dengan Metode Integer Linear Programming pada Toko Kaca Rejeki.
TOKO KACA REJEKI
TUGAS AKHIR
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA
2014
Nama : Teguh Wijaya Nim : 09410100122 Program : S1 ( Strata Satu ) Jurusan : Sistem Informasi
(2)
TOKO KACA REJEKI
TUGAS AKHIR
Diajukan sebagai salah satu syarat untuk menyelesaikan Program Sarjana Komputer
Oleh:
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA
2014
Nama : Teguh Wijaya Nim : 09410100122 Program : S1 ( Strata Satu ) Jurusan : Sistem Informasi
(3)
Seiiring dengan banyaknya jumlah pembangunan rumah dan gedung, dibutuhkan banyak suplai-suplai bahan-bahan bangunan, termasuk yang paling penting adalah kaca. Untuk itu, toko kaca harus bisa menyediakan kaca sesuai dengan kebutuhan – kebutuhan tersebut. Dalam proses pemotongan kaca
seringkali terdapat sisa pemotongan (waste) yang dirasa cukup besar. Hal ini
dikarenakan pemotongan tidak mempertimbangkan sisa kaca dan juga ketidaktelitian dalam menentukan pola pemotongan, sehingga menghasilkan sisa pemotongan yang besar juga.
Solusi yang dapat digunakan untuk menyelesaikan masalah tersebut adalah
dengan menggunakan metode Integer Linear Programming agar proses
pemotongan menjadi lebih efektif dan efisien. Efektif yang dimaksud adalah memaksimalkan luas bidang kaca, sehingga bisa terpakai secara optimal. Efisien yang dimaksud adalah pengurangan biaya material yang muncul dari sisa kaca yang terbuang
Dengan mengoptimasi pemotongan menggunakan metode Integer Linear
Programming, didapatkan luas sisa kaca antara hasil dari perhitungan secara manual dan perhitungan menggunakan aplikasi mengalami penurunan rata-rata sebesar 56, 45%
Keywords: Cutting Stock Optimization, Integer Linear Programming
(4)
ABSTRAK ... vii
KATA PENGANTAR ... viii
DAFTAR ISI ... x
DAFTAR TABEL ... xiii
DAFTAR GAMBAR ... xv
DAFTAR LAMPIRAN ... xvii
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Perumusan Masalah ... 2
1.3 Batasan Masalah ... 3
1.4 Tujuan ... 3
1.5 Sistematika Penulisan ... 3
BAB II LANDASAN TEORI ... 5
2.1 Aplikasi ... 5
2.2 Cutting Stock Optimization ... 5
2.2.1. Karakteristik Pemotongan Bahan (Cutting Stock) ... 5
2.2.2. Pola Pemotongan ... 6
2.3 Pembentukan Fungsi Tujuan... 7
2.3.1. Pengembangan Model Matematis ... 7
2.3.2. Penambahan Batasan Baru ... 7
2.3.3. Identifikasi Variabel ... 9
2.4Integer Linear Programming ... 9
(5)
2.5.1. System Flow... 16
2.5.2. Data Flow Diagram (DFD) ... 17
2.6 Siklus Hidup Pengembangan Sistem ... 19
2.6.1. Tahapan SDLC ... 20
2.6.2. Model SDLC ... 26
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 27
3.1 Analisis Permasalahan ... 27
3.2 Permasalahan ... 30
3.3.Solusi Permasalahan ... 31
3.3.1. Kebutuhan Perangkat Lunak ... 31
3.3.1.1.Elisitasi Kebutuhan (Requirement Elicitation) ... 32
3.3.1.2.Analisis Kebutuhan Administrasi ... 34
3.3.1.3.Analisis Kebutuhan Pemotongan ... 34
3.3.1.4.Spesifikasi Kebutuhan (Requirement Spesification) ... 34
3.3.2.Desain Sistem (Software Design) ... 37
3.3.2.1. Alur Sistem (System Flow) ... 37
3.3.2.2. Context Diagram ... 48
3.3.2.3. Diagram Berjenjang ... 49
3.3.2.4. DataFlowDiagram ... 50
3.3.2.5. EntityRelationshipDiagram ... 56
3.3.2.6. CDM (ConceptualDataModel) ... 56
(6)
3.3.2.9. Perancangan Prosedur dan Program Unit ... 63
3.3.2.10. Studi Kasus Optimasi Pemotongan Kaca ... 70
3.3.2.11. UnitProgram ... 79
3.3.2.12. Flowchart Program ... 81
3.3.2.13.Pseudocode ... 82
BAB IV IMPLEMENTASI DAN EVALUASI ... 84
4.1 Implementasi ... 84
4.2 Penjelasan Penggunaan Aplikasi ... 84
4.2.1 Form Login ... 84
4.2.2 Form Aplikasi Pegguna Sebagai Administrasi ... 86
4.2.3 Form Aplikasi Pengguna Sebagai Bagian Pemotongan ... 89
4.3 Uji Coba Fungsional dan Non Fungsional ... 95
4.4 Evaluasi ... 106
4.4.1 Perhitungan dengan Aplikasi ... 106
4.4.2 Perhitungan manual tanpa Aplikasi ... 108
4.4.3 Perbandingan Hasil Evaluasi ... 110
BAB V PENUTUP ... 112
5.1 Kesimpulan ... 112
5.2 Saran ... 112
DAFTAR PUSTAKA ... 113
LAMPIRAN ... 114
(7)
1.1Latar Belakang Masalah
Toko Kaca Rejeki adalah salah satu toko yang menjual berbagai jenis kaca. Toko kaca Rejeki berlokasi di Jl. P.B. Sudirman 186, Kota Banyuwangi, Jawa Timur. Kaca yang dijual umumnya digunakan dalam pembangunan gedung, perabot, atau pembuatan aquarium. Kaca dibedakan menjadi 2 golongan, yaitu kaca lembaran dan kaca potongan. Kaca lembaran adalah kaca yang memiliki ukuran paten dari pabrik. Sedangkan kaca potongan adalah kaca yang memerlukan proses pemotongan terlebih dahulu, sebelum digunakan kembali. Kaca lembaran umumnya dijual ke toko-toko retail yang lebih kecil. Sedangkan kaca potongan adalah sisa-sisa kaca yang telah dipotong dari kaca lembaran.
Seluruh proses transaksi di Toko Kaca Rejeki masih dilakukan secara manual. Proses bisnis pada toko ini dimulai ketika order kaca dari kosumen diterima oleh bagian administrasi. Kemudian dilakukan pengelompokkan pada order kaca tersebut. Order kaca tersebut dikelompokkan menjadi order kaca lembaran dan order kaca potongan. Apabila order kaca adalah jenis kaca lembaran, maka kaca bisa langsung diambil dari gudang. Apabila order kaca merupakan jenis kaca potongan, maka order diberikan ke bagian pemotongan untuk dilakukan proses pemotongan. Setelah kaca dipotong, maka kaca diberikan kepada konsumen.
Permasalahan muncul ketika didapati order kaca potongan dalam jumlah yang besar. Order kaca potongan dalam jumlah besar adalah kaca untuk jendela gedung atau aquarium. Pada proses pemotongan, sering terjadi ketidaktelitian dalam menganalisa
(8)
polanya. Akibatnya sisa kaca yang dihasilkan kurang minimal. Hal tersebut baru dapat diketahui ketika dilakukan perhitungan dan penggambaran secara spesifik, dari pola yang akan dipotong. Setelah dilakukan perbandingan diketahui bahwa terjadi ketidakefektif dan ketidakefisienan pemotongan. Hal itu menyebabkan sisa kaca terbuang lebih banyak, sehingga menimbulkan biaya tambahan. Dampak dari permasalahan tersebut tidak terlihat kasat mata. Apabila dilakukan perhitungan yang lebih detil dari contoh kasus pemotongan kaca untuk aquarium dengan ukuran 80 x 40 ,
menghasilkan luas sisa bidang pemotongan sebesar 5317 cm2. Permasalahan seperti ini
biasa disebut sebagai permasalahan cutting stock.
Permasalahan cutting stock tersebut kurang diperhatikan oleh pihak toko, karena
dampaknya tidak langsung terlihat. Untuk melakukan cutting stock optimization,
dibutuhkan subuah aplikasi yang dapat memberikan manfaat perhitungan dalam mengoptimasi proses pemotongan kaca.
Dengan mengoptimasi proses pemotongan kaca, diharapkan dapat meningkatkan proses pemotongan menjadi lebih efektif dan efisien. Efektif yang dimaksud adalah mengenai memaksimalkan luas bidang kaca, sehingga bisa terpakai secara optimal. Efisien yang dimaksud adalah pengurangan biaya material yang muncul dari sisa kaca yang terbuang.
1.2Perumusan Masalah
Berdasarkan latar belakang diatas, dapat dirumuskan permasalahan yaitu bagaimana membuat rancang bangun aplikasi untuk mengoptimasi pemotongan kaca dengan
(9)
1.3Batasan Masalah
Dalam pembuatan Tugas Akhir ini, ruang lingkup permasalahan dibatasi pada:
a. Kaca yang digunakan hanya berbentuk persegi empat.
b. Biaya variabel yang digunakan hanya biaya material dari sisa kaca yang
terbuang.
c. Tidak membahas perhitungan harga kaca.
1.4Tujuan
Berdasarkan rumusan masalah diatas, maka tujuan dari penyusunan tugas akhir ini adalah menghasilkan rancang bangun aplikasi yang dapat mengoptimasi pemotongan
kaca dengan metode Integer Linear Programming.
1.5Sistematika Penulisan
Sistematika penulisan yang digunakan dalam penyusunan laporan Tugas Akhir ini dibedakan dengan pembagian bab – bab dengan rincian sebagai berikut:
BAB I : PENDAHULUAN
Dalam bab ini dijelaskan tentang latar belakang, perumusan masalah, pembatasan masalah dan tujuan tugas akhir ini.
BAB II : LANDASAN TEORI
Dalam bab ini dijelaskan tentang klasifikasi penentuan rute, siklus hidup pengembangan sistem, model pengembangan sistem, tahapan pengembangan
(10)
BAB III : PERANCANGAN SISTEM
Dalam bab ini dijelaskan tentang tahap-tahap yang dikerjakan dalam penyelesaian Tugas Akhir mulai dari observasi, pendahuluan, identifikasi masalah dan tujuan, studi pustaka, pengumpulan data, klasifikasi data, analisis kebutuhan sistem, perancangan sistem yang meliputi desain sistem flow yang digunakan, desain DFD, desain ERD, struktur basis data, desain antar muka, implementasi dan evaluasi sampai didapatkan suatu kesimpulan dan saran.
BAB IV : IMPLEMENTASI DAN EVALUASI SISTEM
Dalam bab ini dijelaskan tentang evaluasi dari aplikasi yang dibuat, proses
implementasi dari aplikasi yang telah melalui tahap evaluasi dari Server sampai
Client.
BAB V : PENUTUP
Dalam bab ini dijelaskan tentang penutup yang berisi hasil penelitian yang sudah diselesaikan dan permasalahan-permasalahan yang dihadapi dan saran-saran penelitian lebih lanjut.
(11)
2.1. Aplikasi
Aplikasi berasal dari kata application yang artinya penerapan, lamaran,
penggunaan. Secara istilah aplikasi adalah program siap pakai yang direka untuk melaksanakan suatu fungsi bagi pengguna atau aplikasi yang lain dan dapat digunakan oleh sasaran yang dituju.
Menurut Whitten ( dalam Kristanto, 1994 : 60 ) Perancangan Sistem adalah “Proses dimana keperluan pengguna dirubah ke dalam bentuk paket perangkat lunak dan atau kedalam spesifikasi pada komputer yang berdasarkan pada sistem informasi.”.
2.2. Cutting Stock Optimization
Cutting stock optimization merupakan permasalahan optimasi dalam pengkombinasian, sehingga dapat ditentukan solusi dari beberapa solusi yang mungkin, yang memenuhi fungsi pembatas yang ada. Solusi yang ditawarkan adalah dengan mengkombinasikan beberapa pieces dengan ukuran berbeda ke dalam persegi empat (bahan baku) sehingga didapatkan sisa kaca seminimal mungkin.
2.2.1. Karakteristik Pemotongan Bahan (Cutting Stock)
Karakteristik pemotongan bahan adalah :
a. Terdapat bahan baku yang berbentuk persegi empat (selanjutnya disebut
rectangle) yang mempunyai ukuran tertentu.
b. Terdapat m jenis potongan yang dihasilkan (yang selanjutnya disebut dengan
pieces) yang masing-masing berukuran p dengan jumlah permintaan n tertentu.
(12)
c. Setiap potong mempunyai nilai tertentu yang bisa berupa keuntungan yang diperoleh atau berupa ukuran luas dalam upaya meminimasi sisa bahan baku.
d. Berusaha membentuk suatu layout potong yang meminimumkan fungsi tujuan
yang melekat pada setiap potong yang ada.
2.2.2. Pola Pemotongan
a. Guillotine Pattern
Guillotine Pattern merupakan pola pemotongan yang dimulai dari satu sisi segi empat yang kemudian dilanjutkan pada sisi lainnya. Pemotongan pertama dengan tipe
Guillotine Pattern adalah dengan memotong bahan baku dengan panjang atau lebar yang sama. Pemotongan tersebut menghasilkan dua atau lebih potongan yang mempunyai panjang atau lebar yang sama, bukan kedua-duanya.
b. Non-guillotine Pattern
Pemotongan dengan tipe non-guillotine dilakukan apabila ukuran pieces yang
diinginkan tidak memungkinkan untuk digabung dengan pieces yang lain.
c. Pola Dua Tahap Pemotongan (Two Stage Pattern)
Tahap pertama, pemotongan secara paralel atau pemotongan bahan secara
horizontal, sehingga rectangle terbagi menjadi beberapa rectangle dengan panjang yang
sama. Tahap kedua adalah pemotongan satu persatu bagian rectangle.
d. Pola Tiga Tahap Pemotongan (Three Stage Pattern)
Tahap pertama, pemotongan rectangle menjadi bagian-bagian dengan panjang
atau lebar yang sama. Arah pemotongan tersebut dapat secara vertikal maupun secara horizontal. Tahap kedua, hasil dari pemotongan tersebut dilanjutkan dengan
(13)
pemotongan satu persatu yang terlebih dahulu mengubah arah pemotongan. Tahap
ketiga, pemotongan dilakukan pada bagian yang menghasilkan pieces.
2.3. Pembentukan Fungsi Tujuan
Sifat yang perlu diperhatikan dalam memilih kriteria untuk fungsi tujuan
menurut Simatupang ( 1995 : 80-81) adalah sebagai berikut :
a. Lengkap b. Operasional c. Tidak Berlebihan d. Minimum
2.3.1. Pengembangan Model Sistematis
Pengembangan model matematis dapat dimulai dengan menjawab ketiga pertanyaan berikut : Menurut Hamdy ( 1996 : 17 )
a. Apa yang diusahakan untuk ditentukan oleh model tersebut? Dengan kata lain, apa variable (yang tidak diketahui) dari masalah tersebut?
b. Apa batasan yang harus dikenakan atas variable untuk memenuhi batasan sistem yang dimodel tersebut?
c. Apa tujuan (sasaran) yang harus dicapai untuk menentukan pemecahan optimum (terbaik) dari semua nilai yang layak dari variable tersebut?
2.3.2. Penambahan Batasan Baru
Penambahan batasan baru dapat menghasilkan satu di antara dua kondisi : Menurut Hamdy ( 1996 : 172 )
a. Batasan itu dipenuhi oleh pemecahan saat ini, dalam kasus mana batasan
(14)
b. Batasan tersebut tidak dipenuhi oleh pemecahan saat ini,. Dalam kasus ini pemecahan baru diperoleh dengan metode simpleks dual.
Yang kita lakukan disini adalah mendapatkan kembali kelayakan. Pertama – tama, tempatkan batasan baru tersebut dalam bentuk standar dengan menambahkan variabel slack atau surplus sebagaimana diperlukan. Lalu substitusi keluar setiap variabel dasar saat ini dalam batasan tersebut dalam bentuk variable non dasar (saat ini). Langkah terakhir adalah menambahkan batasan yag dimodifikasi ke tabel optimum saat ini dan menerapkan simpleks dual untuk memperoleh kembali kelayakan.
Batasan yang dimodifikasi ini sekarang ditambahkan ke tabel optimal saat ini seperti diberikan berikut ini:
Tabel 2.1 Kombinasi Potongan
Dasar X1 X2 X3 X4 X5 X6 X7 Pemecahan
Z 0 0 1/3 4/3 0 0 0 38/3
X2 0 1 2/3 -1/3 0 0 0 4/3
X1 1 0 -1/3 2/3 0 0 0 10/3
X5 0 0 -1 1 1 0 0 3
X6 0 0 -2/3 1/3 0 1 0 2/3
X7 0 0 1/3 -2/3 0 0 1 -1/3
Dimana variabel :
X1 = Jumlah pola potong yang pertama. X2 = Jumlah pola potong yang kedua. X3 = Jumlah pola potong yang ketiga. X4 = Jumlah pola potong yang keempat.
(15)
X5 = Jumlah pola potong yang kelima. X6 = Jumlah pola potong yang keenam. X7 = Jumlah pola potong yang ketujuh.
Jadi batasan baru tersebut yang diekspresikan dalam bentuk variabel nondasar menjadi: (10/3) + (1/3)x3 – (2/3)x4 +x7 = 3
(1/3)x3 – (2/3)x4 + x7 = -1/3
2.3.3. Identifikasi Variabel
Dalam pemodelan, variabel yang teridentifikasikan hendaknya dapat digolongkan menjadi empat jenis yaitu : Menurut Simatupang (1995 : 94-95)
a. Variabel nominal b. Variabel ordinal c. Variabel interval d. Variabel rasio
2.4. Integer Linear Programming
Linear Programming merupakan metode atau teknik matematik yang digunakan
untuk membantu dalam pengambilan keputusan. Di dalam linear programming, seluruh
fungsinya (fungsi objektif serta fungsi pembatas) haruslah linear.
Terdapat empat asumsi dasar dalam penyelesaian masalah dengan menggunakan model
linear programming, yaitu : Menurut Lieberman dkk ( 1995 : 38-44) a. Proporsionality.
b. Divisibility. c. Addivity. d. Certainty .
(16)
Integer Programming (IP) merupakan bentuk lain dari Linear Programming
(LP) yang muncul karena tidak semua variabel keputusan dapat berupa bilangan
pecahan dengan kata lain asumsi divisibility melemah atau hilang sama sekali.
Metode yang digunakan untuk memaksa pemecahan optimum dari linear programming
yang dilonggarkan untuk bergerak ke arah pemecahan integer yang diinginkan adalah
branch & bound. Algoritma Branch & Bound berlaku baik untuk masalah integer murni
maupun masalah integer campuran. Keuntungan utamanya adalah bahwa batas atas
tersebut dapat diestimasi dengan cepat dan dengan perhitungan minimal.
Tahapan yang dilakukan dalam algoritma branch & bound adalah sebagai berikut :
Menurut Dimyati dkk ( 2003 : 217-227) a. Branching
Apabila dari penyelesaian LP relaksasi diperoleh nilai variabel yang tidak
integer, maka dilakukan branching atau pencabangan. Pencabangan dilakukan pada
variabel yang bernilai pecahan atau tidak integer. Apabila terdapat lebih dari satu
variabel yang bernilai pecahan, maka pilih secara sembarang (dari variabel pecahan tersebut) variabel yang akan dilakukan pencabangan.
b. Bounding
Setelah dilakukan branching, maka langkah selanjutnya adalah memilih salah
satu subpersoalan yang belum diselesaikan dengan menerapkan aturan LIFO. Dari
penghitungan yang dilakukan tersebut, diperoleh nilai z untuk masing-masing
(17)
c. Fathoming
Ada tiga situasi yang menyebabkan suatu subpersoalan fathomed, yaitu :
a. Apabila subpersoalan tersebut tidak feasible.
b. Apabila subpersoalan itu memberikan solusi optimal dimana seluruh variabelnya berharga integer.
c. Apabila nilai z optimal untuk subpersoalan itu tidak lebih baik dari nilai z optimal
subpersoalan lain (dalam persoalan maksimasi berarti nilai z optimal dari subpersoalan
itu tidak lebih besar daripada batas bawah yang telah diperoleh).
Apabila subpersoalan berada dalam situasi a atau c maka subpersoalan tersebut dapat
diabaikan atau dieliminasi dari pertimbangan selanjutnya.
2.4.1 Metode Simpleks
Karena kesulitan menggambarkan grafik berdimensi banyak maka penyelesaian masalah pemrograman linier yang melibatkan lebih dari dua variable menjadi tidak praktis atau tidak mungkin. Dalam keadaan ini kebutuhan metode solusi yang lebih
umum menjadi nyata. Metode umum ini dikenal dengan nama Algoritma Simpleks yang
dirancang untuk menyelesaikan seluruh masalah program linier, baik yang melibatkan dua variable maupun lebih dua variabel.
Penyelesaian masalah pemrograman linear menggunakan metode simpleks ini
melalui perhitungan ulang (iteration) dimana langkah langkah perhitungan yang sama
diulang berkali-kali sebelum hasil optimum dicapai.
Dalam penyelesaian masalah program linear dengan grafik, telah dinyatakan bahwa solusi optimum selalu terletak pada titik pojok ruang solusi. Metode simpleks didasar pada gagasan ini, dengan langkah-langkah sebagai berikut :
(18)
a. Dimulai pada suatu titik pojok yang layak, biasanya titik asal (yang disebut sebagai solusi awal).
b. Bergerak dari suatu titik ke pojok yang lain yang berdekatan, pergerakan ini
akan menghasilkan nilai fungsi tujuan yang lebih baik (meningkatkan untuk masalah maksimasi dan menurunkan untuk masalah minimasi). Jika solusi yang lebih baik telah diperoleh, prosedur simpleks dengan sendirinya akan menghilangkan semua solusi – solusi lain yang kurang baik.
c. Proses ini dilakukan berulang – ulang sampai suatu solusi yang lebih baik tak
dapat ditemukan. Proses simpleks kemudian berhenti dan solusi optimum diperoleh.
Mengubah bentuk baku model pemrograman linear ke dalam bentuk tabel akan memudahkan proses perhitungan simpleks. Langkah – langkah perhitungan dalam algoritma simpleks adalah :
a. Berdasar bentuk baku, tentukan solusi awal, dengan menetapkan ( n – m )
variable nonbasis sama dengan nol. Dimana n jumlah variable dan m banyaknya kendala.
b. Pilih sebuah entering variable diantara yang sedang menjadi variabel nonbasis,
yang jika dinaikkan diatas nol dapat memperbaiki nilai fungsi tujuan. Jika tak ada, berhenti berarti solusi sudah optimal. Jika tidak dilanjutkan ke langkah 1.
c. Plih sebuah leaving variabel diantara yang sedang menjadi variable basis yang
harus menjadi nonbasis (nilainya menjadi nol) ketika entering variable menjadi variable basis.
(19)
d. Tentukan solusi yang baru dengan membuat entering variable dan leaving variable menjadi nonbasis. Kembali ke langkah 2.
2.5 Analisis dan Perancangan Sistem
Penguraian dari suatu sistem informasi yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya.
Tahap analisis sistem dilakukan setelah tahap perencanaan sistem (system
planning) dan sebelum tahap desain sistem (system design). Tahap analisis merupakan tahap yang kritis dan sangat penting, karena kesalahan di dalam tahap ini juga akan menyebabkan kesalahan di tahap selanjutnya.
Dalam tahap analisis sistem terdapat langkah-langkah dasar yang harus dilakukan oleh analis sistem sebagai berikut:
1. Identify, yaitu mengidentifikasi masalah.
2. Understand, yaitu memahami kerja dari sistem yang ada.
3. Analyze, yaitu menganalisis sistem.
4. Report, yaitu membuat laporan hasil analisis.
Setelah tahap analisis sistem selesai dilakukan, maka analis sistem telah mendapatkan gambaran dengan jelas apa yang harus dikerjakan. Tiba waktunya
(20)
sekarang bagi analis sistem untuk memikirkan bagaimana membentuk sistem tersebut. Tahap ini disebut dengan desain sistem.
Menurut Kendall & Kendall Brother (2003), Analisa dan Perancangan Sistem dipergunakan untuk menganalisis, merancang, dan mengimplementasikan peningkatan-peningkatan fungsi bisnis yang dapat dicapai melalui penggunaan sistem informasi terkomputerisasi.
A. Blok Masukan
Input mewakili data yang masuk ke dalam sistem informasi. Input disini termasuk metode-metode dan media untuk menangkap data yang akan dimasukkan, yang dapat berupa dokumen-dokumen dasar.
B. Blok Model
Blok ini terdiri dari kombinasi prosedur, logika dan model matematik yang akan memanipulasi data input dan data yang tersimpan di basis data dengan cara yang sudah ditentukan untuk menghasilkan keluaran yang diinginkan.
C. Blok Keluaran
Produk dari sistem informasi adalah keluaran yang merupakan informasi yang berkualitas dan dokumentasi yang berguna untuk semua tingkatan manajemen serta semua pemakai sistem.
(21)
D. Blok Teknologi
Teknologi merupakan “kotak alat” (toolbox) dalam sistem informasi. Teknologi
digunakan untuk menerima input, menjalankan model, menyimpan dan mengakses data, menghasilkan dan mengirimkan keluaran dan membantu pengendalian dari sistem secara keseluruhan.
E. Blok Basis Data
Basis data (database) merupakan kumpulan dari data yang saling berhubungan
satu dengan lainnya, tersimpan di perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. Data perlu disimpan di dalam basis data untuk keperluan penyediaan informasi lebih lanjut. Data di dalam basis data perlu diorganisasikan sedemikian rupa, supaya informasi yang dihasilkan berkualitas. Organisasi basis data yang baik juga berguna untuk efisiensi kapasitas penyimpannya. Basis data diakses atau dimanipulasi dengan menggunakan perangkat lunak paket yang disebut dengan DBMS (Database Management Systems).
F. Blok Kendali
Banyak hal yang dapat merusak sistem informasi, seperti misalnya bencana alam, api, temperatur, air, debu, kecurangan-kecurangan, kegagalan-kegagalan sistem itu sendiri, kesalahan-kesalahan, ketidak-efisienan, sabotase, dan lain sebagainya. Beberapa pengendalian perlu dirancang dan diterapkan untuk meyakinkan bahwa hal-hal yang dapat merusak sistem dapat dicegah ataupun bila terlanjur terjadi kesalahan-kesalahan dapat langsung diatasi.
(22)
2.5.1 System Flow
System flow atau bagan alir sistem merupakan bagan yang menunjukkan arus pekerjaan secara keseluruhan dari sistem. System flow menunjukkan urutan-urutan dari prosedur yang ada di dalam sistem dan menunjukkan apa yang dikerjakan sistem.
Simbol-simbol yang digunakan dalam system flow ditunjukkan pada Gambar 2.1.
1. Simbol Dokumen
2. Simbol Kegiatan Manual
3. Simbol Simpanan Offline
4. Simbol Proses
5. Simbol Database
6. Simbol Garis Alir
7. Simbol Penghubung ke Halaman yang Sama
8. Simbol Penghubung ke Halaman Lain
Gambar 2.1 Simbol-Simbol pada System Flow. 1. Simbol dokumen
Menunjukkan dokumen input dan output baik untuk proses manual atau komputer.
2. Simbol kegiatan manual
Menunjukkan pekerjaan manual.
3. Simbol simpanan offline
(23)
4. Simbol proses
Menunjukkan kegiatan proses dari operasi program komputer.
5. Simbol database
Menunjukkan tempat untuk menyimpan data hasil operasi komputer.
6. Simbol garis alir
Menunjukkan arus dari proses.
7. Simbol penghubung
Menunjukkan penghubung ke halaman yang masih sama atau ke halaman lain.
2.5.2 Data Flow Diagram (DFD)
DFD sering digunakan untuk menggambarkan suatu sistem yang telah ada atau sistem baru yang akan dikembangkan secara logika tanpa mempertimbangkan lingkungan fisik dimana data tersebut mengalir. DFD merupakan alat yang digunakan pada metodologi pengembangan sistem yang terstruktur dan dapat mengembangkan arus data di dalam sistem dengan terstruktur dan jelas.
A. External Entity atau Boundary
Kesatuan luar merupakan kesatuan (entity) di lingkungan luar sistem yang
dapat berupa orang, organisasi atau sistem lainnya yang berada di lingkungan luarnya
yang akan memberikan input atau menerima output dari sistem. External entity
(24)
B. Arus Data
Arus Data (data flow) di DFD diberi simbol panah. Arus data ini mengalir di
antara proses, simpanan data (data store) dan kesatuan luar (external entity). Arus data
ini menunjukkan arus data yang dapat berupa masukan untuk sistem atau hasil dari proses sistem.
C. Proses
Suatu proses adalah kegiatan yang dilakukan oleh orang, mesin, atau komputer dari hasil suatu arus data yang masuk ke dalam proses untuk menghasilkan arus data yang akan keluar dari proses. Simbol proses berupa lingkaran atau persegi panjang dengan sudut-sudut tumpul.
D. Simpanan Data
Simpanan data merupakan simpanan dari data yang dapat berupa hal-hal sebagai berikut, sebagai gambaran:
1. Suatu file atau database di sistem komputer.
2. Suatu arsip atau catatan manual.
3. Suatu kotak tempat data di meja seseorang.
4. Suatu tabel acuan manual.
Simpanan data di DFD disimbolkan dengan sepasang garis horizontal paralel yang tertutup di salah satu ujungnya.
(25)
E. Context Diagram
Context Diagram merupakan langkah pertama dalam pembuatan Data Flow Diagram. Pada context diagram dijelaskan sistem apa yang dibuat dan entity apa saja yang digunakan. Dalam context diagram harus ada arus data yang masuk dan arus data yang keluar.
F. Data Flow Diagram (DFD) Level 0
DFD level 0 adalah langkah selanjutnya setelah context diagram. Pada langkah ini, digambarkan proses-proses yang terjadi pada Sistem Informasi Administrasi Keuangan Siswa.
G. Data Flow Diagram (DFD) Level 1
DFD Level 1 merupakan penjelasan dari DFD level 0. Pada proses ini dijelaskan proses apa saja yang dilakukan pada setiap proses yang terdapat di DFD level 0.
H. Entity Relational Diagram (ERD)
Entity Relational Diagram (ERD) merupakan penggambaran hubungan antara beberapa entity yang digunakan untuk merancang database yang akan diperlukan.
2.6. Siklus Hidup Pengembangan Sistem
Siklus Hidup Pengembangan Sistem atau Software Development Life Cycle (SDLC)
adalah proses mengembangkan atau mengubah suatu sistem perangkat lunak dengan menggunakan model-model dan metodologi yang digunakan orang untuk
(26)
mengembangkan sistem-sistem perangkat lunak sebelumnya (berdasarkan best practice
atau cara-cara yang sudah teruji baik).
2.6.1 Tahapan SDLC
1. Elisitasi Kebutuhan
Elisitasi atau pengumpulan kebutuhan merupakan aktivitas awal dalam proses reakayasa perangkat kebutuhan. Sebelum kebutuhan dapat dianalisis, dimodelkan, atau ditetapkan, kebutuhan harus dikumpulkan melalui proses elisitasi. Elisitasi kebutuhan adalah sekumpulan aktivitas yang ditujukan untuk menemukan kebutuhan suatu sistem melalui komunikasi dengan pelanggan, pengguna sistem dan pihak lain yang memiliki kepentingan dalam pengembangan sistem menurut Sommerville and Sawyer (1997).
Sejalan dengan proses rekayasa kebutuhan secara keseluruhan, elisitasi kebutuhan bertujuan untuk :
a) Mengetahui masalah apa saja yang perlu dipecahkan dan mengenali batasan-batasan
sistem. Proses-proses dalam pengembangan perangkat lunak sangat ditentukan oleh seberapa dalam dan luas pengetahuan developer tentang permasalahan.
b) Mengenali siapa saja para stakeholder, yaitu setiap pihak yang memiliki kepentingan
terhadap sesuatu, dimana dalam konteks perangkat lunak adalah proyek pengembangan
perangkat lunak itu sendiri. Beberapa yang dapat dikatakan sebagai stakeholder antara
lain adalah konsumen atau klien yang membayar sistem, pengembang yang merancang, membangun, dan merawat sistem, dan pengguna yang berinteraksi dengan sistem untuk mendapatkan hasil kerja mereka.
(27)
c) Mengenali tujuan dari sistem yaitu sasaran-sasaran yang harus dicapai. Tujuan
merupakan sasaran sistem yang harus dipenuhi, penggalian high level goals di awal
proses pengembangan sangatlah penting karena bertujuan lebih terfokus pada ranah
masalah dan kebutuhan stakeholder dari pada solusi yang dimungkinkan untuk masalah
tersebut.
2. Analisis
Tahap Analisis merupakan tahap identifikasi, seleksi, dan perencanaan sistem yang bertujuan untuk mendeteksi dan memberikan solusi antar kebutuhan serta mengetahui ruang lingkup perangkat lunak dan bagaimana perangkat lunak tersebut berinteraksi dengan lingkungan.
Entri Proses
Spesifikasi dan Definisi Kebutuhan
Validasi Kebutuhan
Prioritisasi Pemahaman Ruang
Pengumpulan Kebutuhan
Resolusi Konflik
Klasifikasi
(28)
Pada Gambar 2.2, diagram tersebut menunjukkan tahapan-tahapan didalam analisis kebutuhan. Didalam proses rekayasa kebutuhan, analisis pun dilakukan dalam setiap aktivitas-aktivitasnya. Aktivitas tersebut antara lain:
a) Domain Understanding
Dalam tahapan ini, pengembang harus mengetahui bagaimana organisasi toko beroperasi dan apa yang menjadi permasalahan pada sistem yang berjalan.
b) Requirements Collection
Tahapan ini merupakan tahapan pengumpulan kebutuhan akan sistem yang akan
dibangun sehingga diperlukan adanya interaksi secara intensif dengan stakeholder.
c) Classification
Tahapan ini mengelompokkan hasil dari tahap kebutuhan sehingga menjadi lebih terstruktur untuk selanjutnya diorganisir kedalam kelompok-kelompok yang koheren.
d) Conflict Resolution
Tahapan ini berguna untuk menemukan dan menyelesaikan kebutuhan yang
didalamnya terdapat konflik. Konflik tersebut dapat terjadi antara dua stakeholder yang
saling terkait tetapi memiliki fasilitas yang tidak sesuai, atau dapat terjadi antara kebutuhan dan sumber daya.
e) Prioritisation
Tahap ini melakukan interaksi dengan stakeholder untuk mengidentifikasikan
kebutuhan-kebutuhan prioritas dari masing-masing kebutuhan agar memenuhi sumber daya yang tersedia pada organisasi.
(29)
f) Requirements Checking
Menganalisa sekumpulan kebutuhan dari hasil tahapan sebelumnya untuk menverifikasi dan memvalidasi berdasarkan aspek kelengkapan, konsistensi, dan kebutuhan nyata.
Semua jenis kebutuhan yang telah diperoleh tersebut kemudian dituangkan dalam bentuk dokumen yang berisi tentang kebutuhan sistem secara keseluruhan. Dokumen ini menjelaskan secara rinci tentang kesepakatan antara pengembang dengan klien, desain perangkat lunak yang akan dibangun, segala resiko yang akan dihadapi dan jadwal pembuatan perangkat lunak. Dokumen ini sangat berguna bagi pihak yang ingin mengetahui tentang perangkat lunak yang akan dibangun namun tidak mengerti secara teknik karena dokumen ini menggunakan bahasa yang sederhana. Secara umum
dokumen ini biasa disebut dengan Software Requirements Spesification (SRS).
3. Desain
Tahap Desain adalah tahapan merancang pemodelan data yang dapat di
visualisasikan melalui Entity Relationship Diagram (ERD), Conceptual Data Model
(CDM), dan Physical Data Model (PDM); dan pemodelan proses yang dapat di
visualisasikan melalui Data Flow Diagram (DFD) atau melalui Unified Modelling
Language (UML). Dalam tahap ini juga mentransformasikan hasil dari analisis kebutuhan menjadi kebutuhan yang sudah lengkap yang di fokuskan pada bagaimana
memenuhi fungsi-fungsi yang dibutuhkan. Desain tersebut mencakup desain form dan
laporan, desain antarmuka dan dialog, desain basis data dan file (framework), dan desain
(30)
4. Construction
Tahap ini melakukan konversi hasil desain ke sistem informasi yang lengkap melalui
tahapan coding atau pengkodean termasuk bagaimana, membuat basis data dan
menyiapkan prosedur kasus pengujian, mempersiapkan berkas atau file pengujian,
pengodean, pengompilasian, memperbaiki dan membersihkan program serta melakukan
peninjauan pengujian. Construction ini memiliki beberapa tahapan secara umum yaitu:
a) Software Construction Fundamentals
Pada tahap pertama, dilakukan pendefinisian dasar tentang prinsip-prinsip yang digunakan dalam proses implementasi seperti minimalisasi kompleksitas, mengantisipasi perubahan, dan standar yang digunakan.
b) Managing Construction
Bagian ini mendefinisikan tentang model implementasi yang digunakan, rencana implementasi, dan ukuran pencapaian dari implementasi tersebut.
c) Practical Considerations
Bagian ini membahas tentang desain implementasi yang digunakan, bahasa pemrograman yang digunakan, kualitas dari implementasi yang dilakukan, proses pengetesan dan integritas.
Dalam proses pengimplementasian ini, digunakan beberapa aplikasi pendukung yaitu:
a) Microsoft Visual Basic .Net 2005
Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan
(31)
membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga
aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk
lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari Microsoft Visual Basic versi sebelumnya yang diimplementasikan di atas .NET Framework. Didalam Visual Basic .NET 2005 ini, terdapat beberapa fasilitas yaitu antara lain fasilitas untuk penanganan kesalahan yang
real time background compiler sehingga developer Visual C# dapat mengetahui
kesalahan kode secara up-to-date.
b) SQL Server 2005
Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data besar.
5. Testing dan Implementasi
Tahap ini mendemonstrasikan sistem perangkat lunak yang telah selesai dibuat untuk dijalankan, apakah telah sesuai dengan kebutuhan yang telah di spesifikasikan dan dapat diadaptasi pada lingkungan sistem yang baru. Tahapan ini tertuang dalam suatu
dokumen Test Plan, yang dimulai dari membuat Software Testing Fundamentals yang
(32)
merancang Test Levels yang terbagi antara target pengetesan dan objektif dari
pengetesan. Pada tahap berikutnya adalah mendefinisikan Test Techniques, yaitu
tentang bagaimana teknik yang digunakan termasuk dasar-dasar pengetesan berdasarkan
intuisi dan pengalaman serta teknik pengetesan secara teknik coding, teknik kesalahan,
teknik penggunaan, dan teknik terkait lainnya. Tahap selanjutnya adalah mendefinisikan
Test-Related Measures, yaitu ukuran-ukuran pencapaian testing yang telah dilakukan
untuk kemudian di evaluasi kembali. Tahap terakhir adalah mendefinisikan Test
Process yang berisi tentang aktivitas testing.
6. Maintenance
Tahap ini adalah tahap yang mendeskripsikan pekerjaan untuk mengoperasikan dan memelihara sistem informasi pada lingkungan pengguna termasuk implementasi akhir dan proses peninjauan kembali. Pemeliharaan sistem ini terdiri dari beberapa jenis yaitu: a) Corrective, yaitu memperbaiki desain dan error pada program; b) Adaptive, yaitu
memodifikasi sistem untuk beradaptasi dengan perubahan lingkungan; c) Perfective,
yaitu melibatkan sistem untuk menyelesaikan masalah baru atau mengambil kesempatan
untuk penambahan fitur; d) Preventive, yaitu menjaga sistem dari kemungkinan masalah
di masa yang akan datang.
2.6.2 Model SDLC
SDLC memiliki beberapa model dalam penerapan tahapan prosesnya. Masing-masing model memiliki kelemahan dan kelebihan, sehingga hal yang terpenting adalah mengenali tipe pelanggan dan memilih menggunakan model SDLC yang sesuai dengan karakter pelanggan dan sesuai dengan karakter pengembang perangkat lunak.
(33)
BAB III
ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini akan dibahas tentang analisis permasalahan, solusi permasalahan dan
perancangan sistem dalam Rancang Bangun Aplikasi Cutting Stock Optimization Dengan
Metode Integer Linear Programming Pada Toko Kaca Rejeki. Analisis dan hasil dari
analisis tersebut juga akan dibahas lebih detil di bab ini.
3.1 Analisis Permasalahan
Analisis digunakan untuk mendefinisikan suatu permasalahan dan bagaimana cara mengatasi permasalahan tersebut. Pada langkah analisis dilakukan tahapan-tahapan untuk mengetahui permasalahan yang ada yaitu dengan observasi, sehingga dapat dilakukan suatu tindakan untuk menghasilkan solusi yang tepat untuk menyelesaikan permasalahan tersebut.
Dari hasil pengumpulan data yang dilakukan, diperoleh beberapa pengguna yang secara langsung berinteraksi dengan sistem yang sudah ada saat ini, yaitu Bagian Administrasi dan Bagian Pemotongan. Secara garis besar proses bisnis pada Toko Kaca Rejeki ini dimulai dari menerima order dan melakukan proses pemotongan. Adapun proses secara keseluruhan untuk kondisi saat ini dapat dilihat pada Gambar 3.1.
(34)
Alur Sistem Saat Ini
Bag. Pemotongan Bag. Administrasi
Pelanggan
Data Order Kaca
Mulai
Selesai
Menerima Order Kaca
Mengecek Ketersediaan
di Gudang
Menghitung Harga Ada?
Ya
Membuat Nota Lunas Nota Lunas
Membuat konfirmasi barang
habis Konfirmasi
Stok Habis Tidak
Menerima Order kaca Memberikan
Order kaca
Data Order Kaca
Melakukan Proses Pemotongan
Kaca
Gambar 3.1. Alir Sistem (Current System)
Gambar 3.1 merupakan alir sistem yang saat ini sudah ada. Adapun penjelasan Alir Sistem tersebut dapat dilihat pada Tabel 3.1.
(35)
Tabel 3.1. Penjelasan Alir Sistem (Current System)
Proses Nama Proses Kegiatan Aktor
1 Menerima Order
Kaca
Bagian administrasi menerima
daftar order kaca dari pelanggan Administrasi
2
Mengecek Ketersediaan Gudang
Mengecek ketersediaan stok kaca dengan kaca yang ada di order kaca pelanggan
Administrasi
3 Memberikan
Order Kaca
Memberikan order kaca yang selesai dicek kepada bagian pemotongan
Administrasi
4 Menerima Order
Kaca
Menerima order kaca dari bagian
administrasi Bagian Pemotongan
5 Melakukan Proses
Pemotongan
Melakukan proses pemotongan kaca sesuai dengan order kaca pelanggan
Bagian Pemotongan
6 Menghitung
Harga
Melakukan perhitungan harga
dari order pelanggan Bagian Administrasi
7 Membuat Nota
Lunas
Membuat nota lunas pelanggan
Bagian Administrasi
Proses-proses yang telah dibahas sebelumnya merupakan proses yang dilakukan saat ini, dimana pada proses-proses tersebut akan dilakukan analisis untuk mengetahui kebutuhan dari setiap pengguna yang ada dan mengetahui proses-proses yang harus dielisitasi, proses yang diintegrasikan menjadi satu fungsi atau membangun fungsi baru, dengan maksud agar fungsi yang akan dibangun sesuai dengan kebutuhan pengguna.
(36)
3.2Permasalahan
Setelah diketahui detil proses-proses yang dilakukan oleh tiap pengguna, penulis melakukan analisis kebutuhan yang sesuai dengan proses-proses tersebut. Analisis kebutuhan tersebut diperlukan untuk merancang perangkat lunak yang memiliki fungsi-fungsi yang sesuai dengan kebutuhan pengguna. Analisis kebutuhan dilakukan pada setiap pengguna yang secara langsung melakukan interaksi dengan sistem. Adapun analisis kebutuhan untuk pengguna-pengguna tersebut adalah:
1. Analisis pada Alir Sistem Bagian Administrasi
Bagian administrasi memiliki peran sebagai penerima order pelanggan dan mencatatnya. Setelah order dicatat akan dilakukan pengecekan ketersediaan kaca dengan order kaca. Jika kaca tidak mencukupi maka akan dilakukan konfirmasi langsung ke pelanggan. Jika kaca mencukupi maka order kaca diberikan ke bagian pemotongan. Proses-proses tersebut semuanya dilakukan secara manual. Dari proses tersebut dibutuhkan suatu proses yang dapat membantu mempercepat proses pengecekan ketersediaan stok kaca terhadap order kaca pelanggan.
2. Analisis pada Alir Sistem Bagian Pemotongan
Alir sistem bagian pemotongan dimulai saat order kaca pelanggan telah diterima. Setelah order diterima dilakukan pengecekan ulang untuk persiapan proses pemotongan kaca. Setelah dilakukan pengecekan maka dilakukan perhitungan pola dan proses pemotongan. Dari proses - proses tersebut terdapat proses yang dapat menimbulkan
(37)
permasalahan dalam hal penggunaan waktu yang diperlukan. Proses tersebut adalah proses perhitungan pola pemotongan.
Untuk mengatasi permasalahan penggunaan waktu yang tinggi, diharapkan untuk selanjutnya dapat dilakukan peningkatan penggunaan waktu proses sehingga menjadi lebih singkat dan proses pemotongan bisa dilakukan lebih cepat.
3.3 Solusi Permasalahan
Setelah dilakukan pengumpulan data, dan kemudian mengolah data-data tersebut untuk dilakukan analisis, maka didapatkanlah suatu permasalahan yang harus diselesaikan dengan memberikan solusi terbaik yang sesuai untuk permasalahan yang ada. Dalam hal ini, solusi untuk permasalahan tersebut adalah membangun aplikasi yang dapat membantu proses menghitung pola pemotongan kaca supaya proses pemotongan bisa dilakukan secara efektif dan efisien. Solusi tersebut dikerjakan sesuai dengan tahapan pengembangan perangkat lunak yang terdiri dari:
3.3.1 Kebutuhan Perangkat Lunak (Software Requirement)
Kebutuhan perangkat lunak merupakan langkah awal dalam membangun sebuah sistem atau aplikasi agar sesuai dengan kebutuhan pengguna. Proses identifikasi kebutuhan perangkat lunak dibagi menjadi beberapa tahapan yaitu:
(38)
3.3.1.1. Elisitasi Kebutuhan (Requirement Elicitation)
Proses elisitasi dilakukan yaitu dengan cara wawancara dan observasi awal, namun yang dilakukan wawancara hanya kepada stakeholder yang terkait saja. Sebelum kebutuhan dapat dianalisis, kebutuhan harus dikumpulkan melalui proses elisitasi. Pada tahapan ini dilakukan penyeleksian data yang diperoleh sehingga dapat diketahui data-data yang digunakan dan yang tidak digunakan terkait dengan pengembangan perangkat lunak.
Berikut ini data yang dikumpulkan melalui proses wawancara ataupun observasi pada perusahaan. Data tersebut meliputi :
a) Data Kaca
Data kaca berisi keterangan-keterangan mulai dari ukuran standar kaca, jenis-jenis kaca, harga kaca dan stok. Kaca sendiri terbagi menjadi 2 macam, yaitu kaca lembaran dan kaca sisa pemotongan.
Tabel 3.2 Data Kaca
Jenis Kaca Ketebalan Kaca Ukuran lebar dan panjang Stok
Kaca Polos 5 mm 122 x 153 30
Kaca Riben 5 mm 122 x 153 35
Kaca Cermin 5 mm 122 x 153 20
Kaca Polos 8 mm 214 x 305 15
(39)
b) Data order kaca
Data order kaca digunakan untuk menginformasikan ukuran, jenis, dan jumlah kaca yang dibeli oleh pelanggan.
Tabel 3.3 Data Order Kaca
Jenis kaca Ketebalan Kaca Ukuran lebar dan panjang Jumlah pembelian
Kaca Polos 5 mm 50 x 30 100
Kaca Riben 5 mm 100 x 50 70
Kaca Cermin 5 mm 90 x 45 50
Kaca Polos 8 mm 50 x 50 80
Kaca Riben 3 mm 40 x 50 30
c) Data Pegawai
Data pegawai digunakan untuk membagi hak akses dalam penggunaan aplikasi perangkat lunak yang akan dibangun
Tabel 3.4 Data Pegawai
Kode Pegawai Nama Pegawai Jabatan
Rj1 Rika Bagian Administrasi 1
(40)
3.3.1.2Analisis Kebutuhan Administrasi
Setelah dilakukan analisis pada tahap yang sebelumnya, maka bagian administrasi membutuhkan sebuah sistem yang dapat menunjukkan ketersediaan stok yang ada di gudang. Data yang dibutuhkan oleh bagian administrasi adalah data kaca.
3.3.1.3Analisis Kebutuhan Pemotongan
Setelah dilakukan analisis pada tahap sebelumnya, maka bagian pemotongan dan administrasi membutuhkan suatu aplikasi yang dapat membantu meningkatkan keefektifan dan keefisienan dalam proses pemotongan. Adapun peningkatan tersebut maka dilakukan proses sebagai berikut :
a. Bagian pemotongan dapat memotong kaca sesuai dengan pola yang telah dihitung
menggunakan cutting stock optimization.
b. Bagian pemotongan tidak perlu menghitung pola secara manual.
Dengan adanya perubahan tersebut, maka proses kedepannya akan mengalami peningkatan pemanfaatan informasi yang lebih cepat. Data – data yang dibutuhkan oleh
bagian pemotongan adalah data order kaca dan data kaca.
3.3.1.4Spesifikasi Kebutuhan (Requirement Spesification)
Dalam proses membangun dan mengembangkan perangkat lunak, diperlukan perancangan spesifikasi perangkat lunak yang tepat dan detil, dengan tujuan agar perangkat lunak yang akan dikembangkan tersebut memiliki deskripsi fungsi-fungsi sesuai dengan
(41)
apa yang dibutuhkan oleh penggunanya. Adapun kebutuhan fungsi-fungsi tersebut dapat dikelompokkan menjadi kebutuhan fungsional dan kebutuhan non-fungsional.
a. Kebutuhan Fungsional
Kebutuhan fungsional merupakan dasar dari penyusunan fungsi-fungsi yang akan dibangun didalam perangkat lunak. Fungsi-fungsi perangkat lunak tersebut telah melewati proses identifikasi kebutuhan setiap pengguna. Adapun kebutuhan fungsional tersebut yaitu:
1. Bagian Administrasi
Kebutuhan fungsional yang diperlukan untuk mendukung proses bagian administrasi terdiri dari 2 fungsi yaitu mencatat order pelangggan dan membuat purchase order.
2. Bagian Pemotongan
Kebutuhan fungsional untuk mendukung proses yang dilakukan oleh bagian pemotongan terdiri dari 2 fungsi yaitu fungsi menghitung pola pemotongan dan fungsi membuat laporan hasil pemotongan. Untuk lebih jelasnya dapat dilihat pada tabel 3.5.
(42)
Tabel 3.5 Kebutuhan Fungsional Pengguna.
Pengguna Kebutuhan Fungsional
Bagian Administrasi Mencatat Order Pelanggan Mengacu pada Lampiran 2 Membuat Purchase Order Mengacu pada Lampiran 2 Bagian Pemotongan Menghitung Pola Pemotongan Mengacu pada Lampiran 2 Membuat Laporan Hasil Pemotongan Mengacu pada Lampiran 2
b. Kebutuhan Non-Fungsional
Dalam penerapan fungsi-fungsi tersebut dengan tujuan mendukung kinerja fungsi utama dari sistem, berikut ini adalah peran dari non-fungsional yang mendukung kinerja fungsi-fungsi utama yang ditunjukkan pada Tabel 3.6.
Tabel 3.6 Keterkaitan Fungsional dan Non-Fungsional Sistem
No Aktor Fungsional Sistem Non-Fungsional Sistem
1. Bagian
Administrasi a) Mencatat Order Pelanggan
b) Membuat Purchase Order
a) Security
b) Operability
c) Time Behaviour
d) Accuracy
e) Maintain Ability
2. Bagian
Pemotongan
a) Menghitung Pola
Pemotongan
b) Membuat Laporan Hasil
Pemotongan
a) Security
b) Operability
c) Time Behaviour
(43)
3.3.2 Desain Sistem (Software Design)
Rancangan perangkat lunak merupakan suatu kegiatan dalam merancang atau mendesain perangkat lunak yang akan dibangun sesuai dengan kebutuhan pengguna. Dikatakan sesuai dengan kebutuhan pengguna karena proses desain tersebut dilakukan berdasarkan hasil analisis kebutuhan yang telah dilakukan sebelumnya. Adapun rancangan perangkat lunak
tersebut berupa rancangan alur sistem (System Flow), Context Diagram, Data Flow
Diagram, dan rancangan tampilan antar muka (Design Interface).
3.3.2.1 Alur Sistem (System Flow)
Sesuai dengan hasil analisis kebutuhan, telah didefinisikan bahwa pengguna yang menggunakan sistem secara langsung berjumlah 2 (dua) pengguna yaitu Bagian Administrasi dan Bagian Pemotongan. Berikut merupakan alur sistem masing-masing pengguna yang baru.
a. Alur Sistem Bagian Administrasi
Berikut ini adalah rancangan alur sistem untuk Bagian Administrasi yang baru. Bagian Administrasi memiliki 2 fngsional sistem, yaitu Mencatat Order Pelanggan dan Membuat Purchase Order, yang ditunjukkan pada Gambar 3.2 dan Gambar 3.3.
(44)
Sysflow Mencatat Order Pelanggan Bagian Administrasi Pelanggan Data Order Pelanggan Data order Mulai Menyimpan Order Pelanggan Tabel Order Pelanggan Mencetak Bukti Order Pelanggan Otentifikasi Login Tabel Pengguna Tabel Pegawai Tabel Stok Kaca Mengecek Ketersediaan
Kaca Tabel Stok
Sisa Kaca Ada? Ya Menyimpan Purchase Order? Tidak Tabel Purchase Order Menyimpan Data Purchase Order Ya Tidak Sesuai? Selesai Bukti Order Pelanggan Data User Ya Tidak
(45)
Penjelasan Alur Sistem Mencatat Order Pelanggan sesuai Gambar 3.2 dapat dilihat pada Tabel 3.7.
Tabel 3.7 Penjelasan Alur Sistem Mencatat Order Pemotongan
Phase No.
Proses
Nama Proses Input Uraian Proses Output
1 1 Input Data
User
Data User Menginputkan data user
berupa Id_Pegawai dan Password
Data User
2 Otentifikasi
Login Data User, Data Pegawai (Diambil dari Tabel) Bagian Administrasi
melakukan proses login
sesuai dengan jabatan
Halaman Menu Utama
3 Input Data Order Data Order Pelanggan (Diambil dari dokumen) Bagian Administrasi menerima data order dari pelanggan dan
menginputkan ke sistem.
Inputan data order
pelanggan
4 Mengecek
Ketersediaan Kaca Inputan data order pelanggan Sistem menngecek ketersediaan jumlah order kaca dengan stok kaca
Data stok kaca
5 Menyimpan
Data Purchase Order Data order pelanggan Menyimpan Data Purchase Order Data Purchase Order
6 Menyimpan
Order Pelanggan
Data order pelanggan
Sistem menyimpan data order pelanggan ke tabel order pelanggan
Data order pelanggan tersimpan
7 Mencetak
Bukti Order pelanggan
Data order pelanggan
Sistem mencetak bukti order pelanggan dan diberikan kembali ke pelanggan sebagai bukti
Dokumen bukti order pelanggan
(46)
Sysflow Membuat Purchase Order
Supplier Bagian Administrasi
Mulai
Menampilkan Data Purchase
Order
Purchase Order
Mencetak Purchase Order
Purchase Order Tabel
Purchase Order
Nota Kaca Data Kaca Baru
Ya
Tidak Data User
Tabel Pegawai
Sesuai? Otentifikasi
Login Tabel
Pengguna
Tabel Stok Kaca Mengupdate
Stok Kaca
Selesai
(47)
Penjelasan Alur Sistem Membuat Purchase Order sesuai Gambar 3.3 dapat dilihat pada Tabel 3.8.
Tabel 3.8 Penjelasan Alur Sistem Membuat Purchase Order
Phase No.
Proses
Nama Proses Input Uraian Proses Output
1 1 Input Data
User
Data User Menginputkan data
user berupa Id_Pegawai dan Password
Data User
2 Otentifikasi
Login Data User, Data Pegawai (Diambil dari Tabel) Bagian Administrasi melakukan proses
login sesuai dengan jabatan
Halaman Menu Utama
3 Menampilkan
Data Purchase Order Data Stok Kaca, Data Purchase Order (Diambil dari tabel) Sistem mengambil data dari tabel stok kaca dan tabel
purchase order, kemudian menampilkannnya ke layar Display data Purchase Order
4 Mencetak
Purchase Order Data Purchase Order Update Sistem mencetak purchase order Purchase Order
5 Menginputkan
Data Kaca Baru
Nota Kaca Menginputkan Data
Kaca yang telah selesai disorder
Data Kaca Diorder
6 Mengupdate
Stok Kaca
Stok Kaca Diorder
Mengupdate data stok kaca sesuai dengan jumlah yang telah disorder
Data Update Stok Kaca
(48)
b. Alur Sistem Pemotongan
Berikut ini adalah rancangan alur sistem untuk Pimpinan yang ditunjukkan pada Gambar 3.4.
Sysflow Menghitung Pola Pemotongan Bagian Pemotongan Mulai Menampilkan Data Order Pelanggan Tabel Order Pelanggan Menghitung Pola Pemotongan Kaca Visualisasi Pola Pemotongan Mengupdate Stok Kaca Tabel Stok Kaca Menghitung Dengan Metode Integer Linear Programming Tabel Hasil Pemotongan Menyimpan Data Hasil Pemotongan Data Order Pelanggan Ya Tidak Sesuai? Data User Tabel Pegawai Tabel Pengguna Otentifikasi Login Menyimpan Stok Sisa Kaca
Tabel Stok Sisa Kaca
Selesai
(49)
Penjelasan alur sistem sesuai dengan Gambar 3.4 dapat dilihat pada Tabel 3.9.
Tabel 3.9 Penjelasan Alur Sistem Menghitung Pola Pemotongan
Phase No.
Proses
Nama Proses Input Uraian Proses Output
1 1 Input Data
User
Data User Menginputkan data
user berupa Id_Pegawai dan Password
Data User
2 Otentifikasi
Login Data User, Data Pegawai (Diambil dari Tabel) Bagian Administrasi melakukan proses
login sesuai dengan jabatan
Halaman Menu Utama
3 Menampilkan
Data Order Pelanggan Data order pelanggan (Diambil dari tabel) Sistem menampilkan data order pelanggan dari tabel order pelanggan dan menampilkannya ke layar
Display data order
pelanggan
4 Menghitung
Pola
Pemotongan Kaca
Display data order pelanggan Sistem menghitung kebutuhan pola pemotongan Data Pemotongan
5 Menghitung
Dengan Metode Integer Linear Programming Data Pemotongan Sistem menghitung pola pemotongan dengan metode integer linear programming Visualisasi Pola Pemotongan
6 Menyimpan
Data Hasil Pemotongan
Data Pola Pemotongan
Sistem menyimpan hasil pemotongan ke dalam tabel hasil pemotongan
Data Hasil Pemotongan
7 Mengupdate
Stok Kaca
Data Stok Hasil
Pemotongan
Sistem mengupdate jumlah stok kaca sesuai yang dipakai
Data Stok Kaca
(50)
dalam proses pemotongan
8 Menyimpan
Stok Sisa Kaca
Data Stok Hasil
Pemotongan
Sistem menympan jumlah stok sisa kaca dalam proses
pemotongan
Data Stok Sisa Kaca
Berikut ini adalah rancangan alur sistem Membuat Laporan Hasil Pemotongan yang ditunjukkan oleh Gambar 3.5.
(51)
Sysflow Membuat Laporan Hasil Pemotongan Pemilik Usaha Bagian Pemotogan Mulai Menampilkan Laporan Hasil Pemotongan Tabel Hasil Pemotongan Laporan Hasil Pemotongan Mencetak Laporan Hasil Pemotongan Permintaan Laporan Permintaan Laporan Laporan Hasil Pemotongan Tabel Order Pelanggan Menampilkan Laporan Pelanggan Prioritas Laporan Pelanggan Prioritas Laporan Pelanggan Prioritas Mencetak Laporan Pelanggan Prioritas Laporan Hasil Pemotongan? Mengecek Data Permintaan Laporan Laporan Pelanggan Prioritas? Laporan Kaca Terlaris? Menampilkan Laporan Kaca Terlaris Tabel Order Pelanggan Mencetak Laporan Kaca Terlaris Laporan Laporan Kaca
Terlaris Laporan Kaca
Terlaris Laporan Perbandingan Hasil Pemotongan? Tabel Hasil Pemotongan Menampilkan Laporan Perbandingan Hasil Pemotongan Laporan Perbandingan Hasil Pemotongan Mencetak Laporan Perbandingan Hasil Pemotongan Laporan Perbandingan Hasil Pemotongan A D C B
A B C
D Ya Tidak Ya Tidak Ya Tidak Ya Tidak E Ya
Tidak Otentifikasi Login
Sesuai? Data User Tabel Pengguna Tabel Pegawai E Selesai
Gambar 3.5 Sysflow Membuat Laporan Hasil Pemotongan Penjelasan untuk Gambar 3.5 dapat dilihat pada Tabel 3.10.
(52)
Tabel 3.10 Penjelasan Alur Sistem Membuat Laporan Hasil Pemotongan.
Phase No.
Proses
Nama Proses Input Uraian Proses Output
1 1 Input Data
User
Data User Menginputkan data
user berupa Id_Pegawai dan Password
Data User
2 Otentifikasi
Login Data User, Data Pegawai (Diambil dari Tabel) Bagian Administrasi melakukan proses
login sesuai dengan jabatan
Halaman Menu Utama
3 Menginputkan
Permintaan Laporan Dokumen permintaan laporan Permintaan laporan diinputkan kedalam sistem Data Permintaan Laporan
4 Mengecek
Data Permintaan Laporan Data Permintaan Laporan Sistem mengecek laporan apa yang akan ditampilkan
Data Permintaan Laporan
5 Menampilkan
Laporan Hasil Pemotongan Data Permintaan Laporan, Data Hasil Pemotongan Sistem mengambil data pemotongan dari tabel hasil pemotongan dan menampilkannya ke layar Display Laporan Hasil Pemotongan
6 Mencetak
Laporan Hasil Pemotongan Display Laporan Hasil pemotongan Sistem mencetak laporan hasil pemotongan untuk dicetak Laporan Hasil Pemotongan
7 Menampilkan
Laporan Pelanggan Prioritas Data Permintaan Laporan, Data Pelanggan Sistem mengambil data pelanggan yang paling banyak melakukan order dari tabel order pelanggan dan menampilkannya ke Display Laporan Pelanggan Prioritas
(53)
layar
8 Mencetak
Laporan Pelanggan Prioritas Display Laporan Pelanggan Prioritas Sistem mencetak laporan pelanggan prioritas untuk dicetak Laporan Pelanggan Prioritas
9 Menampilkan
Laporan Kaca Terlaris Data Permintaan Laporan, Data Jenis Kaca Sistem mengambil data jenis kaca yang paling banyak diorder dari tabel order pelanggan dan menampilkannya ke layar
Display Laporan Kaca Terlaris
10 Mencetak
Laporan Kaca Terlaris Display Laporan Kaca Terlaris Sistem mencetak laporan kaca terlaris untuk dicetak
Laporan Kaca Terlaris
11 Menampilkan
Laporan Perbandingan Hasil Pemotongan Data Permintaan Laporan, Data Perbandingan Hasil Pemotongan Sistem mengambil data perbandingan hasil pemotongan dari tabel hasil pemotongan dan menampilkannya ke layar Display Laporan Perbandingan Hasil Pemotongan
12 Mencetak
Laporan Perbandingan Hasil Pemotongan Display Laporan Perbandingan Hasil Pemotongan Sistem mencetak laporan perbandingan hasil pemotongan untuk dicetak Laporan Perbandingan Hasil Pemotongan
3.3.2.2 Context Diagram
Berikut ini adalah desain Context Diagram untuk perangkat lunak yang akan
(54)
Purchase Order
Nota Kaca
Laporan Perbandingan Hasil Pemotongan Laporan Kaca Terlaris
Laporan Pelanggan Prioritas Laporan Hasil Pemotongan Permintaan Laporan
Bukti Order Pelanggan Data Order Pelanggan
0 Aplikasi Cutting Stock Optimization + Bagian Administrasi Bagian Pemotongan
Gambar 3.6Context Diagram
3.3.2.3 Diagram Berjenjang
Diagram Berjenjang merupakan diagram yang menggambarkan pembagian fungsi-fungsi dari sistem menjadi sub sistem yang lebih kecil. Diagram Berjenjang untuk aplikasi yang dikembangkan dapat dilihat pada Gambar 3.7.
0
Aplikasi Cutting Stock Optimization Dengan Metode Integer Linear Progamming
2 Membuat Purchase Order 3 Menghitung Pola Pemotongan 1 Mencatat Order Pelanggan 4 Membuat Laporan Hasil Pemotongan 4.2 Mengecek Data Permintaan Laporan 4.3 Menampilkan Laporan Hasil Pemotongan 4.1 Menginputkan Permintaan Laporan 4.4 Mencetak Laporan Hasil Pemotongan 1.1 Menginputkan Data Order 1.2 Mengecek Ketersediaan Kaca 1.3 Membuat Purchase Order 1.4 Menyimpan Order Pelanggan 1.5 Mencetak Bukti Order Pelanggan 2.1 Menampilkan Data Purchase Order 2.2 Mencetak Data Purchase Order 2.3 Menginputkan Data Kaca Baru 2.4 Mengupdate Stok Kaca 3.1 Menampilkan Data Order 3.2 Menghitung Pola Pemotongan Kaca 3.3 Menghitung Dengan Metode Integer Linear Programming 3.4 Menimpan Data Hasil Pemotongan 3.5 Mengupdate Stok Kaca 3.6 Menyimpan Stok Sisa Kaca 4.5 Menampilkan Laporan Pelanggan Prioritas 4.6 Mencetak Laporan Pelanggan Prioritas 4.7 Menampilkan Laporan Kaca Terlaris 4.8 Mencetak Laporan Kaca Terlaris 4.9 Menampilkan Laporan Perbandingan Hasil Pemotogan 4.10 Mencetak Laporan Perbandingan Hasil Pemotongan
(55)
3.3.2.4 Data Flow Diagram
Data Flow Diagram (DFD) untuk aplikasi yang sedang dikembangkan telah didefinisikan menjadi sub sistem Level 0 yang terdiri dari:
a) Data Flow Diagram Level 0
Pada Level 0 terlihat pada Gambar 3.8, aliran data yang masuk ke sistem,
proses-proses yang dilakukan, dan tabel yang dibutuhkan berasal dari Bagian Administrasi dan Bagian Pemotongan.
[Nota Kaca] [Purchase Order]
Data Perbandingan Hasil Pemotongan Data Jenis KacaData Pelanggan
[Laporan Kaca T erlaris] [Laporan Perbandingan Hasil Pemotongan]
[Laporan Pelanggan Prioritas]
Data Update Stok Kaca Data Purchase Order
Data Stok Kaca Data Stok Sisa Kaca
Data Purchase Order
Data Hasil Pemotongan Data Stok Sisa Kaca Data Stok Kaca
Data Hasil Pemotongan
Data Order Pelanggan Data order pelanggan
[Permintaan Laporan] [Laporan Hasil Pemotongan]
[Bukti Order Pelanggan] [Data Order Pelanggan] Bagian Administrasi Bagian Pemotongan 1 Mencatat Order Pelanggan+ 2 Membuat Purchase Order + 3 Menghitung Pola Pemotongan+ 4 Membuat Laporan Hasil Pemotongan +
3 T abel Order Pelanggan
4 T abel Purchase Order
5 T abel Hasil Pemotongan 1 T abel Stok Kaca
2 T abel Stok Sisa Kaca
1 T abel Stok Kaca 2 T abel Stok Sisa
Kaca
3 T abel Order Pelanggan
(56)
b) Data Flow Diagram Level 1 Mencatat Order Pelanggan.
Untuk Level 1 Mencatat Order Pelanggan, sistem menerima masukan data dari
Bagian Administrasi berupa data order kaca yang akan disimpan didalam database. DFD
Level 1 Mencatat Order Pelanggan dapat dilihat pada Gambar 3.9.
Data Purchase Order Data stok kaca Inputan data order
[Data Purchase Order]
[Data Stok Sisa Kaca] [Data Stok Kaca]
Data order pelanggan
[Data order pelanggan]
[Bukti Order Pelanggan]
[Data Order Pelanggan] Bagian
Administrasi
3 Tabel Order
Pelanggan 1.1 Menginputkan Data Order 1.4 Menyimpan Order Pelanggan 1.5 Mencetak Bukti Order Pelanggan
2 Tabel Stok
Sisa Kaca
1 Tabel Stok Kaca
4 Tabel Purchase Order
1.2 Mengecek Ketersediaan Kaca 1.3 Membuat Purchase Order
Gambar 3.9 DFD Level 1 Mencatat Order Pelanggan c) Data Flow Diagram Level 1 Membuat Purchase Order.
Sedangkan untuk Level 1 Membuat Purchase Order, sistem akan menampilkan data
(57)
ditampilkan kemudian dapat dicetak menjadi purchase order. DFD Level 1 Membuat
Purchase Order dapat dilihat pada Gambar 3.10.
[Nota Kaca] [Purchase Order] Display Data Purchase Order
[Data Purchase Order]
Data Stok Kaca Diorder
[Data Update Stok Kaca]
4 Tabel Purchase Order
2.1 Menampilkan Data Purchase
Order
2.3 Menginputkan
Data Kaca Baru
2.4 Mengupdate
Stok Kaca
1 Tabel Stok Kaca 2.2
Mencetak Data Purchase
Order
Bagian Administrasi
Gambar 3.10 DFD Level 1 Membuat Purchase Order
d) Data Flow Diagram Level 1 Menghitung Pola Pemotongan.
Untuk DFD Level 1 Menghitung Pola Pemotongan, sistem menampilkan data order
kaca yang akan digunakan dalam proses pemotongan. Setelah data ditampilkan, kemudian diolah untuk mencari pola pemotongan terbaik. Terakhir hasil pemotongan akan disimpan
ke dalam database. DFD Level 1 Menghitung Pola Pemotongan dapat dilihat pada
(58)
Visualisasi pola pemotongan Data Pemotongan
Data Stok Hasil Pemotongan Data Stok Hasil Pemotongan Display data order pelanggan
[Data Stok Sisa Kaca] [Data Stok Kaca]
[Data Hasil Pemotongan] [Data Order Pelanggan]
3 Tabel Order Pelanggan
5 Tabel Hasil Pemotongan
1 Tabel Stok Kaca
2 Tabel Stok Sisa Kaca
3.1 Menampilkan
Data Order
3.2 Menghitung
Pola Pemotongan
Kaca
3.4 Menyimpan
Data Hasil Pemotongan
3.5 Mengupdate
Stok Kaca
3.6 Menyimpan Stok Sisa Kaca
3.3 Menghitung Dengan Metode
Integer Linear Programming
(59)
e) Data Flow Diagram Level 1 Membuat Laporan Hasil Pemotongan.
Dalam DFD Level 1 Membuat Laporan Hasil Pemotongan, sistem menampilkan
laporan hasil pemotongan kaca, berdasarkan periode yang diinputkan. DFD Level 1
(60)
Display Laporan Perbandingan Hasil Pemotongan Data Permintaan Laporan
Display Laporan Kaca T erlaris Data Permintaan Laporan Display Laporan Pelanggan Prioritas
Data Permintaan Laporan Display Laporan Hasil Pemotongan
Data Permintaan Laporan Data Permintaan Laporan
[Data Perbandingan Hasil Pemotongan]
[Laporan Perbandingan Hasil Pemotongan] [Laporan Kaca T erlaris]
[Data Jenis Kaca] [Laporan Pelanggan Prioritas]
[Data Pelanggan] [Laporan Hasil Pemotongan]
[Data Hasil Pemotongan] [Permintaan Laporan]
Bagian Pemotongan
5 T abel Hasil Pemotongan 4.1 Menginputkan Permintaan Laporan 4.3 Menampilkan Laporan Hasil Pemotongan
3 T abel Order Pelanggan
3 T abel Order Pelanggan
5 T abel Hasil Pemotongan 4.2 Mengecek Data Permintaan Laporan 4.4 Mencetak Laporan Hasil Pemotongan 4.5 Menampilkan Laporan Pelanggan Prioritas 4.6 Mencetak Laporan Pelanggan Prioritas 4.7 Menampilkan Laporan Kaca T erlaris 4.8 Mencetak Laporan Kaca T erlaris 4.9 Menampilkan Laporan Perbandingan Hasil Pemotongan 4.10 Mencetak Laporan Perbandingan Hasil Pemotongan
(61)
3.3.2.5 Entity Relationship Diagram
Entity Relationship Diagram (ERD) adalah suatu desain sistem yang digunakan untuk merepresentasikan, menentukan, dan mendokumentasikan kebutuhan sistem kedalam suatu bentuk dengan tujuan untuk menunjukkan struktur keseluruhan dari data pemakai. Dalam perancangan aplikasi ini, telah terbentuk ERD yang merupakan lanjutan dari pembuatan desain dengan menggunakan DFD, yang disimbolkan dengan menggunakan
simbol entity. Adapun entity tersebut adalah:
a) Bagian Administrasi
b) Bagian Pemotongan
3.3.2.6 Conceptual Data Model
Conceptual Data Model merupakan gambaran secara keseluruhan tentang konsep struktur basis data yang dirancang untuk program atau aplikasi. Pada CDM belum
tergambar jelas bentuk tabel-tabel penyusun basis data beserta field yang terdapat pada
setiap tabel. Adapun CDM yang dirancang untuk Rancang Bangun Aplikasi Cutting Stock
(62)
Mempunyai Melakukan Melakukan Melakukan Mempunyai Memiliki Mempunyai Mempunyai Memiliki Memiliki Stok_Kaca Tinggi Lebar Stok Master_Kaca Id_Kaca Nama_Kaca Harga_Beli Harga_Lembaran Harga_Potongan
Stok Sisa Kaca Tinggi Lebar Stok Order_Pelanggan Id_Order Tinggi Lebar Jumlah Nama_Pelanggan Tanggal Status Purchase_Order Id_Po Tinggi Lebar Jumlah Tanggal Hasil_Pemotongan Ukuran Jumlah_Kaca_Terpakai Sisa_Kaca_1 Sisa_Kaca_2 Pegawai id_Pegawai Nama_Pegawai Jabatan Pengguna Password
Gambar 3.13Conceptual Data Model
3.3.2.7 Physical Data Model
Physical Data Model (PDM) menggambarkan secara detil konsep rancangan struktur
basis data untuk suatu program atau aplikasi. PDM terbentuk dari Conceptual Data Model
(CDM) yang menggambarkan tabel-tabel penyusun basis data beserta field-field yang
(63)
ID_ORDER = ID_ORDER
ID_PEGAWAI = ID_PEGAWAI
ID_PEGAWAI = ID_PEGAWAI
ID_PEGAWAI = ID_PEGAWAI
ID_PEGAWAI = ID_PEGAWAI
ID_KACA = ID_ORDER ID_KACA = ID_KACA
ID_KACA = ID_KACA
ID_KACA = ID_KACA
ID_KACA = ID_KACA
STOK_KACA ID_KACA varchar(30) PANJANG integer LEBAR integer STOK integer MASTER_KACA ID_KACA varchar(30) NAMA_KACA varchar(30) HARGA_BELI integer HARGA_LEMBARAN integer HARGA_POTONGAN integer STOK_SISA_KACA ID_KACA varchar(30) PANJANG integer LEBAR integer STOK integer ORDER_PELANGGAN ID_ORDER varchar(20) ID_KACA varchar(30) ID_PEGAWAI varchar(20) PANJANG integer LEBAR integer JUMLAH integer NAMA_PELANGGAN varchar(20) TANGGAL timestamp STATUS varchar(20) PURCHASE_ORDER ID_PO varchar(20) ID_KACA varchar(30) ID_PEGAWAI varchar(20) PANJANG integer LEBAR integer JUMLAH integer TANGGAL timestamp HASIL_PEMOTONGAN ID_ORDER varchar(20) ID_PEGAWAI varchar(20) UKURAN1 varchar(20) JUMLAH_KACA_TERPAKAI integer SISA_KACA_1 integer SISA_KACA_2 integer PEGAWAI ID_PEGAWAI varchar(20) NAMA_PEGAWAI varchar(30) JABATAN varchar(20) PENGGUNA ID_PEGAWAI varchar(20) PASSWORD varchar(20)
Gambar 3.14Physical Data Model
3.3.2.8 Struktur Basis Data
Sesuai dengan PDM yang telah terbentuk, dapat dibentuk suatu struktur basis data yang akan digunakan untuk penyimpanan data yaitu:
1. Master Kaca
Primary Key : Id_Kaca
(64)
Fungsi : Untuk menyimpan data master dari kaca
Tabel 3.11 Master Kaca.
No. Nama Field Constraint Tipe Size Deskripsi
1 Id_Kaca PK Varchar 30 Kode Kaca
2 Nama_Kaca Varchar 30 Nama Kaca
3 Harga_Beli Integer Harga Beli Kaca
4 Harga_Lembaran Integer Harga Lembaran
5 Harga_Potongan Integer Harga_Potongan
2. Tabel Stok Kaca
Primary Key : Id_Kaca, Panjang, Lebar
Foreign Key : Id_Kaca
Fungsi : Untuk menyimpan stok kaca
Tabel 3.12 Stok Kaca.
No. Nama Field Constraint Tipe Size Deskripsi
1 Id_Kaca PK, FK Varchar 30 Kode Kaca
2 Panjang PK Integer Panjang Kaca
3 Lebar PK Integer Lebar Kaca
(65)
3. Tabel Stok Sisa Kaca
Primary Key : Id_Kaca, Panjang, Lebar
Foreign Key : Id_Kaca
Fungsi : Untuk menyimpan stok kaca sisa
Tabel 3.13 Stok Sisa Kaca.
No. Nama Field Constraint Tipe Size Deskripsi
1 Id_Kaca PK, FK Varchar 30 Kode Kaca
2 Panjang PK Integer Panjang Kaca
3 Lebar PK Integer Lebar Kaca
4 Stok Integer Jumlah Stok
4. Tabel Order Pelanggan
Primary Key : Id_Order
Foreign Key : Id_Kaca
Fungsi : Untuk menyimpan order dari pelanggan
Tabel 3.14 Order Pelanggan.
No. Nama Field Constraint Tipe Size Deskripsi
1 Id_Order PK Varchar 20 Kode Purchase
(66)
2 Id_Kaca FK Varchar 30 Kode Kaca
3 Panjang Integer Panjang Kaca
4 Lebar Integer Lebar Kaca
5 Tanggal Datetime Tanggal
6 Jumlah Integer Jumlah Kaca
7 Status Varchar 20 Status Order
6. Tabel Purchase Order
Primary Key : Id_Penerimaan_K
Foreign Key : Id_Kaca
Fungsi : Untuk menyimpan transaksi penerimaan kaca
Tabel 3.15Purchase Order.
No. Nama Field Constraint Tipe Size Deskripsi
1 Id_Po PK Varchar 20 Kode Purchase
Order
2 Id_Kaca FK Varchar 30 Kode Kaca
3 Panjang Integer Panjang Kaca
4 Lebar Integer Lebar Kaca
5 Tanggal Datetime Tanggal
(67)
7. Tabel Hasil Pemotongan
Primary Key : Id_Pemotongan
Foreign Key : Id_Kaca
Fungsi : Untuk menyimpan transaksi penerimaan kaca
Tabel 3.16 Hasil Pemotongan.
No. Nama Field Constraint Tipe Size Deskripsi
1 Id_Pemotongan PK Varchar 20 Kode Pemotongan
2 Id_Kaca FK Varchar 30 Kode Kaca
3 Ukuran Varchar 20 Ukuran kaca yang
dipotong
4 Jumlah Integer Lebar Kaca
5 Jumlah_Kaca_Terp
akai
Integer Jumlah kaca yang
dipakai dalam proses pemotongan
6 Jumlah_Sisa_Kaca Integer Jumlah sisa kaca
hasil pemotongan
8. Tabel Pegawai
Primary Key : Id_Pegawai
Foreign Key : -
(68)
Tabel 3.17 Pegawai.
No. Nama Field Constraint Tipe Size Deskripsi
1 Id_Pegawai PK Varchar 20 Kode Pegawai
2 Nama_Pegawai Varchar 30 Nama Pegawai
3 Jabatan Varchar 20 Jabatan Pegawai
3.3.2.9 Perancangan Prosedur dan Program Unit
Detil sistem merupakan penjabaran pemrograman aplikasi dengan menggunakan
pseudocode sehingga konstruksi awal pemrograman aplikasi yang akan dibangun dapat terlihat serta memberikan deskripsi dari setiap fungsi yang akan dibangun disertai dengan desain tampilan antarmuka aplikasi. Pada Tugas Akhir ini, penjabaran detil dari sistem akan dibagi berdasarkan pengguna aplikasi tersebut sesuai dengan yang telah dijelaskan sebelumnya.
a) Form Login
Menampilkan menu untuk masuk ke aplikasi, seperti terlihat pada Tabel 3.21.
Tabel 3.18 Detil FormLogin Descriptions
Form Login merupakan form yang akan tampil pertama kali saat
pengguna akan menggunakan aplikasi. Form Login ini akan selalu
menjadi tampilan awal di setiap pengguna.
Table Input Tabel login Table Output -
(69)
Interface
Gambar 3.15 Desain Form Login Functional -
Non-Functional Security
Query Select Select username, pass_word from login
Pseudocode
Begin Declare
Koneksi() Login() End
Tabel 3.19 Detil Form Mencatat Order Pelanggan
NamaFungsi Mencatat Order Pelanggan Stakeholder Bagian Administrasi
Deskripsi Mencatat order pemotongan dari pelanggan Desain Interface
(70)
Table Input Tabel Pengguna, Tabel Pegawai Table Output Tabel Order Pelanggan
Query Insert into tabel_order_pelanggan ()
Pseudocode Begin
Declare Otentikasi()
Menginputkan_Order_Pelanggan() Menyimpan_Order_Pelanggan() Mencetak_Bukti_Order_Pelanggan() End
Kebutuhan Non-Fungsional
Security Correctness Interface Performance Operability
Tabel 3.20 Detil Form Membuat Purchase Order NamaFungsi Membuat Purchase Order
Stakeholder Bagian Administrasi
Deskripsi Membuat purchase order dari stok kaca yang jumlahnya hampir habis untuk dilakukan order pembelian
(71)
Desain Interface
Gambar 3.17 Desain Form Membuat Purchase Order Table Input Tabel Pengguna, Tabel Pegawai, Tabel Purchase Order, Tabel Stok
kaca
Table Output -
Query Select * from stok_kaca where stok<=5 Insert into tabel_order_pelanggan ()
Pseudocode Begin Declare Otentifikasi()
Menampilkan_Data_Purchase_Order() Mengupdate_Jumlah_Purchase_Order() Mencetak_Purchase_Order()
(72)
End
Kebutuhan
Non-Fungsional
Security Correctness Interface Performance Operability
Tabel 3.21 Detil Form Menghitung Pola Pemotongan
NamaFungsi Menghitung Pola Pemotongan Stakeholder Bagian Pemotongan
Deskripsi Menghitung pola pemotongan terbaik berdasarkan ukuran dari order kaca pelanggan
Desain Interface
Gambar 3.18 Desain Form Menghitung Pola Pemotongan
Table Input Tabel Pegawai, Tabel Pengguna,Tabel Order Pelanggan, Tabel Stok Kaca
(73)
Query Select * from order_pelanggan Insert into hasil_pemotongan ()
Pseudocode Begin Declare Otentikasi()
Menampilkan_Data_Order_Pelanggan() Menghitung_Pola_Pemotongan_Kaca() Mengecek_Ketersediaan_Kaca()
Menyimpan_Jumlah_Kekurangan_Kaca()
Menghitung_Dengan_Metode_Integer_Linear_Programming() Menyimpan_Data_Hasil_Pemotongan()
Mengupdate_Stok_Kaca() Menyimpan_Stok_Sisa_Kaca() End
Kebutuhan
Non-Fungsional
Security Correctness Interface Performance Operability
Tabel 3.22 Detil Form Membuat Laporan Hasil Pemotongan
NamaFungsi Membuat Laporan Hasil Pemotongan Stakeholder Bagian Pemotongan
(74)
Deskripsi Membuat laporan dari hasil pemotongan yang telah dilakukan dalam periode yang ditentukan
Desain Interface
Gambar 3.19 Desain Form Membuat Laporan Hasil Pemotongan
Table Input Tabel Hasil Pemotongan
Table Output -
Query Select * from hasil_pemotongan
Pseudocode Begin Declare Otentikasi()
Menginputkan_Periode_Laporan()
Menampilkan_Laporan_Hasil_Pemotongan() Mencetak_Laporan_Hasil_Pemotongan() End
Kebutuhan
(75)
Fungsional Correctness Interface Performance Operability
3.3.2.10 Studi Kasus Optimasi Pemotongan Kaca
Berikut merupakan contoh dari studi kasus didalam pemotongan kaca yang digunakan untuk pembuatan Aquarium. Dari jenis kaca lembaran yang ada digunakan sebagai acuan untuk menghasilkan potongan yang sesuai. Beberapa kombinasi potongan dilakukan untuk menciptakan kondisi optimal dalam pemotongan kaca. Kombinasi tersebut menghasilkan pola potong dengan bentuk vertikal dan horizontal. Diketahui pesanan untuk kebutuhan aquarium dengan spesifikasi sebagai berikut :
Ukuran Pesanan : 30cm x 50cm
Jumlah Pesanan : 1000 Lembar
Tujuan : Menghasilkan pola pemotongan untuk 1000 lembar kaca dengan sisa potongan terkecil.
(76)
a. Kombinasi Horizontal
Gambar 3.20 Pola Pemotongan Horizontal Perhitungan Jumlah Potongan : (122/30) x (153/50)
Perkalian ini diambil pembulatan kebawah
Jadi menghasilkan : 4 x 3 = 12
Kombinasi ini menghasilkan 12 lembar kaca potongan dengan :
Sisa vertikal (biru muda Gambar 3.20) = (153 – (50 cm x 3)) x 122 cm
= 3 cm x 122 cm
Sisa Horisontal (abu-abu Gambar 3.20) = (122 cm – (30 cm x 4)) x 153 cm
(1)
Jumlah kaca lembaran yang diperlukan = 9 Lembar Pola pemotongan yang dipakai = Pola Horizontal
Sisa bidang yang dihasilkan (Dalam 1 lembar) = 522 cm2
Perhitungan cutting stock optimization dengan metode integer linear programming secara detil pada aplikasi dapat dilihat pada Gambar 4.13 :
Gambar 4.13 Hasil Integer Linear Programming
Dari perhitungan integer linear programming diketahui bidang paling optimal didapatkan dari X1.1 = 3 dan X2.1 = 4, sehingga Z = 40 .(3) x 50 .(4) = 24.000 cm2
Luas bidang 1 lembar kaca adalah 122 x 201 = 24.522 cm2 Luas Sisa Bidang Kaca = 24.522 cm2 – 24.000 cm2 = 522 cm2 4.4.2 Perhitungan manual tanpa aplikasi
Dengan contoh kasus yang sama seperti perhitungan aplikasi diatas, dilakukan perhitungan secara manual, yaitu menggunakan pola dan jenis ukuran kaca yang diambil secara acak. Pola permotongan yang dipakai adalah pola vertikal dengan ukuran
(2)
108
kaca 198 x 91,5. Berdasarkan pola pemotongan tersebut, hasil yang akan diperoleh adalah sebagai berikut:
Gambar 4.14 Hasil Pola Pemotongan Vertikal Manual
Perhitungan Jumlah Potongan : (91,5/40) x (198/50)
Perkalian ini diambil pembulatan kebawah
Jadi menghasilkan : 2 x 3 = 6
Kombinasi ini menghasilkan 6 lembar kaca potongan dengan :
Sisa vertikal (biru muda Gambar 4.14) = (91,5 – (40 cm x 2)) x 198 cm
(3)
Sisa Horisontal (abu-abu Gambar 4.14) = (198 cm – (50 cm x 3)) x 91,5 cm
= 48 cm x 91,5 cm
Perpotongan antara sisa vertikal dan horizontal (hitam Gambar 4.14) = 11,5 cm x 48 cm
Total sisa = (11,5 cm x 198 cm) + (48 cm x 91,5 cm) – (11,5 cm x 48 cm)
=2277 cm2 + 4392 cm2 - 552 cm2
=6117 cm2
4.4.3 Perbandingan Hasil Evaluasi
Dari hasil uji coba melalui aplikasi dan melalui perhitungan secara manual, total luas sisa kaca dalam 1 lembar kaca, yang dihasilkan mengalami penurunan dari 6.117 cm2 menjadi 522 cm2. Adapun perbandingan secara terperinci dapat dilihat pada Tabel 4.13.
Tabel 4.13 Perbandingan Hasil Evaluasi
Evaluasi Ukuran Kaca yang dipakai
Pola yang Dipakai Sisa yang Dihasilkan (1 lembar kaca ) Perhitungan
Aplikasi
201 x 122 Horizontal 522 cm2
Perhitungan Manual
198 x 91,5 Vertikal 6117 cm2
Adapun perbandingan hasil luas sisa kaca yang dihasilkan bila di visualisasikan dalam bentuk grafik akan tampak seperti pada Gambar 4.15 berikut ini.
(4)
110
Gambar 4.15 Perbandingan Luas Sisa Kaca
Berikut merupakan hasil evaluasi akhir rata-rata penurunan luas sisa pemotongan yang dihasilkan dari beberapa proses pemotongan yang dilakukan:
Tabel 4.14 Rata-Rata Penurunan Jenis Kaca Ukuran
Order
Sisa Pemotongan yang dihasilkan (cm2) Penurunan (%)
Manual Aplikasi
Polos 5 mm 50 x 40 6117 522 91,46
Polos 5 mm 80 x 40 5317 3126 41.20
Polos 5 mm 80 x 25 4117 1999.5 51.43
Polos 5 mm 40 x 25 4117 522 87.32
Riben 5 mm 150 x 30 666 666 0
Polos 5 mm 80 x 50 6117 1999.5 67.31
(5)
BAB V PENUTUP 5.1.Kesimpulan
Setiap penelitian tentu menghasilkan suatu kesimpulan yang dapat digunakan untuk memperkuat hasil penelitian. Adapun kesimpulan yang dapat diambil dari penelitian ini adalah sebagai berikut:
1. Luas bidang kaca yang dipakai dapat dioptimalkan dengan memilih pola yang telah dihitung menggunakan metode integer linear programming.
2. Biaya material yang muncul dari luas sisa kaca yang terbuang setiap lembarnya, dapat dikurangi menjadi sekitar 56,45 %.
5.2.Saran
Adapun saran yang dapat diberikan pada penelitian ini adalah sebagai berikut: 1. Aplikasi ini memerlukan aplikasi tambahan yang dapat menampilkan gambar
visualisasi pemotongan dengan lebih fleksibel dan inovatif.
2. Penelitian ini dapat dikembangkan lebih lanjut dengan menambahkan metode lainnya yang terkait seperti algoritma genetika.
(6)
DAFTAR PUSTAKA
Dimyati, Tjutju Tarliah dan Ahmad Dimyati, Operations Research : Model-model Pengambilan Keputusan, Sinar Baru Algensindo : Bandung, 2003
England, John Wiley & Sons. IEEE. “ Guide to the Software Engineering Body of Knowledge 2004 Version:” SWEBOK A Project of the IEEE Computer Society Professional Practices Committee. Tahun 2004.
Hamdy A Taha, Riset Operasi jilid 1, Binarupa Aksara, Jakarta, 1996
Kendall & Kendall Brothers. Analisis dan Perancangan Sistem .Cetakan Kelima. Jakarta.2003
Kristanto, H, Konsep dan Perancangan Database, Andi Offset, Yogyakarta, 1994. Lieberman, Gerald J. and Frederick S, Hillier, Introduction to Operations Research-6th
ed, McGraw Hill : New York, 1995
Royce, Winston (1970), "Managingthe Development of Large Software Systems", Proceedings of IEEE WESCON 26 (August): 1–9.
Scheithauer, G and G. Belov, A Branch-and-Cut-and-Price Algorithm for One- Dimensional Stock Cutting and Two-Dimensional Two-Stage Cutting, Technical
Report MATH-NM-03, Dresden University, 2003
Simatupang, Togar M., Pemodelan Sistem, Nindita : Klaten, 1995
Sommerville, I. and Sawyer, P. (1997). Requirements Engineering: A Good Practice, Chichester
Yuswanto, “Pemrograman Dasar Visual Basic .NET 2005”, Jakarta, 2008.