4 sistem informasi. Tahap ini akan menghasilkan analisa sebab-
akibat cause-effect analysis. c. Requirement Analysis Phase
Tahap analisis kebutuhan merupakan tahap pengumpulan data akan kebutuhan sistem dan menganalisanya. Hasil dari tahap ini
dipresentasikan dengan use-case diagram. d. Logical and Physical Design
Tahap perancangan logikal dan perancangan fisikal yang merupakan tahap pembuatan rancangan sistem secara logikal dan
fisikal, meliputi perancangan subsistem manajemen data, subsistem manajemen model dan subsistem manajemen dialog.
e. Contruction and Testing Tahap ini merupakan tahap pembuatan dan implementasi sistem
dari perancangan sistem serta melakukan pengujian meliputi keakuratan hasil pengelompokan dengan perhitungan manual,
unjuk kerja, uji masukan dan keluaran dari sistem. 3. Evaluasi Sistem
Evaluasi sistem merupakan pengujian sistem terhadap keinginan pengguna.
I.6. Sistematika Penulisan
BAB I. PENDAHULUAN
Bab ini memberikan gamabaran umum mengenai sistem pendukung pengambilan keputusan pengadaan obat untuk apotek. Di dalam bab ini
berisi latar belakang masalah, rumusan masalah, batasan masalah,
5 tujuan, metode penelitian, dan sistematika penulisan.
BAB II. LANDASAN TEORI
Bab ini berisi tentang dasar teori yang mendukung pembuatan tugas akhir ini. Dasar teori berisi manajemen persediaan dan teori-teori lain
yang digunakan dalam perancangan dan pengimplementasian sistem pendukung pengambilan keputusan pengadaan obat.
BAB III. ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi uraian mengenai tahap analisis sistem, tahap analisis masalah, tahap analisis kebutuhan, perancangan logical dan
perancangan fisikal. Tahap analisis sistem terdiri dari gambaran umum sistem yang lama dan fase definisi ruang lingkup. Tahap analisis
masalah berisi mengenai analisis sebab akibat. Tahap analisis kebutuhan terdiri dari pihak yang terlibat dalam sistem dan use-case
diagram. Tahap perancangan logikal terdiri dari gambaran umum sistem yang akan dibuat perancangan manajemen data dan perancangan
manajemen model. Tahap perancangan fisikal terdiri dari manajemen dialog.
BAB IV.IMPLEMENTASI DAN ANALISIS HASIL
Bab ini menjelaskan mengenai implementasi dari hasil perancangan yang dibahas pada Bab III serta pengujian, evaluasi program, dan
analisis hasil berupa kelebihan dan kekurangan dari sistem yang telah dibuat berdasarkan hasil uji coba terhadap sistem.
BAB V. KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan dan saran.
6
BAB II LANDASAN TEORI
II.1. Manajemen Persediaan
Manajemen persediaan inventory management merupakan suatu cara mengendalikan persediaan agar dapat melakukan pemesanan yang
tepat yaitu dengan biaya yang optimal. Oleh karena itu konsep mengelola sangat penting diterapkan oleh perusahaan agar tujuan efektifitas maupun
efisiensi tercapai. Setiap organisasi mempunyai beberapa jenis sistem perencanaan dan pengendalian persediaan. Dengan demikian dapat
dikatakan bahwa sangat perlu untuk mempelajari bagaimana mengelola persediaan di suatu perusahaan Dwiningsih, 2009.
Manajemen persediaan juga berlaku pada perencanaan obat. Tujuan perencanaan obat adalah sebagai berikut Quick et al, 1997 :
a. untuk mendapatkan jenis dan jumlah obat yang tepat sesuai kebutuhan
b. menghindari kekosongan obat c. meningkatkan penggunaan obat secara rasional
d. meningkatkan efisiensi penggunaan obat Sedangkan kegiatan pokok dalam perencanaan obat adalah sebagai berikut
Quick et al, 1997 : a. seleksi atau perkiraan kebutuhan memilih obat yang akan
diadakan b. menyesuaikan jumlah kebutuhan obat dengan alokasi
anggaran.
7
II.2. Sistem Pendukung Pengambilan Keputusan
II.2.1 Pengertian SPPK
Menurut Scott Morton, Sistem Pendukung Pengambilan Keputusan didefinisikan sebagai suatu sistem yang berbasis komputer yang ditujukan
untuk membantu pengambilan keputusan dan memanfaatkan data dan model tertentu untuk memecahkan berbagai masalah yang tidak terstruktur
Turban,1995.
II.2.2 Komponen SPPK
Menurut Turban 1995, SPPK memiliki 4 subsistem utama yang menentukan kapabilitas teknis dari SPPK tersebut, yaitu :
1. Manajemen Data Subsistem manajemen data merupakan komponen SPPK
yang menyediakan data bagi sistem. Data tersebut disimpan dalam suatu basis data yang diorganisasikan oleh sistem yang disebut
DBMS Database Management System. Subsistem ini disusun oleh komponen yang terdiri dari :
a. Basis Data Basis data adalah komponen data yang direlasikan dan
diatur sesuai kebutuhan organisasinya, dan dapat digunakan oleh banyak orang dalam banyak aplikasi. Basis data SPPK
terdiri dari beberapa jenis data yaitu : Data Internal
Data ini berasal dari sistem proses transaksi dalam suatu organisasi. Data tersebut seperti data
8 akuntansi, keuangan, pemasaran, produksi, pribadi
dan lain sebagainya, tergantung kebutuhan dari SPPK tersebut.
Data Eksternal Data ini berasal dari luar organisasi seperti data
industri, data penelitian, pemasaran, data sensus, data tenaga kerja daerah, peraturan pemerintah, data
tarif pajak dan data perekonomian nasional. Data Pribadi
Data ini berupa aturan-aturan pokok yang digunakan oleh para pembuat keputusan tertentu atau dalam
keadaan-keadaan tertentu.
Untuk membangun
sebuah basis data SPPK, sering dilakukan pengambilan data dari berbagai sumber data.
Operasi ini disebut ekstraksi. Operasi ini melakukan pengambilan data berupa arsip, kesimpulan, data
yang sudah disaring dan ringkasan data. Ekstraksi dapat terjadi pada saat pemakai membuat laporan
data yang ada dalam basis data. b. Sistem Manajemen Basis Data
Basis data dapat dibuat, diakses dan diperbaharui dengan menggunakan sistem ini. DBMS memiliki banyak
kemampuan dalam pengelolaan data dan sangat kompleks, sehingga sedikit pemakai yang dapat membuat program dan
9 mengembangkan perangkat lunak DBMS. DBMS memiliki
tiga fungsi dasar yaitu penyimpanan data, pencari data dan pengontrol data.
c. Fasilitas Query Fasilitas
ini memberikan
dasar-dasar untuk
mengakses data. Fasilitas ini menerima permintaan data, menentukan bagaimana permintaan tersebut dapat dipenuhi,
merumuskan perincian permintaan dan memberikan hasilnya.
d. Direktori Direktori adalah daftar seluruh data dalam basis
data. Direktori berisi tentang definisi data yang berfungsi untuk mengetahui keberadan data, sumber data, dan
kegunaan data tersebut. Direktori biasanya digunakan untuk fase pengetahuan pada proses pembuatan keputusan sebagai
bantuan memeriksa data, mengidentifikasi masalah, dan mengetahui peluang-peluang yang ada.
2. Manajemen Model Model merupakan suatu peniruan dari alam nyata. Kendala
yang kadang dihadapi dalam merancang suatu model adalah bahwa model yang disusun ternyata tidak mampu mencerminkan seluruh
veriabel alam nyata. Sehingga keputusan yang diambil yang didasarkan pada model tersebut menjadi tidak akurat dan tidak
sesuai dengan kebutuhan. Oleh karena itu, dalam menyimpan
10 berbagai model pada subsistem model harus tetap dijaga
fleksibilitasnya. Artinya harus adafasilitas yang mampu membantu pengguna untuk memodifikasi atau menyempurnakan model,
seiring dengan perkembangan pengetahuan. Turban 1995 mengelompokkan model-model yang digunakan dalam SPPK
menjadi seperti berikut : Tabel 2.1 Tabel jenis-jenis model SPPK
No. Model
Proses dan Tujuan Teknik Representasi
1
Optimasi masalah
dengan beberapa
alternatif Mencari
penyelesaian terbaik dari beragam
alternatif Tabel keputusan,
pohon keputusan
2
Optimasi menggunakan
algoritma Mencari
penyelesaian terbaik dari sejumlah besar
alternatif Model program
linear, model jaringan dan model
matematika lainnya
3
Optimasi dengan rumus
analitis Mencari
penyelesaian terbaik dengan
menggunakan rumus Model
penyimpanan
4
Simulasi Mencari
penyelesaian terbaik di antara alternatif
yang ada dengan menggunakan
percobaan Beberapa model
simulasi
5
Heuristik Mencari
penyelesaian yang Pemrograman
heuristic, sistem
11 cukup baik dengan
menggunakan aturan-aturan
pakar
6
Model deskriptif
lainnya Mencari dan
menemukan “What- if
” menggunakan rumus
Permodelan keuangan
7
Model prediktif Memprediksi kemungkinan yang
akan terjadi berdasarkan skenario
Analisis Markov, model perkiraan
3. Manajemen Dialog Melalui subsistem ini pemakai dapat berkomunikasi dengan sistem
yang dibangun. Subsistem ini menyediakan fasilitas antar muka pemakai User interface yang terdiri dari 3 komponen yaitu :
a. Bahasa aksi Action Language, yaitu suatu perangkat lunak yang digunakan pengguna untuk berkomunikasi dengan
sistem. b. Bahasa tampilan Display atau Presentation Language,
yaitu suatu perangkat yang berfungsi sebagai sarana untuk menampilkan sesuatu.
c. Basis Pengetahuan Knowledge Base, yaitu bagian yang mutlak diketahui oleh pengguna sehingga sistem yang
dirancang dapat berfungsi secara efektif. Kombinasi dari berbagai kemampuan di atas dikenal dengan
sebagai Gaya Dialog Dialog Style. Gaya dialog terdiri dari : a. Dialog Tanya Jawab
12 Dalam dialog ini, sistem bertanya kepada pengguna, dan
pengguna menjawab, kemudian dari hasil dialog ini sistem akan menawarkan alternatif keputusan yang dianggap
memenuhi keinginan pengguna. b. Dialog perintah
Dalam dialog ini, pengguna memberikan perintah-perintah yang tersedia pada sistem untuk menjalankan fungsi yang
ada pada SPPK. c. Dialog Menu
Dialog ini merupakan gaya dialog yang paling popular dalam SPPK. Dalam hal ini pengguna dihadapkan pada
berbagai alternatif menu yang disiapkan sistem.menu ini akan ditampilkan pada monitor. Pengguna cukup menekan
tombol-tombol tertentu,
dan setiap
pilihan akan
menghasilkan respon atau jawaban tertentu. d. Dialog MasukanKeluaran
Model dialog ini menggunakan form input atau masukan. Disamping form masukan, juga disediakan form keluaran
yang merupakan respon dari sistem. 4. Manajemen Pengetahuan
Subsistem ini diperlukan ketika subsistem lainnya yang mendukung kemampuan dari suatu DSS, tidak mampulagi untuk
memecahkan suatu permasalahan yang tidak terstruktur dan semi terstruktur. Dalam subsistem ini telah disediakan beberapa keahlian
13 khusus oleh sistem pakar. Manajemen pengetahuan merupakan
gabungan beberapa komponen yang berupa satu atau lebih sistem- sistem pakar. Karena berkaitan dengan sistem pakar maka
kemampuan dan manfaat dari subsistem ini tidak dijelaskan dalam pembahasan ini.
Gambar 2.1 Komponen SPPK Turban, 1995:88
II.3. Analisis Pareto ABC Always Better Control
Salah satu teknik menyusun data sesuai prioritas dan golongannya ke sebuah framework penyelesaian masalah adalah analisis Pareto.
Analisis ini merupakan suatu cara yang mudah dipelajari, mudah dimengerti, dan sangat efektif hasilnya Oakland, 2008.
Analisis Pareto ABC adalah metode yang sangat berguna untuk melakukan pemilihan, penyediaan, manajemen distribusi, dan promosi
penggunaan obat yang rasional. Terkait dengan pemilihan obat, evaluasi obat kelompok A menjelaskan tentang item obat yang paling banyak
digunakan Quick et al, 1997. Analisis Pareto memungkinkan individu untuk membuat perubahan
14 yang efektif. Salah satu keuntungan dalam menggunakan analisis Pareto
adalah memperbaiki pembuatan keputusan. Individu yang melakukan analisis Pareto dapat mengukur dan membandingkan pengaruh dari
perubahan yang terjadi. Dengan berfokus pada penyelesaian masalah, prosedur dan proses dibutuhkan untuk membuat perubahan yang
terdokumentasi selama
analisis Pareto.
Dokumentasi ini
akan menghasilkan persiapan dan meningkatkan hasil pembuatan keputusan
pada perubahan yang akan datang Anonim, 2005. Keuntungan lain yang didapat dari penggunaan analisis ini adalah Drug and Therapeutics
Committees, 2003 : 1. Menunjukkan penggunaan item yang tinggi dalam list atau
persediaan. Informasi ini dapat digunakan untuk pemilihan obat dengan lebih efektif, mengidentifikasi kesempatan untuk
pergantian item obat, negosiasi harga lebih rendah dengan distributor.
2. Mengukur jumlah konsumsi obat yang dibutuhkan untuk kesehatan publik dan mengidentifikasi penggunaan obat yang tidak rasional.
3. Mengidentifikasi pembelian untuk item yang tidak terdapat dalam daftar obat esensial di rumah sakit.
Analisis ini terbagi mengenai tiga kelas yaitu Quick,1997 :
1. A Always
Obat harus ada karena berhubungan dengan pengendalian dalam pengadaannya. Persentase kumulatifnya antara 75-80. Kelas A
tersebut menunjukkan 10-20 macam persediaan memiliki
15 ........................2.1
70-80 dari total biaya persediaan. Hal ini berarti persediaan memiliki nilai jual yang tinggi sehingga memerlukan pengawasan
ekstra dan pengendalian yang harus baik.
2. B Better
Kelas B, 20-40 item obat di rumah sakit dengan alokasi dana 10- 15 dari keseluruhan anggaran obat. Persentase kumulatifnya
antara 80-95.
3. C Control
Obat mempunyai nilai yang rendah, yaitu sekitar 5 namun jumlah obat sangat banyak, yaitu mencapai 60. Karena obat
selalu tersedia maka pengendalian pada tingkat ini tidak begitu berat. Persentase kumulatifnya antara 95-100
Metode ini dilakukan dengan memperhatikan 3 hal, yaitu Harjono, 2011:
1. Analisis Nilai Pakai
Nilai pakai didapat dari jumlah pemakaian dalam satu periode, kemudian diurutkan dari jumlah pemakaian tertinggi hingga
jumlah pemakaian terendah. Setelah data item terurut, kemudian dihitung persentase pemakaiannya dengan perhitungan berikut :
�� � � � �� � � � = .
� ∑�
� Keterangan :
x : jumlah pemakaian obat per itemtahun
∑x : jumlah pemakaian obat seluruhnya dalam 1 tahun
Setelah itu, dibuat klasifikasi sediaan sesuai jumlah pemakainnya menjadi kelompok A
NP
, B
NP
, dan C
NP
berdasarkan persentase
16 ........................2.3
kumulatif 80, 15, dan 5.
2. Analisis Nilai Investasi
Dalam analisis ini juga dilakukan pengelompokan berdasarkan persentase kumulatif, sama seperti pada analisis nilai pakai tetapi
sebelumnya jumlah pemakaian item obat dikalikan dengan harga satuannya. Nilai investasi didapat dengan mengalikan jumlah
pemakaian dengan harga satuannya. Perhitungan yang dilakukan adalah sebagai berikut :
x = n x hi
Keterangan : x
: jumlah investasi per item obat selama setahun n
: jumlah pemakaian per item obat selama setahun hi
: harga satuan per item obat Setelah didapat jumlah investasi per item obat selama setahun
kemudian diurutkan dari jumlah investasi tertimggi hingga jumlah investasi terendah. Kemudian, dihitung persentase investasi per
item obat dengan perhitungan sebagai berikut : �� � � � � � � =
.
� ∑�
� Keterangan :
x : jumlah investasi per item obat dalam setahun
∑x : jumlah investasi seluruh obat dalam setahun
Dari persentase investasi yang didapat akan dihitung persentase kumulatifnya, kemudian dikelompokkan dalam A
NI
, B
NI
, dan C
NI
. Kelompok A
NI
merupakan obat yang memiliki persentase ........................................................................2.2
17 ......2.4
kumulatif 80, kelompok B
NI
merupakan obat yang memiliki persentase kumulatif 15 sedangkan kelompok C
NI
merupakan obat yang memiliki persentase kumulatif 5.
3. Analisis Nilai Indeks Kritis
Analisis ini dilakukan dengan menggabungkan hasil analisis nilai pakai dan nilai investasi. Hasil analisis nilai pakai dan nilai
investasi yang telah dikelompokan menjadi A
NP
, B
NP
,C
NP,
A
NI
, B
NI
, dan C
NI
diberi skor masing-masing. Setelah diberi skor masing- masing, nilai indeks kritis dapat dihitung dengan perhitungan
sebagai berikut :
Nilai Indeks Kritis = Skor Nilai Pakai + Skor Nilai Investasi
Sebagai contoh, untuk nilai pakai dan nilai investasi dengan skor A dikonversikan menjadi 3, B menjadi 2, dan C menjadi 1, jadi
interval skor yang didapat adalah 2-6. Sediaan akan dikategorikan menjadi 3 kelompok, sehingga perlu dilakukan perhitungan
interval untuk masing-masing kelompok dengan cara berikut : � � � �
= .
+ − + � � � � �
Keterangan : X1 : nilai tertinggi dari skor pareto nilai pakai
Y1 : nilai tertinggi dari skor pareto nilai investasi X2 : nilai terendah dari skor pareto nilai pakai
Y2 : nilai terendah dari skor pareto nilai investasi Jadi interval skor yang diperoleh adalah :
� = .
6 − 2
3 =
4 3
= 1,33 .............................2.5
18 Berdasarkan perhitungan tersebut, maka sediaan dengan skor 2-
3,33 masuk dalam kelompok C
NIK
, sediaan dengan skor lebih dari 3,33-4,66 masuk dalam kelompok B
NIK
, dan sediaan dengan skor lebih besar dari 4,66-6 masuk dalam kelompok A
NIK
. Berikut ini merupakan contoh perhitungan dengan menggunakan analisis
Pareto ABC. Tabel 2.2 Daftar Pemakaian Sediaan di Apotek
Nama Obat Jumlah butir
Harga Satuan Rp
Valisanbe 2mg Tab 430
396
Zolastin
®
1mg Tab Valisanbe
®
5mg Tab 60
24
Luminal 30 mg 208
195
Zyparon
®
Dari tabel 2.2, diketahui jumlah pemakaian dan harga satuan dari masing- masing sediaan. Maka penyelesaian dengan Pareto ABC adalah sebagai
berikut : Langkah pertama, menghitung nilai pakai dengan mengurutkan jumlah
pemakaian dari jumlah pemakaian paling banyak ke jumlah paling sedikit, kemudian dihitung persentase nilai pakainya.Setelah diketahui persentase
nilai pakai, maka dihitung persentase kumulatifnya, kemudian diberi skor untuk masing-masing sediaan.
Tabel 2.3 Hasil Perhitungan Nilai Pakai
Nama Obat Jumlah
butir NP
Kumulatif Pareto
Valisanbe
®
2mg Tab 430
61,60 61,60
A Luminal 30 mg
208 29,80
91,40 B
Valisanbe
®
5mg Tab 60
8,60 100,00
C Zyparon
®
0,00 100,00
C Zolastin
®
1mg Tab 0,00
100,00 C
Langkah kedua, menghitung nilai investasi dari sediaan dengan mengalikan jumlah pemakaian dengan hargasatuan kemudian diurutkan
19 dari nilai terbesar ke nilai terkecil. Kemudian hitung persentase nilai
investasinya. Selanjutnya, setelah diketahui persentase nilai investasi, dihitung persentase kumulatifnya untuk kemudian diberi skor.
Tabel 2.4 Hasil Perhitungan Nilai Investasi
Nama Obat Jumlah
butir Hrg
Satuan Rp
Total Harga
Rp NI
Kumu latif
Paret o
Luminal 30 mg 208
396 82368
78,91 78,91
A Valisanbe
®
5mg Tab 60
195
11700
11,21 90,11
B Valisanbe
®
2mg Tab 430
24 10320
9,89 100,00
C Zyparon
®
0,00 100,00
C Zolastin
®
1mg Tab 0,00
100,00 C
Langkah terakhir, menghitung nilai indeks kritis untuk masing-masing sediaan, yaitu dengan menjumlahkan bobot skor dari nilai pakai dan nilai
investasi masing-masing sediaan. Selanjutnya, setiap sediaan diberi skor lagi dengan skor 2-3,33 masuk dalam kelompok C
NIK
, sediaan dengan skor lebih dari 3,33-4,66 masuk dalam kelompok B
NIK
, dan sediaan dengan skor lebih besar dari 4,66-6 masuk dalam kelompok A
NIK
. Tabel 2.5 Hasil Perhitungan Nilai Indeks Kritis
Nama Obat NP
NI NIK
Pareto
Luminal 30 mg B
A 5
A Valisanbe
®
2mg Tab A
C 4
B Valisanbe
®
5mg Tab C
B 3
C Zyparon
®
C C
2 C
Zolastin
®
1mg Tab C
C 2
C
Pada tabel 2.5, Luminal 30mg termasuk ke dalam kelompok A yang memiliki prioritas tinggi, maka investasi sebesar 80 dari alokasi biaya
pengadaan obat diperuntukkan kelompok ini. Hal ini dikarenakan item obat yang masuk ke dalam kelompok A memiliki nilai pakai dan nilai
investasi yang paling tinggi. Untuk kelompok B dan C terdapat pertimbangan yang harus dilakukan dalam pengadaanya, seperti prioritas
yang dimiliki obat serta besarnya biaya yang ada. Misalnya, Valisanbe
®
20 2mg memiliki nilai pakai yang tinggi namun rendah di nilai investasinya,
obat ini dapat diadakan karena memiliki nilai pakai yang tinggi. Untuk item-item obat yang ada di kelompok C dengan jumlah pemakaian rendah,
lebih baik diadakan secara just in time, karena memiliki nilai pakai dan nilai investasi yang rendah.
II.4. Optimasi Kualitatif
Pengambilan keputusan adalah proses memilih suatu alternatif cara bertindak dengan metode yang efisien sesuai situasi. Proses tersebut untuk
menemukan dan menyelesaikan masalah organisasi. Suatu aturan kunci dalam pengambilan keputusan ialah sekali kerangka yang tepat telah selesai
disusun, keputusan harus dibuat Brinckloe, 1977. Ada dua pandangan dalam proses pengambilan suatu keputusan
organisasi Brinckloe, 1977 yaitu : 1. Optimasi. Di sini seorang eksekutif yang penuh keyakinan berusaha
menyusun alternatif-alternatif, memperhitungkan untung rugi dari setiap alternatif itu terhadap tujuan organisasi. Sesudah itu
memperkirakan kemungkinan timbulnya bermacam-macam kejadian ke depan, mempertimbangkan dampak dari kejadian-kejadian itu
terhadap alternatif-alternatif yang telah dirumuskan dan kemudian menyusun urut-urutannya secara sistematis sesuai dengan prioritas
lalu dibuat keputusan. Keputusan yang dibuat dianggap optimal karena setidaknya telah memperhitungkan semua faktor yang
berkaitan dengan keputusan tersebut. 2. Satisfying. Seorang eksekutif cukup menempuh suatu penyelesaian
21 yang memuaskan daripada mengejar penyelesaian yang terbaik.
Model ini dikembangkan oleh Simon karena adanya pengakuan terhadap rasionalitas terbatas bounded rationality. Rasionalitas
terbatas adalah batas-batas pemikiran yang memaksa orang membatasi pandangan mereka atas masalah dan situasi. Pemikiran
itu terbatas karena pikiran manusia tidak memiliki kemampuan untuk memisahkan informasi yang tertumpuk.
Teknik pengambilan keputusan juga sering dibagi dalam teknik pengambilan keputusan matematik atau kuantitatif Robbins, 1978 dan
teknik pengambilan keputusan non-matematik atau kualitatif Schroeder, 1989. Pendekatan terhadap pengambilan keputusan dapat dilakukan dengan
optimasi kualitatif
yaitu menemukan
alternatif yang
optimum menguntungkan dengan analogi atau dengan menggunakan data riset pasar
yang selektif. Pendekatan yang sistematis menjadi mungkin meskipun model matematis yang eksplisit tidak dirumuskan. Metode ini digunakan
untuk prakiraan jangka menengah dan panjang yang melibatkan desain proses. Untuk keputusan ini, data masa lalu tidak selalu ada atau jika ada,
akan menunjukkan pola yang tidak stabil Schroeder, 1989.
II.5. Just in time Management
Stok atau penumpukan barang ada karena barang telah dibeli sebelum mereka dibutuhkan. Hal ini mendapat perhatian lebih dalam manajemen
persediaan. Prinsip dari just in time sederhana, yaitu barang tersebut ada ketika mereka dibutuhkan dan tidak ada ketika mereka tidak dibutuhkan.
Keuntungan operasional dengan menerapkan metode ini antara lain :
22 a. Investasi persediaan, dengan metode JIT ini biaya investasi
barang yang termasuk slow moving stock dapat digunakan untuk menambah investasi barang yang termasuk dalam
fast moving stock .
b. Menyediakan pada saat dipesan daripada menyediakan stok, barang yang dibutuhkan dibeli pada saat pembeli
memesan. Misalnya, obat generik A jarang dibutuhkan di apotek Z, jika ada pembeli yang memesan obat generik A,
maka apotek Z dapat membeli obat generik A dari apotek lain yang menyediakan obat tersebut.
c. Mengurangi slow moving stock. Hal ini bertujuan untuk mengurangi jumlah investasi barang yang jarang sekali
dipakai dan meminimalkan anggaran belanja Wild, 1997.
23
BAB III ANALISIS DAN PERANCANGAN SISTEM
III.1. Analisis Sistem
III.1.1 Gambaran Umum Sistem Lama
Pengambilan keputusan pengadaan obat di Apotek Pendidikan Sanata Dharma masih dilakukan secara manual, belum menggunakan sistem
terkomputerisasi untuk membantu pemilihan pengadaan obat. Langkah- langkah yang dilakukan dalam proses pengadaan obat adalah sebagai berikut :
1. Petugas mengecek stok obat apa saja yang akan habis dan mencatatnya.
2. Petugas menyerahkan daftar stok obat kepada apoteker pengelola. 3. Apoteker pengelola memeriksa daftar kemudian memperhitungkan
biaya untuk pengadaan obat. Kegiatan di atas dilakukan setiap bulan sekali sehingga pengadaan obat hanya
dalam jumlah kecil saja. Hal ini membuat proses pengadaan obat kurang optimal. Padahal, jika ada manajemen pengelolaan obat yang baik, dapat
mengurangi pemakaian biaya belanja obat karena pembelian obat dalam jumlah besar selalu mendapat potongan harga.
III.1.2 Fase Definisi Ruang Lingkup
Sistem pengadaan obat yang ada di Apotek Pendidikan Sanata Dharma saat ini masih dilakukan secara manual sehingga mengakibatkan
berbagai kesulitan. Kesulitan-kesulitan tersebut adalah sebagai berikut : 1.
Performance Pengelolaan data dan pengambilan keputusan pengadaan obat masih
24 dilakukan secara manual sehingga pengambilan keputusan kurang
efektif dan memakan banyak waktu. 2.
Efficiency Pencatatan stok obat yang dibutuhkan beserta perhitungannya
memakan waktu lama, hal ini juga berakibat tertundanya kegiatan lain yang masih ada kaitannya.
3. Service
Pemberian informasi pengadaan obat untuk Apoteker Pengelola Apotek membutuhkan waktu yang lama sehingga pelayanan yang
diberikan kurang memuaskan. Kenerjanya menjadi terlihat kurang cekatan.
III.1.3 Analisis Masalah
III.1.3.1 Analisis Sebab Akibat
Tabel 3.1 Tabel analisis sebab akibat
Analisis Sebab dan Akibat Tujuan Memperbaiki Sistem
Masalah Penyebab dan
Akibat Tujuan Sistem
Batasan
1. Pengelolaan data dan
pengambilan keputusan
pengadaan obat kurang
efektif dan memakan
banyak waktu. Penyebab :
Pengelola data pengadaan obat
kurang teliti dan belum
menerapkan evaluasi
pengadaan obat secara baik.
Akibat : Perhitungan
analisis pengadaan obat
kurang tepat sehingga
rekomendasi pengadaan obat
yang didapat kurang akurat.
1. Membantu apoteker pengelola
dalam melakukan analisis Pareto
ABC terhadap data pemakaian sediaan
farmasi.
2. Menyediakan rekomendasi
pengadaan obat yang diharapkan
dapat memberi gambaran
perhitungan terhadap
pengadaan item obat di apotek.
1. Sistem pendukung
pengambilan keputusan
pengadaan obat ini
menggunakan hasil dari
analisis Pareto ABC.
2. Atribut yang digunakan dari
data pemakaian sediaan adalah
kode obat, nama obat, jumlah
pemakaian, dan harga satuan.
25
III.1.4 Gambaran Umum Sistem Baru
Data pemakaian sediaan
Rekomendasi pengadaan obat
SPPK Pengadaan
Obat Apoteker
Gambar 3.1 Diagram Konteks Sistem Baru Sistem pendukung pengambilan keputusan ini berfungsi sebagai alat
bantu untuk memberikan rekomendasi kelompok obat berdasarkan hasil analisis Pareto ABC. Sistem pendukung pengambilan keputusan ini akan
dibuat dengan menggunakan bahasa pemrograman Java dan merupakan aplikasi desktop. Metode yang digunakan sebagai engine dalam sistem ini
adalah metode analisis Pareto ABC Always Better Control, yang merupakan metode yang sering dipakai oleh para manager persediaan farmasi untuk
melakukan evaluasi pengadaan sediaan. Metode Pareto ABC digunakan dalam penentuan kelompok obat
berdasarkan prioritas kebutuhan apotek akan obat. Prioritas obat dihitung berdasarkan nilai pakai, nilai investasi, dan nilai indeks kritis. Sistem yang
baru menghasilkan tiga macam rekomendasi pengadaan obat yaitu rekomendasi berdasarkan pengadaan tahun lalu, rekomendasi berdasarkan
metode just in time, dan rekomendasi dengan memaksimalkan jumlah pengadaan obat yang memiliki nilai pakai dan nilai investasi tinggi.
III.1.4.1 Data Awal
Dalam penelitian ini akan diolah data pemakaian sediaan farmasi apotek yang berasal dari tahun sebelumnya. Terdapat 4 atribut yang digunakan dalam
penelitian, yaitu kode obat, nama obat, jumlah pemakaian, dan harga satuan.
26 Daftar atribut yang digunakan terdapat pada Tabel 3.2.
Tabel 3.2 Data Pemakaian Sediaan Farmasi
No. Nama Atribut Penjelasan
1. Kode Obat
Atribut ini menyimpan kode item obat 2.
Nama Obat Atribut ini menyimpan nama item obat
3. Jumlah Pakai
Atribut ini menyimpan jumlah pemakaian item obat
4. Harga Satuan
Atribut ini menyimpan harga item obat
III.1.4.2 Input Sistem
Input sistem yang digunakan adalah data pemakaian sediaan farmasi dalam format .xls atau .xlsx, alokasi biaya yang disediakan untuk belanja obat di apotek
pada periode tahun tertentu, dan skor pareto yang telah ditentukan oleh user.
III.1.4.3 Output Sistem
Setiap tahapan proses dalam program mempunyai keluaran sebagai berikut : a.
Proses input data menampilkan : 1. Jumlah sampel data keseluruhan
2. Jumlah atribut keseluruhan 3. Nilai dari setiap atribut masukan
b. Proses analisis pareto menampilkan : 1. Hasil analisis nilai pakai
2. Hasil analisis nilai nvestasi 3. Hasil analisis nilai indeks kritis
4. Grafik setiap hasil analisis. c. Proses rekomendasi menampilkan :
1. Hasil rekomendasi berdasarkan pengadaan tahun lalu 2. Hasil rekomendasi dengan menggunakan metode just
in time
27 3. Hasil rekomendasi dengan memaksimalkan jumlah
pengadaan 4. Total investasi dan selisihnya dengan biaya awal
III.1.5 Analisis Kebutuhan
III.1.5.1 Pihak yang Terlibat Dalam Sistem
Pihak yang terlibat dalam sistem adalah apoteker pengelola apotek. Apoteker pengelola merupakan pihak yang memberikan masukan ke sistem dan menerima
rekomendasi dari sistem.
III.1.5.2 Use-case Diagram
Input Data
Pengguna depends on
depends on Input data pemakaian persediaan
Input alokasi biaya Input skor Pareto
Analisis Pareto ABC
Mencari rekomendasi pengadaan obat
Gambar 3.2 Use-case Apoteker Pengelola
28
III.1.5.3 Ringkasan use-case
Tabel 3.3 di bawah ini merupakan penggambaran umum mengenai use- case
yang terdapat pada sistem. Tabel 3.3 Ringkasan Use-case Apoteker
No. Use-
case Nama Use-case
Deskripsi Aktor
PAR- 01
Input file pemakaian sediaan
Use-case ini menggambarkan
proses menginputkan data pemakaian sediaan ke dalam
sistem. Pengguna
PAR- 02
Input alokasi biaya Use-case ini menggambarkan proses menginputkan jumlah biaya
yang disediakan ke dalam sistem Pengguna
PAR- 03
Input skor pareto Use-case
ini menggambarkan proses menginputkan skor pareto
untuk setiap kelas ke dalam sistem Pengguna
PAR- 04
Analisis Pareto ABC
Use-case ini menggambarkan
proses analisis nilai pakai, nilai investasi, dan nilai indeks kritis
oleh sistem Pengguna
PAR- 05
Mencari rekomendasi
pengadaan obat Use-case
ini menggambarkan proses pencarian rekomendasi oleh
sistem Pengguna
III.1.5.4 Narasi use-case
Dalam narasi use-case akan dijelaskan tentang detail dari ringkasan use- case
pada tabel 3.3. Narasi use-case terdapat pada lampiran 1.
III.2. Perancangan Sistem
III.2.1 Perancangan Logikal
III.2.1.1 Diagram Aktivitas
Uraian tentang diagram aktivitas untuk setiap use-case terdapat pada lampiran 2.
29
III.2.1.2 Perancangan Manajemen Data
Subsistem manajemen data merupakan komponen SPPK yang menyediakan data bagi sistem. Komponen-komponen penyusun subsistem
manajemen data adalah sebagai berikut :
III.2.1.2.1 Perancangan Konseptual Basis Data
Obat
kode_obat nama_obat
jumlah_pakai harga_satuan
Nilai Pakai
persentase_kumulatif kelas_paretonp
m em
ili ki
1. .1
memiliki
Nilai Investasi
persentase persentase_kumulatif
1..1 1..1
kelas_paretoni jumlah_investasi
kelas_paretonik
Nilai Indeks Kritis
kode_obat kode_obat
kode_obat 1.
.1 m
em ilik
i 1..1
1..1
Rekomendasi
jumlah_pengadaan jumlah_investasi
keterangan memiliki
1..1
Kelas Pareto NI
batas_bawah batas_atas
kelas_paretoni
memiliki
persentase
Kelas Pareto NP
batas_bawah kelas_paretonp
memiliki batas_atas
1..1 1..
1.. 1..1
Kelas Pareto NIK
batas_bawah batas_atas
kelas_paretonik
memiliki 1..1
1..
kode_rekomendasi 1..
kode_obat
tipe_rekomendasi
Gambar 3.3 Diagram ER Pada gambar 3.3, entitas nilai indeks kritis, nilai investasi, dan nilai pakai merupakan
entitas lemah. Entitas tersebut dibuat terpisah karena selain untuk mempercepat proses baca data dari database, hal ini juga dibutuhkan pada saat pembuatan laporan pada fungsi
cetak hasil analisis dan rekomendasi nantinya.
30
III.2.1.2.2 Perancangan Basis Data
Gambar 3.4 merupakan perancangan logikal sesuai dengan diagram konseptual pada gambar 3.3.
obat
kode_obat PK nama_obat
jumlah_pakai harga_satuan
nilai_investasi
kode_obat FK jumlah_investasi
persentase persen_kumulatif
kelas_pareto FK kelas_paretonp PK
batas_bawah batas_atas
kelas_paretonik PK batas_bawah
batas_atas
kelas_pareto_nik kelas_pareto_ni
kelas_paretoni PK batas_bawah
batas_atas
kelas_pareto_ni
nilai_indeks_kritis
kode_obat FK nik
kelas_pareto FK
nilai_pakai
kode_obat FK persentase
persen_kumulatif kelas_pareto FK
rekomendasi
kode_rekomendasi PK kode_obat FK
jumlah_pengadaan jumlah_investasi
tipe_rekomendasi keterangan
Gambar 3.4 Rancangan Logikal Basis Data
III.2.1.3 Perancangan Subsistem Manajemen Model
Sistem pendukung pengambilan keputusan pengadaan obat ini menggunakan metode Analisis Pareto ABC untuk menentukan item obat mana
saja yang diadakan sekaligus dan dimaksimalkan pengadaannya. Cara kerja dari sistem dapat dilihat pada gambar 3.5 berikut ini.
31
Analisis Nilai Pakai
Analisis Nilai Investasi
Analisis Nilai Indeks Kritis
Rekomendasi 1
Rekomendasi 2 Mulai
Input : file excel, alokasi biaya, dan skor pareto
Output : hasil Analisis Nilai Pakai
Output : hasil Analisis Nilai Investasi
Output : hasil Analisis Nilai Indeks Kritis
Lihat Rekomendasi
1 ?
Output : hasil cari rekomendasi 1
ya tidak
Lihat Rekomendasi
2 ?
Output : hasil cari rekomendasi 2
ya
Lihat Rekomendasi
3 ? Rekomendasi 3
Output : hasil cari rekomendsi 3
ya
Selesai tidak
tidak
tidak
Gambar 3.5 Alur Kerja Subsistem Berdasarkan gambar 3.5, hasil dari analisis indeks kritis yang berupa
32 kelompok obat berdasarkan kelas pareto akan digunakan sebagai dasar untuk
pencarian rekomendasi pengadaan obat. Rekomendasi dibuat tiga alternatif yaitu rekomendasi alternatif 1 merupakan rekomendasi berdasarkan jumlah pemakaian
obat tahun lalu. Selanjutnya, rekomendasi alternatif 2 yaitu rekomendasi dengan mempertimbangkan metode just in time. Kemudian, rekomendasi alternatif 3 yaitu
rekomendasi dengan mempertimbangkan metode just in time dan memaksimalkan jumlah pengadaan obat. Rekoemndasi alternatif 1 dan 2 tetap dibuat karena
mengingat keinginan user berbeda-beda sehingga dengan diberikannya 3 rekomendasi ini, user dapat memilih sendiri mana yang paling sesuai dengan
membandingkan masing-masing hasil rekomendasi. Selanjutnya, akan diuraikan mengenai masing-masing proses dari tahap
analisis sampai pencarian rekomendasi. Data sampel pemakaian sediaan farmasi yang digunakan dapat dilihat pada tabel 3.4
Tabel 3.4 Data sampel pemakaian sediaan farmasi
kode nama obat
jumlah pakai harga
obat butir
satuan Rp 1
Amoxycillin.500 19075
370 2
Kalium.diklofenak.50mg 1108
2584 3
Lincomycin.500 2580
650 4
Asam.Mefenamat.500mg 11670
131.95 5
Simvastatin.10mg 2768
513 6
Captopril.25mg 9315
137.75 26
Paracetamol.syr 271
1725 27
Lanzoprazol.30mg 277
1672 28
Metformin.500mg 3100
149 29
Prednison.5 9835
40 132
Ibuprofen.tab.200mg 184
73.36 133
Vit.B.compleks 604
22.2 153
Propanolol.40 20
82.18 154
Metronidazol.250mg 15
105 155
INH.100mg 60
25 156
Ferrous.Sulphate.300mg 50
21.86 157
Vit.C.100mg 40
26.43 158
Cotrimoxazol.pediatrik 12
49.86
. Langkah-langkah proses SPPK pengadaan obat :
33 1. Analisis Nilai Pakai
a. Urutkan data item obat berdasarkan jumlah pemakaian tertinggi ke rendah descending. Hasil dari langkah ini
terdapat pada tabel 3.5
Tabel 3.5 Data sampel berdasarkan jumlah pemakaian
kode nama obat
jml. pakai
obat butir
1 Amoxycillin.500
19075
4 Asam.Mefenamat.500mg
11670
29 Prednison.5
9835
6 Captopril.25mg
9315
28 Metformin.500mg
3100
5 Simvastatin.10mg
2768
3 Lincomycin.500
2580
2 Kalium.diklofenak.50mg
1108
133 Vit.B.compleks
604
27 Lanzoprazol.30mg
277
26 Paracetamol.syr
271
132 Ibuprofen.tab.200mg
184
155 INH.100mg
60
156 Ferrous.Sulphate.300mg
50
157 Vit.C.100mg
40
153 Propanolol.40
20
154 Metronidazol.250mg
15
158 Cotrimoxazol.pediatrik
12
b. Hitung persentase nilai pakai tiap item obat terhadap jumlah pemakaian seluruh obat
Sebagai contoh pada tabel 3.5, Amoxyxillin 500 dengan jumlah pakai 19.075 dengan rumus 2.1, memiliki
perhitungan sebagai berikut :
� � �� � = .
19.075 596.666
� 100 = 31,28
c. Hitung persentase kumulatif dari persentase nilai pakai
34 d. Tentukan kelas pareto nilai pakai untuk setiap item obat
berdasarkan persentase kumulatif, dengan ketentuan berikut:
Jika 0 kumulatif = 80, maka termasuk kelas pareto nilai pakai A
Jika 80 kumulatif = 95, maka termasuk kelas pareto nilai pakai B
Jika 95 kumulatif = 100, maka termasuk kelas pareto nilai pakai C
Berdasarkan ketentuan di atas, hasilnya dapat dilihat pada tabel 3.6. Item obat yang memiliki persentase kumulatif
antara 31,28 sampai 66,54 termasuk ke dalam kelas pareto A, obat yang memiliki persentase kumulatif antara
81,82 sampai 91,44 termasuk ke dalam kelas pareto B, dan obat yang memiliki persentase kumulatif antara 95,67
sampai 100 termasuk ke dalam kelas pareto C.
Tabel 3.6 Data hasil analisis nilai pakai
kode nama obat
jml. pakai
persentase persen.
kelas obat
butir kumulatif
pareto 1
Amoxycillin.500
19075
31.28 31.28
A
4 Asam.Mefenamat.500mg
11670
19.14 50.41
A
29 Prednison.5
9835
16.13 66.54
A
6 Captopril.25mg
9315
15.27 81.82
B
28 Metformin.500mg
3100
5.08 86.90
B
5 Simvastatin.10mg
2768
4.54 91.44
C
3 Lincomycin.500
2580
4.23 95.67
C
2 Kalium.diklofenak.50mg
1108
1.82 97.49
C
133 Vit.B.compleks
604
0.99 98.48
C
27 Lanzoprazol.30mg
277
0.45 98.93
C
26 Paracetamol.syr
271
0.44 99.38
C
35
132 Ibuprofen.tab.200mg
184
0.30 99.68
C
155 INH.100mg
60
0.10 99.78
C
156 Ferrous.Sulphate.300mg
50
0.08 99.86
C
157 Vit.C.100mg
40
0.07 99.92
C
153 Propanolol.40
20
0.03 99.96
C
154 Metronidazol.250mg
15
0.02 99.98
C
158 Cotrimoxazol.pediatrik
12
0.02 100.00
C
2. Analisis Nilai Investasi a. Hitung jumlah investasi dari setiap item obat dengan rumus
2.2. Sebagai contoh, pada tabel 3.7, obat Amoxycillin 500 dengan jumlah pemakaian 19.075 dan harga satuan 370.
�ℎ � = 19.075 � 370
�ℎ � = 7.057.750
b. Urutkan data item obat berdasarkan jumlah investasi tertinggi ke rendah. Data item obat setelah diurutkan nilai
investasinya terdapat pada tabel 3.7.
Tabel 3.7 Data berdasarkan jumlah investasi
kode nama obat
jml. pakai
harga jml.
obat butir
Satuan Rp
Investasi Rp
1 Amoxycillin.500
19075 370
7057750
2 Kalium.diklofenak.50mg
1108 2584
2863072
3 Lincomycin.500
2580 650
1677000
4 Asam.Mefenamat.500mg
11670 131.95
1539856.5
5 Simvastatin.10mg
2768 513
1419984
6 Captopril.25mg
9315 137.75
1283141.3
26 Paracetamol.syr
271 1725
467475
27 Lanzoprazol.30mg
277 1672
463144
28 Metformin.500mg
3100 149
461900
29 Prednison.5
9835 40
393400
132 Ibuprofen.tab.200mg
184 73.36
13498.24
133 Vit.B.compleks
604 22.2
13408.8
153 Propanolol.40
20 82.18
1643.6
154 Metronidazol.250mg
15 105
1575
155 INH.100mg
60 25
1500
156 Ferrous.Sulphate.300mg
50 21.86
1093
36
157 Vit.C.100mg
40 26.43
1057.2
158 Cotrimoxazol.pediatrik
12 49.86
598.32
c. Hitung persentase nilai investasi tiap item obat dengan rumus 2.3, sebagai contoh pada tabel 3.7, Amoxycillin 500
dengan jumlah investasi 7.057.750 memiliki perhitungan sebagai berikut :
� � � =
. 7.057.750
282.027.690 � 100 = 39,96
d. Hitung persentase kumulatif dari persentase nilai investasi e. Tentukan kelas pareto untuk setiap item obat berdasarkan
persentase kumulatif, dengan ketentuan berikut : Jika 0 kumulatif = 80, maka termasuk kelas
pareto nilai investasi A Jika 80 kumulatif = 95, maka termasuk kelas
pareto nilai investasi B Jika 95 kumulatif = 100, maka termasuk kelas
pareto nilai investasi C Berdasarkan ketentuan di atas, hasil pengelompokan dapat
dilihat pada tabel 3.8. Obat yang memiliki persentase kumulatif antara 39,96 sampai 74,39 termasuk dalam
kelas pareto A, obat yang memiliki persentase kumulatif antara 82,43 sampai 94,96 termasuk dalam kelas
pareto B, dan obat yang memiliki persentase kumulatif antara 97,58 sampai 100 termasuk dalam kelas pareto
C.
37
Tabel 3.8 Data hasil analisis nilai investasi
kode nama obat
jml. pakai
harga jml.
persentase persen.
kelas obat
butir Satuan
Rp Investasi
Rp Kumulatif
pareto 1
Amoxycillin.500
19075 370
7057750
39.96 39.96
A
2 Kalium.diklofenak.50mg
1108 2584
2863072
16.21 56.17
A
3 Lincomycin.500
2580 650
1677000
9.50 65.67
A
4 Asam.Mefenamat.500mg
11670 131.95
1539856.5
8.72 74.39
A
5 Simvastatin.10mg
2768 513
1419984
8.04 82.43
B
6 Captopril.25mg
9315 137.75
1283141.3
7.27 89.69
B
26 Paracetamol.syr
271 1725
467475
2.65 92.34
B
27 Lanzoprazol.30mg
277 1672
463144
2.62 94.96
B
28 Metformin.500mg
3100 149
461900
2.62 97.58
C
29 Prednison.5
9835 40
393400
2.23 99.81
C
132 Ibuprofen.tab.200mg
184 73.36
13498.24
0.08 99.88
C
133 Vit.B.compleks
604 22.2
13408.8
0.08 99.96
C
153 Propanolol.40
20 82.18
1643.6
0.01 99.97
C
154 Metronidazol.250mg
15 105
1575
0.01 99.98
C
155 INH.100mg
60 25
1500
0.01 99.98
C
156 Ferrous.Sulphate.300mg
50 21.86
1093
0.01 99.99
C
157 Vit.C.100mg
40 26.43
1057.2
0.01 100.00
C
158 Cotrimoxazol.pediatrik
12 49.86
598.32
0.00 100.00
C
3. Analisis Nilai Indeks Kritis a. Konversi kelas pareto nilai pakai dan kelas pareto nilai
investasi menjadi skor pareto sesuai dengan masukan user. Misalnya kelas A menjadi 3, kelas B menjadi 2, dan kelas C
manjadi 1 b. Hitung nilai indeks kritis dengan menjumlahkan skor pareto
dari nilai pakai dan nilai investasi dengan rumus 2.4, sebagai contoh dari tabel 3.6 dan tabel 3.8, Amoxycillin 500
dengan skor pareto nilai pakai A dan skor pareto nilai investasi A memiliki perhitungan sebagai berikut :
� � = 3 + 3 = 6
38 c. Hitung interval untuk kelas pareto nilai indeks kritis dengan
rumus 2.5. Berdasarkan data konversi kelas pareto, didapat nilai tertinggi skor pareto nilai pakai dan nilai investasi
adalah 3, sedangkan nilai terendah skor pareto nilai pakai dan nilai investasi adalah 1, maka interval dapat dihitung
dengan langkah berikut ini :
� = .
3 + 3 − 1 + 1 3
= 1,33
d. Tentukan kelas pareto nilai indeks kritis berdasarkan nilai indeks kritis dan interval dengan ketentuan berikut :
Jika 4,66 nilai indeks kritis = 6, termasuk kelas pareto nilai indeks kritis A
Jika 3.33 nilai indeks kritis = 4,66, termasuk kelas pareto nilai indeks kritis B
Jika 2 nilai indeks kritis = 3,33, termasuk kelas pareto nilai indeks kritis C
Berdasarkan aturan tersebut, dapat dilihat pada tabel 3.9 bahwa obat yang memiliki nilai indeks kritis 6 termasuk
dalam kelas pareto A, obat yang memiliki nilai indeks kritis 4 termasuk dalam kelas pareto B, sedangkan obat yang
memiliki nilai indeks kritis antara 2 sampai 3 termasuk dalam kelas pareto C.
39
Tabel 3.9 Data hasil analisis nilai indeks kritis
kode nama obat
jml. pakai
harga kls.
pareto trans
nik trans
obat butir
satuanRp np
ni np
ni nik
1 Amoxycillin.500
19075 370
A A
3 3
6 A
4 Asam.Mefenamat.500mg
11670 131.95
A A
3 3
6 A
6 Captopril.25mg
9315 137.75
B B
2 2
4 B
2 Kalium.diklofenak.50mg
1108 2584
C A
1 3
4 B
3 Lincomycin.500
2580 650
C A
1 3
4 B
29 Prednison.5
9835 40
A C
3 1
4 B
158 Cotrimoxazol.pediatrik
12 49.86
C C
1 1
2 C
156 Ferrous.Sulphate.300mg
50 21.86
C C
1 1
2 C
132 Ibuprofen.tab.200mg
184 73.36
C C
1 1
2 C
155 INH.100mg
60 25
C C
1 1
2 C
27 Lanzoprazol.30mg
277 1672
C B
1 2
3 C
28 Metformin.500mg
3100 149
B C
2 1
3 C
154 Metronidazol.250mg
15 105
C C
1 1
2 C
26 Paracetamol.syr
271 1725
C B
1 2
3 C
153 Propanolol.40
20 82.18
C C
1 1
2 C
5 Simvastatin.10mg
2768 513
C B
1 2
3 C
133 Vit.B.compleks
604 22.2
C C
1 1
2 C
157 Vit.C.100mg
40 26.43
C C
1 1
2 C
4. Pencarian Rekomendasi Dalam penjualan obat secara umum, satu box obat berisi 100 butir
obat. Untuk mencari rekomendasi, diperlukan masukan oleh user berupa alokasi biaya. Misalnya, alokasi biaya yang diberikan
sebesar Rp 20.000.000,00 a. Alternatif 1
Rekomendasi alternatif 1 dibuat berdasarkan data pemakaian sediaan tahun lalu. Langkah-langkahnya adalah sebagi berikut:
Hitung jumlah pengadaan per box untuk setiap item obat.
�ℎ �� �� =
�−� 100
100
Keterangan : S : jumlah pemakain item obat
40 Pada tabel 3.10, Amoxycillin 500 dengan jumlah
pemakaian 19.075, memiliki perhitungan jumlah pengadaan sebagai berikut :
�ℎ �� �� =
19.075 − 19.075
100 100
= 190
hitung besar investasi untuk setiap item obat
� = �ℎ
�� �� � 100 � ℎ� �� � �
Pada tabel 3.10, Amoxycillin 500 dengan harga satuan 370 dan jumlah pengadaan 190 box, memiliki investasi sebesar :
� = 190 � 100 � 370 = 7.030.000
hitung total investasi seluruh item obat yang didapat dengan menjumlah investasi seluruh obat. Berdasarkan tabel 3.10,
total investasi adalah 16.786.251
Tabel 3.10 Data hasil rekomendasi alternatif 1
kode nama obat
jml. pakai
harga kls.
Pareto jml.pengadaan
jml. obat
butir satuanRp
nik box
investasi Rp 1
Amoxycillin.500 19075
370 A
190 7030000
4 Asam.Mefenamat.500mg
11670 131.95
A 116
1530620 6
Captopril.25mg 9315
137.75 B
93 1281075
2 Kalium.diklofenak.50mg
1108 2584
B 11
2842400 3
Lincomycin.500 2580
650 B
25 1625000
29 Prednison.5
9835 40
B 98
392000 158
Cotrimoxazol.pediatrik 12
49.86 C
156 Ferrous.Sulphate.300mg
50 21.86
C 132
Ibuprofen.tab.200mg 184
73.36 C
1 7336
155 INH.100mg
60 25
C 27
Lanzoprazol.30mg 277
1672 C
2 334400
28 Metformin.500mg
3100 149
C 31
461900 154
Metronidazol.250mg 15
105 C
26 Paracetamol.syr
271 1725
C 2
345000 153
Propanolol.40 20
82.18 C
5 Simvastatin.10mg
2768 513
C 27
1385100 133
Vit.B.compleks 604
22.2 C
6 13320
157 Vit.C.100mg
40 26.43
C
41 hitung selisih dana yang tersedia dengan total investasi
seluruh item obat ℎ = �
� � � − �
� Hitung selisih dari biaya awal dan total investasi, yaitu :
Selisih = Rp 20.000.000,00 – Rp 16.786.251,00
= Rp 3.213.749,00 b. Alternatif 2
Rekomendasi alternatif 2 dibuat berdasarkan jumlah pengadaan tahun lalu dan mempergunakan metode just in time.
hitung jumlah pengadaan per box untuk setiap item obat
�ℎ �� �� =
� − � 100
100
Keterangan : S = jumlah pemakaian item obat
tentukan kelayakan pengadaan obat berdasarkan jumlah pengadaan dengan ketentuan berikut :
- Jika jumlah pengadaan = 2 box, maka diadakan secara just in time
- Jika 2 jumlah pengadaan = 10 box, maka diadakan 3 bulan sekali
- Jika jumlah pengadaan 10 box, maka diadakan sekaligus
Berdasarkan ketentuan di atas, hasilnya dapat dilihat pada tabel 3.11, Amoxycillin 500 yang memiliki jumlah
42 pengadaan 10 box diadakan sekaligus, sedangkan
Ibuprofen tab 200mg yang memiliki jumlah pengadaan 2 diadakan secara just in time.
hitung besar investasi untuk setiap item obat �
= �ℎ
�� �� � 100 � ℎ� �� � � hitung total investasi seluruh item obat
hitung selisih dana yang tersedia dengan total investasi seluruh item obat
ℎ = � � � � −
� �
Tabel 3.11 Data hasil rekomendasi alternatif 2
kode nama obat
jml. pakai
harga trans
jml. pengadaan
jml. keterangan
obat butir
Satuan Rp nik box
investasi Rp
1 Amoxycillin.500 19075
370 A
190 7030000 Diadakan sekaligus
4 Asam.Mefenamat.500mg 11670 131.95
A 116
1530620 Diadakan sekaligus 6 Captopril.25mg
9315 137.75
B 93
1281075 Diadakan sekaligus 2 Kalium.diklofenak.50mg
1108 2584
B 11
2842400 Diadakan sekaligus 3 Lincomycin.500
2580 650
B 25
1625000 Diadakan sekaligus 29 Prednison.5
9835 40
B 98
392000 Diadakan sekaligus 158 Cotrimoxazol.pediatrik
12 49.86
C 0 just in time
156 Ferrous.Sulphate.300mg 50
21.86 C
0 just in time 132 Ibuprofen.tab.200mg
184 73.36
C 0 just in time
155 INH.100mg 60
25 C
0 just in time 27 Lanzoprazol.30mg
277 1672
C 0 just in time
28 Metformin.500mg 3100
149 C
31 461900 Diadakan sekaligus
154 Metronidazol.250mg 15
105 C
0 just in time 26 Paracetamol.syr
271 1725
C 0 just in time
153 Propanolol.40 20
82.18 C
0 just in time 5 Simvastatin.10mg
2768 513
C 27
1385100 Diadakan sekaligus 133 Vit.B.compleks
604 22.2
C 6
0 Diadakan 23 bulan sekali 157 Vit.C.100mg
40 26.43
C 0 just in time
Hitung selisih dari biaya awal dan total investasi, yaitu : Selisih = Rp 20.000.000,00
– Rp 16.548.095
43 = Rp 3.451.905,00
c. Alternatif 3 Tentukan selisih maksimum antara biaya awal dan total
investasi. Selisih maksimum ditentukan oleh user, misalnya selisihMaks = 1.000.000
hitung jumlah pengadaan per box untuk setiap item obat
�ℎ �� �� =
� − � 100
100
Keterangan : S = jumlah pemakaian item obat
tentukan kelayakan pengadaan obat berdasarkan jumlah pengadaan dengan ketentuan berikut :
- Jika jumlah pengadaan = 2 box, maka diadakan secara just in time
- Jika 2 jumlah pengadaan = 10 box, maka diadakan 3 bulan sekali
- Jika jumlah pengadaan 10 box, maka diadakan sekaligus
hitung besar investasi untuk setiap item obat �
= �ℎ
�� �� � 100 � ℎ� �� � � hitung total investasi seluruh item obat
hitung selisih dana yang tersedia dengan total investasi seluruh item obat
ℎ = � � � � −
� �
44 Bandingkan selisih dengan selisih maksimum dengan
ketentuan berikut : - Jika selisihMaks selisih, maksimalkan jumlah
pengadaan item obat di kelas pareto A dan B yang diadakan sekaligus. Pada tabel 3.12, Amoxycillin
500, Asam Mefenamat 500mg, Captopril 25mg, Lincomycin 500, dan Prednison 5 merupakan item
obat yang jumlah pengadaannya dimaksimalkan. - Jika selisihMaks = selisih atau selisihMaksselisih,
maka rekomendasi telah terbentuk
Tabel 3.12 Data hasil rekomendasi alternatif 3
kode nama obat
jml. pakai
harga kls.
Pareto jml.
pengadaan jml.
keterangan obat
butir Satuan
Rp nik
box investasi
Rp 1 Amoxycillin.500
19075 370
A 197 7289000 Diadakan sekaligus
4 Asam.Mefenamat.500mg 11670 131.95
A 123 1622985 Diadakan sekaligus
6 Captopril.25mg 9315
137.75 B
100 1377500 Diadakan sekaligus 2 Kalium.diklofenak.50mg
1108 2584
B 18 4651200 Diadakan sekaligus
3 Lincomycin.500 2580
650 B
32 2080000 Diadakan sekaligus 29 Prednison.5
9835 40
B 105
420000 Diadakan sekaligus 158 Cotrimoxazol.pediatrik
12 49.86
C 0 just in time
156 Ferrous.Sulphate.300mg 50
21.86 C
0 just in time 132 Ibuprofen.tab.200mg
184 73.36
C 1
0 Just in time 155 INH.100mg
60 25
C 0 just in time
27 Lanzoprazol.30mg 277
1672 C
2 0 Diadakan 23 bulan sekali
28 Metformin.500mg 3100
149 C
31 461900 Diadakan sekaligus
154 Metronidazol.250mg 15
105 C
0 just in time 26 Paracetamol.syr
271 1725
C 2
0 Diadakan 23 bulan sekali 153 Propanolol.40
20 82.18
C 0 just in time
5 Simvastatin.10mg 2768
513 C
27 1385100 Diadakan sekaligus 133 Vit.B.compleks
604 22.2
C 6
0 Diadakan 23 bulan sekali 157 Vit.C.100mg
40 26.43
C 0 just in time
Dari tabel 3.12, akan dihitung total investasi seluruh obat yang
45 diadakan sekaligus setelah jumlah pengadaan obat dimaksimalkan
sampai selisih antara biaya awal dengan total investasi lebih kecil daripada selisihMaks 1.000.000. Sehingga didapat hasil akhir
sebagai berikut : Selisih = biaya awal
– total investasi = Rp 20.000.000,00
– Rp 19.287.685,00 = Rp 712.315,00
III.2.1.4 Model Analisis
Model analisis dibuat berdasarkan setiap use-case sesuai dengan tabel 3.3. Model analisis terdiri atas diagram kelas analisis, tabel kelas analisis, dan diagram
sekuensial.
III.2.1.4.1 Model Analisis Use-case Input File Pemakaian Sediaan
Dalam use-case input file pemakaian sediaan diperlukan tiga kelas yaitu terdapat pada gambar 3.6.
inputFileForm databaseConnection
Obat
Gambar 3.6 Gambar model analisis input file pemakaian sediaan Kelas inputFileForm berfungsi sebagai interface, Obat sebagai entity yang akan
diakses, dan databaseConnection sebagai controller. Tabel 3.13 merupakan tabel deskripsi dari kelas-kelas yang dipakai dalam input
file pemakaian sediaan. Tabel 3.13 Tabel kelas analisis input file pemakaian sediaan
No. Nama Kelas
Tipe Deskripsi
1. inputFileForm
Interface Kelas ini menyediakan
46
halaman untuk menginputkan file
2. Obat
Entity Kelas ini menyediakan object
obat 3.
databaseConnection Controller Kelas ini berfungsi untuk
mengontrol koneksi ke database
Urutan proses input file pemakaian sediaan terdapat pada gambar 3.7.
Pengguna interface
inputFileForm entity
Obat controller
databaseConnection Klik tombol “Ambil File”
bacaFilefile view kode, nama, jml pakai,
harga ke JTable Klik tombol “Simpan”
Set kode, nama, jml pakai, harga
Buka koneksi Query insert kode, nama,
jml pakai, harga status
Tutup koneksi Tampil pesan sukses
Gambar 3.7 Diagram Sekuensial input file pemakaian sediaan
III.2.1.4.2 Model Analisis Use-case Input Alokasi Biaya
Dalam use-case input alokasi biaya diperlukan tiga kelas yaitu terdapat pada gambar 3.8.
inputBiayaForm databaseConnection
Biaya
Gambar 3.8 Gambar model analisis input alokasi biaya Kelas inputBiayaForm berfungsi sebagai interface, Biaya sebagai entity yang akan
diakses, dan databaseConnection sebagai controller. Tabel 3.14 merupakan tabel deskripsi dari kelas-kelas yang dipakai dalam input
alokasi biaya.
47 Tabel 3.14 Tabel kelas analisis input alokasi biaya
No. Nama Kelas
Tipe Deskripsi
1. inputBiayaForm
Interface Kelas ini menyediakan
halaman untuk menginputkan biaya
2. Biaya
Entity Kelas ini menyediakan
object biaya 3.
databaseConnection Controller
Kelas ini berfungsi untuk mengontrol koneksi ke
database
Urutan proses input alokasi biaya terdapat pada gambar 3.9.
Pengguna interface
inputBiayaForm entity
Biaya controller
databaseConnection Input biaya ke textfield
Klik tombol “Simpan” Set biaya
Buka koneksi Query insert biaya
status Tutup koneksi
Tampil pesan sukses
Gambar 3.9 Diagram Sekuensial input alokasi biaya
III.2.1.4.3 Model Analisis Use-case Input Skor Pareto
Dalam use-case input skor pareto diperlukan dua kelas yaitu terdapat pada gambar 3.10.
inputSkorForm databaseConnection
Gambar 3.10 Gambar model analisis input skor pareto Kelas inputSkorForm berfungsi sebagai interface dan databaseConnection sebagai
controller. Tabel 3.15 merupakan tabel deskripsi dari kelas-kelas yang dipakai dalam input skor pareto.
48 Tabel 3.15 Tabel kelas analisis input skor pareto
No. Nama Kelas
Tipe Deskripsi
1. inputSkorForm
Interface Kelas ini menyediakan
halaman untuk menginputkan skor
2. databaseConnection
Controller Kelas ini berfungsi untuk
mengontrol koneksi ke database
Urutan proses input skor pareto terdapat pada gambar 3.11.
Pengguna interface
inputSkorForm controller
databaseConnection Input skor ke tabel
Klik tombol “Simpan” Buka koneksi
Query insert skor Tampil pesan sukses
Tutup koneksi
Gambar 3.11 Diagram Sekuensial input skor pareto
III.2.1.4.4 Model Analisis Use-case Analisis Pareto ABC
Dalam use-case analisis Pareto ABC diperlukan tiga kelas yaitu terdapat pada gambar 3.12.
analisisForm analisisPareto
Obat
Gambar 3.12 Gambar model analisis analisis Pareto ABC Kelas analisisForm berfungsi sebagai interface, Obat sebagai entity yang akan
diakses, dan analisisPareto sebagai controller. Tabel 3.16 merupakan tabel deskripsi dari kelas-kelas yang dipakai dalam analisis Pareto ABC.
49 Tabel 3.16 Tabel kelas analisis analisis Pareto ABC
No. Nama Kelas
Tipe Deskripsi
1. analisisForm
Interface Kelas ini menyediakan
halaman untuk proses analisis pareto ABC
2. analisisPareto
Controller Kelas ini berfungsi untuk
mengontrol setiap method yang akan dijalankan
3. Obat
Entity Kelas ini menyediakan
object obat
Urutan proses analisis Pareto ABC terdapat pada gambar 3.13.
Klik tombol “Nilai Investasi”
Request analisis nilai investasi
Run store procedure analisis nilai investasi
Get jumlah investasi, persentase, persenrase
kumulatif, kelas pareto Tampil hasil analisis nilai
investasi Klik tombol “Nilai Indeks
Kritis” Request analisis nilai
indeks kritis Run store procedure
analisis nilai indeks kritis
Get jumlah kelas pareto Tampil hasil analisis nilai
indeks kritis Pengguna
interface analisisForm
entity Obat
controller AnalisisPareto
Klik tombol “Nilai Pakai” Request analisis nilai pakai
Run store procedure analisis nilai pakai
Get persentase, persenrase kumulatif, kelas pareto
Tampil hasil analisis nilai pakai
Gambar 3.13 Diagram Sekuensial analisis Pareto ABC
III.2.1.4.5 Model Analisis Use-case Mencari Rekomendasi Pengadaan Obat
Dalam use-case mencari rekomendasi pengadaan obat empat kelas yaitu terdapat pada gambar 3.14.
50
rekomendasiForm cariRekomendasi Obat Biaya
Gambar 3.14 Model analisis mencari rekomendasi pengadaan obat Kelas rekomendasiForm berfungsi sebagai interface, Obat dan Biaya sebagai
entity yang akan diakses, dan cariRekomendasi sebagai controller. Tabel 3.17 merupakan tabel deskripsi dari kelas-kelas yang dipakai dalam input file
pemakaian sediaan. Tabel 3.17 Tabel kelas analisis mencari rekomendasi pengadaan obat
No. Nama Kelas
Tipe Deskripsi
1. rekomendasiForm
Interface Kelas ini menyediakan
halaman untuk mencari rekomendasi
2. cariRekomendasi
Controller Kelas ini berfungsi
untuk mengontrol setiap method yang akan
dijalankan
3. Obat
Entity Kelas ini menyediakan
object obat 4.
Biaya Entity
Kelas ini menyediakan object biaya
51 Urutan proses cari rekomendasi terdapat pada gambar 3.15.
Pengguna interface
analisisForm entity
Obat controller
AnalisisPareto Klik tombol
“Rekomendasi 1” Request cari rekomendasi 1
Run store procedure cari rekomendasi 1
Get jumlah pengadaan, jumlah investasi, total
investasi, selisih Tampil hasil cari
rekomendasai 1 entity
Biaya
Hitung selisih Get total investasi,
selisih Klik tombol
“Rekomendasi 2” Request cari rekomendasi 2
Run store procedure cari rekomendasi 2
Get jumlah pengadaan, jumlah
investasi,keterangan, total investasi, selisih
Tampil hasil cari rekomendasai 2
Hitung selisih Get total investasi,
selisih Klik tombol “Rekomendasi 3”
Request cari rekomendasi 3 Run store procedure
memaksimalkan jumlah pengadaan
Get jumlah pengadaan, jumlah
investasi,keterangan, total investasi, selisih
Tampil hasil cari rekomendasai 3
Hitung selisih Get total investasi,
selisih Tampil textfield input
maksimum selisih Input maksimum selisih
Gambar 3.15 Diagram Sekuensial mencari rekomendasi pengadaan obat
52
III.2.1.5 Diagram Kelas Analisis
+ link : Vector + jButtonInputData : JButton
+ jButtonCariRekomendasi : JButton + jButtonAnalisisPareto : JButton
+ jButtonExit : JButton + jButtonAbout : JButton
+jButtonHelp :JButton
- jButtonInputDataActionPerformed : void - jButtonCariRekomendasiActionPerformed : void
- jButtonAnalisisParetoActionPerformed : void interface
inputFileForm
+dtm : DefaultTableModel +obt[] : Obat
+jButtonBrowse : JButton +jButtonSaveFileToDB : Jbutton
+conn : databaseConnection -jButtonBrowseActionPerformed : void
- jButtonSaveFileToDBActionPerformed : void
interface
inputSkorForm
+ conn : databaseConnection + dtm : DefaultTableModel
+ jButtonSaveSkor : JButton -jButtonSaveSkorActionPerformed :void
interface
rekomendasiForm
+conn : databaseConnection +obt[] : Obat
+jButtonRekomendasi1: JButton +jButtonRekomendasi2: JButton
+JButtonRekomendasi3: JButton +jButtonModifikasi: JButton
+jButtonCetak : JButton
analisisPareto
+conn : databaseConnection +ob[] : Obat
+ch : chart +hitung_nilaiPakai : void
+hitung_nilaiInvestasi: void +hitung_nilaiIndeksKritis:void
+trans_nilaiIndeksKritis : void
cariRekomendasi
+cari_rekomendasi1 : void +cari_rekomendasi2 : void
+modifikasi_pengadaan : void +memaksimalkanPengadaan :
void
chart
-category : Integer -formatter : NumberFormat
-calculateSeriesTotal CategoryDataset, int : double
-createDataset:CategoryDataset
databaseConnection
+conn : Connection +jdbcURL : String
+user : String +password : String
+databaseConnection:constructor +getConnection : Connection
interface
inputBiayaForm
+ jButtonSaveBiaya : JButton + jTextFieldBiaya : JTextField
+ conn :databaseConnection -jButtonSaveBiayaActionPerformed:void
interface
analisisForm
+conn : databaseConnection +obt[] : Obat
+ch : chart +jTableHasil : JTable
+jButtonNilaiPakai : JButton +jButtonNilaiInvestasi : JButton
+jButtonNilaiIndeksKritis : Jbutton +jButtonLihatGrafik :JButton
+jButtonCetak : JButton -jButtonNilaiPakaiActionPeerformed:void
-jButtonNilaiInvestasiActionPeerformed:void -jButtonNilaiIndeksKritisActionPeerformed
:void -jButtonLihatGrafikActionPeerformed:void
-jButtonCetakActionPeerformed:void
Obat
-kodeObat : String -namaObat : String
-jumlahPakai : double -hargaSatuan : double
-f : File
+data : String[][] +kolom : String[]
+namaKolom:LinkedList +tm : DefaultTableModel
+Obat : constructor +pilihFileFile : void
Biaya
-biayaAwal : double +Biaya : constructor
+simpanBiayadouble:void interface
homeForm
-jButtonRekomendasi1ActionPerformed: void -jButtonRekomendasi2ActionPerformed: void
-JButtonRekomendasi3ActionPerformed: void -jButtonModifikasiActionPerformed: void
-jButtonCetakActionPerformed : void +conn : databaseConnection
+ob[] : Obat +b : Biaya
53
III.2.1.6 Perancangan Detil Kelas
Kelas homeForm
Tabel 3.18 Kelas Interface homeForm
Atribut :
Vector link; jButtonInputData : JButton
jButtonCariRekomendasi : JButton jButtonAnalisisPareto : JButton
jButtonExit : JButton jButtonAbout : JButton
jButtonHelp :JButton Method :
1. private void jButtonInputDataActionPerformedjava.awt.event.ActionEvent evt Input : -
Output : Halaman Input Data Fungsi : menampilkan halaman input data
Algoritma :
inputFileForm data = new inputFileFormlink; data.setVisibletrue;
this.dispose; 2. private void
jButtonCariRekomendasiActionPerformedjava.awt.event.ActionEvent evt Input : -
Output : Halaman Cari Rekomendasi Fungsi : menampilkan halaman cari rekomendasi
Algoritma :
rekomendasiSemuaForm cari = new rekomendasiSemuaFormlink; cari.setVisibletrue;
this.dispose; 3. private void jButtonAnalisisParetoActionPerformedjava.awt.event.ActionEvent
evt Input : -
Output : Halaman Analisis Pareto ABC Fungsi : menampilkan halaman analisis
Algoritma :
analisisForm analisis = new analisisFormlink; analisis.setVisibletrue;
this.dispose;
Kelas inputFileForm
Tabel 3.19 Kelas Interface inputFileForm
Atribut : dtm : DefaultTableModel
obt[] : Obat jButtonBrowse : JButton
54
jButtonSaveFileToDB : Jbutton conn : databaseConnection
Method :
1. private void jButtonBrowseActionPerformedjava.awt.event.ActionEvent evt Input : file .xls atau .xlsx
Output : array data obat Fungsi : mengambil file dalam direktori untuk ditampilkan dalam JTable
Algoritma :
a. buat obyek baru JfileChooser fc = new JFileChooser; b. get path directory dari lokasi file dari textField
c. panggil method baca file dari kelas Obat d. buat array Object[] untuk simpan hasil baca file, looping sebanyak jumlah
data e. tampilkan array Object[i] ke JTable
2. private void jButtonSaveFileToDBActionPerformedjava.awt.event.ActionEvent evt
Input : array data obat Output : data obat tersimpan dalam database
Fungsi : menyimpan data dari JTable ke database Algoritma :
a. buka koneksi ke database pareto b. masukkan query delete untuk clear tabel
c. get array data[][] obat dari JTable d. masukkan query insert untuk simpan data obat ke tabel
e. tutup koneksi
Kelas inputBiayaForm
Tabel 3.20 Kelas Interface inputBiayaForm
Atribut : jButtonSaveBiaya : JButton
jTextFieldBiaya : JTextField conn :databaseConnection
Method :
1. private void jButtonSaveBiayaToDBActionPerformedjava.event.ActionEvent evt Input : biaya
Output : biaya tersimpan di database Fungsi : menyimpan biaya ke dalam database
Algoritma :
a. object baru Biaya untuk menampung masukan biaya dari textfield b. buka koneksi
c. masukkan query insert untuk simpan biaya d. tutup koneksi
Kelas inputSkorForm
Tabel 3.21 Kelas Interface inputSkorForm
Atribut : conn : databaseConnection
dtm : DefaultTableModel
55
jButtonSaveSkor : JButton Method :
1. private void jButtonSaveSkorParetoActionPerformedjava.awt.event.ActionEvent evt
Input : array skor Output : skor tersimpan di database
Fungsi : menyimpan skor pareto ke dalam database Algoritma :
a. buka koneksi b. masukkan query delete untuk clear tabel
c. get array data skor dari JTable d. masukkan query insert untuk simpan data skor ke tabel
e. tutup koneksi
Kelas analisisForm
Tabel 3.22 Kelas Interface analisisForm
Atribut : conn : databaseConnection
obt[] : Obat ch : chart
jTableHasil : JTable jButtonNilaiPakai : JButton
jButtonNilaiInvestasi : JButton jButtonNilaiIndeksKritis : Jbutton
jButtonLihatGrafik :JButton jButtonCetak : JButton
Method :
1. private void jButtonNilaiPakaiActionPerformed java.awt.event.ActionEvent evt Input : array data obat
Output : hasil analisis nilai pakai Fungsi : menjalankan proses analisis nilai pakai
Algoritma :
a. membuat object kelas databaseConnection b. membuat object kelas Analisis Pareto
c. panggil method hitung_np dari kelas Analisis Pareto d. buka koneksi
e. query select untuk menampilkan hasil analisis nilai pakai f. tutup koneksi
g. simpan resultset ke dalam array data[][] h. masukkan array data ke dalam JTable model
2. private void jButtonNilaiInvestasiActionPerformed java.awt.event.ActionEvent evt
Input : array data obat Output : hasil analisis nilai investasi
Fungsi : menjalankan proses analisis nilai investasi Algoritma :
a. membuat object kelas databaseConnection b. membuat object kelas Analisis Pareto
c. panggil method hitung_ni dari kelas Analisis Pareto d. buka koneksi
56
e. query select untuk menampilkan hasil analisis nilai pakai f. tutup koneksi
g. simpan resultset ke dalam array data[][] h. masukkan array data ke dalam JTable model
3. private void jButtonNilaiIndeksKritisActionPerformed java.awt.event.ActionEvent evt
Input : array data obat Output : hasil analisis nilai indeks kritis
Fungsi : menjalankan proses analisis nilai indeks kritis Algoritma :
a. membuat object kelas databaseConnection b. membuat object kelas Analisis Pareto
c. panggil method untuk mentransformasi kelas pareto menjadi d. panggil method analisis nilai indeks kritis
e. buka koneksi f. query select untuk menampilkan hasil analisis nilai pakai
g. tutup koneksi h. simpan resultset ke dalam array data[][]
i. masukkan array data ke dalam JTable model
4. private void jButtonLihatGrafikActionPerformed java.awt.event.ActionEvent evt Input : -
Output : Grafik analisis Pareto ABC Fungsi : menampilkan grafik
Algoritma :
a. membuat object kelas chart b. buat grafik
c. tampilkan grafik 5. private void jButtonCetakActionPerformed java.awt.event.ActionEvent evt
Input : - Output : cetakan hasil analisis
Fungsi : mencetak hasil analisis Algoritma :
a. membuat object databaseConnection b. membuat object s bertipe integer untuk menyimpan tahap proses
if s=1 tampil report nilai pakai else if s=2 tampil report nilai investasi
else if s=3 tampil report nilai indeks kritis
Kelas rekomendasiForm
Tabel 3.23 Kelas Interface rekomendasiForm
Atribut : conn : databaseConnection
obt[] : Obat jButtonRekomendasi1: JButton
jButtonRekomendasi2: JButton jButtonRekomendasi3: JButton
jButtonModifikasi: JButton jButtonCetak : JButton
Method :
1. private void jButtonRekomendasi1ActionPerformed java.awt.event.ActionEvent
57
evt Input : data hasil analisis nilai indeks kritis
Output : hasil rekomendasi 1 Fungsi : mencari rekomendasi berdasar jumlah pemakaian tahun sebelumnya
Algoritma :
a. membuat object kelas databaseConnection b. membuat object kelas CariRekomendasi
c. panggil method cari rekomendasi 1 dari kelas Analisis Pareto d. buka koneksi
e. masukkan query select untuk menampilkan hasil rekomendasi f. masukkan query select untuk menampilkan biaya dari rekomendasi
g. tutup koneksi h. simpan resultset ke dalam array data[][]
i. set array data[][] ke dalam JTable model
2. private void jButtonRekomendasi2ActionPerformed java.awt.event.ActionEvent evt
Input : data hasil analisis nilai indeks kritis Output : hasil rekomendasi 2
Fungsi : mencari rekomendasi berdasarkan nilai indeks kritis dan just in time Algoritma :
a. membuat object kelas databaseConnection b. membuat object kelas CariRekomendasi
c. panggil method cari rekomendasi 2 dari kelas Analisis Pareto d. buka koneksi
e. masukkan query select untuk menampilkan hasil rekomendasi f. masukkan query select untuk menampilkan biaya dari rekomendasi
g. tutup koneksi h. simpan resultset ke dalam array data[][]
i. masukkan array data ke dalam JTable model
3. private void jButtonRekomendasi3ActionPerformed java.awt.event.ActionEvent evt
Input : data hasil analisis nilai indeks kritis Output : hasil rekomendasi 3
Fungsi : mencari rekomendasi berdasar nilai indeks kritis dan just in time dengan memaksimalkan jumlah pengadaan obat
Algoritma :
a. membuat object kelas databaseConnection b. membuat object baru minSelisih bertipe double untuk menyimpan masukan
maksimum selisih antara biaya awal dan total investasi c. membuat object baru temp1 untuk menyimpan selisih dari database
d. buat kondisi untuk membandingkan temp1 dengan selisih : whiletemp1minSelisih
buat object baru kelas CariRekomendasi panggil method untuk memaksimalkan jumlah pengadaan
e. buka koneksi f. masukkan query select untuk menampilkan hasil rekomendasi
g. masukkan query select untuk menampilkan biaya dari rekomendasi h. tutup koneksi
i. simpan resultset ke dalam array data[][] j. masukkan array data ke dalam JTable model
4. private void jButtonModifikasiActionPerformed java.awt.event.ActionEvent evt Input : data pengadaan baru
58
Output : hasil rekomendasi baru Fungsi : mengubah jumlah pengadaan obat
Algoritma : a. membuat object kelas databaseConnection
b. buka koneksi masukkan query delete untuk clear tabel temporer
buat array data[][] untuk menyimpan masukan data pengadaan baru masukkan query insert untuk menyimpan array data[][] ke dalam
database c. tutup koneksi
d. membuat object baru kelas CariRekomendasi e. panggil method modifikasi
f. buka koneksi g. masukkan query select untuk menampilkan data rekomendasi baru
h. tutup koneksi
Kelas databaseConnection
Tabel 3.24 Kelas Controller databaseConnection
Atribut :
Connection conn; String jdbcURL = jdbc:mysql:localhost:3306pareto;
String user = root; String password = ;
Method : public static Connection getConnection
Input : jdbnURL, user, password Output : koneksi ke database
Fungsi : membangun koneksi ke database Algoritma :
a. set connector ke mysql database Claaa.forName“com.mysql.jdbc.Driver”
b. test koneksi conn = DriverManager.getConnectionjdbcURL, user, password;
c. return conn.
Kelas Obat
Tabel 3.25 Kelas Entity Obat
Atribut :
private String kodeObat; private String namaObat;
private double jumlahPakai; private double hargaSatuan;
private static File f = null; String[][] data;
String[] kolom; static LinkedList namaKolom;
static DefaultTableModel tableModel = null; Method :
59
1. public void pilihFileFile f Input : file
Output : array data[][] Fungsi : membaca file .xls dan menampilkan ke dalam JTable
Algoritma :
a. buat variabel baru kelas Workbook untuk menyimpan file dari direktori user
b. buat variabel baru kelas Sheet untuk menyimpan halaman dari file c. get jumlah baris dan kolom
d. buat looping untuk menyimpan data yang dibaca ke dalam array data[][] e. proses ini akan terus berulang sampai kolom terakhir pada baris terakhir
f. tampilkan array data ke JTable dengan setTableModel
Kelas Biaya
Tabel 3.26 Kelas Entity Biaya
Atribut :
biayaAwal : double
Method : public void simpanBiayadouble biaya
Input : biaya Output : biaya tersimpan di database
Fungsi : menyimpan biaya ke dalam database Algoritma :
a. Membuat object databaseConnection b. Buka koneksi
c. Masukkan query insert untuk simpan biaya rekomendasi 1 d. Masukkan query insert untuk simpan biaya rekomendasi 2
e. Masukkan query insert untuk simpan biaya rekomendasi 3 f. Tutup koneksi
Kelas analisisPareto
Tabel 3.27 Kelas Controller analisisPareto
Atribut :
databaseConnection dc; Obat ob[];
Chart ch;
Method :
1. public void hitung_nilaiPakai Input : kodeObat, namaObat, jumlahPakai, hargaSatuan
Output : persentase, persentaseKumulatif, kelasParetoNilaiPakai Fungsi : menjalankan store procedure analisis nilai pakai
Algoritma :
a. membuat object kelas databaseConnection b. membuat query memanggil store prosedure String SQL_NP = call
hitung_nilai_pakai; c. buka koneksi dengan callablestatement CallableStatement cs =
CallableStatementconn.openConnection.prepareCallSQL_NP; d. jalankan query cs. executeUpdate;
60
e. tutup koneksi 2. public void hitung_nilaiInvestasi
Input : kodeObat, namaObat, jumlahPakai, hargaSatuan Output : jumlahInvestasi, persentase, persentaseKumulatif,
kelasParetoNilaiInvestasi Fungsi : menjalankan store procedure analisis nilai investasi
Algoritma :
a. membuat object kelas databaseConnection b. membuat query memanggil store prosedure String SQL_NI = call
hitung_nilai_investasi; c. buka koneksi dengan callablestatement CallableStatement cs =
CallableStatementconn.openConnection.prepareCallSQL_NI; d. jalankan query cs. executeUpdate;
e. tutup koneksi 3. public void hitung_nilaiIndeksKritis
Input : kodeObat, namaObat, jumlahPakai, hargaSatuan, kelasParetoNilaiPakai, kelasParetoNilaiInvestasi
Output : kelasParetoNilaiIndeksKritis Fungsi : menjalankan store procedure analisis nilai indeks kritis
Algoritma :
a. membuat object kelas databaseConnection b. membuat query memanggil store prosedure String SQL_NIK = call
hitung_nilai_indeks_kritis; c. buka koneksi dengan callablestatement CallableStatement cs =
CallableStatementconn.openConnection.prepareCallSQL_NIK; d. jalankan query cs. executeUpdate;
e. tutup koneksi 4. public void trans_nilaiIndeksKritis
Input : kodeObat, namaObat, jumlahPakai, hargaSatuan, kelasParetoNilaiPakai, kelasParetoNilaiInvestasi
Output : kelasParetoNilaiPakai, kelasParetoNilaiInvestasi dalam format angka Fungsi : menjalankan store procedure untuk transformasi kelas_pareto ke angka
Algoritma :
a. membuat object kelas databaseConnection b. membuat query memanggil store prosedure String SQL_NIK = call
hitung_nilai_indeks_kritis; c. buka koneksi dengan callablestatement CallableStatement cs =
CallableStatementconn.openConnection.prepareCallSQL_NIK; d. jalankan query cs. executeUpdate;
e. tutup koneksi
Kelas chart
Tabel 3.28 Kelas Entity chart
Atribut :
private Integer category; private NumberFormat formatter;
Method :
1. private double calculateSeriesTotal CategoryDataset categorydataset, int i Input : dataset
Output :persentase setiap kelas
61
Fungsi : mengolah dataset untuk pelabelan grafik Algoritma :
a. membuat object baru bertipe double double d = 0.0D; b. looping sejumlah kolom dalam dataset forint j = 0; j
categorydataset.getColumnCount; j++ buat object kelas Number untuk menyimpan nilai dataset
set nilai d terus bertambah sebanyak looping d+ = number. doubleValue;
c. return d 2. private static CategoryDataset createDataset
Input : - Output : dataset untuk chart
Fungsi : membuat dataset dengan get data dari database Algoritma :
a. membuat object kelas databaseConnection b. buka koneksi
c. membuat object kelas ResultSet d. masukkan query select untuk mendapat kelasPareto beserta jumlah item
setiap kelasnya e. membuat array data untuk menampung hasil result set
f. tutup koneksi
Kelas cariRekomendasi
Tabel 3.29 Kelas Controller cariRekomendasi
Atribut : conn : databaseConnection
ob[] : Obat b : Biaya
Method :
1. public void cari_rekomendasi1 Input : kodeObat, namaObat, jumlahPakai, hargaSatuan, kelasParetoNIK
Output : jumlah pengadaan, total investasi, selisih Fungsi : menjalanakan store prosedure cari rekomendasi alternatif 1
Algoritma :
a. membuat object kelas databaseConnection b. membuat query memanggil store prosedure String
SQL_cariRekomendasi1 = call cari_rekomendasi1; c. buka koneksi dengan callablestatement CallableStatement cs =
CallableStatementconn.openConnection.prepareCallSQL_ cariRekomendasi1;
d. jalankan query cs. executeUpdate; e. tutup koneksi
2. public void cari_rekomendasi2 Input : kodeObat, namaObat, jumlahPakai, hargaSatuan, kelasParetoNIK
Output : jumlah pengadaan, total investasi, selisih, keterangan Fungsi : menjalanakan sore procedure cari rekomendasi alternatif 2
Algoritma :
a. membuat object kelas databaseConnection b. membuat query memanggil store prosedure String
SQL_cariRekomendasi2 = call cari_rekomendasi2;
62
c. buka koneksi dengan callablestatement CallableStatement cs = CallableStatementconn.openConnection.prepareCallSQL_
cariRekomendasi2; d. jalankan query cs. executeUpdate;
e. tutup koneksi 3. public void modifikasi_pengadaan
Input : jumlah pengadaan baru Output : jumlah pengadaan, total investasi, selisih, dan keterangan baru
Fungsi : menjalanakan store procedure cari rekomendasi alternatif 3 Algoritma :
a. membuat object kelas databaseConnection b. membuat query memanggil store prosedure String SQL_modif = call
modif_pengadaan; c. buka koneksi dengan callablestatement CallableStatement cs =
CallableStatementconn.openConnection.prepareCallSQL_modif; d. jalankan query cs. executeUpdate;
e. tutup koneksi 4. public void memaksimalkanPengadaan
Input : selisih maksimm Output : jumlah pengadaan maksimum
Fungsi : memaksimalkan jumlah pengadaan Algoritma :
a. membuat object kelas databaseConnection b. membuat query memanggil store prosedure String SQL_RekSistem =
call memaksimalkanPengadaan; c. buka koneksi dengan callablestatement CallableStatement cs =
CallableStatementconn.openConnection.prepareCallSQL_RekSistem; d. jalankan query cs. executeUpdate;
e. tutup koneksi
III.2.2 Perancangan Fisikal
III.2.2.1 Perancangan Subsistem Manajemen Dialog
Pada perancangan antarmuka sistem ini akan ditampilkan perancangan dari tiap form yang akan dibentuk.
Halaman menu utama pada gambar 3.17 memiliki fungsi untuk menampilkan menu-menu utama yaitu Input Data, Analisis Pareto ABC,
Cari Rekomendasi, Help, About, dan untuk keluar dari sistem.
63
SISTEM PENDUKUNG PENGAMBILAN KEPUTUSAN PENGADAAN OBAT
Menggunakan Metode Analisis Pareto ABC
Input Data Analisis Pareto ABC
Cari Rekomendasi Help
About Exit
Menu Utama
Gambar 3.17 Rancangan Halaman Menu Utama Halaman Input Data meliputi halaman Input File, halaman Input Biaya, dan
halaman Input Skor Pareto.Halaman Input File pada gambar 3.18 memiliki fungsi untuk mengambil, membaca, dan menyimpan isi file masukan ke dalam database.
INPUT FILE
Input File Ambil File
kode harga
jumlah nama
Simpan Input Biaya
Input Skor Menu Utama
Input Data
Gambar 3.18 Rancangan Halaman Input File Halaman Input Biaya pada gambar 3.19 memiliki fungsi untuk menyimpan
masukan alokasi biaya ke dalam database.
INPUT BIAYA
Masukan alokasi biaya yang disediakan
:
Input File Simpan
Input Biaya Input Skor
Menu Utama
Input Data
64
Gambar 3.19 Rancangan Halaman Input Biaya Halaman Input Skor Pareto pada gambar 3.20 memiliki fungsi untuk menyimpan
masukan skor pareto ke dalam database.
INPUT SKOR PARETO
Input File kelas
Skor pareto nilai investasi
Skor pareto nilai pakai
Simpan Input Biaya
Input Skor Menu Utama
Input Data
Gambar 3.20 Rancangan Halaman Skor Pareto
Halaman Analisis Pareto ABC pada gambar 3.21 memiliki fungsi untuk mengolah dan menampilkan hasil analisis nilai pakai, nilai investasi,
dan nilai indeks kritis. Pada halaman ini juga diberi menu untuk menampilkan grafik analisis seperti pada gambar 3.22 dan menu mencetak
hasil analisis.
ANALISIS PARETO ABC
Nilai Pakai
Grafik Nilai Investasi
Nilai Indeks Kritis
Menu Utama Cetak
Analisis
Gambar 3.21 Rancangan Halaman Analisis Pareto ABC
Gambar 3.22 Rancangan Halaman Grafik
65 Halaman Cari Rekomendasi pada gambar 3.23 memiliki fungsi
untuk mengolah hasil analisis nilai indeks kritis sehingga menghasilkan rekomendasi untuk ditampilkan. Pada halaman ini juga
diberikan menu yang berfungsi untuk mengubah jumlah pengadaan dan mencetak hasil rekomendasi.
Rekomendasi 1 Rekomendasi 2
Rekomendasi 3
Modifikasi Cetak
Modifikasi Cetak
Modifikasi Cetak
Biaya Awal Total Investasi
Selisih Biaya Awal
Total Investasi Selisih
Biaya Awal Total Investasi
Selisih
Rekomendasi 1 Rekomendasi 2
Rekomendasi 3 Menu Utama
Cari Rekomendasi
Gambar 3.23 Rancangan Halaman Rekomendasi Pada saat user ingin mendapatkan hasil rekomendasi alternatif 3, user harus
memasukkan selisih maksimal terlebih dahulu, form masukan seperti pada gambar 3.24.
Masukkan selisih maksimal dari biaya awal dan total investasi :
OK
Gambar 3.24 Rancangan Halaman Input Maksimum Selisih
66
III.2.2.2 Perancangan Fisikal Basisdata
Berikut ini merupakan tabel-tabel yang akan dibangun sesuai dengan perancangan logikal.
Primary Key : kode_obat Tabel 3.30 Tabel Obat
Nama kolom
kode_obat nama_obat
jumlah_pakai harga_satuan
Tipe data
VARCHAR VARCHAR
DECIMAL DECIMAL
Lebar
10 100
10,2 10,2
Primary Key : kode_obat Tabel 3.31 Tabel nilai_pakai
Nama kolom
kode_obat persentase
persen_kumulatif kelas_pareto
Tipe data
VARCHAR DECIMAL
DECIMAL VARCHAR
Lebar
10 10,2
10,2 2
Primary Key : kode_obat Tabel 3.32 Tabel nilai_investasi
Nama kolom
kode_obat jumlah_investasi
persentase persen_kumulatif
kelas_pareto
Tipe data
VARCHAR DECIMAL
DECIMAL DECIMAL
VARCHAR
Lebar
10 10,2
10,2 10,2
2
Primary Key : kode_obat Tabel 3.33 Tabel nilai_indeks_kritis
Nama kolom
kode_obat kelas_pareto
Tipe data
VARCHAR VARCHAR
Lebar
10 2
67 Primary Key : kode_rekomendasi
Tabel 3.35 Tabel hasil_rekomendasi
Nama kolom
kode_obat kode_rekomendasi
jumlah_pengadaan jumlah_investasi
tipe_rekomendasi keterangan
Tipe data
VARCHAR INT
DECIMAL DECIMAL
INT VARCHAR
Lebar
10 2
10,2 10,2
2 100
Primary Key : kelas_paretonp Tabel 3.36 Tabel kelas_pareto_np
kelas_paretonp batas_bawah
batas_atas
Nama kolom Tipe data
Lebar
VARCHAR DECIMAL
DECIMAL 2
10,2 10,2
Primary Key : kelas_paretoni Tabel 3.37 Tabel kelas_pareto_ni
kelas_paretoni batas_bawah
batas_atas
Nama kolom Tipe data
Lebar
VARCHAR DECIMAL
DECIMAL 2
10,2 10,2
Primary Key : kelas_paretonik Tabel 3.38 Tabel kelas_pereto_nik
kelas_paretonik batas_bawah
batas_atas
Nama kolom Tipe data
Lebar
VARCHAR DECIMAL
DECIMAL 2
10,2 10,2
68
BAB IV IMPLEMENTASI DAN ANALISIS HASIL