Sistem pendukung pengambilan keputusan optimasi anggaran menggunakan algoritma knapsack.

(1)

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