Sistem pendukung pengambilan keputusan optimasi anggaran menggunakan algoritma knapsack.
Sistem pendukung pengambilan keputusan optimasi anggaran ini merupakan sebuah sistem pendukung pengambilan keputusan yang dibuat untuk membantu pengguna dalam mengelola anggaran sesuai dengan bobot dan proiritas barang agar optimal sesuai dengan maksimal anggaran.
Sistem pendukung pengambilan keputusan optimasi anggaran ini menggunakan metode knapsack problems dengan penyelesaian greedy by weigh, semakin tinggi bobot barang yang diberikan maka barang tersebut semakin penting dan di prioritaskan. Data masukkan pada sistem ini berupa file excel yang berekstensi .xlxs. Sistem ini dibangun menggunakan bahasa pemrograman Java dengan database MySql yang berbasis dekstop.
Hasil akhir dari sistem ini yaitu, sistem ini melakukan perhitungan dari jumlah total anggaran yang akan di bandingkan dengan maksimal anggaran yang di-input-kan. Jika jumlah total anggaran melebihi maksimal anggaran maka akan dilakukan penghapusan dan atau pemotongan jumlah barang yang tidak di prioritaskan. Data output rekomendasi dari sistem ini berupa file excel yang berekstensi .xlxs.
(2)
The making support system of optimization of this budget is a decision-making support system created to aid users in managing the budget in accordance with the weights and proiritas the goods in order for optimal fit with a maximum budget.
Decision-making support system this budget optimization method using knapsack problems with greedy finalization by weigh, the higher the weighting of goods that are given then the goods are increasingly important and in priority. The data entered on the system in the form of an excel file with extension. xlxs. The system is built using the Java programming language with database MySql based desktop.
The end result of the system, the system performs the calculation of the total amount of the budget that will be compared with the maximum budget that you input. If the total amount of the budget exceeded the maximum budget it will be done the removal and or cutting the number of items that are not in priority. Output data the recommendations of this system in the form of an excel file with extension. xlxs.
(3)
i
SISTEM PENDUKUNG PENGAMBILAN KEPUTUSAN OPTIMASI ANGGARAN MENGGUNAKAN ALGORITMA KNAPSACK
HALAMAN JUDUL
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Jurusan Teknik Informatika
Disusun oleh : Yohanes Satrio Prabowo
115314039
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
(4)
ii
DECISION SUPPORT SYSTEM OPTIMIZE BUDGET USING KNAPSACK ALGORITHM
TITLE PAGE
A Thesis
Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Komputer Degree In Informatics Engineering Study Program
By:
Yohanes Satrio Prabowo 115314039
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
YOGYAKARTA 2016
(5)
iii
(6)
iv
(7)
v
HALAMAN MOTTO
“Jangan mencari ketakutanmu melainkan carilah harapan dan mimpimu. Jangan
berpikir tentang frustrasimnu, tapi tentang potensi yang belum terpenuhi. Perhatikan dirimu bukan dengan apa yang telah kamu coba dan gagal, tapi dengan
(8)
vi
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis tidak mengandung atau memuat hasil karya orang lain, kecuali yang telah disebutkan dalam daftar pustaka dan kutipan selayaknya karya ilmiah
(9)
vii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma Yogyakarta
Nama : Yohanes Satrio Prabowo
NIM : 115314039
Demi pengembangan ilmu pengetahuan, saya memeberkan kepada perpustakaan Universitas Sanata Dharma kataya ilmiah yang berjudul :
SISTEM PENDUKUNG PENGAMBILAN KEPUTUSAN OPTIMASI ANGGARAN MENGGUNAKAN ALGORITMA KNAPSACK
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada perpustakaan Universitas Sanata Dharma Yogyakarta hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelola dalam bentuk pangkalan data, mendistribusikan sercara terbatas, dan mempublikasikan di internet atau media lain untuk kepentingan akademis tanpa meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan yang saya buat dengan sebenarnya. Dibuat di Yogyakarta,
Pada Tanggal : 8 Desember 2016 Yang menyatakan,
(10)
viii
ABSTRAK
Sistem pendukung pengambilan keputusan optimasi anggaran ini merupakan sebuah sistem pendukung pengambilan keputusan yang dibuat untuk membantu pengguna dalam mengelola anggaran sesuai dengan bobot dan proiritas barang agar optimal sesuai dengan maksimal anggaran.
Sistem pendukung pengambilan keputusan optimasi anggaran ini menggunakan metode knapsack problems dengan penyelesaian greedy by weigh, semakin tinggi bobot barang yang diberikan maka barang tersebut semakin penting dan di prioritaskan. Data masukkan pada sistem ini berupa file excel yang berekstensi .xlxs. Sistem ini dibangun menggunakan bahasa pemrograman Java dengan database MySql yang berbasis dekstop.
Hasil akhir dari sistem ini yaitu, sistem ini melakukan perhitungan dari jumlah total anggaran yang akan di bandingkan dengan maksimal anggaran yang di-input-kan. Jika jumlah total anggaran melebihi maksimal anggaran maka akan dilakukan penghapusan dan atau pemotongan jumlah barang yang tidak di prioritaskan. Data output rekomendasi dari sistem ini berupa file excel yang berekstensi .xlxs.
Kata Kunci : Knapsack Problems, Greedy, Sistem Pendukung Pengambilan Keputusan (SPPK)
(11)
ix
ABSTRACT
The decision-making support system of optimization of this budget is a decision-making support system created to aid users in managing the budget in accordance with the weights and proiritas the goods in order for optimal fit with a maximum budget.
Decision-making support system this budget optimization method using knapsack problems with greedy finalization by weigh, the higher the weighting of goods that are given then the goods are increasingly important and in priority. The data entered on the system in the form of an excel file with extension. xlxs. The system is built using the Java programming language with database MySql based desktop.
The end result of the system, the system performs the calculation of the total amount of the budget that will be compared with the maximum budget that you input. If the total amount of the budget exceeded the maximum budget it will be done the removal and or cutting the number of items that are not in priority. Output data the recommendations of this system in the form of an excel file with extension. xlxs.
(12)
x
KATA PENGATAR
Puji syukur kehadirat Tuhan Yesus Kristus, atas segala berkat, penyertaan, dan anugrah_Nya sehingga penulis dapat penyelesaikan skripsi dengan judul
“Sistem Pendukung Pengambilan Keputusan Optimasi Anggaran Menggunakan
Algoritma Knapsack” dengan baik dan lancar. Skripsi ini disusun sebagai salah satu
syarat guna memperoleh gelar Sarjana Komputer Program Studi Teknik Informatika Universitas Sanata Dharma.
Penulis menyadari banyak hal yang terjadi selama proses pengerjaan skripsi ada begitu banyak pihak yang telah memberikan bantuan dan perhatiaannya selama penulis mengerjakan skripsi ini. Oleh karena itu penulis ingin menyampaikan terima kasih kepada :
1. Orang tua saya Pramudiyamurti dan Ch Niken Sumekar yang telah
memberikan dukungan moral, priritual dan financial dalam penyusunan skripsi.
2. Sudi Mungkasi,S.Si.,M.Math.Sc.,Ph.D selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
3. Dr.Anastasia Rita selaku Ketua Program Studi Teknik Informatika
Universitas Sanata Dharma Yogyakarta.
4. Bapak Albertus Agung Hadhiamta S.T., M.T., selaku dosen pembimbing
skripsi yang telah bersedia meluangkan waktu dan tenaga untuk memberikan bimbingan, bantuan, dukungan, serta masukan dari awal samapi akhir penulisan skripsi ini.
5. Bapak JB. Budi Darmawan, S.T.,M.Sc., selaku dosen pembimbing
akademik Jurusan Teknik Informatika angjatan 2011.
6. Mas Susilo selaku Kepala pada laboratorium komputer dasar Universitas
Sanata Dharma yang telah meluangkan waktu dan tenaga untuk memberikan penjelasan, pengarahan serta dukungan dalam proses pembuatan skripsi ini.
(13)
xi
7. Bapak dan Ibu dosen Program Studi Teknik Informatika yang telah
memberikan ilmu selama proses perkuliahan.
8. Adik saya Stephani Nindya Kirana yang telah mendukung, support, dan
mendoakan sehingga terselesaikan skripsi ini.
9. Teman yang selalu support saya Beny, Bagus, Dio, Tea, Bee, Priska, Monik,
Agung, Kevin, Lukas, Candra, Bagus 2012, Angela Risma Viani dalam proses penulisan skripsi ini
10.Teman-teman Teknik Informatika angkatan 2011, terima kasih banyak atas
semangat dan kebersamaannya.
11.Semua pihak yang tidak dapat disebutkan satu persatu yang telah membantu
penulis dalam menyelesaikan tugas akhir ini.
Dalam penulisan skripsi ini tentunya masih banyak kekurangan. Oleh karena itu penulis mengharapkan saran dan kritik dari pembaca agar skripsi ini dapat berguna bagi semua pihak.
(14)
xii
DAFTAR ISI
HALAMAN JUDUL ...i
TITLE PAGE ... ii
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN ... iv
HALAMAN MOTTO ... v
PERNYATAAN KEASLIAN KARYA ... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... vii
ABSTRAK ... viii
ABSTRACT ... ix
KATA PENGATAR ... x
DAFTAR ISI ... xii
DAFTAR TABEL ... xvi
DAFTAR GAMBAR ... xvii
BAB I ... 1
PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Tujuan ... 2
1.4 Batasan Masalah ... 2
1.5 Metodologi Penelitian ... 3
1.6 Sistematika Penulisan ... 3
LANDASAN TEORI ... 5
2.1 Sistem Pendukung Pengambilan Keputusan (SPPK) ... 5
2.1.1 Tujuan SPPK ... 5
2.1.2 Struktur Keputusan ... 6
2.1.3 Karateristik Sistem Pendukung Pengambil Keputusan ... 7
2.1.4 Arsitektur Sistem Pendukung Pengambil Keputusan ... 9
2.1.5 Langkah – langkah Pemodelan dalam Sistem Pengambil Keputusan ... 10
(15)
xiii
2.2.1. Knapsack Interger 0/1 ... 12
2.3 Greedy ... 12
2.3.1. Penyelesaian Dengan Kriteria Greedy ... 13
BAB III ... 15
METODOLOGI PENELITIAN ... 15
3.1 Rumusan Masalah ... 15
3.1.1 Tahap Perencanaan ... 15
3.1.2 Pengumpulan Data ... 16
3.2 Pengembangan Sistem ... 16
3.2.1 Metode Pengembangan Sistem ... 16
BAB IV ... 19
ANALISA DAN PERANCANGAN SISTEM ... 19
4.1 Analisa Sistem ... 19
4.1.1 Gambaran Umum Sistem Lama ... 19
4.1.2 Fase Definisi Ruang Lingkup (Scope Definition Phase) ... 19
4.1.3 Analisis Masalah (Problem analysis) ... 20
4.1.4 Gambaran Umum Sistem Yang Akan Dibuat ... 20
4.2 Analisis Kebutuhan (Requirement Analysis) ... 22
4.2.1 Use Case Diagram ... 22
4.3 Desain Subsistem Manajemen Data ... 32
4.3.1 Diagram Conceptual Design ... 32
4.3.2 Physical Database Design ... 32
4.4 Desain Manajemen Model ... 35
4.5 Desain Subsistem Manajemen Dialog ... 37
4.5.1 Antarmuka Pengguna ... 38
4.6 Perancangan Sistem ... 43
4.6.1 Diagram Kelas ... 43
BAB V ... 45
IMPLEMENTASI DAN ANALISA HASIL ... 45
5.1 Implementsi ... 45
5.1.1 Implementasi GUI ... 45
5.1.2 Implementasi Sistem ... 52
(16)
xiv
5.2.1 Kompleksitas Algoritma ... 55
5.2.2 Pengujian Sistem... 56
5.3 Kelebihan dan Kekurangan Sistem ... 67
5.3.1 Kelebihan Sistem ... 67
5.3.2 Kekurangan Sistem ... 67
BAB VI ... 68
PENUTUP ... 68
6.1 Kesimpulan ... 68
6.2 Saran ... 68
DAFTAR PUSTAKA ... 69
LAMPIRAN ... 70
DIAGRAM SQUENCE ... 70
Tambah Golongan Pos... 70
Update Golongan Pos ... 70
Hapus Golongan Pos ... 71
Tambah Jenis Pos ... 71
Update Jenis Pos ... 71
Hapus Jenis Pos ... 72
Tambah Data RAB ... 72
Update Data RAB ... 73
Hapus Data RAB ... 73
Tambah Data Pos ... 74
Update Data Pos ... 74
Hapus Data Pos ... 75
Tambah Data Prioritas Barang ... 75
Update Data Prioritas Barang ... 76
Hapus Data Prioritas Barang ... 76
Insert File Excel ... 77
Knapsack... 77
DIAGRAM AKTIVITAS ... 78
Input Excel ... 78
Tambah Golongan Pos... 78
(17)
xv
Hapus Golongan Pos ... 79
Tambah Jenis Pos ... 80
Update Jenis Pos ... 80
Hapus Jenis Pos ... 81
Tambah Data RAB ... 81
Update Data RAB ... 82
Hapus Data RAB ... 83
Tambah Data Prioritas Barang ... 84
Update Data Prioritas Barang ... 84
Hapus Data Prioritas Barang ... 85
Tambah Data Pos ... 85
Update Data Pos ... 86
Hapus Data Pos ... 87
(18)
xvi
DAFTAR TABEL
Tabel 2.0.1 Penghitungan Knapsack menggunakan Greedy ... 14
Tabel 4.0.1 Analisis Masalah ... 20
Tabel 4.0.2 Komponen Use Case... 22
Tabel 3 Skenario Import file xlxs ... 24
Tabel 4 Skenario Tambah Data RAB ... 25
Tabel 5 Skenario Update DataRAB ... 25
Tabel 6 Skenario Hapus DataRAB ... 25
Tabel 7 Skenario Tambah Data Prioritas Barang ... 26
Tabel 8 Skenario Update Data Prioritas Barang ... 26
Tabel 9 Skenario Hapus Data Prioritas Barang ... 27
Tabel 10 Skenario Tambah Golongan Pos ... 27
Tabel 11 Skenario Update Golongan Pos ... 28
Tabel 12 Skenario Hapus Golongan Pos ... 28
Tabel 13 Skenario Tambah Jenis Pos ... 28
Tabel 14 Skenario Update Jenis Pos ... 29
Tabel 15 Skenario Hapus Jenis Pos ... 29
Tabel 16 Skenario Tambah Data Pos ... 30
Tabel 17 Skenario Update Data Pos ... 30
Tabel 18 Skenario Hapus Data Pos ... 31
Tabel 19 Knapsack ... 31
Tabel 20 Data Pos ... 33
Tabel 21 Data RAB ... 33
Tabel 22 Golongan Pos ... 34
Tabel 23 Jenis Pos ... 34
Tabel 24 Kata Kunci ... 35
Tabel 25 Penghitungan Knapsack 1 ... 35
Tabel 26 Penghitungan Knapsack 2 ... 36
Tabel 27 Penghitungan Knapsack 3 ... 36
(19)
xvii
DAFTAR GAMBAR
Gambar 2.0.1.4 Arsitektur Sistem Pengambil Keputusan ... 10
Gambar 0.1 Use Case ... 24
Gambar 4.0.3 Diagram Conceptual Design ... 32
Gambar 4.0.4 Physical Database Design ... 32
Gambar 4.0.5 Flowchart Algoritma Knapsack ... 37
Gambar 4.0.6 Menu Home ... 38
Gambar 4.0.7 Menu Import Excel ... 38
Gambar 4.0.8 Menu Golongan Pos... 39
Gambar 4.0.9 Menu Jenis Pos... 39
Gambar 4.0.10 Menu Data RAB... 40
Gambar 4.0.11 Menu Data Pos ... 40
Gambar 4.0.12 Menu Data Prioritas Barang ... 41
Gambar 4.0.13 Menu Knapsack ... 41
Gambar 4.0.14 Data Tidak Optimal... 42
Gambar 4.0.15 Diagram Kelas 1... 43
Gambar 4.0.16 Diagram Kelas 2... 44
Gambar 5.0.1 Implementasi Tampilan Home ... 45
Gambar 5.0.2 Implementasi Import File Excel ... 46
Gambar 5.0.3 Implementasi Windows Explorer ... 46
Gambar 5.0.4 Implementasi Data RAB ... 47
Gambar 5.0.5 Implementasi Data Pos ... 48
Gambar 5.0.6 Implemetasi Data Prioritas Barang Knapsack ... 49
Gambar 5.0.7 Implementasi Golongan Pos ... 50
Gambar 5.0.8 Implementasi Jenis Pos ... 51
Gambar 5.0.9 Implementasi Knapsack ... 52
Gambar 5.0.10 Pengujian Bobot Barang Default ... 56
Gambar 5.0.11 Hasil Penghitungan Sistem 1 ... 57
Gambar 5.0.12 Penghitungan Manual 1 ... 59
Gambar 5.0.13 Penghitungan Manual 2 ... 60
Gambar 5.0.14 Penghitungan Manual 3 ... 60
Gambar 5.0.15 Penghitungan Manual 4 ... 61
Gambar 5.0.16 Penghitungan Manual 5 ... 61
Gambar 5.0.17 Pengujian Bobot Barang Masukkan Pengguna ... 62
Gambar 5.0.18 Penghitungan Sistem 2 ... 62
Gambar 5.0.19 Penghitungan Manual 6 ... 64
Gambar 5.0.20 Penghitungan Manual 7 ... 65
Gambar 5.0.21 Penghitungan Manual 8 ... 65
Gambar 5.0.22 Penghitungan Manual 9 ... 66
Gambar 5.0.23 Penghitungan Manual 10 ... 66
Gambar 5.0.24 Penghitungan Manual 11 ... 66
Gambar 7.0.1 Diagram Squence Tambah Golongan Pos ... 70
Gambar 7.0.2 Diagram Squence Update Golongan Pos ... 70
(20)
xviii
Gambar 7.0.4 Diagram Squence Tambah Jenis Pos ... 71
Gambar 7.0.5 Diagram Squence Update Jenis Pos ... 71
Gambar 7.0.6 Diagram Squence Hapus Jenis Pos ... 72
Gambar 7.0.7 Diagram Squence Tambah Data RAB ... 72
Gambar 7.0.8 Diagram Squence update Data RAB... 73
Gambar 7.0.9 Diagram Squence Hapus Data RAB ... 73
Gambar 7.0.10 Diagram Squence Tambah Data Pos ... 74
Gambar 7.0.11 Diagram Squence Update Data Pos ... 74
Gambar 7.0.12 Diagram Squence Hapus Data Pos ... 75
Gambar 7.0.13 Diagram Squence Tambah Data Prioritas Barang ... 75
Gambar 7.0.14 Diagram Squence Update Data Prioritas Barang ... 76
Gambar 7.0.15 Diagram Squence Hapus Data Prioritas Barang ... 76
Gambar 7.0.16 Diagram Squence Insert File Excel ... 77
Gambar 7.0.17 Diagram Squence Knpasack ... 77
Gambar 7.0.18 Diagram Input Excel ... 78
Gambar 7.0.19 Diagram Tambah Golongan Pos ... 78
Gambar 7.0.20 Diagram Update Golongan Pos ... 79
Gambar 7.0.21 Diagram Hapus Golongan Pos ... 79
Gambar 7.0.22 Diagram Tambah Jenis Pos ... 80
Gambar 7.0.23 Diagram Update Jenis Pos ... 80
Gambar 7.0.24 Diagram Hapus Jenis Pos ... 81
Gambar 7.0.25 Diagram Tambah Data RAB ... 81
Gambar 7.0.26 Diagram Update Data RAB ... 82
Gambar 7.0.27 Diagram Hapus Data RAB ... 83
Gambar 7.0.28 Diagram Tambah Data Prioritas Barang ... 84
Gambar 7.0.29 Diagram Update Data Prioritas Barang ... 84
Gambar 7.0.30 Diagram Hapus Data Prioritas Barang ... 85
Gambar 7.0.31 Diagram Tambah Data Pos ... 85
Gambar 7.0.32 Diagram Update Data Pos ... 86
Gambar 7.0.33 Diagram Hapus Data Pos ... 87
(21)
1
BAB I PENDAHULUAN
1.1 Latar Belakang
Penyusun anggaran pada umumnya akan memasukkan biaya yang menurut mereka penting untuk dimasukkan kedalam proses penganggaran tersebut. Dari sekian banyak hal yang ditemukan dalam penyusunan anggaran banyak dijumpai permasalahan dalam penyusunan anggaran tersebut.
Dalam Rancangan Rencana Anggaran Pendapatan dan Belanja akan melalui beberapa proses. Proses tersebut adalah rencana pengajuan, anggaran telah disetujui dan anggaran yang direalisasikan. Dalam rencana pengajuan pada umumnya tidak ditemukan masalah yang terlalu rumit. Masalah yang terdapat pada rencana pengajuan umumnya berkaitan dengan kebutuhan barang atau item yang terdapat pada rencana anggaran tersebut. Penganggar anggaran akan memasukkan barang yang menurutnya penting dan segera harus didanai.
Pada umumnya masalah akan muncul setelah rencana anggaran tersebut diajukan kepada pihak yang mendanai anggaran tersebut. Seringkali tidak semua anggaran yang diajukan akan disetujui oleh pihak pendana. Pihak pemberi dana pasti akan memberikan batas maksimal untuk membatasi anggaran yang telah diajukan tersebut. Masalah umum yang kerap terjadi dana anggaran yang telah diajukan mengalami pemotongan dari pihak memberi dana. Dari hal tersebut masalah akan bertambah lagi jika semua barang yang dianggap penting oleh penganggar harus masuk kedalam anggaran. Seringkali akibat dari pemotongan dana anggaran, fungsi dari anggaran yang semula menjadi tidak optimal karena keterbatasan data yang disetujui.
Masalah lain saat anggaran tersebut telah disetujui dan ditetapkan adalah anggaran yang direalisasikan. Anggaran realisasi pasti akan dilaporankan kembali kepada pihak pemberi dana untuk laporan pertanggungjawaban atas dana yang telah digunakan.
(22)
Untuk mengatasi beberapa masalah yang terjadi dalam persoalan anggaran tersebut terdapat cara yang dapat digunakan untuk mengatasinya. Cara tersebut salah satunya dengan mengganti jumlah item yang dapat dikurangkan agar barang tersebut dapat dibeli tetapi jumlah banyak dikurangi. Selain itu item pada anggaran dapat dihilangkan dan atau diganti dengan item yang lebih penting atau lebih diprioritaskan.
Dalam dunia teknologi terdapat pula solusi yang dapat digunakan dalam mengatasi masalah tersebut. Salah satu algoritma dalam teknologi yang dapat dipakai untuk menangani masalah tersebut dengan knapsack. Knapsack dapat digunakan untuk mengoptimalkan anggaran yang telah disetujui agar semua prioritas yang penting dapat diatasi dengan biaya yang terbatas.
1.2 Rumusan Masalah
Berdasarkan latar belakang diatas maka dapat dibuat beberapa rumusan masalah antara lain :
1. Bagaimana memperoleh hasil optimal dengan batas maksimal anggaran?
2. Bagaimana cara memperoleh hasil optimal suatu anggaran dengan metode
knapsack?
3. Bagaimana membantu pengguna untuk menentukan prioritas anggaran
dengan cepat?
1.3 Tujuan
Tujuan dari tugas akhir ini adalah membantu pengguna dalam mengolah anggaran dengan memberikan hasil optimal menggunakan metode knapsack.
1.4 Batasan Masalah
Batasan masalah dalam penelitian ini adalah sebagai berikut:
1. File hasil optimasi hanya berupa file teks berformat .xlxs
2. File import data hanya berupa file excel berformat .xlxs
3. File bisa di proses harus sesuai format.
(23)
1.5 Metodologi Penelitian
Metode pengembangan perangakat lunak dengan metode Waterfall :
a. Pengumpulan Data
Tahapan ini digunakan untuk mengumpulkan data anggaran yang ada di lab untuk melakukan analisis perancangan sistem.
b. Analisis Sistem
Tahapan ini digunakan untuk menganalisa proses bisnis yang ada dalam suatu anggaran serta fungsi yang akan digunakan dalam sistem beserta user interface program.
c. Perancangan Perangkat Lunak
Tahapan ini memusatkan pada karakteristik dan user interface dan prosedur atau fungsi secara mendetail.
d. Implementasi
Tahapan ini merubah semua rancangan ke dalam program.
e. Pengujian Sistem
Tahapan ini merupakan pengujian atau analisa sejauh mana program yang telah dibangun dapat memenuhi kebutuhan user atau pengguna.
1.6 Sistematika Penulisan
Dokumen tugas akhir ini akan memuat 6 bab, yaitu:
1. BAB I Pendahuluan
Bab ini berisi tentang latar belakang, rumusan masalah, batasan masalah, tujuan, metodologi dan sistematika penulisan.
2. BAB II Landasan Teori
Dalam bab ini akan dijelaskan mengenai pengetahuan yang menjadi dasar teori untuk mengimplementasikan Knapsack Problems dengan penyelesaian Greedy
3. BAB III Metodologi Penelitian
Bab ini berisi metodologi penelitian yang akan digunakan pada penelitian yang terdiri dari rumusan masalah yang diselesaikan, metodologi penelitian yang akan digunakan, tahap perencanaan, pengumpulan data,
(24)
survei awal, data, studi literatur, pengembangan sistem, dan metode pengembangan sistem.
4. BAB IV Analisa Dan Perancangan
Bab ini berisi tentang penjelasan mengenai proses implementasi program sesuai dengan analisa dan perencanaan yang telah dibut. Dalam bab ini juga menjelaskan hasil analisa sistem yang telah dibuat.
5. BAB V Implementasi Dan Analisa Hasil
Bab ini memuat implementasi metode dan hasil implementasi dari algoritma yang digunakan, yaitu algoritma Knapsack dengan penyelesaian Greedy.
6. BAB VI Penutup
Bab ini berisi penjelasan tentang kelebihan dan kekurangan sistem, kesimpilan dan saran.
(25)
5
BAB II
LANDASAN TEORI
2.1 Sistem Pendukung Pengambilan Keputusan (SPPK)
Pengambilan keputusan merupakan hasil suatu proses pemilihan dari berbagai alternatif tindakan yang mungkin dipilih dengan mekanisme tertentu, dengan tujuan untuk menghasilkan keputusan yang terbaik. Dimana proses keputusan secara bertahap, sistematik, konsisten, dan dalam setiap langkah sejak awal telah mengikutsertakan semua pihak, akan memberikan hasil yang baik (Suryadi, 1998).
2.1.1 Tujuan SPPK
Menurut Turban (2005) Tujuan dari Sistem Pendukung Keputusan adalah:
1. Membantu manajer dalam pengambilan keputusan atas masalah
semi-terstruktur.
2. Memberikan dukungan atas pertimbangan manajer bukan untuk
menggantikan fungsi manajer.
3. Meningkatkan efektivitas keputusan yang diambil manajer lebih dari
pada perbaikan efisiensinya.
4. Kecepatan komputasi. Komputer memungkinkan para pengambil
keputusan untuk melakukan banyak komputasi secara cepat dengan biaya yang rendah.
5. Peningkatan produktivitas. Membangun satu kelompok pengambil
keputusan, terutama para pakar. Pendukung terkomputerisasi bisa mengurangi ukuran kelompok dan memungkinkan para anggotanya untuk berada di berbagai lokasi yang berbeda-beda (menghemat biaya perjalanan). Selain itu, produktivitas staff pendukung (misalnya analis keuangan dan hukum) bisa ditingkatkan. Produktivitas juga bisa ditingkatkan menggunakan peralatan
(26)
optimalisasi yang menentukan cara terbaik untuk menjalankan sebuah bisnis.
6. Dukungan kualitas. Komputer bisa meningkatkan kualitas keputusan
yang dibuat. Sebagai contoh, semakin banyak data yang diakses, makin banyak juga alternatif yang bisa dievaluasi. Analisis risiko bisa dilakukan dengan cepat dari para pakar (beberapa dari mereka berada di lokasi yang jauh) bisa di kumpulkan dengan cepat dan dengan biaya lebih rendah. Keahlian bahkan bisa diambil langsung dari sebuah sistem komputer melalui metode kecerdasan tiruan. Dengan komputer, para pengambil keputusan bisa melakukan simulasi yang kompleks, memeriksa banyak skenario yang memungkinkan, dan menilai berbagai pengaruh secara cepat dan ekonomis. Semua kapabilitas tersebut mengarah kepada keputusan yang lebih baik.
7. Berdaya saing. Manajemen dan pemberdayaan sumber daya
perusahaan. Tekanan persaingan menyebapkan tugas pengambilan keputusan menjadi sulit. Persaingan didasarkan tidak hanya pada harga, tetapi juga pada kualitas, kecepatan, kustomasi produk, dan dukungan pelanggan. Organisasi harus mampu secara sering dan cepat mengubah mode operasi, merekayasa ulang proses dan struktur, memberdayakan karyawan, serta berinovasi. Teknologi pengambilan keputusan bisa menciptakan pemberdayaan yang signifikan dengan cara memperbolehkan seseorang untuk membuat keputusan yang baik secara cepat, bahkan jika mereka memiliki pengetahuan yang kurang.
8. Mengatasi keterbatasan kognitif dalam pemrosesan dan
penyimpanan.
2.1.2 Struktur Keputusan
Sistem Pengambil Keputusan dapat menyelesaikan masalah dilihat dari keterstrukturannya dibagi menjadi:
(27)
1. Keputusan terstruktur (structured decision).
Keputusan terstruktur adalah keputusan yang dilakukan secara berulang-ulang dan bersifat rutin. Prosedur pengambilan keputusan sangatlah jelas. Keputusan tersebut terutama dilakukan pada manajemen tingkat bawah.
2. Keputusan semiterstruktur (semistructured decision).
Keputusan semiterstruktur adalah keputusan yang memiliki dua sifat. Sebagian keputusan bisa ditangani oleh komputer dan yang lain tetap harus dilakukan oleh pengambil keputusan. Prosedur dalam pengambilan keputusan tersebut secara garis besar sudah ada, tetapi ada beberapa hal yang masih memerlukan kebijakan dari pengambil keputusan. Biasanya keputusan seperti ini diambil oleh manajer level menengah dalam suatu organisasi.
3. Keputusan tak terstruktur (unstructured decision).
Keputusan tak terstruktur adalah keputusan yang penanganannya rumit karena tidak terjadi berulang-ulang atau tidak selalu terjadi. Keputusan tersebut menuntut pengalaman dan berbagai sumber yang bersifat eksternal. Keputusan tersebut umumnya terjadi pada manajemen tingkat atas.
2.1.3 Karateristik Sistem Pendukung Pengambil Keputusan
Terdapat 14 karateristik dalam Sistem Pengambil Keputusan (Turban, E.,2005) diantaranya yaitu:
1. Dukungan kepada pengambil keputusan, terutama pada situasi
semi-terstruktur dan tak semi-terstruktur, dengan menyertakan penilaian manusia dan informasi terkomputerisasi.
2. Dukungan untuk semua level manajerial, dari eksekutif sampai
manajer lini.
3. Dukungan untuk individu dan kelompok. Masalah yang kurang
(28)
dan tingkat organisasional yang berbeda atau bahkan dari organisasi lain.
4. Dukungan untuk keputusan independen atau sekuensial. Keputusan
bisa dibuat satu kali, atau berulang (dalam interval yang sama).
5. Dukungan disemua fase proses pengambilan keputusan: inteligensi,
desain, pilihan, dan implementasi.
6. Dukungan diberbagai proses dan gaya pengambilan keputusan.
7. Adaptivitas sepanjang waktu. Pengambilan keputusan harusnya
reaktif, bisa menghadapi perubahan kondisi secara cepat, dan mengadaptasi sistem pengambil keputusan untuk memenuhi perubahan tersebut. Sistem pengambil keputusan bersifat fleksibel. Oleh karena itu, pengguna bisa menambahkan, menghapus, menggabungkan, mengubah, atau menyusun kembali elemen-elemen dasar.
8. Pengguna merasa seperti dirumah. Ramah-pengguna, kapabilitas
grafis yang sangat kuat, dan antarmuka manusia-mesin yang interaktif dengan satu bahasa alami bisa sangat meningkatkan efektivitas sistem pengambil keputusan.
9. Peningkatan efektifitas pengambilan keputusan (akurasi, timelines,
kualitas) ketimbang efisiensinya (biaya pengambilan keputusan). Ketika sistem pengambil keputusan disebarkan, pengambil keputusan sering membutuhkan waktu lebih lama, tetapi hasilnya lebih baik.
10. Kontrol penuh oleh pengambil keputusan terhadap semua langkah
proses pengambil keputusan dan memecahkan suatu masalah. Sistem pengambil keputusan secara khusus menekankan untuk mendukung pengambilan keputusan, bukan menggantikannya.
11. Pengguna akhir bisa mengembangkan dan memodifikasi sendiri
sistem sederhana. Sistem yang lebih besar bisa dibangun dengan bantuan ahli sistem informasi.
12. Biasanya, model-model digunakan untuk menganalisis situasi
(29)
eksperimen dengan berbagai strategi yang berbeda di bawah konfigurasi yang berbeda.
13. Akses disediakan untuk berbagai sumber data, format dan tipe, mulai
dari sistem informasi geografis sampai sistem, berorientasi-objek. Dapat digunakan sebagai alat standalone oleh seorang pengambil keputusan pada satu lokasi atau didistribusikan disuatu organisasi. Secara keseluruhan dan dibeberapa organisasi sepanjang persediaan. Dapat diintegrasikan secara dengan sistem pengambil keputusan lain atau aplikasi lain, serta bisa didistribusikan secara internal dan eksternal menggunakan networking dan teknologi web.
2.1.4 Arsitektur Sistem Pendukung Pengambil Keputusan
Aplikasi sistem pendukung keputusan bisa terdiri dari beberapa subsistem, diantaranya yaitu:
1. Subsistem manajemen data
Subsistem manajemen data memasukkan satu database yang berisi data yang relevan untuk suatu situasi dan dikelola oleh perangkat lunak yang disebut sistem manajemen database (DBMS/Data Base Management System).
2. Subsistem manajemen model
Merupakan paket perangkat lunak yang memasukkan model kuantitatif lain yang memberikan kapabilitas analitik dan manajemen perangkat lunak yang tepat. Perangkat lunak disebut manajemen basis model (MBMS).
3. Subsistem antarmuka pengguna
Pengguna berkomunikasi dengan sistem pendukung keputusan melalui subsistem tersebut. Pengguna adalah bagian yang dipertimbangkan dari sistem.
4. Subsistem manajemen berbasis-pengetahuan
Subsistem tersebut mendukung semua subsistem lain atau bertindak langsung sebagai suatu komponen independen dan bersifat opsional.
(30)
Berikut merupakan gambar arsitektur dari sistem pengambil keputusan.
Gambar 2.0.1.4 Arsitektur Sistem Pengambil Keputusan
2.1.5 Langkah – langkah Pemodelan dalam Sistem Pengambil Keputusan
1. Studi kelayakan (Intelligence).
Pada langkah ini, sasaran ditentukan dan dilakukan pencarian prosedur, pengumpulan data, identifikasi masalah, identifikasi kepemilikan masalah, hingga akhirnya terbentuk sebuah pernyataan masalah. Kepemilikan masalah berkaitan dengan bagian apa yang akan dibangun oleh DSS dan apa tugas dari bagian tersebut sehingga model tersebut bisa relevan dengan kebutuhan pemilik pemasalah.
2. Perancangan (Design)
Pada tahap ini akan diformulasikan model yang akan digunakan dan kriteria-kriteria yang ditentukan. Setelah itu, dicari alternatif model yang bisa menyelesaikan permasalahan tersebut. Langkah selanjutnya adalah memprediksi keluaran yang mungkin. Kemudian, ditentukan variabel-variabel model.
3. Pemilihan (Choice).
Setelah pada tahap design ditentukan berbagai alternatif model beserta variabel-variabelnya, pada tahap ini akan dilakukan pemilihan
(31)
modelnya, termasuk solusi dari model tersebut. Selanjutnya, dilakukan analisis sensitivitas, yakni dengan mengganti beberapa variabel.
4. Membuat Sistem Pengambil Keputusan.
Setelah menentukan modelnya, berikutnya adalah
mengimplementasikan-nya dalam aplikasi DSS.
2.2 Knapsack Problem
Knapsack adalah tas atau karung yang digunakan untuk memasukkan sesuatu. Tetapi tidak semua barang dapat ditampung kedalam karung tersebut. Karung tersebut hanya dapat menyimpan beberapa objek dengan total ukurannya lebih kecil atau sama dengan ukuran kapasitas karung.
Knapsack problem merupakan masalah dimana orang dihadapkan pada persoalan optimasi pada pemilihan benda yang dapat dimasukkan ke dalam sebuah wadah yang memiliki keterbatasan ruang atau daya tampung. Dengan adanya optimasi dalam menghasilkan keuntungan yang maksimum. Benda-benda yang akan dimasukkan ini masing-masing memiliki berat dan sebuah nilai yang digunakan untuk menentukan prioritasnya dalam pemilihan tersebut. Nilainya dapat berupa tingkat kepentingan, harga barang, nilai sejarah, atau yang lainnya.
Wadah yang dimaksud disini juga memiliki nilai konstanta yang merupakan nilai pembatas untuk benda-benda yang akan dimasukkan kedalam wadah tersebut sehingga harus diambil sebuah cara memasukkan benda-benda tersebut kedalam wadah sehingga menghasilkan hasil yang optimum tetapi tidak melebihi kemampuan wadah untuk menampungnya.
Jenis –jenis knapsack problem :
0/1 Knapsack Problem
Setiap barang hanya tersedia 1 unit, take it or leave it. Fractional Knapsack Problem
(32)
Barang boleh dibawa sebagian saja. Versi problem ini menjadi masuk akal apabila barang yang tersedia dapat dibagi-bagi. Sebagai contoh : gula, tepung, garam, dan sebagainya.
Bounded Knapsack Problem
Setiap barang tersedia sebanyak N unit (jumlahnya terbatas). Unbounded Knapsack Problem
Setiap barang tersedia lebih dari 1 unit, jumlahnya tidak terbatas.
2.2.1. Knapsack Interger 0/1
Didalam persoalan ini terdapat n buah berat (Wi) dan n buah nilai benda (Pi) serta sebuah nilai M yang merupakan kapasitas knapsack. Dalam memilih sebuah subset dari berat benda tersebut, ditentukan nilai
maksimal = ∑��= Pi Xi dengan batasan ∑��= Wi Xi ≤ M , (2.1)
dan nilai maksimum dengan z bernilai vektor zero-one. Ruang solusi ini terdiri dari dua permasalahan, menentukan secara jelas pada nilai 0 dan 1 pada nilai x. Jadi pada ruang solusi ini sama seperti pada penjumlahan permasalahan subset.
2.3 Greedy
Pada penyelesaian Knapsack Problem terdapat tiga jenis algoritma Greedy yang dapat digunakan yaitu:
A. Greedy By Weight
Pada setiap langkah pilih objek yang mempunyai berat teringan. Mencoba memaksimumkan keuntungan dengan memasukkan sebanyak mungkin objek kedalam knapsack.
Pertama kali yang dilakukan adalah program mengurutkan secara menaik objek-objek berdasarkan weight-nya. Kemudian baru diambil satu-persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau sudah idak ada objek lagi yang bisa dimasukkan.
(33)
B. Greedy By Profit
Pada setiap langkah, pilih objek yang mempunyai keuntungan terbesar. Mencoba memaksimumkan keuntungan dengan memilih objek yang paling menguntungkan terlebih dahulu.
Pertama kali yang dilakukan adalah program mengurutkan secara menurun objek-objek berdasarkan profit-nya. Kemudian baru diambil satu-persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau sudah tidak ada objek lagi uang bisa dimasukkan.
C. Greedy By Density
Pada setiap langkah knapsack di isi dengan objek yang mempunyai p1/w1 terbesar, dimana p adalah keuntungan dan w adalah berat barang. Mencoba memaksimumkan keuntungan dengan memilih objek yang mempunyai density per unit berat terbesar.
Pertama kali yang dilakukan adalah program mencari nilai profit per berat tiap-tiap unit (density) dari tiap-tiap objek. Kemudian objek-objek tersebut diurutkan berdasarkan density-nya. Kemudian baru diambil satu-persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau tidak ada objek lagi yang bisa dimasukkan.
2.3.1. Penyelesaian Dengan Kriteria Greedy
Kriteria Greedy merupakan salah satu metode untuk mendapatkan solusi optimal. Dengan metode ini solusi optimal bisa diperoleh dengan cepat, efisien, dan efektif. Konsep dari kriteria greedy adalah :
Pilih objek dengan nilai Pi maksimal atau objek dengan ukuran
terbesar.
Pilih objek dengan berat Wi yang minimal terlebih dahulu.
Pilih objek dengan nilai rasio berat (Pi/Wi) yang terbesar.
Dalam metede Greedy hanya dibutuhkan tiga kemungkinan dari sekian banyak solusi feasible yang mungkin. Dengan demikian perhitungan yang dilakukan tidak terlalu banyak dan tidak perlu waktu lama dalam mendapatkan nilai profit maksimal dari objek yang akan
(34)
dimuat dalam knapsack. Kelemahan pada metode ini adalah jika jumlah objek atau barang yang akan dimuat lebih dari tiga, maka akan ditemui banyak perhitungan untuk beberapa solusi feasible dan memmerlukan waktu relatif lama.
Tinjauan persoalan Integer Knapsack dengan n = 3. Misalkan objek-objek tersebut kita beri nomor 1, 2, 3. Setiap objek i dan kapasitas knapsack adalah sebagai berikut :
w1 = 4; p1 = 10
w2 = 6; p2 = 20
w3 = 5; p3 = 30
kapasitas Knapsack W = 10
Maka tabel solusi dengan menggunakan algoritma greedy adalah sebagai berikut :
Tabel 2.0.1 Penghitungan Knapsack menggunakan Greedy
Properti Objek Greedy by Solusi
Optimal i wi pi wi/pi Weight Profit Density
1 4 10 2,5 1 0 0 1
2 6 20 3,3 0 1 1 0
3 5 30 6 1 1 1 1
Total Bobot 9 11 11 9
Total Keuntungan 40 50 50 40
Dari tabel diatas objek yang akan dimasukkan kedalam knapsack adalah objek no 1 dan no 3, sedangkan objek no 2 tidak dimasukkan kedalam knapsack.
(35)
15
BAB III
METODOLOGI PENELITIAN
Bab ini berisi bagaimana cara pengambilan data untuk penelitian. Cara pengambilan data dapat dilakukan dengan berbagai langkah seperti yang akan dijelaskan dibawah ini.
3.1 Rumusan Masalah
Rumusan masalah dalam penelitan ini adalah bagaimana membangun SPPK untuk membantu pengguna dalam optimasi anggaran sesuai dengan kebutuhan dan tidak melebihi maksimal anggaran menggunakan algoritma knapsack problems dengan penyelesaian greedy. Untuk menjawab masalah tersebut maka metode penelitan yang akan digunakan dalam penelitan ini terdiri dari :
1. Tahap Perencanaan
2. Pengumpulan Data
3. Studi Literatur
4. Pengembangan Sistem
3.1.1 Tahap Perencanaan
Pada tahap ini dilakukan penentuan tujuan dibangunnya Sistem Pendukung Pengambilan Keputusan. Langkah ini merupakan langkah awal yang sangat penting, karena akan menentukan pemilihan jenis Sistem Pendukung Pengambilan Keputusan yang akan dirancang serta metode pendekatan yang akan dipergunakan dalam penelitian ini. Proses yang akan dilakukan yaitu mempelajari kebutuhan sistem yang akan digunakan dalam penelitian dan kriteria apa saja yang digunakan untuk proses pendukung keputusan. Setelah proses perencanaan dilakukan maka akan dilakukan proses pembuatan sistem.
(36)
3.1.2 Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut :
3.1.2.1 Survei Awal
Dilakukan wawancara dengan menemui Kepala
Laboratorium Komputer Dasar Kampus 3 Universitas Sanata Dharma Yogyakarta berkaitan dengan proses dan prosedur yang menjadi pertimbangan dalam pengambilan keputusan pengolahan anggaran yang selama ini telah diterapkan.
3.1.2.2 Sumber Data
Data yang digunakan pada penelitian ini diperoleh dari Kepala Laboratorium Komputer Dasar Kampus 3 Universitas Sanata Dharma Yogyakarta. Data yang diperoleh merupakan data asli dari anggaran Laboratorium Komputer Dasar Kampus 3 Universitas Sanata Dharma Yogyakarta.
3.1.2.3 Studi Literatur
Mempelajari teori Sistem Pendukung Pengambilan Keputusan dan metode Knapsack dengan penyelesaian Greedy dalam pembuatan SPPK untuk optimasi anggaran. Sumber literatur berupa buku teks, situs-situs penunjang, dan karya ilmiah.
3.2 Pengembangan Sistem
3.2.1 Metode Pengembangan Sistem
Pembangunan sistem untuk SPPK Optimasi Anggaran dilakukan menggunakan metode FAST (Framework for the Applications of Systems Thingking). Terdapat 6 tahapan dalam metode FAST (Whitten, 2001), yaitu:
a) Scope definition (definisi ruang lingkup) dalam proses scope definition terdapat pernyataan masalah seputar ruang lingkup sesuai dengan sistem yang dianalisis. Tahap ini meliputi tahap: gambaran
(37)
sistem yang ada saat ini dan problem statement yang didefinisikan dalam PIECES (Performance, Information, Economic, Control Problem, Efficiency, Service).
b) Problem Analysis, pada tahap ini yaitu menganalisa masalah yang ada pada saat ini. Oleh sebab itu, dari hasil analisa tersebut diketahui layak apa tidaknya sistem baru dibangun. Tahap ini meliputi tahap: PIECES Cause Efect Analysis dan System Improvement Objective, serta gambaran sistem yang baru.
c) Requirements Analysis, tahap ini merupakan tahap analisa kebutuhan sistem yang akan dibangun. Fase ini meliputi: use-case diagram, dan use-case narrative.
d) Logical Design (analisis terstruktur), tahap ini merupakan tahap untuk menterjemahkan kebutuhan pengguna ke dalam sistem model dan desain. Fase ini meliputi: Diagram berjenjang, diagram konteks, DFD (Data Flow Diagram), dan desain data model.
e) Physical Design and integration, tahap ini merupakan tahap menterjamahkan syarat kebutuhan sistem ke sebuah perancangan perangkat lunak yang dapat diperkirakan sesuai dengan rancangan yang telah ada. Hasil yang didapatkan dari fase ini yaitu design of spesification dan design of prototyping.
f) Construction and Testing, tahap ini merupakan tahap untuk implementasi sistem sesuai dengan rancangan yang telah dibuat. Setelah itu, tahap testing dilakukan dengan memfokuskan pada logika internal dari perangkat lunak, fungsi eksternal, dan mencari segala kemungkinan kesalahan. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut dan kemudian bisa diperbaiki. Sedangkan pengujian, akan dilakukan dengan menguji sistem yang telah dibuat.
(38)
Uji coba sistem dilakukan dengan dua tahap yaitu :
1. Perbandingan perhitungan manual Excel dan perhitungan Sistem
Perbandingan perhitungan manual Excel dan perhitungan sistem yaitu pengujian terhadap proses-proses dalam sistem yang dibuat untuk memastikan bahwa sistem sudah berjalan dengan baik. Uji coba proses yaitu dengan mencoba seluruh proses yang ada di dalam sistem apakah sudah berjalan dengan benar. Proses selanjutnya yaitu mencocokkan hasil perhitungan dengan metode Knapsack Problems menggunakan penyeselaian Greedy secara manual, dan kemudian mencocokan hasil perhitungan metode Knapsack Problems menggunakan penyeselaian Greedy sesuai dengan sistem yang telah dibuat. Hasil yang akan didapatkan yaitu berupa perhitungan secara manual yang harus sama dengan hasil perhitungan yang dihasilkan oleh sistem.
2. Pengujian oleh Kepala LKD Kampus 3 Universitas Sanata Dharma
Yogyakarta
Tahap Pengujian oleh Kepala LKD Kampus 3 Universitas Sanata Dharma Yogyakarta dilakukan dengan menguji sistem yang telah dibuat kepada pengguna untuk memastikan bahwa sistem sudah sesuai dengan kriteria kebutuhan pengguna dan sesuai dengan tujuan yang diharapkan. Proses pengujian dilakukan dengan meminta Kepala Laboran untuk mencoba sistem yang dibuat dengan metode Knapsack Problems menggunakan penyeselaian Greedy, untuk memastikan apakah sistem yang telah dibuat sesuai dengan sistem yang diinginkan pengguna, dan apakah sistem yang dibuat menggunakan metode Knapsack Problems dan menggunakan penyeselaian Greedy, dapat membantu pengguna dalam merekomendasikan optimasi anggaran.
(39)
19
BAB IV
ANALISA DAN PERANCANGAN SISTEM
4.1 Analisa Sistem
4.1.1 Gambaran Umum Sistem Lama
Pengolahan data anggaran belanja pada laboratorium masih menggunakan cara manual dengan Microsoft Excel. Data belanja
tersebut disimpan berdasarkan posnya masing-masing. User
memasukkan data, menambah, serta mengurangi barang secara manual menurut batas anggaran yang disetujui. Pada sistem lama ini pengguna mengajukan Rencana Anggaran Belanja (RAB) kepada bagian keuangan. Bagian keuangan akan membatasi maksimal dana yang akan dikeluarkan, jika RAB yang telah diajukan melebihi batas maksimal pengguna akan merevisi RAB-nya, dengan memotong atau menghapus data barang yang terdapat didalamnya. Pemotongan tersebut berdasarkan apa saja yang dibutuhkan di dalam labroraturium. Setelah direvisi, RAB tersebut diajukan kembali kepada bagian keuangan.
4.1.2 Fase Definisi Ruang Lingkup (Scope Definition Phase)
Sistem anggaran yang dikelola dengan cara yang masih manual ini mengakibatkan berbagai kesulitan. Kesulitan-kesulitan tersebut seperti :
Performance : proses pengambilan keputusan pemotongan dana untuk
prioritas barang masih kurang cepat dan efektif, dikarenakan sistem yang dikelola saat ini masih manual.
Control : belum ada kontrol dalam sistem, karena sistem yang ada saat
ini masih dikelola dengan cara manual.
Service : tidak adanya sistem yang membantu pengguna atau user dalam
(40)
4.1.3 Analisis Masalah (Problem analysis)
4.1.3.1Analisis Sebab Akibat (Cause-effect analysis)
Tabel 4.0.1 Analisis Masalah
Analisis Penyebab dan Akibat Tujuan Memperbaiki sistem
Masalah Sebab dan Akibat Tujuan Sistem Batasan Sistem
Memperoleh hasil optimal dengan batas maksimal anggaran dan menentukan prioritas anggaran membutuhkan waktu lama Penyebab : pengelolaan data dan pengambilan keputusan yang masih manual Akibat : pemilihan prioritas barang serta melakukan pemotongan anggaran terlalu lama dan belum tentu optimal Membantu pengguna dalam mengolah anggaran dengan memberikan hasil yang optimal dengan menggunakan metode knapsack
1. File hasil optimasi hanya berupa file teks berformat .xlxs
2. File import
data hanya berupa file excel berformat .xlxs 3. File bisa di
proses harus sesuai format.
4. Nama item
anggaran tidak bisa dituliskan lebih dari 1 kali.
4.1.4 Gambaran Umum Sistem Yang Akan Dibuat
Sistem baru yang akan dibuat diharapan dapat mempermudah kerja user dalam mengelola data anggaran. Sistem yang akan diirancang berbasis dekstop. Aplikasi ini dapat membaca file excel (.xlxs) dan dapat
(41)
membuat secara manual. Keluaran dari aplikasi ini berupa file excel (.xlxs).
File excel yang di-input-kan akan dipecah atau dibagi sesuai pos dan dimasukkan ke dalam database sesuai tabel pos masing-masing. Fungsi database disini hanya bersifat sementara dan untuk membantu proses optimasi saja. Database yang digunakan tidak bisa untuk menyimpan berbagai masukkan file excel. Setiap user meng-input-kan file excel secara otomatis, yang kemudian isi dalam tabel database akan dihapus dan digantikan oleh data yang baru saja diinputkan.
Setelah itu, data excel yang masuk akan dicek apakah termasuk barang yang dianggap penting oleh pengguna atau tidak. Barang yang masuk akan diberi bobot secara otomatis untuk mengetahui prioritas barang tersebut. Bobot default berdasarkan urutan dalam tabel excel, tetapi pengguna bisa merubah bobot tersebut jika memang barang tersebut termasuk barang yang dianggap penting.
4.1.4.1 Optimasi Anggaran
Sebelum melakukan optimasi anggaran, pengguna diminta memasukkan maksimal anggaran. Maksimal anggaran tersebut berfungsi sebagai pembatas anggaran yang disetujui dan sebagai patokan anggaran yang akan dioptimasi. Maksimal anggaran dapat di-input-kan oleh pengguna karena setiap tahun dan setiap laboratorium memiliki maksimal anggaran yang berbeda. Selain dapat meng-input-kan maksimal anggaran, pengguna juga dapat meng-input-kan, meng-edit, dan menghapus data yang telah masuk ke dalam sistem.
Langkah kerja optimasi pada penelitian ini yaitu semua harga total dari semua pos dijumlahkan, lalu dibandingkan dengan maksimal anggaran. Jika total harga melebihi maksimal anggaran, maka sistem akan memotong atau menghapus barang yang tidak masuk dalam kategori penting, sesuai dengan bobot dari data barang-barang tersebut. Jika bobot besar maka barang
(42)
tidak akan dihapus. Sistem ini dapat memotong jumlah barang yang dianggap penting jika kapasitas anggaran melebihi maksimal anggaran.
4.2 Analisis Kebutuhan (Requirement Analysis)
4.2.1 Use Case Diagram
Use Case merupakan dokumen behavior sistem dari sudut pandang user, yang melibatkan dua elemen, yaitu sistem (dengan komponen dan deskripsinya) dan user (elemen eksternal) (Jacobson, 1991). Use case merupakan dokumen naratif yang mendeskripsikan rangkaian kegiatan yang ditampilkan aktor dalam menggunakan sistem.
Diagram Use Case mengandung tiga komponen, yaitu :
• Use cases (komponen sistem) : unit fungsionalitas yang saling berkaitan.
• Actors (user sistem) : segala sesuatu yang mengakses sistem, tidak hanya orang.
• Asosiasi komunikasi : menghubungkan antara aktor dan use case.
Komponen yang digunakan dalam pembuatan use-case diagram, digambarkan dengan simbol berikut :
Tabel 4.0.2 Komponen Use Case
Simbol Deskripsi
Nama Use Case
Fungsi yang disediakan sistem
sebagai unit-unit yang saling
bertukar pesan antara unit dan aktor,
biasanya dinyatakan dengan
menggunakan kata kerja di awal frase nama use case.
(43)
Aktor
Proses atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat, di luar sistem informasi yang akan dibuat itu sendiri. Sehingga, walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang. Biasanya dinyatakan menggunakan kata benda di awal frase nama aktor. Asosiasi Komunikasi antara aktor dan use
case yang berpartisipasi pada use case, atau use case memiliki interaksi dengan aktor.
<<ekstensi>> Relasi use case tambahan ke sebuah
use case, dimana use case yang ditambah dapat berdiri sendiri walau tanpa use case tambahan itu, mirip dengan prinsip inheritance pada Pemrograman Berorientsi Objek.
Biasanya use case tambahan
memiliki nama depan yang sama dengan use case yang ditambahkan.
(44)
Menambah data jenisa pos
Mengedit data jenis pos
Menghapus data jenis pos Menambah data pos Mengedit data pos Menghapus data pos Menambah data RAB Mengedit data RAB Menghapus data RAB Pengguna Menambah jenis pos Mengedit jenis pos Menghapus jenis pos Menginput data excel Menginput maksimal anggaran Mengkonversi file excel Menambah data kata kunci
Mengupdate data kata kunci Menghapus data kata kunci
Menginput Max Anggaran
Gambar 0.1 Use Case
Tabel 3 Skenario Import file xlxs
Case : ImportXlsx Aktor : Pengguna Kondisi Awal : -
Kondisi Akhir : Berhasil Meng-input File
Aksi Aktor Reaksi Sistem
1. Aktor klik tombol browse 2. Sistem membuka windows
explorer
3. Aktor membuka file xlxs 4. File masuk kedalam kolom browse
5. Aktor klik tombol Proses File 6. Sistem input-kan dan
(45)
Tabel 4 Skenario Tambah Data RAB
Case : DataRAB Aktor : Pengguna
Kondisi Awal : Data Sudah di-load
Kondisi Akhir : Berhasil Meng-input Data
Aksi Aktor Reaksi Sistem
1. Aktor meng-input-kan data
melalui text area
2. Aktor klik tombol Tambah 3. Sistem meng-input kedalam
database
4. Sistem menampilkan data update
terakhir kedalam JTabel
Tabel 5 Skenario Update DataRAB
Case : DataRAB Aktor : Pengguna
Kondisi Awal : Data sudah di-load
Kondisi Akhir : Berhasil meng-update data
Aksi Aktor Reaksi Sistem
1. Aktor memilih data yang akan
di-update
2. Sistem menampilkan data kedalam
text area
3. Aktor meng-edit data
4. Aktor klik tombol Update 5. Sistem meng-update data kedalam
database
6. Sistem menampilkan data update
terakhir kedalam Jtable
Tabel 6 Skenario Hapus DataRAB
Case : DataRAB Aktor : Pengguna
(46)
Kondisi Awal : Data sudah di-load Kondisi Akhir : Berhasil menghapus data
Aksi Aktor Reaksi Sistem
1. Aktor memilih data yang akan
dihapus
2. Sistem menampilkan data kedalam
text area
3. Aktor klik tombol Hapus 4. Sistem menghapus data didalam
database
5. Sistem menampilkan data update
terakhir kedalam Jtable
Tabel 7 Skenario Tambah Data Prioritas Barang
Case : DataKataPrioritasBarang Aktor : Pengguna
Kondisi Awal : -
Kondisi Akhir : Berhasil Menambahkan Data
Aksi Aktor Reaksi Sistem
1. Aktor meng-input-kan data
melalui text area
2. Aktor klik tombol Tambah 3. Sistem meng-input kedalam
database
4. Sistem menampilkan data update
terakhir kedalam JTabel
Tabel 8 Skenario Update Data Prioritas Barang
Case : DataKataPrioritasBarang Aktor : Pengguna
Kondisi Awal : Data telah di-load Kondisi Akhir : Data berhasil Di-update
Aksi Aktor Reaksi Sistem
1. Aktor memilih data yang akan
di-update
2. Sistem menampilkan data kedalam
(47)
3. Aktor meng-edit data
4. Aktor klik tombol Update 5. Sistem meng-update data kedalam
database
6. Sistem menampilkan data update
terakhir kedalam Jtable
Tabel 9 Skenario Hapus Data Prioritas Barang
Case : DataKataPrioritasBarang Aktor : Pengguna
Kondisi Awal : Data telah di-load Kondisi Akhir : Data berhasil dihapus
Aksi Aktor Reaksi Sistem
1. Aktor memilih data yang akan
dihapus
2. Sistem menampilkan data kedalam
text area
3. Aktor klik tombol Hapus 4. Sistem menghapus data didalam
database
5. Sistem menampilkan data update
terakhir kedalam Jtable
Tabel 10 Skenario Tambah Golongan Pos
Case : GolonganPos Aktor : Pengguna
Kondisi Awal : Data Sudah di-load Kondisi Akhir : Berhasil Menambah Data
Aksi Aktor Reaksi Sistem
1. Aktor menginputkan data melalui
text area
2. Aktor klik tombol Tambah 3. Sistem meng-input kedalam
database
4. Sistem menampilkan data update
(48)
Tabel 11 Skenario Update Golongan Pos
Case : GolonganPos Aktor : Pengguna
Kondisi Awal : Data telah di-load Kondisi Akhir : Data berhasil Di-update
Aksi Aktor Reaksi Sistem
1. Aktor memilih data yang akan
di-update
2. Sistem menampilkan data kedalam
text area
3. Aktor meng-edit data
4. Aktor klik tombol Update 5. Sistem meng-update data kedalam
database
6. Sistem menampilkan data update
terakhir kedalam Jtable
Tabel 12 Skenario Hapus Golongan Pos
Case : GolonganPos Aktor : Pengguna
Kondisi Awal : Data telah di-load Kondisi Akhir : Data berhasil dihapus
Aksi Aktor Reaksi Sistem
1. Aktor memilih data yang akan
dihapus
2. Sistem menampilkan data kedalam
text area
3. Aktor klik tombol Hapus 4. Sistem menghapus data didalam
database
5. Sistem menampilkan data update
terakhir kedalam Jtable
Tabel 13 Skenario Tambah Jenis Pos
Case : JenisPos Aktor : Pengguna
(49)
Kondisi Awal : Data Sudah di-load Kondisi Akhir : Berhasil Menambah Data
Aksi Aktor Reaksi Sistem
1. Aktor meng-input-kan data
melalui text area
2. Aktor klik tombol Tambah 3. Sistem meng-input kedalam
database
4. Sistem menampilkan data update
terakhir kedalam JTabel
Tabel 14 Skenario Update Jenis Pos
Case : JenisPos Aktor : Pengguna
Kondisi Awal : Data telah di-load Kondisi Akhir : Data berhasil Di-update
Aksi Aktor Reaksi Sistem
1. Aktor memilih data yang akan
di-update
2. Sistem menampilkan data kedalam
text area
3. Aktor meng-edit data
4. Aktor klik tombol Update 5. Sistem meng-update data kedalam
database
6. Sistem menampilkan data update
terakhir kedalam Jtable
Tabel 15 Skenario Hapus Jenis Pos
Case : JenisPos Aktor : Pengguna
Kondisi Awal : Data telah di-load Kondisi Akhir : Data berhasil dihapus
(50)
1. Aktor memilih data yang akan dihapus
2. Sistem menampilkan data kedalam
text area
3. Aktor klik tombol Hapus 4. Sistem menghapus data didalam
database
5. Sistem menampilkan data update
terakhir kedalam Jtable
Tabel 16 Skenario Tambah Data Pos
Case : DataPos Aktor : Pengguna
Kondisi Awal : Data Sudah di-load Kondisi Akhir : Berhasil Menambah Data
Aksi Aktor Reaksi Sistem
1. Aktor meng-input-kan data
melalui text area
2. Aktor klik tombol Tambah 3. Sistem meng-input kedalam
database
4. Sistem menampilkan data update
terakhir kedalam JTabel
Tabel 17 Skenario Update Data Pos
Case : DataPos Aktor : Pengguna
Kondisi Awal : Data telah di-load Kondisi Akhir : Data berhasil Di-update
Aksi Aktor Reaksi Sistem
1. Aktor memilih data yang akan
di-update
2. Sistem menampilkan data kedalam
text area
3. Aktor meng-edit data
4. Aktor klik tombol Update 5. Sistem meng-update data kedalam
(51)
6. Sistem menampilkan data update terakhir kedalam Jtable
Tabel 18 Skenario Hapus Data Pos
Case : DataPos Aktor : Pengguna
Kondisi Awal : Data telah di-load Kondisi Akhir : Data berhasil dihapus
Aksi Aktor Reaksi Sistem
1. Aktor memilih data yang akan
dihapus
2. Sistem menampilkan data kedalam
text area
3. Aktor klik tombol Hapus 4. Sistem menghapus data didalam
database
5. Sistem menampilkan data update
terakhir kedalam Jtable
Tabel 19 Knapsack
Case : Knapsack Aktor : Pengguna
Kondisi Awal : Data telah di-load
Kondisi Akhir : Data di konversi ke file excel (.xlxs)
Aksi Aktor Reaksi Sistem
1. Data di-load kedalam Jtable
2. Aktor memasukkan maksimal
anggaran
3. Aktor klik tombol Optimalkan
Anggaran
4. Sistem memotong data anggaran
yang terdapat didalam Jtabel
5. Aktor klik tombol Konversi Ke
File Excel
6. Sistem mengkonversi Jtable
kedalam file excel(xlxs) dan menyimpan didalam windows explorer
(52)
4.3 Desain Subsistem Manajemen Data 4.3.1 Diagram Conceptual Design
Gambar 4.0.2 Diagram Conceptual Design 4.3.2 Physical Database Design
(53)
Physical Database Design merupakan gambaran implementasi database yang digunakan dalam sistem. Tabel-tabel Physical Database Design adalah sebagai berikut:
1. Tabel Data Pos
Tabel 20 Data Pos
Nama Field Tipe Keterangan
ID_POS Int (10) PK untuk tabel Data
Pos
ID_GOLONGAN Int (10) Field untuk id
golongan
TAHUN_POS Varchar(10) Field untuk tahun
pos
JUMLAH Varchar(20) Field untuk jumlah
barang
SISA_UANG Varchar(20) Field untuk sisa
uang
2. Tabel Data RAB
Tabel 21 Data RAB
Nama Field Tipe Keterangan
NO Int(10) Field untuk no
barang
ID_POS Int(10) PK untuk Data
RAB
NAMA_BARANG Varchar(50) Field untuk nama
barang
NON_USD Varchar(20) Field untuk harga
barang
JADWAL Varchar(20) Field untuk jadwal
(54)
JUMLAH Varchar(20) Field untuk jumlah
HARGA_SATUAN Varchar(20) Field unutk harga
satuan
USD Varchar(20) Field untuk USD
ISSELECTED Enum(‘Y’,’N’) Untuk mengetahui
barang termasuk penting atau tidak
BOBOT Int(5) Untuk memberi
bobot prioritas knapsack
3. Tabel Golongan Pos
Tabel 22 Golongan Pos
Nama Field Tipe Keterangan
ID_GOLONGAN Int(10) PK untuk tabel
golongan pos
NAMA_GOLONGAN Varchar(50) Field untuk nama
golongan
4. Tabel Jenis Pos
Tabel 23 Jenis Pos
Nama Field Tipe Keterangan
ID_JENIS_POS Int(20) PK untuk tabel
jenis pos
NAMA_JENIS_POS Varchar(50) Field untuk nama
(55)
5. Tabel Kata Kunci
Tabel 24 Kata Kunci
Nama Field Tipe Keterangan
NO Int(10) Field untuk no
KATA_KUNCI Text Field untuk kata
kunci knapsack
4.4 Desain Manajemen Model
Sistem Pendukung Pengambilan Keputusan Optimasi Anggaran ini menggunakan metode Knapsack dengan penyelesaian Greedy, untuk menentukan bobot kepentingan serta pemotongan dana anggaran nantinya. Langkah-langkah proses SPPK Optimasi Anggaran :
1. Maksimal anggaran kita tetapkan 100.000.000
wi = bobot berat barang
pi = jumlah atau keuntungan barang M = 100.000.000
Tabel 25 Penghitungan Knapsack 1
wi pi pi/wi Weigh Profit Density Solusi Optimal
2 21 10,5 1 1 1 1
1 1 1 1 0 0 1
3 1 0,333333 1 0 0 1
Total Bobot 6 2 2 6
Keuntungan 23 21 21 23
21 * 5.250.000 = 110.250.000 1 * 6.750.000 = 6.750.000 1 * 1.000.000 = 1.000.000
Jumlah = 118.000.000 > 100.000.000
2. Hasil total anggaran masih lebih besar dibandingkan maksimal anggaran
yang telah ditetapkan, maka barang dengan bobot paling besar dihilangkan dan dilakukan proses knapsack lagi yaitu sebagai berikut:
(56)
Tabel 26 Penghitungan Knapsack 2
wi pi pi/wi Weigh Profit Density Solusi Optimal
2 21 10,5 1 1 1 1
1 1 1 1 0 0 1
Total Bobot 3 2 2 3
Keuntungan 22 21 21 22
21 * 5.250.000 = 110.250.000 1 * 6.750.000 = 6.750.000
Jumlah = 117.000.000 > 100.000.000
3. Hasil total anggaran masih lebih besar dibandingkan maksimal anggaran
yang telah ditetapkan, maka barang dengan bobot paling besar, jumlah barangnya dikurangi dan dilakukan proses knapsack lagi, yaitu sebagai berikut:
Tabel 27 Penghitungan Knapsack 3
wi pi pi/wi Weigh Profit Density Solusi Optimal
2 17 8,5 1 1 1 1
1 1 1 1 0 0 1
Total Bobot 3 2 2 3
Keuntungan 18 17 17 18
17 * 5.250.000 = 89.250.000 1 * 6.750.000 = 6.750.000
Jumlah = 96.000.000 ≤ 100.000.000
4. Jika maksimal anggaran sudah lebih besar sama dengan jumlah anggaran,
maka proses knapsack dihentikan. Hasil tersebut telah dianggap paling optimal.
(57)
Jalannya algoritma knapsack dan bentuk flowchart adalah sebagai berikut:
Start
Input maxAng
Output
End
For (int i = jumlahBarang; i> 0 && !sackIsFull; i—) maxHarPerBar = MaxHarPerBar – harSat;
Input data dari Database
countAng maxAng && !sackIsFull
maxHarPerBarPlusCountAng
maxAng True
False
False
True
Gambar 4.0.4 Flowchart Algoritma Knapsack
4.5 Desain Subsistem Manajemen Dialog
Desain subsistem manajemen dialog menggambarkan perancangan tampilan sistem, yang berfungsi sebagai media komunikasi data antara pemakai dengan sistem komputer guna memperlancar arus data Sistem Pendukung Pengambilan Keputusan Pemilihan Optimasi Anggaran.
(58)
4.5.1 Antarmuka Pengguna
a. Home
Home adalah halaman utama atau beranda dari program yang akan dibuat. Halaman home hanya berisikan judul dan menu yang menghubungkan halaman-halaman lain.
Gambar 4.0.5 Menu Home
b. Import Excel
Menu ini berfungsi untuk meng-import-kan file excel yang berada di windows explorer. Ketika file telah di-input-kan, nama file tersebut akan muncul di text field, disamping tombol Browse.
(59)
c. Golongan Pos
Berisi golongan pos yang terdapat didalam anggaran yang telah di-input-kan. Halaman ini mempunyai tugas menambah, meng-update dan menghapus golongan dalam suatu anggaran.
Gambar 4.0.7 Menu Golongan Pos
d. Jenis Pos
Berisi jenis pos yang terdapat didalam suatu anggaran yang telah di-input-kan. Halaman jenis pos ini, mempunyai tugas menampilkan, menambah, meng-update dan menghapus jenis pos.
(60)
e. Data RAB
Berisi seluruh data barang, jumlah barang, harga barang dan status barang. Halaman data RAB ini mempunyai tugas untuk menampilkan, menambah, meng-edit, serta menghapus data RAB.
Gambar 4.0.9 Menu Data RAB
f. Data Pos
Menampilkan data pos yang berada didalam anggaran. Menu data pos ini mempunyai tugas menambah, meng-update serta menghapus data pos yang terdapat didalam anggaran.
(61)
g. Data Prioritas Barang
Menu data prioritas barang mempunyai fungsi untuk menambah, meng-update dan menghapus prioritas barang yang membantu dalam proses knapsack.
Gambar 4.0.11 Menu Data Prioritas Barang
h. Knapsack
Menu knapsack mempunyai fungsi untuk menampilkan hasil anggaran yang tealah dipotong dengan maksimal biaya dan telah dioptimalkan. Selain itu menu ini juga berfungsi untuk mengkonversi data menjadi file excel.
(62)
i. Data Tidak Optimal
Menu data tidak optimal, berfungsi untuk menampilkan semua data yang tidak optimal atau barang yang dipotong dari sebuah anggaran setelah dilakukan proses optimalisasi pada menu knapsack.
(63)
4.6 Perancangan Sistem 4.6.1 Diagram Kelas
Home
+ Home()
DataKataKunciKnapsack
- dtm : DefaultTableModel - selectedRow : int + DataKataKunciKnapsack() - populate() : void
- updateJTable : void
- Tambah_ButtonActionPerformed : void - Update_ButtonActionPerformed : void - Hapus_ButtonActionPerformed : void - jTable2MouseClicked : void
DataRAB
- dtm : DefaultTableModel - selectedRow : int + DataRAB () - populate : void - updateJTable : void - jTable1MouseClicked : void
- Update_ButtonActionPerformed : void - Tambah_ButtonActionPerformed : void - Hapus_ButtonActionPerformed : void
GolonganPos
- dtm : DefaultTableModel - selectedRow : int + DataRAB () - populate : void - updateJTable : void - jTable1MouseClicked : void
- Update_ButtonActionPerformed : void - Tambah_ButtonActionPerformed : void - Hapus_ButtonActionPerformed : void
ImportXlsx
+ ImportXlsx () + kosongkanDB : void + convertXlsxToDB : void + doSimpanXlsxToDB : void - pembobotanData : void - jButton1ActionPerformed : void
JenisPos
- dtm : DefaultTableModel - selectedRow : int + DataRAB () - populate : void - updateJTable : void - jTable1MouseClicked : void
- Update_ButtonActionPerformed : void - Tambah_ButtonActionPerformed : void - Hapus_ButtonActionPerformed : void
Knapsack
- isdioptimalkan : boolean + Knapsack ()
- setReportView : void - setExcelValues : void + resizeColumnWidth : void - hitungTotal : string
- jButtonOptimalkanActionPerfo rmed : void
- jTextFieldMaxAngKeyTyped : void
(64)
DataRAB
-no : int
-idGo longanPos : int - bobot : Int - namaBarang : string - jadwal : string - nonUSD : string - status : string - jumlah : string - hargaSatuan : string - USD : string + getNo() : int + setNo() : void + getIdGolonganPos () : int + setIdPos() : void + getNamaBarang() : string + serNamaBarang() : string + getNonUSD() : string + setNonUSD() : void + getJadwal() : string + setJadwal() : void + getStatus() : string + setStatus() : void + getJumlah() : string + setJumlah() : void + getHargaSatuan() : string + setHargaSatuan() : void + getUSD() : string + setUSD() : void + getBobot() : int + setBobot() : void
+ selectDataRAB(ArrayList<string>) + selectDataRabSortByBobot(arrayList<stri ng>) + selectDataRabOptimalIsSelected(Arraylis t<string> )
+ insertDataRab() : boolean + updateDataRab() : boolean + deleteDataRab() : boolean + getAutoIncrementDataRab() : int + selectDataRabbyID_Pos(arraylist<string> ) + selectDataRabbyID_Posnisselected(array list<string>)
+ updateIsSelectedDataRab : boolean + updateIsSelectedToNoDataRab() : boolean
+ isDataRabPenting(arraylist<string>) + updatebobotDataRab() : boolean + insertDataRabOptimal() : boolean + selectDataRabOptimalbyID_Pos(arraylist <string>) + selectDataRabOptimalbyNo(arraylist<int >)
+ updateDataRabOptimal() : boolean + truncateDataRabOptimal : booelan
DataKataKunciKnapsack
- no : int - kataKunci : string + getNo() : int + setNo() : void + getKataKunci() : string + setKataKunci() : void +
selectDataKataKunciKnapsack(arraylist<s tring>)
+ insertDataKataKunciKnapsack() : boolean
+ updateDataKataKunciKnapsack() : boolean
+ deleteDataKataKunciKnapsack() : boolean
+
getAutoIncrementDataKataKunciKnapsa ck() : int
+ insertDataKataKunciKnapsackDasar() : boolean
DataPos
- idPos : int - idGolongan : int - tahunPos : string - jumlah : string - sisaUang : double + getIdPos() : int + setIdPos() : void + getIdGolongan() : int + setIdGolongan() void + getTahunPos() : string + setTahunPos() : void + getJumlah() : string + setJumlah() : void + getSisaUang() : double + setSisaUang : void
+ selectDataPos(arraylist<string>) + insertDataPos() : boolean + updateDataPos() : boolean + deleteDataPos() : boolean + getAutoIncrementDataPos() : int + getLastIndexDataPos() : int + getTahunAnggaran() : string +
selectDataPosbyID_Golongan(Arraylist<i nt>)
JenisPos
- idJenisPos : int - namaJenisPos : string + getIdjenisPos() : int + setIdJenisPos() : void + getNamaJenisPos() : string + setNamaJenisPos() : void + selectJenisPos(Arraylist<String>) + insertJenisPos() : boolean + updateJenisPos() : boolean + deleteJenisPos() : boolean + getAutoIncrementJenisPos() : int + getNamaJenisPos1() : string
DataBarang
- noBarang : int - namaBarang : string - hargaSatuan : string - penting : string + getNoBarang() : int + setNoBarang() : void + getNamaBarang() : int + setNamaBarang() : void + getHargaSatuan() : string + setHargaSatuan() : void + getPenting() : string + setPenting() : void + selectDataBarang(Arraylist<>) + insertDataBarang() : boolean + updateDataBarang() : boolean + deleteDataBarang() : boolean + getAutoIncrementDataBarang() : int
(65)
45
BAB V
IMPLEMENTASI DAN ANALISA HASIL
5.1 Implementsi
Pada implementasi ini, akan dijelaskan mengenai jalannya program atau proses aplikasi ini bekerja. Implementasi dibagi menjadi 2 bagaian yaitu Implementasi GUI dan Implementasi Sistem. Pada aplikasi ini, user adalah pengguna aplikasi.
5.1.1 Implementasi GUI 5.1.1.1 Home
Pada halaman Home, terdapat menu yang menghubungan masing masing halaman. Dari menu home kita dapat melihat anggaran yang sudah masuk atau yang akan dimasukkan.
Gambar 5.0.1 Implementasi Tampilan Home
5.1.1.2 Import File Excel
Setelah masuk halaman import, klik tombol Browse untuk menambahkan atau memasukkan file anggaran (xlsx) yang akan di proses.
(66)
Gambar 5.0.2 Implementasi Import File Excel
Setelah klik tombol Browse, maka akam masuk Windows Explorer untuk memilih file yang akan di-input-kan kedalam aplikasi. Ketika klik open file, kemudian akan masuk kedalam halaman import file excel, lalu data akan dimasukkan kedalam database.
Gambar 5.0.3 Implementasi Windows Explorer
5.1.1.3 Data RAB
Di dalam menu item Data RAB, terdapat semua keterangan data barang yang terdapat dalam file anggaran. Pada menu ini terdapat 3 fasilitas, yaitu: Tambah untuk menambah data barang, Update untuk meng-edit keterangan data barang, serta Delete
(67)
untuk menghapus data barang dari file anggaran. Ketika suatu barang di dalam tabel diklik, maka text field akan menampilan keterangan barang tersebut. Pengguna dapat mengubah data barang melalui text field tersebut.
Gambar 5.0.4 Implementasi Data RAB
5.1.1.4 Data Pos
Dalam menu item Data Pos, terdapat tabel untuk menampilkan data dari masing-masing pos yang berada didalam file anggaran. Selain tabel di menu ini, juga terdapat 3 fasilitas, yaitu: Tambah untuk menambah data dalam file anggaran, Update untuk meng-edit data yang sudah ada, serta Hapus untuk menghapus data yang terdapat dalam file anggaran tersebut. Ketika suatu barang di dalam tabel diklik, maka text field akan menampilan keterangan barang tersebut. Pengguna dapat mengubah data barang melalui text field tersebut.
(68)
Gambar 5.0.5 Implementasi Data Pos
5.1.1.5 Data Prioritas Barang Knapsack
Data Prioritas Barang Knapsack berfungsi untuk memprioritaskan barang yang dianggap penting, sehingga akan masuk kedalam knapsack. Dalam menu ini memiliki beberapa fitur antara lain tabel untuk menampilkan data prioritas barang yang telah di-input-kan, tambah untuk meng-input-kan data prioritas barang, update untuk mengubah atau meng-edit prioritas barang, serta hapus untuk menghapus data prioritas barang dari database.
(69)
Gambar 5.0.6 Implemetasi Data Prioritas Barang Knapsack
5.1.1.6 Golongan Pos
Menu golongan pos berfungsi untuk menampilkan data golongan pos yang terdapat didalam file anggaran. Selain fasilitas tabel untuk menampilkan data, dalam menu ini juga terdapat fasilitas tambah untuk menambah golongan pos, update untuk meng-edit data golongan pos yang terdapat dalam file anggaran, serta hapus untuk menghapus data anggaran yang ada di dalam file anggaran. Ketika suatu barang di dalam tabel diklik maka text field akan menampilan keterangan barang tersebut. Pengguna dapat mengubah data barang melalui text field tersebut.
(70)
Gambar 5.0.7 Implementasi Golongan Pos
5.1.1.7 Jenis Pos
Menu jenis pos berfungsi untuk menampilkan data jenis pos yang terdapat dalam file anggaran. Dalam menu ini terdapat tabel untuk menampilkan data jenis pos yang ada di dalam anggaran. Fitur lainnya yaitu fungsi tambah untuk menambah data jenis pos, update untuk meng-edit data yang sudah ditambahkan atau yang sudah ada. Serta hapus untuk menghapus data jenis pos yang sudah ada. Ketika suatu barang di dalam tabel diklik maka text field akan menampilan keterangan barang tersebut. Pengguna dapat mengubah data barang melalui text field tersebut.
(71)
Gambar 5.0.8 Implementasi Jenis Pos
5.1.1.8 Knapsack
Dalam menu knapsack, semua data file ditampilkan. Terdapat fasilitas untuk memaksimalkan biaya. Kolom maksimal biaya diisi dengan batasan biaya yang ditetapkan. Setelah itu klik tombol optimalkan, maka data yang ada akan dipotong sesuai jumlah maksimal biaya yang telah dimasukkan. Setelah selesai dapat meng-klik tombol konversi file excel untuk membuka file yang telah diolah di dalam Microsoft Excel.
(72)
5.1.2 Implementasi Sistem 5.1.2.1 Input File Excel
Sebelum data dari file excel dimasukkan kedalam database, dilakukan beberapa proses. Proses-proses tersebut yaitu:
1. Pengosongan Database
Proses ini dimaksudkan untuk mengosongkan database dari data sebelumnya agar tidak terjadi penumpukan data didalam database.
Kode Program 5.0.1 Kosongankan Database Gambar 5.0.9 Implementasi Knapsack
(1)
Hapus Data RAB
Aktor memilih data yang akan dihapus
Sistem menampilkan data
di text area
Aktor memilih tombol "Hapus"
Sistem menghapus data yang dipilih
aktor didalam database
Sistem menampilkan update data terakhir didalam database ke
dalam tabel
Aktor Sistem
(2)
Tambah Data Prioritas Barang
Aktor Sistem
Aktor menginput kata kunci, lalu pilih
tombol "Tambah"
Sistem menginput kedalam database
Setelah merefresh didalam database, sistem menampilkan
data kedalam tabel
Gambar 7.0.28 Diagram Tambah Data Prioritas Barang
Update Data Prioritas Barang
Aktor Sistem
Aktor memilih data yang akan diupdate
Sistem menampilkan data
di textarea
Aktor mengupdate data, lalu klik tombol "Update
Sistem mengupdate data didalam
database
Sistem menampilkan data terupdate didalam
tabel
(3)
Hapus Data Prioritas Barang
Sistem
Aktor memilih data yang akan dihapus
Sistem menampilkan data
di textarea
Aktor klik tombol "Hapus"
Sistem menghapus data didalam
database
Sistem menampilkan data terupdate didalam
tabel Aktor
Gambar 7.0.30 Diagram Hapus Data Prioritas Barang
Tambah Data Pos
Aktor mengginput data, lalu klik tombol "Tambah"
Sistem menginput data kedalam
database
Sistem menampilkan data didalam database ke
tabel
Aktor Sistem
(4)
Update Data Pos
Aktor Mengklik/
memilih data yang
akan diupdate
Sistem
menampilkan data
di text area
Aktor mengupdate
data yang ada di text
area, lalu menekan
tombol "Update"
Sistem
menampilkan data
yang telah terupdate
didalam Tabel
Sistem mengupdate
data yang berada
didalam database
Aktor
Sistem
(5)
Hapus Data Pos
Aktor memilih data yang akan dihapus
Sistem menampilkan data
di text area
Aktor memilih tombol "Hapus"
Sistem menghapus data yang dipilih
aktor didalam database
Sistem menampilkan update data terakhir didalam database ke
dalam tabel
Aktor Sistem
(6)
Knapsack
Aktor Sistem
Sistem menampilkan data
dari database kedalam tabel Aktor memasukkan
maksimal anggaran
Sistem memotong anggaran yang tidak
masuk dalam kategori penting, dan menampilkan
didalam tabel Aktor memilih
tombol Optimalkan
Aktor memilih tombol "Konversi
ke file Excel"
Sistem melakukkan proses koneversi file
ke format .xlxs