1 Latar Belakang
Pendahuluan
Apotik merupakan salah satu sarana kesehatan khususnya dalam jual - beli obat. Namun dalam proses transaksi jual beli obat tersebut, masih banyak apotik yang menggunakan sistem manual. Selain tempat jual-beli obat, apotik juga menyediakan layanan praktik dokter.Namun karena kurangnya komunikasi, banyak customer yang cenderung tidak tertarik bahkan tidak peduli tentang adanya praktik dokter di apotik. Untuk memperbaiki kinerja petugas apotik agar lebih sempurna, diperlukan komentar-komentar dari customer yang bisa berupa keluhan, saran, ataupun kritik.
I.2
Rumusan Masalah
Dari permasalahan yang tertera di atas, maka haruslah sebuah apotik
memiliki sebuah sistem informasi untuk memperbaiki kekurangan-kekurangan yang masih dilakukan secara manual, adapun kekurangan-kekurangan ialah sebagai berikut :. 1. 2. Sistem pemesanan obat masih dilakukan secara manual. Sedikitnya orang yang mengetahui atau tertarik dengan adanya praktik dokter di apotik. 3. Belum adanya sistem yang mengelola keluhan customer terhadap kinerja apotik.
I.3
Batasan Masalah
1. Sistem informasi ini tidak melayani proses registrasi secara online.
1
2. Sistem informasi ini hanya menangani pemesanan obat terhadap customer yang sudah terdaftar sebagai customer. 3. Sistem informasi ini hanya menangani pemesanan obat terhadap customer yang sudah terdaftar sebagai customer. 4. Sistem informasi ini tidak menangani pembayaran obat. 5. Sistem informasi ini tidak menangani pemesanan obat selain obat yang ada di apotik. 6. Sistem informasi ini tidak melayani proses pemesanan obat yang lebih dari tiga hari, jika lebih maka pemesanan obat dibatalkan..
I.4
Tujuan
1. Dapat mengelola pemesanan obat secara online. 2. Dapat menampilkan jadwal praktik dokter yang bertugas. 3. Dapat mengetahui tingkat kepuasan customer terhadap kinerja petugas
apotik.
I.5
Sistematika Penulisan
Laporan ini terdiri dari Bab Pendahuluan, Tinjauan Pustaka, Bab-Bab Analisis, Bab-Bab Perancangan, Bab-Bab Hasil dan Pembahasan, Kesimpulan dan Saran. Bab 1 Pendahuluan berisi penjelasan mengenai latar belakang, Rumusan Masalah, Batasan Masalah, Tujuan dan Sistematika Penulisan. Bab II Tinjauan Pustaka berisi teori-teori yang berhubungan dengan penelitian. Juga dapat diulas penelitian-penelitian bidang sejenis yang pernah dilakukan serta posisi penelitian tersebut terhadap penelitian sebelumnya. Bab III
2
Bab-Bab Analisis berisi uraian tentang langkah-langkah penyelesaian masalah. Bab IV Bab-Bab Perancangan berisi uraian tentang langkah-langkah penyelesaian masalah Bab V Bab-Bab Hasil dan Pembahasan berisi uraian langkah implementasi dan pengujian Bab VI Kesimpulan dan Saran berisi hasil pembangun aplikasi dan saran untuk perbaikan dan pangembangan
Bab II
II.1
Tinjauan Pustaka
Penelitian Sebelumnya
Penelitian sebelumya telah dilaksanakan oleh mahasiswa angkatan 2006 yang
bernama Iman Teguh Ariffianto dengan NIM 33106088 yang berjudul Sistem Informasi Apotik Ken Farma dengan fitur pengelolaan data customer, pengelolaan registrasi customer yang berobat, pembuatan kartu berobat, data bukti registrasi, pembayaran registrasi, data bukti pembayaran registrasi, pengelolaan data dokter, pengelolaan data diagnosa penyakit customer, surat rujukan customer ke bagian laboratorium dan ronsen, konsultasi customer, pemesanan obat, keluhan pelayanan terhadap kinerja petugas apotik, data obat dan dapat meminimalisir terjadinya kehilangan atau kesalahan data karena data disimpan di dalam basis data. Yang membedakan antara aplikasi yang dibuat (Sistem Informasi Apotik) dengan aplikasi sebelumnya yaitu terdapat pada sistem pemesanannya.Jika dalam penelitian sebelumnya, customer tidak bisa memesan obat secara online, dalam penelitian ini customer dapat memesan obat secara online. Perbedaan juga terdapat pada proses pembuatannya, pada penelitian yang sebelumnya bahasa pemrograman yang digunakan adalah bahasa pemrograman PHP dengan pemrograman berorientasi prosedural dan menggunakan MySQL sebagai pengolah basis data, sedangkan penelitian kali ini bahasa pemrograman yang digunakan adalah Java dengan pemrograman berorientsi objek dan menggunakan Oracle sebagai pengolah basis datanya. II.2
Apotik
Apotk merupakan salah satu sarana pelayanan kesehatan dalam membantu mewujudkan tercapainya derajat kesehatan yang optimal bagi masyarakat, selain itu juga sebagai satu tempat pengabdian dan praktik profesi apoteker dalam melakukan pekerjaan kefarmasian (Hartini dan Sulasmono, 2007). Menurut Peraturan Pemerintah Republik Indonesia No. 51 Tahun 2009 Tentang Pekerjaan Kefarmasian, apotik adalah sarana pelayanan kefarmasian tempat dilakukan praktik kefarmasian oleh apoteker. Menurut Keputusan Menteri Kesehatan Republik Indonesia (Kepmenkes RI) No. 1332/MENKES/SK/X/2002, tentang Perubahan atas Peraturan Menkes RI No. 922/MENKES/PER/X/1993 mengenai Ketentuan dan Tata Cara Pemberian Izin Apotik, yang dimaksud dengan apotik adalah suatu tempat tertentu, tempat dilakukan pekerjaan kefarmasian penyaluran perbekalan farmasi kepada masyarakat. II.2.2 Tugas dan Fungsi Apotik Berdasarkan PP No. 51 Tahun 2009, tugas dan fungsi Apotik adalah sebagai berikut : 1. Tempat pengabdian profesi seorang apoteker yang telah mengucapkan sumpah jabatan apoteker. 2. Sarana yang digunakan untuk melakukan Pekerjaan Kefarmasian. 3. Sarana yang digunakan untuk memproduksi dan distribusi sediaan farmasi antara lain : obat, bahan baku obat, obat tradisional dan kosmetika. 4. Sarana pembuatan dan pengendalian mutu Sediaan Farmasi, pengamanan, pengadaan, penyimpanan dan pendistribusi atau penyaluran obat, pengelolaan obat, pelayanan obat atas resep dokter, pelayanan informasi obat, serta pengembangan obat, bahan obat dan obat tradisional.
II.3
Sistem Informasi
II.3.1 Definisi dan Pengertian Sistem Informasi Definisi atau pengertian Sistem Informasi secara umum merupakan kegiatan atau aktifitas yang melibatkan serangkaian proses, berisi nformasi-informasi yang digunakan untuk mencapai tujuan. Pengertian Sistem Informasi menurut Robert dalam Jogiyanto (2000) adalah informasi yang diorganisasikan untuk mencapai tujuan dalam sebuah organisasi, Sistem informasi, menurut Leitel dan Davis dalam bukunya Accounting Information System mendefinisikan bahwa Sistem informasi adalah suatu sistem di dalam suatu organisasi yang mempertemukan kebutuhan-kebutuhan pengolahan transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan strategi dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan. Menurut Henry C. Lucas Sistem Informasi adalah kegiatan dari suatu prosedur-prosedur yang diorganisasikan bilamana dieksekusi akan menyediakan informasi untuk mendukung pengambilan keputusan dan pengendalian di dalam organisasi. Sedangkan menurut John F. Nash dan Martin B. Robert sistem informasi adalah suatu kombinasi dari orang-orang, fasilitas teknologi, media, prosedur-prosedur dan pengendalian ditujukan untuk mendapatkan jalur komunikasi penting, memproses tipe transaksi rutin tertentu, memberi sinyal kepada manajemen dan yang lainnya terhadap kejadian-kejadian eksternal dan internal yang penting dan menyediakan suatu dasar untuk mengambil keputusan yang cerdik. II.3.2 Komponen Sistem Informasi Stair (1992) menjelaskan sistem informasi berbasis komputer (CBIS) dalam suatu organisasi terdiri dari beberapa komponen-komponen berikut :
6
1.
Perangkat Keras (Hardware) Yaitu perangkat keras komponen untuk melengkapi kegiatan memasukan data, memproses data, dan keluaran data seperti : komputer, printer, dan teknologi jaringan komputer.
2.
Perangkat Lunak (Software) Yaitu program dan instruksi yang diberikan ke komputer berfungsi untuk memerintahkan komputer melaksanakn tugas yang harus dilaksanakan.
3.
Basis Data Yaitu kumpulan dan informasi yang diorganisasikan sedemikian rupa sehingga mudah diakses pengguna sistem informasi.
4.
Telekomunikasi Yaitu komunikasi yang menghubungkan antara pengguna sistem dengan sistem komputer secara bersama-sama ke dalam suatu jaringan kerja yang efektif.
5.
Manusia Yaitu personal dari sistem informasi, meliputi manajer, analisis, programer dan operator serta bertanggung jawab dengan perawatan sistem. Menurut Jogiyanto (Analisisdan Desain SistemInformasi, 1990, hal 12)
mengemukakan bahwa sistem informasi terdiri dari komponen-komponen yang disebutnya dengan istilah blok bangunan (Building Block), yaitu blok masukan (Input Block), blok model (Model Block), blok keluaran (Output Block), blok teknologi (Technology Block), blok basis data (Database Block) dan blok kendali (Control Block). Ke-enam blok tersebut saling berinteraksi satu dengan yang lainnya membentuk satu kesatuan untuk mencapai sasarannya. a. Blok masukan Mewakili data yang masuk ke dalam sistem informasi, termasuk metode dan media untuk memperoleh data yang akan dimasukkan, yang tepat dapat berupa dokumen dasar.
7
b. Blok model Terdiri dari kombinasi prosedur, logika dan model matematik yang akan memanipulasi/mentranspormasi data masukan dan data yang tersimpan dalam basis data untuk menghasilkan keluaran yang diinginkan. c. Blok keluaran Produk dari sistem informasi adalah keluaran berupa informasi yang berkualitas. d. Blok teknologi Merupakan kotak alat (tool-box) dalam sistem informasi.Teknologi terdiri dari 3 bagian utama yaitu teknisi (brainware), perangkat lunak (software) dan perangkat keras (hardware).Teknisi dapat berupa orang-orang yang
mengetahui teknologi dan membuatnya beroperasi (operator komputer, pemrogram, operator pengolah data, spesialis telekomunikasi, analis sistem).Teknologi perangkat lunak berupa aplikasi-aplikasi perangkat lunak (program). Teknologi perangkat kerasd berupa teknologi masukan (semua perangkat yang digunakan untuk menangkap data seperti : keyboard, scanner, barcode), teknologi keluaran (perangkat yang dapat menyajikan informasi yang dihasilkan seperti : monitor, printer), teknologi pemroses (komponen CPU), teknologi penyimpanan (semua peralatan yang digunakan untuk menyimpan data seperti : magnetik tape, magnetik disk, CD) dan teknologi telekomunikasi (teknologi yang memungkinkan hubungan jarak jauh seperti internet dan ATM). e. Blok basis data Merupakan kumpulan dari file data yang saling berhubungan yang diorganisasi sedemikian rupa agar dapat diakses dengan mudah dan cepat. f. Blok kendali
Pengendalian perlu dirancang dan diterapkan untuk meyakinkan bahwa halhal yang dapat merusak sistem dapat dicegah atau bila terlanjur terjadi kesalahan dapat langsung diatasi.
II.4
berorientasikan
kepada
mempermudah
pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Semua data dan fungsi ini dibungkus dalam kelas-kelas atau objek-objek. OOP memiliki beberapa konsep dasar, antara lain : 1. Objek dan Kelas Sebuah kelas menyerupai sebuah struktur yang merupakan tipe data sendiri, misalkan tipe data titik yang terdiri dari koordinat x dan y. Bahasa Java telah menggunakan sebuah kelas untuk menyatakan tipe data titik karena bahasa pemrograman Java merupakan bahasa pemrograman berorientasi objek murni sehingga tidak mengenal struktur tapi mengenal apa yang disebut dengan kelas. Perbedaan sebuah kelas dengan sebuah struktur adalah sebuah kelas dapat berdiri sendiri dan dapat digunakan untuk berbagai keperluan kelas kelas yang lain, sedangkan sebuah struktur tidak dapat berdiri sendiri. Sebuah kelas lebih fleksibel untuk digunakan oleh kelas lain tanpa harus membongkar kode program utama, sedangkan jika digunakan struktur maka kode program harus dibongkar unuk disalin bagian strukturnya ke kode program utama yang lain. Sebuah file dapat terdiri dari berbagai kelas, namun biasanya pada bahasa pemrograman Java sebuah file hanya terdiri dari satu kelas yang disimpan dengan nama kelas, misal file List.java berisi kelas List. Namun jika kelas yang dibuat misalnya public class nama_kelas, maka kelas
9
itu harus disimpan dalam satu file hanya untuk satu kelas. Setelah dilakukan kompilasi maka pada Java akan ada sebuah file ''.class'' yang berisi bytecode dari setiap kelas. Jika sebuah file terdiri dari dua kelas maka setelah dikompilasi akan dihasilkan dua buah file ''.class'' yang nantinya akan dibaca oleh interpreter Java saat program dieksekusi. Sebuah kelas saat program dieksekusi dan perintah new dijalankan, maka akan dibuat sebuah objek. Objek adalah elemen pada saat runtime yang akan diciptakan, dimanipulasi dan dihancurkan saat eksekusi sehingga sebuah objek hanya ada saat sebuah program dieksekusi, jika masih dalam bentuk kode, disebut sebagai kelas jadi pada saat runtime (saat sebuah program dieksekusi), yang kita punya adalah objek, di dalam teks program yang kita lihat hanyalah kelas. 2. Atribut Atribut dari sebuah kelas adalah variabel global yang dimilki sebuah kelas, misalkan pada kelas sebagai berikut:
class Elemen NilaiMatKul elmt Elemen next Elemen() {end constructor} {end class}
maka elmt dan next adalah atribut dari kelas Elemen. Atribut pada sebuah kelas memiliki izin akses jika kelas digunakan oleh kelas lain, izin akses itu seperti private, public dan protected. 3. Atribut Private Izin akses private pada sebuah atribut biasanya digunakan oleh sebuah kelas untuk melindungi atribut-atributnya agar tidak dapat diakses oleh kelas lain. Sebuah atribut yang dinyatakan sebagai private hanya dapat diakses
10
secara langsung oleh kelas yang membungkusnya, sedangakan kelas lainnya tidak dapat mengakses atribut ini secara langsung, misalkan kelas sebagai berikut: class Elemen private NilaiMatKul elmt private Elemen next Elemen() {end constructor} {end class} maka yang dapat mengakses elmt dan next hanyalah kelas Elemen sehingga jika sebuah kelas List di dalamnya mempunyai kode sebagai berikut: Elemen e <- new Elemen maka pengaksesan e.next tidak dizinkan pada kelas List. Agar isi dari sebuah atribut private dapat diakses oleh kelas lain dapat dibuat sebuah metode yang mengembalikan nilai atribut itu, misalnya sebagai berikut: public getNext() -> Elemen ->next {end getNext} sehingga kelas lain akan mengakses atribut next pada kelas Elemen dengan kode Elemen n < e.getNext(). 4. Atribut Public Izin akses public sebuah kelas, jika sebuah atribut diperbolehkan diakses secara langsung oleh kelas lain. Sebuah atribut yang dinyatakan sebagai public dapat diakses secara langsung oleh kelas lain di luar kelas yang membungkusnya, misalkan pada kelas Elemen sebagai berikut: class Elemen public NilaiMatKul elmt
11
Elemen next Elemen () {end constructor} {end class} maka aatribut elmt dan next dapat diakses secara langsung oleh kelas lain, misalkan dengan kode: Elemen e <- new Elemen() e.next <- NULL Jika sebuah atribut tidak ditulis izin aksesnya misalkan hanya ditulis Element next, maka interpreter Java akan menganggap atribut next mempunyai izin akses public. 5. Atribut Protected Izin akses protected sebuah atribut biasanya digunakan oleh sebuah kelas, jika sebuah atribut diperbolehkan diakses secara langsung oleh kelas lain yang merupakan kelas turunannya ( inheritance). Sebuah atribut yang dinyatakan sebagai protected tidak dapat diakses secara langsung oleh kelas lain di luar kelas yang membungkusnya, kecuali kelas yang mengaksesnya adalah kelas turunan dari kelas yang membungkusnya, misalkan pada kelas Elemen sebagai berikut: class Elemen protected NilaiMatKul elmt protected Elemen next Elemen() {end constructor} {end class} maka atribut elmt dan next dapat diakses secara langsung oleh kelas lain yang merupakan turunan kelas Elemen. Izin akses protecteddimaksudkan
12
untuk melindungi atribut agar tidak diakses secara langsung oleh sembarang kelas lain, namun diizinkan diakses secara langsung oleh kelas turunannya. 6. Konstruktor Sebuah kelas harus memiliki sebuah metode yang disebut sebagai konstruktor.nama sebuah konstruktor harus sama dengan nama dari sebuah kelas, misalkan kelas Elemen maka konstruktornya adalah Elemen(). Sebuah konstruktor juga dapat menerima sebuah masukan seperti halnya prosedur pada pemrograman prosedural. Fungsi dari sebuah konstruktor adalah: mengalokasikan sebuah objek saat program dieksekusi, memberikan nilai awal sebagai inisialisasi dari semua atribut yang perlu diinisialisasi dan mengerjakan proses- proses yang diperlukan saat sebuah objek dibuat. Namun pada kenyataannya sebuah konstruktor dapat tidak berisi apaapa, hal ini jika memang tidak diperlukan adanya inisialisasi atau proses yang dikerjakan ketika sebuah objek dibuat. Konstruktor harus bersifat
publickarena sebuah konstruktor akan diakses oleh kelas lain untuk membuat objek suatu kelas. Sebuah kelas dapat memiliki konstruktor lebih dari satu. Pada saat eksekusi program, kompiler atau interpreter akan mencari konstruktor mana yang sesuai dengan konstruktor yang dipanggil, hal ini disebut sebagai overloading. 7. Metode Metode pada sebuah kelas hampir sama dengan fungsi atau prosedur pada pemrograman prosedural. Pada sebuah metode di dalam sebuah kelas juga memiliki izin akses seperti halnya atribut pada kelas, izin akses itu antara lain private, publicdan protectedyang memiliki arti sama pada izin akses atribut yang telah dibahas sebelumnya. Sebuah kelas boleh memiliki lebih dari satu metode dengan nama yang sama asalkan memiliki parameter
13
masukan yang berbeda sehingga kompiler atau interpreter dapat mengenali metode mana yang dipanggil. Di dalam sebuah kelas, terdapat juga yang disebut sebagai metode atau atribut statis yang memiliki kata kunci static. Maksud dari statis di sini adalah metode yang dapat diakses secara berbagi dengan semua obje lain k tanpa harus membuat objek yang memiliki metode statis tadi (tanpa proses new), tapi sebuah metode statis mempunyai keterbatasan yaitu hanya dapat mengakses atribut atau metode lain di dalam kelas yang membungkusnya yang juga bersifat statis. Metode statis biasanya diimplementasikan untuk metode main. 8. Inheritance Inheritanceatau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannya. Sebagai contoh, misalkan ada sebuah kelas Titik yang mempunyai kelas turunan Titik3D: class Titik private integer x private integer y Titik() x< 0 y< 0 {end Titik} public getX() -> integer ->x {end getX} public getY() -> integer
14
->y {end getY} {end class} class Titik3D: Titik private integer z Titik3D() z <- 0 {end Titik3D} public getZ() -> integer ->z {end getZ} {end class} Keterkaitan antara kelas Titik dan Titik3D adalah kelas Titik3D merupakan kelas turunan dari kelas Titik. Dalam hal ini kelas Titik disebut dengan kelas dasar atau super classatau base classsedangkan kelas Titik3D disebut sebagai kelas turunan atau derived classatau subclass. Pada contoh di atas, ketika kelas Titik3D dibuat objeknya maka objek tersebut dapat menggunakan metode yang ada pada kelas Titik walau pada kode programnya metode itu tidak dituliskan, misalkan sebagai berikut: Titik3D p <- new Titik3D() integer x <- p.getX() integer y <- p.getY() integer z <- p.getZ() Keuntungan dari pewarisan adalah tidak perlu mengutak atik kode kelas yang membutuhkan tambahan atribut atau metode saja, karena tinggal membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya. Kelas dasar akan mewariskan semua atribut dan kodenya kecuali konstruktor dan
15
destruktor yang memiliki izin akses publicdan protectedke kelas turunannya dengan izin akses yang sama dengan pada kelas dasar. Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan. 9. Abstract Pada bahasa pemrograman Java juga ada sebuah kata kunci abstractyang dapat digunakan pada sebuah metode, namun jika digunakan pada sebuah metode, maka metode tersebut harus berada di dalam sebuah kelas yang juga menggunakan kata kunci abstract.Metode abstracttidak boleh memiliki badan program, badan program metode ini dapat diimplementasikan pada kelas turunannya. Fungsi dari kelas atau metode abstractpada bahasa pemrograman Java adalah menyediakan sebuah abstraksi kelas atau metode sehingga dapat dilihat metode apa saja yang ada di dalam kelas tanpa harus melihat isi badan program dari metode-metode itu. Prinsipnya sama dengan fungsi sebuah daftar isi pada sebuah buku, dengan melihat daftar isi bisa diketahui isi sebuah buku tanpa harus membaca semua isi buku terlebih dahulu. 10. Package Packageadalah sebuah kontainer atau kemasan yang dapat digunakan untuk mengelompokkan kelas- kelas sehingga memungkinkan beberapa kelas yang bernama sama disimpan dalam packageyang berbeda. Sebuah packagepada Java dapat digunakan oleh packageyang lain ataupun kelaskelas di luar Package. Jika dalam bahasa pemrograman Java terdapat kode import example.animal.Mamalia; maka program tersebut memakai kelas mamalia yang ada pada packageexample.animal.Jika terdapat kode import
16
example.animal.*; maka program tersebut memakai semua kelas yang ada pada packageexample.animal. Packagepada bahasa pemrograman Java dinyatakan dengan kode: package nama_package; Misalnya: package example.animal; yang ditulis pada bagian atas kode program kelas anggota package. Misal sebuah kelas dengan nama Mamalia ada di dalam packagedengan nama example.animal maka file yang menyimpan kode program kelas Mamalia dimasukkan dalam direktori. 11. Interface Interfaceatau antar muka pada bahasa pemrograman Java sangat mirip dengan kelas, tapi tanpa atribut kelas dan memiliki metode yang dideklarasikan tanpa isi. Deklarasi metode pada sebuah interfacedapat diimplementasikan oleh kelas lain. Sebuah kelas dapat mengimplementasikan lebih dari satu interfacebahwa kelas ini akan mendeklarasikan metode pada interfaceyang dibutuhkan kelas itu sekaligus mendefiniskan isinya pada kode program kelas itu. Metode pada interfaceyang diimplementasikan pada suatu kelas harus sama persis dengan yang ada pada interface. Misalnya pada interfaceterdapat deklarasi void printAnimal(); maka pada kelas yang mengimplementasikan metode itu harus ditulis sama yaitu: void printAnimal(){ ..................... } Sebuah interfacedideklarasikan dengan kode: interface nama_antarmuka{ metode_1 metode_2 ..................... metode_n } misalnya: interface Animal{ void printAnimal(); }
17
Adapun deklarasi kelas yang mengimplementasikan interface sebagai berikut: class nama_kelas implements interface_1, interface_2, ..., interface_n{ metode_1 metode_2 ...................................... metode_n } 1. Bahasa Pemrograman Java Bahasa pemrograman atau sering diistilahkan dengan bahasa komputer adalah teknik komando atau instruksi standar untuk memerintah komputer.Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan atau diteruskan, dan jenis langkah apa yang akan diambil dalam berbagai situasi. Sebagai sebuah bahasa pemrograman Java dapat membuat aplikasi, desktop, web dan lainnya.Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform sistem operasi.Perkembangan Java tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source.Sebagai sebuah peralatan pembangun, teknologi Java menyediakan banyak tools antara lain compiler, interpreter, penyusun dokumentasi, paket kelas dan sebagainya.Aplikasi dengan teknologi Java secara umum adalah aplikasi serba guna yang dapat dijalankan pada seluruh mesin yang memiliki Java Runtime Environment (JRE). 2. JDBC JDBC (Java database connectivity) adalah spesifikasi standar dari JavaSoft API (Aplication Programming Interface) yang memungkinkan program Java untuk mengakses DBMS (Database Management system). JDBC API
menggunakan antar muka standar dan kelas, programmer dapat menulis aplikasi
18
yang terhubung ke database, mengirimkan pertanyaan ditulis SQL (Structured Query Language), dan memproses hasilnya.
II.5
sekumpulan file. Basis data Oracle ini sendiri berisi struktur secara logik dan juga fisik. Dalam fungsinya ketika membuat aplikasi, maka diperlukan sebuah struktur database seperti tabel dan index yang digunakan untuk menyimpan data dan mempercepat proses pengambilan datanya. Dalam Oracle kita dapat membuat sinonim bagi nama obyek, view object pada basis data yang berbeda dan membatasi hak akses kepada suatu obyek, juga dapat menggunakan tabel eksternal untuk mengakses file di luar basis data.
II.6
untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi.UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek, UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi.Penggunaan UML dalam industri terus meningkat dan merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri piranti lunak dan pengembangan sistem. UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu :
y
Use case diagram digunakan untuk memodelkan bisnis proses berdasarkan perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case dan aktor. Aktor merepresentasikan orang yang akan mengoperasikan atau o rang
19
yang berinteraksi dengan sistem aplikasi.Use case merepresentasikan operasioperasi yang dilakukan oleh aktor.Use case digambarkan berbentuk elips dengan nama operasi dituliskan di dalamnya. Aktor yang melakukan operasi dihubungkan dengan garis lurus ke use case.Sebuah use case dimulai dengan masukan dari seorang aktor. Use case merupakan suatu urutan lengkap kejadian-kejadian yang diajukan oleh seorang aktor, dan spesifikasi interaksi antara aktor dengan sistem. Use case yang sederhana hanya melibatkan satu interaksi/hubungan.
y
Sequence diagram menjelaskan secara detil urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case, interaksi yang terjadi antar kelas, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yangdiperlukan oleh masing-masing operasi.
y
Class diagram merupakan diagram yang selalu ada di permodelan sistem berorientasiobjek. Class diagram menunjukkan hubungan antar kelas dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan. Sebuah use case dimulai dengan masukan/input dari seorang aktor.Use case merupakan suatu urutan lengkap kejadian-kejadian yang diajukan oleh seorang aktor dan spesifikasi interaksi antara aktor dengan sistem. Use case yangsederhana melibatkan satu interaksi/hubungan dengan sebuah actordan use caseyang lebihkompleks melibatkan beberapa interaksi dengan aktor. Use case yang lebih kompleksjuga melibatkan lebih dari satu aktor. Untuk menjabarkan use case dalam sistem,sangat baik bila dimulai dengan
memperhatikan aktor dan aksi yang mereka lakukan dalam sistem. Sebuah use case memberikan sejumlah nilai pada satu aktor. Kemudian kebutuhan fungsional sistem dijelaskan dalam use case yang merupakan suatu spesifikasi eksternal dari sebuah sistem
20
Admin informasi keluhan customer data pembayaran obat data dokter, data obat, data praktik dokter informasi pemesanan obat
Kasir Sistem data pemesanan obat, data keluhan informasi jadwal praktik dokter
Apoteker
Customer
Gambar 1 Deskripsi Umum Sistem
21
Penjelasan dari Gambar di atas adalah : 1. Ada 4 jenis pengguna yaitu administrator, customer, apoteker, dan kasir. 2. Jika pengguna login sebagai admin, maka dia mempunyai hak akses penuh pada aplikasi untuk merawat dan melakukan monitoring, serta memperbaharui aplikasi tersebut. 3. Jika pengguna login sebagai apoteker, maka layar pengelolaan yang berhubungan dengan apoteker akan ditampilkan seperti informasi pemesanan obat,. 4. Jika pengguna login sebagai kasir maka layar pengelolaan yang berhubungan dengan kasir akan ditampilkan seperti informasi pembayaran obat.
Tabel 1 Karakteristik Pengguna
Tugas Mengelola aplikasi Memesan obat, menyampaikan keluhan pelayanan Melayani customer, melayani pemesanan obat Melayani pembayaran registrasi obat
Hak Akses ke Aplikasi Insert, Update, Delete danSearching. Melihat informasi jadwal praktek dokter, informasi data obat, melakukan pemesanan obat, menyampaikan keluhan pelayanan. Melihat informasi pemesanan obat, informasi obat. Menginput data pembayaran obat
Apoteker
Apoteker
Kasir
Kasir
22
III.2
Fitur utama dalam sistem informasi apotik ini yaitu dapat melayani pemesanan obat, menampilkan jadwal praktik dokter, mengelola konsultasi customer dan mengelola keluhan customer.
III.3
Kebutuhan Fungsional
F-001 Sistem mengelola data obat. F-002 Sistem mengelola pemesanan obat. F-003 Sistem mengelola data dokter. F-004 Sistem mengelola jadwal praktik dokter. F-005 Sistem mengelola keluhan customer.
III.4
NF-001 Sistem hanya bisa diakses oleh pengguna pengguna yang berhak
23
III.5
III.5.1
Use Case
Diagram Use Case
III.5.2
Use Case Mengelola Keluhan Customer Aktor Kondisi Awal Kondisi Akhir Skenario : Admin dan customer : Sistem belum memiliki data keluhan customer : Sistem menyimpan data keluhan customer : Customer mengisi keluhannya yang kemudian disimpan oleh sistem lalu system menampilkannya, setelah itu admin melihat
24
keluhan tersebut dan mengirim tanggapan kepada customer. Use Case Mengelola Data Dokter Aktor Kondisi Awal Kondisi Akhir Skenario : Admin dan Customer : Sistem belum memiliki data dokter : Sistem sudah menyimpan data dokter : Adminbisa memasukkan, mengubah dan menghapusdata dokter berupa kode dokter, nama, nomor telepon, spesialis dan alamat email lalu system menyimpannya lalu ditampilkan, kemudian dilihat customer. Use Case Mengelola Jadwal Praktik Dokter Aktor Kondisi Awal Kondisi Akhir Skenario : Admindan Customer : Sistem belum memiliki data jadwal praktik dokter : Sistem sudah memiliki data jadwal praktik dokter : Admin mengubah nama dokter sesuai dengan sesi dan jam praktik dokter lalu disimpan oleh sistem, lalu system menampilkannya. Setelah itu customer melihatnya. Use Case Mengelola Data Obat Aktor Kondisi Awal Kondisi Akhir Skenario : Admin, apoteker dan Customer : Sistem belum memiliki data obat : Data obat sudah tersimpan di database . : Admin memasukkan, mengubah, dan menghapus data obat berupa kode, nama, jenis, satuan dan harga obat, lalu system menyimpannya ke database dan menampilkannya, lalu dilihat oleh apoteker dan customer berupakode, nama, jenis, satuan,
25
dan harga obat. Use Case MengelolaPemesanan Obat Aktor Kondisi Awal Kondisi Akhir Skenario : Customer, apoteker, dan kasir : Sistem belum memiliki data pemesanan obat. : Sistem menyimpan data pemesanan obat. : Customer memasukkan dan menghapus data obat yang akan dipesan dan menentukan jumlahnya setelah itu sistem menyimpan dan menampilkannya. Apoteker membuka data pemesanan obat berupa nama obat dan jumlahnya. Dan kasir melihat data pemesanan obat berupa nama obat, jumlah dan harganya setelah itu kasir mengkonfirmasi pembayaran obat tersebut.
26
III.6
Analisis Kelas
Customer
GUI Mengelola Jadwal Praktk Dokter Apoteker GUI Mengelola Data Obat
Kasir
Mengelola keluhan customer Mengelola data dokter Mengelola jadwal praktik dokter Mengelola data obat Mengelola pemesanan obat
Masing-masing use case dari rancangan sistem memiliki sebuah control, dengan demikian fungsi dari tiap controller dapat lebih jelas dan mudah untuk dibedakan :
y y y
control keluhan customer control data dokter control jadwal praktik dokter
27
el
Data Dokter
Data Obat
Pemesanan Obat
Admin
Control an Pasien
Kel
an Pasien
y y
Keluhan customer Data dokter Jadwal praktik dokter Data obat Pemesanan Obat
28
Sequence Diagram
Sequence Diagram Mengelola Keluhan Customer
Gambar 4 menjelaskan tentang proses mengelola keluhan customer. Customer memasukkan data keluhannya lalu sistem menyimpannya, setelah itu baru system menampilkan keluhan tersebut yang kemudian dilihat dan ditanggapi oleh admin
29
IV.1.2
Gambar 5 menjelaskan tentang mengelola data dokter. Admin memasukkan data dokter berupa nama, alamat, alamat email dan nomor handphone, lalu system menampilkan data dokter tersebut. Kemudian customer melihat data dokter tersebut.
30
IV.1.3
Gambar 6 menjelaskan proses mengelola jadwal praktik dokter. Admin memasukkan jadwal praktik dokter berupa nama dokter, tanggal praktik, dan jam praktik. Lalu sistem menampilkannya yang kemudian dilihat oleh customer.
31
IV.1.4
Gambar 7 menjelaskan proses mengelola data obat. Admin memasukkan , mengubah, dan menghapus data obat berupa kode,nama, jenis, jumlah, satuan dan harganya, lalu system menampilkannya yang kemudian dilihat oleh customer.dan apoteker
32
IV.1.5
Gambar 8 menjelaskan tentang proses mengelola pemesanan obat. Customer memasukkan data pemesanan obat berupa nama obat, dan jumlah obat. Lalu apoteker dan kasir melihat informasi pemesanan obat tersebut, berupa nama customer, waktu pemesanan dan obat yang dipesan.
k l
33
r Ka ir Ap
IV.2
Diagram Kelas
IV.3
IV.3.1
34
35
36
Halaman Uta
37
-D -Ob - uh n n -B -J dw
Control P
38
+kodeObat : s +jum ahObat : +tam ahP eme +hapusP emes +ubahP emesa +hitungHarga
IV.3.2
Nama Kelas
//PanggilKeluhan Customer
Nama Kelas
Obat
Nama Kelas
Get
(Nama
Dokter,
Identitas
Dokter,
Nomor
Telepon,
email)
Nama Kelas
Nama Kelas
Nama Kelas
Hapus keluhan customer Ubah keluhan customer Balas keluhan customer : (Algo-006)
Algoritma
Nama Kelas
Nama Operasi : Tambah Jadwal Praktik Dokter Hapus Jadwal Praktik Dokter Ubah Jadwal Praktik Dokter : (Algo-007)
Algoritma
Nama Kelas
Nama Operasi : Tambah Data Dokter Hapus Data Dokter Ubah Data Dokter : (Algo-008)
Algoritma
Nama Kelas
Nama Operasi : Tambah Data Obat Hapus Data Obat Ubah Data Obat : (Algo-009)
Algoritma
//TambahData Obat
Insert (Kode Obat, Nama Obat, Jenis Obat, Jumlah Obat, Satuan Obat, Harga Obat )
//HapusData Obat
Delete (Kode Obat, Nama Obat, Jenis Obat, Jumlah Obat, Satuan Obat, Harga Obat )
//UbahData Obat
Update (Kode Obat, Nama Obat, Jenis Obat, Jumlah Obat, Satuan Obat, Harga Obat )
Nama Kelas
Nama Operasi :
43
Tambah Pemesanan Obat Hapus Pemesanan Obat Ubah Pemesanan Obat : (Algo-010)
Algoritma
//TambahPemesanan Obat
//HapusPemesanan Obat
//UbahPemesanan Obat
Nama Kelas
: Keluhan Customer
Algoritma
Nama Kelas
Nama Operasi : Simpan Jadwal Praktik Dokter Tampil Jadwal Praktik Dokter : (Algo-012)
Algoritma
Nama Kelas
: Data Dokter
Algoritma
Save(Nama Email)
Dokter,
Identitas
Dokter,
Nomor
Telepon,
45
View
(Nama
Dokter,
Identitas
Dokter,
Nomor
Telepon,
Email)
Nama Kelas
: Data Obat
Algoritma
//SimpanData Obat
Save (Kode Obat, Nama Obat, Jenis Obat, Jumlah Obat, Satuan Obat, Harga Obat )
//TampilData Obat
View (Kode Obat, Nama Obat, Jenis Obat, Jumlah Obat, Satuan Obat, Harga Obat )
Nama Kelas
Algoritma
//SimpanPemesanan Obat
46
//TampilPemesanan Obat
IV.4
IV.4.1 -
Perancangan Antarmuka
Menu Admin
47
48
Keluhan Customer
49
Deskripsi :
Tabel 7 Menu Admin Masukkan Jadwal Praktik Dokter Id_Objek JFrame jPanel1 Keluar Nama jPane13 jTabbedPane6 jTabbedPane7 jPanel5 jLabel4 jLabel5 jLabel6 jLabel26 Tnama Ttelp JPanel JButton JLabel JPanel JTabbedPane JTabbedPane JPanel Jenis Frame Panel Untuk Header Tombol keluar dari menu admin Judul menu admin Panel putih untuk background Area Kerja Menu Admin Area data dokter Area Masukkan data dokter Label nama Label nomor telepon Label alamat email Label spesialis Field pengisian nama Field pengisian nomor telepon
50
Keterangan
Id_Objek Temail Tspesial Bsimpan jLabel10 Tid jPanel4 jButton4 Ubh jScrollPane3 Tabel jTabbedPane13 jPanel12 jLabel19 jLabel20 jLabel21 jLabel27 Tnamaobat Satuan Tharga Jenis jLabel22 Tkode Bsimpan1 jPanel11 jScrollPane4 Tabel1 jButton1 jButton3 jPanel2 jScrollPane5 JTextField JTextField JButton
Jenis
Keterangan Field pengisian alamat email Field pengisian spesialis dokter Tombol simpan Label kode dokter Field pengisian kode dokter Area lihat data dokter Tombol hapus data dokter Tombol ubah data dokter Scroll tabel Table data dokter Area data obat Area Masukkan data obat Label nama obat Label satuan obat Label harga obat Label jenis obat Field pengisian nama obat Field pengisian satuan obat Field pengisian harga obat Field pengisian jenis obat Label kode obat Label kode obat Tombol simpan data obat Area lihat data dokter Scroll tabel1 Table data obat Tombol ubah data obat Table hapus data obat Area keluhan customer Scroll tabel4
51
JLabel
JTextField JPanel JButton JButton JScrollPane JTable JTabbedPane JPanel
Id_Objek Tabel4 jScrollPane12 Isi4 Balass jScrollPane13 Bls jButton2 jButton5 jPanel16 jLabel33 Kode1 jButton12 Kode2 Kode3 Kode4 jButton8 Jam Sesi jLabel2 jLabel3 jLabel8 jLabel9 jLabel11 jLabel12 jLabel7 JTable JScrollPane JTextField JButton JScrollPane JTextField JButton JButton JPanel
Jenis
Keterangan Table keluhan customer scroll isi4 Isi keluhan customer Tombol balas keluhan customer Scroll text area bls Balas keluhan customer Tombol tampil keluhan Tombol hapus keluhan customer Area jadwal praktik dokter Label jadwal hari ini Pilihan kode dokter1 Tombol ubah jadwal praktik Pilihan kode dokter2 Pilihan kode dokter3 Pilihan kode dokter4 Tombol panggil jadwal Pilihan jam praktik Field masukkan sesi praktik Label sesi Label jam Label dokter1 Label dokter2 Label dokter3 Label dokter4
JLabel
JComboBox JButton JComboBox JComboBox JComboBox JButton JComboBox JTextField
Label selamat dating Label kanan/ubah password Ikon sistem informasi apotik Field password lama
52
JLabel JPasswordField
Id_Objek
Jenis
Keterangan
JPasswordField
JButton
Field password baru Tombol ubah password Label ubah password Label password lama Label password baru
IV.4.2 -
Menu Customer
Informasi Dokter
53
Pemesanan Obat
54
Keluhan Customer
55
LIhat Balasan
Deskripsi :
Tabel 14Antarmuka Customer Keluhan Id_Objek JFrame jPanel1 nama bex jPane18 jTabbedPane6 jPanel4 jScrollPane3 tabel jPanel11 jLabel4 jScrollPane10 Tabel3 jTabbedPane12 JPanel JLabel JButton JPanel JTabbedPane JPanel JScrollPane Jenis Frame Panel Untuk Header Judul menu admin Tombol keluar menu customer Panel putih untuk background Area Kerja Menu Customer Area informasi dokter Scroll untuk tabel tabel Tabel Informasi dokter Area informasi jadwal praktik Label jadwal hari ini Scroll untuk tabel3 Tabel jadwal praktik dokter Area pemesanan obat
56
Keterangan
Id_Objek jPanel14 jScrollPane6 Tabel1 jButton2 Kode1 Harga1 Jml1 Nlengkap Noktp jLabel3 jLabel5 jLabel8 jLabel9 jLabel10 jButton4 Tot1 jLabel1 jButton5 Satuan1 jPanel15 jLabel13 Tnamaa Viieeeww Telp jLabel14 jScrollPane7 Tabel2 jTabbedPane11 jPanel6 jLabel12 JPanel JScrollPane JTable
Jenis
Keterangan Area pemesanan obat Scroll untuk tabel1 Tabel pemesanan obat Tombol tampil informasi obat Field kode obat Field harga obat Field jumlah obat Field nama pemesan Field nomor ktp Label kode obat Label harga obat Label jumlah obat Label nama lengkap customer Label nomor ktp Tombol konfirmasi pemesanan Tombol tampil total harga Label total harga Tombol total harga Field satuan obat Area lihat pemesanan obat Label nama pemesan Field nama pemesan Tombol lihat pemesanan Field nomor ktp Label nomor ktp Scroll tabel2 Table pemesanan obat Area balasan keluhan Area keluhan customer Label nama customer
57
JButton
JTextField JTextField JTextField JTextField JTextField JLabel JLabel JLabel
Id_Objek Judul Nma Smon jScrollPane4 Isi jLabel2 jLabel6 jPanel12 jScrollPane1 Tabel4 jScrollPane9 Isi4 jButton1 jScrollPane11 Blas1 jButton3 jLabel7 jPanel7 jLabel1 name Pass jButton6 jLabel15 jLabel16 jLabel17 JTextField JTextField JButton JScrollPane JTextArea JLabel JLabel JPanel JScrollPane
Jenis
Keterangan Field judul keluhan Field nama customer Tombol kirim keluhan Scroll untuk text area isi Area isi keluhan Label judul keluhan Label isi keluhan Tombol tampil keluhan Scroll tabel4 Tabel keluhan Scroll isi keluhan Isi keluhan Tombol lihat balasan Pilihan kode dokter3 balas keluhan Tombol lihat isi keluhan Label selamat datang Panel kanan/login Ikon sistem informasi apotik Field nama login Field password Tombol login Label login Label nama login Label password login
JTable
JScrollPane JTextArea JButton JScrollPane JTextArea JButton JLabel JPanel JLabel
58
IV.4.3 -
Menu Apoteker
Informasi Obat
59
Keterangan
Id_Objek Viieeeww jScrollPane7 Tabel2 Tnamaa jLabel3 jLabel4 Telp jLabel2 jPanel7 jLabel1 Pass Pass1 JButton JScrollPane JTable JTextField JLabel JLabel4 JTextField JLabel JPanel JLabel
Jenis
Keterangan Menampilkan pemesanan obat Scroll untuk tabel2 Tabel pemesanan obat Mengisi nama customer Label untuk tnamaa Label untuk telp Mengisi nomor ktp Label selamat dating Panel mengubah password Ikon sistem informasi apotik Field konfirmasi password Field pengisian password
JPasswordField JPasswordField
IV.4.4 -
Menu Kasir
Deskripsi :
61
Tabel 18Menu Kasir Lihat Pemesanan Obat Id_Objek JFrame jPanel15 jPanel4 jScrollPane7 Tabel1 Total Viieeeww Nama1 Ktp1 jLabel2 jLabel5 jButton1 jLabel3 jLabel4 jPanel7 jLabel1 Name Pass jButton6 jLabel15 jLabel16 jLabel17 jPanel3 Nama3 Bkeluar JPanel JPanel JScrollPane JTable JTextField JButton JTextField JTextField JLabel JLabel JButton JLabel JLabel JPanel JLabel JTextField JTextField JButton JLabel JLabel JLabel JPanel JLabel JButton Jenis Frame Panel background Panel utama Scroolpane tabel1 Table pemesanan obat Field total harga Tombol lihat pemesanan obat Field pengisian nomor nama Field pengisian nomor ktp Label nama pemesan Label nomor KTP Button konfirmasi pembayaran Label total harga Panel selamat datang Panel kanan / ubah password Nama
62
Bab V V.1
1
Implementasi Kelas
Nama File Fisik MengelolaKeluhanCustomer.java Nama File Executable MengelolaKeluhanCust omer.class MengelolaJadwalPraktikDokter.j ava MengelolaDataDokter.java MengelolaJadwalPrakti kDokter.class MengelolaDataDokter.c lass MengelolaDataObat.java MengelolaDataObat.cla ss MengelolaPemesananO bat.class
63
ControlKeluhanCu stomer
ControlKeluhanCustomer.java
ControlKeluhanCustom er.class
ControlJadwalPra ktikDokter
ControlDataDokter ControlDataDokter.java
9 10
ControlDataObat.java ControlPemesananOba.java t
11 12
KeluhanCustomer JadwalPraktikDokt er
KeluhanCustomer.java JadwalPraktikDokter.java
13 14 15
V.2
N o 1 2
Implementasi Antarmuka
Antarmuk a Login Halaman Utama Customer Login.java HalamanUtamaCustomer.jav a Login.class HalamanUtamaCustomer.clas s Nama File Fisik Nama File Executable
Halaman Utama
HalamanUtamaAdmin.java
HalamanUtamaAdmin.class
64
Setelah dilakukan tahap analisis, perancangan dan implementasi aplikasi, dapat diambil kesimpulan bahwa aplikasi yang dibuat berhasil melakukan hal-hal sebagai berikut : 1. 2. 3. Dapat memesan obat secara online. Dapat menampilkan jadwal praktik dokter yang bertugas. Dapat mengetahui tingkat kepuasan customer terhadap kinerja petugas apotik.
Adapun kendala dalam pembuatan perangkat lunak ini yaitu terdapat dalam masalah perancangan,seperti pengeksekusian pada program.
65
VI.2
Saran
Agar aplikasi ini lebih sempurna, maka perlu untuk menambahkan beberapa fitur seperti mengelola diagnosa customer, mengelola registrasi customer, mencetak surat rujukan, dan mengelola konsultasi pasien
66