PENDAHULUAN LANDASAN TEORI ANALISIS DAN PERANCANGAN SISTEM IMPLEMENTASI DAN ANALISIS HASIL KESIMPULAN DAN SARAN ANALISIS DAN PERANCANGAN SISTEM

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