Post on 23-Nov-2015
description
5
BAB II
TINJAUAN PUSTAKA DAN LANDASAN TEORI
2.1 Tinjauan Pustaka
Penelitian sebelumnya yang berkaitan dengan pengembangan sistem
menggunakan service oriented architecture telah banyak dilakukan.
Penelitian pertama yang dilakukan oleh Stenly R. Pungus dengan judul
Penerapan Service Oriented Architecture Untuk Pengintegrasian Sistem
Informasi Perguruan Tinggi (Studi Kasus : Universitas Klabat Manado). Dalam
penelitian ini dilakukan kajian tentang penerapan Service Oriented Architecture
(SOA) untuk model pengintegrasian sistem informasi perguruan tinggi. Seiring
dengan perkembangan teknologi informasi, menyebabkan aplikasi dan platform
yang digunakan oleh departemen-departemen dan unit pendukung pada perguruan
tinggi menjadi beragam. Hal tersebut mengakibatkan ketersediaan dan kebutuhan
data dan informasi dari setiap unit pendukung pada perguruan tinggi perlu diolah
dengan tepat sehingga memudahkan dalam penyediaan dan pertukaran data dan
informasi yang diperlukan oleh para stakeholder. Selain itu aplikasi dan platform
yang beragam menyebabkan kesatuan (cohesion) antar layanan yang diberikan
semakin rendah dan inkompatibilitas antara data dan informasi pada perguruan
tinggi (Pungus, 2008). Sistem ini dibangun dengan menggunakan bahasa
pemrograman Java dan database MySQL.
Kedua, penelitian yang dilakukan oleh Eka Mustofa dengan judul
Rekayasa Customer Relationship Management (CRM) Marketing Automation
6
dan Customer Support Menggunakan Metode Service Oriented Architecture
(SOA). Dalam penelitian ini dibangun sebuah aplikasi CRM dengan
menggunakan metode Service Oriented Architecture (SOA) dengan
memanfaatkan teknologi Web Service dan perancangan aplikasi menggunakan
Service Oriented Architecture Design (SOAD) berdasarkan Enterprise
Architecture untuk menciptakan keselarasan antara bisnis dan teknologi informasi
bagi kebutuhan perusahaan (Mustofa, 2010). Sistem ini dibangun dengan
menggunakan framework .NET.
Penelitian ketiga yang dilakukan oleh Hartati Deviana dengan judul
Penerapan XML Web service Pada Sistem Distribusi Barang (Studi Kasus: PT.
Apotek Plus Palembang). Dalam penelitian ini dijelaskan bahwa disusun sebuah
sistem informasi dengan menggunakan teknologi Web service menggunakan PHP,
basis data SQL Server dan Accees yang diimplementasikan pada sistem
pengelolaan distribusi barang di sebuah apotek yang memiliki beberapa cabang.
Penelitian ini menghasilkan sistem informasi yang mampu mengintegrasikan
aplikasi dan platform dari seluruh cabang (Deviana, 2007) .
Penelitian keempat yang dilakukan oleh Farah Naja dengan judul
Rancang Bangun Perangkat Lunak Aplikasi Pelayanan Kesehatan Berbasis
Service Oriented Architecture. Dalam penelitian ini dijelaskan bahwa dalam
aplikasi pelayanan kesehatan ini, Service Oriented Architecture (SOA)
memudahkan pasien untuk menelusuri rekam medis dari semua rumah sakit yang
pernah dikunjungi tanpa perlu mengunjungi satu per satu rumah sakit-rumah sakit
tersebut. Pasien juga akan lebih mudah mendapatkan informasi dan fasilitas
7
kesehatan yang dibutuhkan tanpa perlu mengunjungi satu per satu website rumah
sakit yang ada (Naja, 2010).
2.2 Landasan Teori
2.2.1 Konsep Sistem Informasi
Sistem informasi menurut Bodnar dan Hopwood yaitu kumpulan
perangkat keras dan perangkat lunak yang dirancang untuk mentransformasikan
data ke dalam bentuk informasi yang berguna (Kadir, 2003).
Hall, mendefinisikan sistem informasi sebagai sebuah rangkaian prosedur
formal dimana data dikelompokkan, diproses menjadi informasi, dan
didistribusikan kepada pemakai (Kadir, 2003).
Turban, McLean, dan Wetherbe, mendefinisikan bahwa sistem informasi
mengumpulkan, memproses, menyimpan, menganalisis, dan menyebarkan
informasi untuk tujuan yang spesifik (Kadir, 2003).
Wilkinson, mendefinisikan sistem informasi sebagai kerangka kerja yang
mengkoordinasikan sumber daya (manusia, komputer) untuk mengubah masukan
(input) menjadi keluaran (informasi), guna mencapai sasaran-sasaran perusahaan
(Kadir, 2003).
Gelinas, Oram, dan Wiggins, mendefinisikan sistem informasi sebagai
suatu sistem buatan manusia yang secara umum terdiri atas sekumpulan
komponen berbasis komputer dan manual yang dibuat untuk menghimpun,
menyimpan, dan mengelola data serta menyediakan informasi keluaran kepada
para pemakai (Kadir, 2003).
8
John Burch dan Gary Grudnitski mengemukakan bahwa sistem informasi
terdiri dari komponen-komponen yang disebutnya dengan istilah blok bangunan
(building block). Dalam suatu sistem, ada 6 blok yang saling berinteraksi satu
dengan yang lain membentuk suatu kesatuan untuk mencapai sasaran. Blok-blok
bangunan tersebut dijelaskan secara terperinci sebagai berikut (Yuhilda, 2005):
1. Blok Masukan
Blok masukan mewakili data yang masuk ke dalam sistem informasi,
termasuk metode dan media untuk memperoleh data yang akan
dimasukkan, yang dapat berupa dokumen dasar.
2. Blok Model
Blok model terdiri dari kombinasi prosedur, logika, dan model matematik
yang akan memanipulasi atau mentransformasi data masukan dan data
yang tersimpan dalam basis data untuk menghasilkan keluaran yang
diinginkan.
3. Blok Keluaran
Produk dari sistem informasi adalah keluaran berupa informasi yang
berkualitas yang berguna untuk semua pemakai sistem. Untuk
mendapatkan informasi yang berkualitas diperlukan suatu sistem yang
handal.
4. Blok Teknologi
Blok teknologi digunakan sebagai kotak alat (toolbox) dalam sistem
informasi. Teknologi terdiri dari 3 bagian utama yaitu teknisi (brainware),
perangkat lunak (software), dan perangkat keras (hardware).
9
5. Blok Kendali
Blok pengendalian perlu dirancang dan diterapkan untuk meyakinkan
bahwa hal-hal yang merusak sistem seperti penyalahgunaan hak akses, dan
kesalahan pemakai, dapat dicegah atau bisa teratasi apabila terlanjur
terjadi.
6. Blok Basis Data
Blok basis data merupakan gabungan dari file data yang saling terhubung
dan diorganisasikan sedemikian rupa agar dapat digunakan atau diakses
dengan cepat dan mudah.
2.2.2 Service Oriented Architecture
Service Oriented Architecture atau disingkat dengan SOA, secara umum
didefinisikan sebagai sebuah arsitektur aplikasi dimana semua fungsi, layanan-
layanan didefinisikan menggunakan sebuah bahasa yang terdeskripsi dan dapat
mengakses antarmuka yang dipanggil untuk melakukan proses-proses bisnis.
Setiap interaksi adalah independen terhadap yang lain. Karena antarmuka bersifat
independen terhadap platform, setiap klien dari sembarang device dapat
menggunakan service yang disediakan. SOA menghubungkan sistem operasi yang
beragam dan mampu melakukan otomatisasi terhadap proses bisnis suatu
organisasi secara internal atau enterprise (Pungus, 2008).
SOA adalah teknologi framework strategis yang mengizinkan semua
sistem penting, baik didalam maupun diluar organisasi, untuk membuka dan
mengakses layanan yang ditetapkan dengan baik, dan batasan informasi pada
layanan tersebut, yang mungkin lebih lanjut meringkas ke process layer dan
10
composite applications untuk pengembangan solusi. Pada intinya, SOA
menambah aspek kemampuan pada arsitektur, mengizinkan untuk berhubungan
dengan perubahan sistem menggunakan configuration layer yang lebih baik
daripada tetap melakukan pengembangan kembali sistem (Linthicum, 2010).
SOA didefinisikan sebagai kombinasi pemakai (consumer) dan layanan
(service) yang saling berkolaborasi, didukung oleh kemampuan kendali, dipandu
oleh aturan, dan diatur oleh standar dukungan (Bean, 2010).
Suatu organisasi dapat mendeskripsikan dan mempublikasikan layanan
(service) mereka pada direktori, memilih service yang tepat, dan setelah itu
melibatkan service. Pada paradigma e-services, dibagi menjadi penyedia layanan
(service providers), peminta (requesters), dan perantara (yellow pages) yang
diperlihatkan pada gambar 2.1.
Gambar 2.1. Ide dasar service oriented architecture (Kar dan Verbraeck, 2007)
Selain itu SOA juga didefinisikan sebagai istilah yang digunakan untuk
menjelaskan suatu cara untuk mengimplementasikan suatu enterprise
architecture. SOA memulai dengan analisis bisnis, untuk melakukan identifikasi
dan struktur area bisnis individu dan prosesnya. Ini mengizinkan untuk
mendefinisikan layanan-layanan, yang mana diimplementasi pada area individu
11
business functionality. Pada SOA, layanan-layanan teknis sama dengan spesialis
bidang bisnis atau fungsionalitas pada proses bisnis (Schmutz dkk, 2010).
SOA adalah istilah yang menggambarkan sebuah model dimana
automation logic dikomposisi menjadi lebih sederhana, memperjelas unit-unit
logika. Secara bersama-sama, unit-unit ini berisikan bagian terbesar dari logika
otomatisasi bisnis. Secara mandiri, unit-unit ini bisa didistribusikan (Erl, 2005).
Menurut Organization for the Advancement of Structured Information
Standards (OASIS) mendefinisikan SOA sebagai sebuah paradigma untuk
melakukan pengaturan dan penggunaan layanan-layanan yang didistribusikan
yang dikontrol oleh domain yang berbeda. SOA menyediakan sebuah
keseragaman dalam memberikan, menemukan, berinteraksi dan menggunakan
layanan-layanan yang dimiliki untuk menghasilkan efek yang diinginkan,
konsisten dengan kondisi awal yang diukur dan harapan-harapan yang telah
ditetapkan (Pungus, 2008).
SOA didefinisikan sebagai sebuah konsep arsitektural pada desain
perangkat lunak yang menekankan penggunaan kombinasi layanan yang loosely
coupled untuk mendukung kebutuhan bisnis secara langsung (Graham, 2008).
SOA adalah sebuah arsitektur perangkat lunak yang didasarkan pada
konsep-konsep kunci dari sebuah aplikasi front-end, service, service repository,
dan service bus. Sebuah service terdiri dari sebuah kontrak, satu atau lebih antar
muka, dan sebuah implementasi (Pungus, 2008). Struktur hirarki dari SOA
terdapat pada gambar 2.2.
12
Gambar 2.2. Struktur hirarki SOA (Pungus, 2008)
Dari struktur hirarki SOA seperti yang diuraikan pada gambar 2.2,
Application Front End berfungsi sebagai aplikasi pengguna service. Service
Repository merupakan registry service dan menyimpan service interface artifacts,
seperti WSDL (Web Services Description Language) dan XSD (XML Schema
Definition Language). Service Bus merupakan kemampuan teknologi yang
mencakup network, transport, routing, delivery of messages and content, dan
supporting communication protocols (Bean, 2010).
Service merupakan sebuah lokasi yang terletak pada jaringan yang
memiliki mesin yang dapat membaca deskripsi dari messages yang diterima dan
memberikan respon balik. Service juga dapat didefinisikan sebagai interface untuk
menerima request dari pengguna layanan dan kemudian memberikan respon
terhadap request tersebut. Contract, bagian ini adalah antarmuka service yang
mendefinisikan komponen-komponen yang terdapat pada sebuah service
(Pungus, 2008).
13
2.2.3 Web Services
Web services adalah sebuah teknologi yang mengijinkan untuk membuat
aplikasi yang independen terhadap platform pengembangan. Web services dapat
dikembangkan dengan beragam bahasa dan beragam platform yang mengikuti
standar teknologi. Sebuah Web services merupakan suatu aplikasi yang membuka
kode fungsionalitas aplikasi ke beberapa aplikasi (Arora dan Kishore, 2002).
Implementasinya, harus melakukan invoke atau melibatkan suatu Web
services dari suatu aplikasi yang dinamakan Web service client application.
Aplikasi yang bertugas sebagai hosts dari Web services disebut Web service
provider application (Arora dan Kishore, 2002).
Web Services merupakan sebuah sistem perangkat lunak yang didesain
untuk mendukung interaksi yang interoperable antar mesin melalui sebuah
jaringan. Walaupun konsep-konsep yang membentuk SOA telah ada sebelum Web
services muncul, Web services memiliki peran penting didalam SOA. Hal ini
dikarenakan Web services dibangun diatas protokol-protokol yang sudah terkenal
dan memiliki platform yang independent, seperti HTTP, XML, UDDI, dan WSDL
(Pungus, 2008).
SOA menggunakan protokol-protokol tersebut sebagai komponen kunci
karena protokol-protokol tersebut menyediakan layanan yang dapat ditemukan
dan digunakan secara dinamis. SOA menyediakan layanan yang memiliki kontrak
antarmuka yang platform independent, yang disediakan oleh XML. SOA
menekankan pada interoperability, hal ini disediakan oleh HTTP. Alasan-alasan
tersebut menjadikan Web services sebagai jantung dari Service Oriented
14
Architecture (Pungus, 2008). Susunan standar dari Web service dijelaskan pada
gambar 2.3.
Gambar 2.3. Susunan standar web services (Bean, 2010)
Terdapat 4 standar inti untuk mendefinisikan web services dan
antarmukanya sebagaimana yang dijelaskan pada gambar 2.3 sebagai berikut:
1. Web Service Description Language (WSDL)
WSDL adalah sebuah dokumen yang ditulis dalam XML. Dokumen ini
mendeskripsikan sebuah layanan web. WSDL menunjukkan lokasi dari
layanan dan operasi-operasi atau metode-metode yang dapat digunakan
(Pungus, 2008).
2. XML Schemas Definition Language (XSD)
XSD adalah bahasa skema yang mendefinisikan struktur dari sebuah
dokumen XML. XSD menggunakan sintaks XML untuk mendefinisikan
data pada dokumen XML. Untuk membuatnya, XSD menyediakan suatu
set predefined tags (Arora dan Kishore, 2002).
15
3. Extensible Markup Language (XML)
XML merupakan bahasa markup untuk mendeskripsikan data pada suatu
dokumen. Karena XML berbasis teks dan independen terhadap bahasa,
maka digunakan sebagai bentuk standar untuk melakukan pengiriman data
melalui jaringan menggunakan web services (Arora dan Kishore, 2002).
4. Simple Object Access Protocol (SOAP)
SOAP atau dikenal juga Service Oriented Architecture Protocol, adalah
sebuah protokol yang digunakan untuk melakukan pertukaran dokumen
XML melalui jaringan komputer (Pungus, 2008).
2.2.4 Konsep Collaborative E-Commerce
Collaborative e-commerce yang juga diketahui dengan c-commerce
mengizinkan perusahaan dengan ketersediaan internet untuk membagi intellectual
capital dan pengaruh kompetensi utama pada partner penjualan mereka. Hal ini
menjanjikan peningkatan secara besar-besaran pada inovasi perusahaan,
produktivitas, dan keuntungan dan membuat suatu peluang baru untuk kolaborasi
B2B (Business 2 Business) melalui pemanfaatan internet. Mengacu pada Gartner
Group, bahwa pada tahun 2005 mendekati setengah dari Web-based commerce
akan berkolaborasi secara alamiah (Samtani, 2002).
Collaborative e-commerce tersedia dengan integrasi B2B yang mana
memimpin untuk shared databases, open tracking system, peningkatan visibilitas
antar perusahaan, mengefisienkan proses bisnis, efisiensi biaya dan memperluas
basis pembeli pada setiap pihak yang ikut berkolaborasi. Menghasilkan
keunggulan kompetitif yang mana pada model bisnis tradisional tidak dapat
16
melakukannya (Samtani, 2002). Berikut ini gambaran dari integrasi B2B
sebagaimana yang dijelaskan pada gambar 2.4.
Gambar 2.4. Skema integrasi B2B (Samtani, 2002)
Perusahaan, dari berbagai jenis industri, dari perusahaan produsen pangan,
perusahaan teknologi tinggi, perusahaan logistik, perusahaan farmasi, perusahaan
manufaktur dan layanan perbankan adalah yang memakai integrasi B2B. Mereka
merealisasikan keunggulan kompetitif integrasi B2B, seperti lebih cepat waktu
menuju market, mereduksi cycle times, dan meningkatkan pelayanan pembeli atau
pelanggan. Seperti integrasi bisnis, perusahaan bisa meningkatkan hubungan
dengan service partners dan pelanggan, mencapai ikatan integrasi diluar maupun
didalam perusahaan, dilihat secara real-time oleh pelanggan lain, dan
meningkatkan efisiensi operasional dan mereduksi biaya. Dengan integrasi B2B,
collaborative e-commerce akan secara nyata mengubah dari fase ide revolusioner
menjadi aspek umum pada operasi bisnis (Samtani, 2002).
17
2.2.5 Pemrograman Berorientasi Objek
Pemrograman berorientasi objek atau yang lazim dikenal dengan sebutan
asing Object Oriented Programming (OOP) merupakan metode pemrograman
yang melibatkan pembuatan intellectuals objects yang memodelkan masalah
bisnis yang dicoba untuk dibuat solusi (Kendal, 2009).
Beberapa ciri dari pemrograman berorientasi objek adalah abstraksi
(abstraction), pembungkusan (encapsulation), pewarisan (inheritance), dan
polimorfisme (polymorphism) atau kebanyakrupaan (Raharjo, 2007). Penjelasan
rinci sebagai berikut:
1. Abstraksi
Abstraksi adalah pengabstrakan atau penyembunyian kerumitan dari suatu
proses (Raharjo, 2007). Abstraksi yaitu ide untuk menyembunyikan detail-
detail ketika mereka tidak diperlukan (Schlesinger, 2010). Abstraksi
berarti melakukan penyaringan properti objek dan operasi sampai hanya
satu yang dibutuhkan (Schmuller, 2004). Contoh abstraksi dalam model
pemrograman berorientasi objek: kita (sebagai programmer atau
pengembang program) tidak perlu tahu secara detail bagaimana cara
membuat sebuah tombol. Yang perlu kita ketahui adalah bagaimana cara
menggunakan objek tombol yang sudah ada (baik data/properti maupun
method-nya) (Raharjo, 2007).
2. Pembungkusan (Encapsulation)
Pembungkusan berarti bahwa suatu objek menyembunyikan apa yang
dilakukan dari objek-objek lain dan dari dunia luar. Encapsulation disebut
18
juga dengan information hiding atau penyembunyian informasi
(Schmuller, 2004). Dalam melakukan pembungkusan kode dan data
didalam Java, terdapat tiga tingkat akses yang perlu diketahui, yaitu
private, protected, dan public.
3. Pewarisan (Inheritance)
Model pemrograman berorientasi objek juga menerapkan konsep
pewarisan, sama halnya seperti yang terjadi di dunia atau kehidupan nyata
(alam sekitar). Sebagai contoh, seorang anak pasti akan mewarisi beberapa
sifat atau perilaku yang dimiliki oleh ibu/bapaknya. Begitu juga didalam
sebuah program, suatu kelas dapat diturunkan menjadi kelas-kelas baru
lainnya yang akan mewarisi beberapa sifat atau perilaku dari kelas
induknya. Dalam terminologi Java, kelas induk dinamakan dengan
superclass dan kelas turunan disebut dengan subclass (Raharjo, 2007).
4. Polimorfisme (Polymorphism)
Polimorfisme adalah kemampuan suatu objek untuk mengungkap banyak
hal melalui satu cara yang sama. Sebagai contoh terdapat kelas A yang
diturunkan menjadi kelas B, C, dan D. Dengan konsep polimorfisme, kita
dapat menjalankan method-method yang terdapat pada kelas B, C, dan D
hanya dari objek yang diinstansiasi dengan kelas A. Polomorfisme sering
dinamakan dengan dynamic binding, maupun runtime binding (Raharjo,
2007).
19
2.2.6 Unified Modeling Language (UML)
Unified Modeling Language (UML) merupakan satu dari banyak tools
yang berguna dan mengagumkan pada dunia pengembangan sistem. UML
merupakan bahasa pemodelan visual yang mengijinkan pengembang sistem untuk
membuat blueprints yang menangkap visi mereka pada suatu standar, mudah
untuk dipahami, dan menyediakan mekanisme untuk share secara efektif dan
mengkomunikasikan visi mereka dengan pihak lain (Schmuller, 2004).
UML dicetuskan oleh Grady Booch, James Rumbaugh, dan Ivar Jacobson.
Dijuluki Three Amigos, mereka bekerja pada institusi terpisah dari permulaan
1980-an dan awal 1990-an, tiap mereka mengemukakan metodologi untuk analisis
dan desain berorientasi objek. Metodologi mereka memiliki keunggulan lebih dari
kebanyakan pesaing mereka. Pada pertengahan 1990-an, mereka mulai membawa
banyak ide masing-masing dari mereka, kemudian mereka memutuskan untuk
menyusun pekerjaan mereka secara bersama-sama (Schmuller, 2004).
Pada 1994, Rumbaugh bergabung dengan Relational Software
Corporation, dimana Booch telah bekerja disana. Jacobson mendaftar di Rational
setahun kemudian. Versi rancangan UML mulai beredar diseluruh perusahaan
perangkat lunak, dan hasilnya membawa perubahan besar. Karena banyak
perusahaan yang bersimpati pada UML yang akan menyediakan harapan strategis
mereka, akhirnya konsorsium UML dibentuk. Anggotanya terdiri dari DEC,
Hewlett-Packard, Intellicorp, Microsoft, Oracle, Texas Instruments, Rational, dan
lainnya. Pada 1997, konsorsium meluncurkan versi 1.0 dari UML dan
menyampaikannya kepada Object Management Group (OMG) yang merespon
20
pada permintaan OMG untuk proposal menjadi standard modeling language
(Schmuller, 2004).
Konsorsium diperluas, mengeluarkan versi 1.1, dan menyampaikannya
pada OMG. Mereka menyetujui pada akhir 1997. OMG melakukan perbaikan
pada UML dan mengeluarkan dua banyak revisi pada 1998. UML menjadi standar
de facto pada industry perangkat lunak, dan melanjutkan perkembangannya. Versi
1.3, 1.4, dan menjadi 1.5, OMG baru-baru ini menyetujui versi 2.0. Versi
sebelumnya, yang mengacu pada versi 1.x, menjadi basis dari banyak model dan
banyak buku pemodelan UML (Schmuller, 2004).
UML terdiri dari banyak komponen seperti use case diagram, object
diagram, sequence diagram, collaboration diagram, class diagram, statechart
diagram, activity diagram, component diagram, dan deployment diagram. UML
terbaru adalah UML 2.3 terdiri dari empat macam yaitu Diagram Interchange
Specification, UML Infrastructure, UML Superstructure, dan Object Constraint
Language (Rosa dan Shalahuddin, 2011).
2.2.7 Extensible Markup Language (XML)
XML merupakan bahasa markup, yang menggunakan tag sebagai tanda,
kategori, dan mengorganisasi informasi secara spesifik. Markup mendeskripsikan
dokumen atau struktur data dan organisasi. Content, seperti teks, gambar, dan
data, merupakan bagian dari kode yang mengandung banyak markup tag. XML
tidak terbatas pada kumpulan markup tertentu. Fleksibilitas XML membawa pada
tersebar luasnya pemakaian pertukaran data pada banyak form (Dykes dkk, 2005).
21
Diantara banyak keuntungan menggunakan XML yaitu secara otomatis
membagi data dari konteks (presentation). Suatu dokumen XML dengan
sendirinya tidak mengandung instruksi tentang bagaimana menampilkan konten
pada suatu dokumen. XML hanya mendefinisikan struktur dari dokumen (Dykes
dkk, 2005).
XML menangani semua tentang manajemen data, menggunakan format
terbaik yang disediakan. Pada bagian ini akan dijelaskan bagaimana XML dapat
menangani data sebagai bagian dari informasi (Dykes dkk, 2005):
a. XML mengijinkan untuk mengkoleksi satu informasi dan menggunakan
kembali pada berbagai variasi.
b. XML memiliki data tak terbatas pada satu bentuk aplikasi. Dokumen XML
mengijinkan untuk mengkoleksi data online untuk digunakan pada
dokumen lain, database, dan spreadsheet. Misal, suatu bisnis memiliki
informasi penjualan pada suatu kelompok produk yang menggunakan
suatu dokumen XML yang memuat data. Selanjutnya data XML yang
sama dapat digunakan untuk membuat laporan pembelian, laporan
penggajian, dan grafik penjualan.
c. Membuat informasi yang portable untuk kebutuhan desain dan
perencanaan sebelum informasi dikoleksi (collected).
Salah satu fungsi yang paling berguna dari XML yaitu melakukan
klasifikasi informasi. Sebagai permisalan bagaimana yang dikerjakan oleh XML,
yaitu bisnis penjualan buku. Suatu buku dapat diklasifikasikan pada banyak
macam, tetapi disini akan dibagi berdasarkan title, author, publisher, price,
22
content (fiction, nonfiction), format (paperback, hardback), serta ISBN. Dengan
menggunakan XML, dapat dibuat tag untuk mengklasifikasikan informasi (Dykes
dkk, 2005). Pada gambar 2.5 dijelaskan teknis klasifikasi informasi dari suatu
buku:
Gambar 2.5. Teknis klasifikasi informasi dalam XML (Dykes dkk, 2005)
2.2.8 PHP Hypertext Preprocessor (PHP)
PHP merupakan singkatan dari PHP: Hypertext Preprocessor. PHP adalah
bahasa skrip berbasis server. Perkembangan PHP diawali pada tahun 1994 yaitu
adanya rangkaian skrip yang diberi nama PHP/FI (Personal Home Page/Forms
Interpreter), dan ditulis oleh Rasmus Lerdorf . Kode itu digunakannya untuk
membantu menangani dokumen di website-nya. Dari tahun ke tahun, PHP
berkembang menjadi lebih serius. Pada tahun 1997, sistem versi kedua di rilis
dengan berbagai fungsionalitas tambahan (Wandschneider, 2005).
PHP merupakan bahasa pengembangan berbasis Web yang ditulis oleh dan
untuk pengembang Web. PHP adalah bahasa scripting yang server-side, yang
dapat dilekatkan (embedded) pada HTML atau digunakan secara standalone
binary (Converse dkk, 2004).
Pada tahun 1998, PHP 3.0 dikeluarkan, dengan keterlibatan dua
pengembang baru yaitu Zeev Suraski dan Andi Gutmans. Tujuannya yaitu
23
mendukung secara lebih luas dan aplikasi web yang lebih kompleks. Di awal
tahun 2000, versi 4.0 dirilis. Berbasis bahasa baru yang disebut Zend Engine.
Versi ini memiliki performa lebih baik dan meningkatkan modularitas kode
(Wandschneider, 2005).
Pada tahun 2004, dengan banyak perkembangan akhirnya versi 5.0 dirilis.
Versi ini memiliki banyak fitur baru, seperti susunan bahasa baru, dukungan web
server yang lebih luas, session, dan ekstensi/fitur tambahan pihak ketiga.
Diantaranya fitur bahasa baru yang meningkat secara signifikan dan model
pemrograman berorientasi objek yang diperluas. PHP mendukung beragam basis
data diantaranya MySQL, Oracle, PostgreSQL, Sybase, Informix,dll. PHP banyak
dimanfaatkan untuk membuat web dinamis, yang informasinya dapat berubah-
ubah (Wandschneider, 2005).
2.2.9 Java 2 Micro Edition (J2ME)
Java 2 Micro Edition atau yang biasa disebut J2ME adalah lingkungan
pengembangan yang didesain untuk meletakkan perangkat lunak Java pada barang
elektronik beserta pendukungnya. Pada J2ME, jika perangkat lunak berfungsi baik
pada sebuah perangkat lunak, maka belum tentu juga berfungsi baik pada
perangkat yang lainnya. J2ME membawa Java ke dunia informasi, komunikasi,
dan perangkat komputasi selain perangkat komputer desktop yang biasanya lebih
kecil dibandingkan perangkat komputer desktop. J2ME biasa digunakan pada
telepon selular, pager, personal digital assistants (PDAs) dan sejenisnya
(Shalahuddin, 2008).
24
J2ME adalah bagian dari J2SE, karena itu tidak semua library yang ada
pada J2SE dapat digunakan pada J2ME. Tetapi J2ME mempunyai beberapa
library khusus yang tidak dimiliki J2SE (Shalahuddin, 2008).
Gambar 2.6. Variasi arsitektur teknologi Java (Muchow, 2001)
Teknologi J2ME juga memiliki keterbatasan,terutama jika diaplikasikan
pada ponsel. J2ME sangat tergantung pada perangkat (device) yang digunakan,
bisa dari segi merk ponsel, maupun kemampuan ponsel, dan dukungannya
terhadap teknologi J2ME (Shalahuddin dan Rosa, 2008).
Gambar 2.7. Platform J2ME dan market target (Riggs, 2003)
Pada level tinggi, Java 2 Micro Edition ditargetkan pada dua bagian
kategori produk (Riggs, 2003):
25
1. High-end consumer devices. Pada kategori ini direpresentasikan oleh
kelompok yang disebut CDC (Connected Device Configuration). Misalnya
peralatan pada kategori ini mencakup Internet TVs, Internet-enabled
screenphones, high-end wireless communicators, dan automobile
entertainment/navigation system. Peralatan tersebut memiliki jangkauan
luas pada kemampuan antarmuka, kebutuhan total memory mulai dari 2 ke
4 megabytes, koneksi jaringan dengan bandwith tinggi yang biasanya
menggunakan TCP/IP.
2. Low-end consumer devices. Pada kategori ini direpresentasikan oleh
kelompok yang disebut CLDC (Connected, Limited Devices
Configuration). Peralatan pada kategori ini diantaranya cell phones,
pagers, dan personal organizers. Peralatan tersebut memiliki antarmuka
yang sederhana apabila dibandingkan dengan sistem komputer desktop,
kebutuhan memory minimum mulai dari 128 256 kilobytes, dan
bandwidth rendah.
2.2.10 Visual Basic .NET (VB.NET)
Visual Basic diturunkan dari bahasa BASIC. Visual Basic terkenal sebagai
bahasa pemrograman yang mudah untuk digunakan terutama untuk membuat
aplikasi yang berjalan diatas platform Windows. Pada tahun 90-an, Visual Basic
menjadi bahasa pemrograman yang paling popular dan menjadi pilihan utama
untuk mengembangkan program berbasis Windows. Versi Visual Basic terakhir
sebelum berjalan diatas .NET Framework adalah VB6 (Kurniawan, 2011).
26
Visual Basic .NET dirilis pada bulan Februari tahun 2002 bersamaan
dengan platform .NET Framework 1.0. Kini sudah ada beberapa versi dari Visual
Basic yang berjalan pada platform .NET, yaitu VB 2002 (VB7), VB 2005 (VB8),
VB 2008 (VB9), dan yang terakhir adalah VB 2010 (VB10) yang dirilis
bersamaan dengan Visual Studio 2010. Selain Visual Basic 2010, Visual Studio
2010 juga mendukung beberapa bahasa lain yaitu C#, C++, F# (bahasa baru untuk
functional programming), IronPhyton, dan IronRuby (bahasa baru untuk dynamic
programming) (Kurniawan, 2011).
Visual Basic .NET merupakan generasi berikutnya dari Visual Basic, akan
tetapi juga berangkat dari generasi sebelumnya. Pengembang Visual Basic 6 akan
merasa nyaman dengan kode Visual Basic .NET. Microsoft membuat banyak
perubahan untuk membuat Visual Basic .NET menjadi bahasa yang lebih baik dan
sebagai pemain pada dunia .NET. Ditambahkan, yaitu kata kunci Class untuk
mendefinisikan kelas-kelas dan kata kunci Inherits untuk pewarisan objek. Kode
sumber Visual Basic 6 tidak dapat dikompilasi dengan compiler Visual Basic
.NET tanpa pengubahan signifikan. Sesuatu yang hebat yaitu bahwa Microsoft
menyediakan migration tool untuk menangani masalah ini (Grundgeiger, 2002).
Ketika Visual Studio 2005 dirilis, Microsoft memperluas versi berbeda
Visual Studio yang tersedia untuk digunakan. Pada pengguna dengan low-cost,
dan gratis yaitu Visual Basic Express Edition. Tool ini menyediakan resource
untuk membangun aplikasi desktop hanya dengan Visual Basic. Pada level
tertinggi, Microsoft menyediakan Visual Studio Ultimate (Sheldon, 2010).
27
2.2.11 MySQL Database
MySQL merupakan relational database management system (RDBMS)
yang multithreaded, dan open source yang dibuat oleh Michael Widenius pada
tahun 1995. Pada tahun 2000, MySQL dirilis dibawah dua model lisensi yang
mengijinkan publik untuk menggunakan secara free dibawah GNU General Public
License (GPL), hal ini supaya lebih populer. Perusahaan yang memiliki dan
mengembangkan MySQL adalah MySQL AB (AB kependekan dari aktiebolag,
terminologi Swedia untuk perusahaan stok), yang mana merupakan cabang dari
Sun Microsystems (Dyer, 2008).
Kesuksesan MySQL sebagai basis data terkemuka sebenarnya tidak hanya
karena bebas biaya dan tersedia secara open source, tetapi juga karena reliabilitas,
performance, dan fitur yang tersedia. Banyak fitur dibuat untuk menjadikan
MySQL sebagai sistem basis data yang hebat. Kecepatan merupakan salah satu
fitur yang sangat menonjol. MySQL sungguh sangat scalable, dan mampu
menangani puluhan ribu tabel dan jutaan baris data (Dyer, 2008).
MySQL tergolong sebagai database server yang andal, dapat menangani
database yang besar dengan kecepatan tinggi, mendukung banyak sekali fungsi
untuk mengakses database, dan sekaligus mudah digunakan. Seperti tersirat
dalam namanya, MySQL mendukung perintah SQL (Kadir, 2008).
Perangkat lunak database server dan client MySQL bekerja pada beberapa
sistem operasi yang berbeda, seperti Linux, FreeBSD, dan varian sistem Unix:
Sun Solaris, IBM AIX, HP-UX, dsb. MySQL AB juga mengembangkan versi
Mac OS X, versi Novell NetWare, dan beberapa versi Windows (Dyer, 2008).
28
2.2.12 PostgreSQL Database
PostgreSQL merupakan server basis data tingkat tinggi, dan tersedia pada
berbagai platform. Salah satu kelebihan PostgreSQL yaitu merupakan open
source, yang berarti dapat digunakan, didistribusikan tanpa membayar royalti.
PostgreSQL juga terkenal akan fitur tingkat tinggi yang sangat luas,
dikembangkan lebih dari 20 tahun pengembangan dan perbaikan. Pengembangan
diawali oleh kelompok Database Research pada University of California,
Berkeley. Saat ini, PostgreSQL dikembangkan dan dikelola oleh banyak
pengembang dan kontributor (Riggs dkk, 2010).
PostgreSQL adalah basis data relasional dengan sejarah panjang. Pada
akhir 1970-an, University of California at Berkeley memulai pengembangan basis
data relasional yang bernama Ingres. Teknologi relasional menjadikan Ingres
menjadi produk komersial. Relational Technologies berubah menjadi Ingres
Corporation. Sekitar 1986, Michael Stonebraker dari UC Berkeley memimpin tim
yang menambahkan fitur berorientasi objek pada inti Ingres. Versi ini akhirnya
diketahui menjadi Postgres. Postgres menjadi komersial lagi, menjadi perusahaan
bernama Illustra, yang menjadi bagian Informix Corporation. Andrew Yu dan
Jolly Chen menambahkan dukungan SQL ke Postgres pada pertengahan 90-an
(Douglas dan Douglas, 2005).
Pada tahun 1996, banyak fitur yang ditambahkan seperti standar SQL92.
Postgres sekali lagi berganti nama menjadi PostgreSQL. Saat ini PostgreSQL
dikembangkan oleh kelompok pendukung perangkat lunak open-source dunia
yang diketahui sebagai PostgreSQL Global Development Group. PostgreSQL
29
merupakan produk open-source yang tidak sepenuhnya komersial. Red Hat telah
mengkomersialkan PostgreSQL, membuat Red Hat Database, tetapi PostgreSQL
akan tetap free dan open-source (Douglas dan Douglas, 2005).
PostgreSQL memilki banyak fitur penting diantaranya yaitu memenuhi
standar SQL 2008, arsitektur client-server, skalabilitas dan performa yang hebat
dengan fitur tuning yang lebih luas. Proyek PostgreSQL memfokuskan pada
beberapa sasaran yaitu (Riggs dkk, 2010):
1. Robust, perangkat lunak berkualitas tinggi, well commented code.
2. Administrasi dan pengelolaan rendah baik untuk penggunaan embedded
dan enterprise.
3. Memenuhi standar SQL, interoperabilitas, dan kompatibilitas.
4. Performance, keamanan, dan high availability.
Pengguna PostgreSQL terkemuka meliputi Apple, BASF, Genentech,
IMDB.com, Skype, NTT, Yahoo, dan The National Weather Service (Riggs dkk,
2010).
2.2.13 Model-View-Controller (MVC)
MVC memiliki kepanjangan dari Model-View-Controller adalah pola
desain yang mengijinkan pengembang untuk membagi kode mereka menjadi tiga
kategori (Myer, 2008):
1. Model untuk mengelola data.
2. View untuk menampilkan data dan elemen user interface.
3. Controller menangani user events yang mempengaruhi model dan view.
30
Konsep hubungan Model-View-Controller selengkapnya dijelaskan pada
gambar 2.8.
Gambar 2.8. Konsep hubungan model-view-controller (Myer, 2008)
MVC dipisah menjadi 3 bagian, sehingga pengembang dapat membuat
multiple views dan controllers untuk banyak model tanpa mengubah desain model.
Pemisahan ini membolehkan untuk kemudahan pengelolaan, portable, dan
mengorganisasi aplikasi, tidak seperti yang dilakukan sebelumnya (Myer, 2008).
Model-View-Controller pertama kali digagas oleh peneliti Xerox PARC
yang bekerja pada bahasa pemrograman Smalltalk pada akhir 1970-an dan awal
1980-an. Smalltalk berorientasi objek, dynamically typed, dan bahasa
pemrograman yang reflektif (Myer, 2008).
Tahap selanjutnya dari MVC yaitu dengan kedatangan sistem operasi
NeXT dan perangkat lunaknya. NeXT merupakan perusahaan yang didirikan oleh
Steve Jobs pada akhir 1980-an dan dibeli oleh Apple pada awal 1990-an.
Pengembang MVC di NeXT menemukan cara untuk membuat view dan controller
yang lebih baik (Myer, 2008).
31
Implementasi MVC pada dunia web yaitu dengan munculnya produk
Django, Struts, dan yang sangat baik yaitu Ruby on Rails. Perangkat seperti Ruby
on Rails mengijinkan tim pengembang untuk membuat aplikasi berbasis web pada
waktu yang singkat, dengan sedikit proses pengujian. Situs web berbasis Ruby on
Rails memiliki interface yang rapi, URL yang mudah dipahami, dan secara umum
lebih lengkap dan secure daripada situs yang dibuat secara biasa dengan PHP.
Keuntungan bagi pengembang web, beberapa framework PHP berbasis MVC
bermunculan seperti CakePHP, Symfony, dan CodeIgniter (Myer, 2008).
2.2.14 Code Igniter Framework
CodeIgniter adalah sebuah framework PHP yang dapat membantu
mempercepat developer dalam pengembangan aplikasi web berbasis PHP
dibandingkan jika menulis semua kode program dari awal (Basuki, 2010).
Framework merupakan kumpulan potongan-potongan program yang
disusun atau diorganisasikan sedemikian rupa, sehingga dapat digunakan untuk
membantu membuat aplikasi utuh tanpa harus membuat semua kodenya dari awal
(Basuki, 2010).
CodeIgniter menyediakan banyak library untuk mengerjakan tugas-tugas
yang umumnya ada pada sebuah aplikasi berbasis web. Selain itu, struktur dan
susunan logis dari CodeIgniter membuat aplikasi yang dibuat menjadi semakin
teratur dan rapi. Dengan demikian, pengembang dapat fokus pada fitur-fitur apa
yang dibutuhkan oleh aplikasi dengan membuat kode program seminimal
mungkin (Basuki, 2010).
32
CodeIgniter pertama kali dibuat oleh Rick Ellis, CEO EllisLab, Inc.
sebuah perusahaan yang memproduksi CMS (Content Management System) yang
cukup handal, yaitu Expression Engine. Saat ini, CodeIgniter dikembangkan dan
dikelola oleh Expression Engine Development Team. Keuntungan menggunakan
CodeIgniter, diantaranya (Basuki, 2010):
1. Gratis
CodeIgniter berlisensi dibawah Apache/BSD opensource, jadi bisa
menggunakannya secara bebas.
2. Ditulis menggunakan PHP 4
Meskipun CodeIgniter dapat berjalan pada PHP 5, namun sampai saat ini
kode program CodeIgniter masih dibuat dengan menggunakan PHP 4. Hal
ini dilakukan agar CodeIgniter dapat tersebar lebih luas dikomunitas PHP.
Hal ini disebabkan, sebagian besar web hosting masih menggunakan PHP
4. Jika CodeIgniter dibuat dengan PHP 5, tentu saja hasilnya juga akan
jauh lebih canggih, karena bisa memanfaatkan teknologi PHP 5 yang saat
ini masih belum dapat dilakukan oleh PHP 4, misalnya menerapkan
konsep OOP Multiple Inheritance.
3. Berukuran kecil
Ukuran CodeIgniter yang kecil merupakan keunggulan tersendiri.
Dibanding framework lain yang berukuran besar, serta membutuhkan
resource yang besar pula untuk berjalan. Pada CodeIgniter, bisa diatur
agar system me-load library yang dibutuhkan saja, sehingga sistem dapat
berjalan ringan dan cepat.
33
4. Menggunakan konsep MVC
CodeIgniter menggunakan konsep MVC (Model-View-Controller) yang
memungkinkan pemisahan antara layer application-logic dan
presentation.
5. URL yang sederhana
Secara default, URL yang dihasilkan CodeIgniter sangat bersih (clean) dan
Search Engine Friendly (SEF).
6. Memiliki paket library yang lengkap
CodeIgniter memiliki library yang lengkap untuk mengerjakan operasi-
operasi yang umum dibutuhkan oleh sebuah aplikasi berbasis web,
misalnya mengakses database, mengirim email, memvalidasi form,
menangani session dan sebagainya.
7. Extensible
Sistem dapat mudah dikembangkan dengan menggunakan plugin dan
helper, atau dengan menggunakan hooks.
8. Tidak memerlukan Template Engine
Meskipun CodeIgniter dilengkapi dengan template parser sederhana yang
dapat digunakan, tetapi hal ini tidak mengharuskan developer untuk
menggunakannya. Penggunaan template engine dapat mengurangi
performance dari sistem.
9. Dokumentasi lengkap dan jelas
Dari sekian banyak framework, CodeIgniter adalah satu-satunya
framework dengan dokumentasi yang lengkap dan jelas. Tim pengembang
34
CodeIgniter berkomitmen bahwa dokumentasi juga sama pentingnya
dengan kode program CodeIgniter itu sendiri. Source code CodeIgniter
juga dilengkapi comment didalamnya, sehingga memperjelas fungsi
sebuah kode program.
10. Komunitas
Komunitas pengguna CodeIgniter saat ini berkembang pesat. Pengguna
CodeIgniter dapat berpartisipasi di http://codeigniter.com/forums/.
Proses aliran data pada sistem pada framework CodeIgniter digambarkan
seperti terlihat pada gambar 2.9.
Gambar 2.9. Aliran data pada framework CodeIgniter (CodeIgniter, 2010)
Berikut adalah penjelasan dari aliran data pada framework CodeIgniter
(Basuki, 2010):
1. Index.php yang berfungsi sebagai front controller, menginisialisasi base
resource untuk menjalankan CodeIgniter.
2. Router memeriksa permintaan HTTP untuk menentukan apa yang harus
dilakukan dengannya.
3. Apabila Cache aktif, maka hasilnya akan langsung dikirimkan ke browser
dengan mengabaikan aliran data normal.
35
4. Security. Sebelum controller dimuat, HTTP request dan data yang
dikirimkan user akan disaring untuk keamanan.
5. Controller memuat model, core libraries, plugins, helpers dan semua
resource yang diperlukan untuk memproses request.
6. View yang dihasilkan akan dikirim ke web browser untuk ditampilkan.
36
BAB III
METODE PENGEMBANGAN SISTEM
Metodologi penelitian yang dilakukan dalam penelitian ini adalah
pengembangan sistem. Adapun langkah-langkah yang dilakukan sebagai berikut:
3.1 Studi Pendahuluan
Dalam studi pendahuluan, sasaran utama dalam penelitian ini yaitu
mencari dan merumuskan variabel-variabel yang menjadi bahan perancangan
dalam sistem informasi apotek terintegrasi menggunakan Service Oriented
Architecture. Selanjutnya, variabel-variabel tersebut didokumentasikan dalam
perancangan sistem sesuai dengan kebutuhan (requirement).
3.2 Pengumpulan Data
Pengumpulan data dalam penelitan ini yaitu menggunakan studi literatur
dengan cara mencari dan mempelajari berbagai informasi tentang obat dan apotek
melalui buku-buku referensi, makalah, jurnal ilmiah, buku elektronik (e-book),
paper, dokumentasi internet, situs-situs website, dan tugas akhir mahasiswa lain
yang memiliki kaitan dengan penelitian ini.
3.3 Perancangan Model
Dari studi pendahuluan dan pengumpulan data yang dilakukan, dihasilkan
variabel-variabel yang dapat digunakan untuk mengembangkan sistem informasi
apotek terintegrasi menggunakan Service Oriented Architecture. Perancangan
model diharapkan mampu membuat sistem yang didesain menjadi lebih baik dan
terencana dengan tepat dan akurat.
37
3.4 Kebutuhan Pengembangan Sistem
Kebutuhan pengembangan sistem dalam penelitian ini meliputi kebutuhan
perangkat keras (hardware) dan perangkat keras (software). Adapun perangkat
keras dan perangkat lunak yang digunakan pada penelitian ini adalah:
a. Perangkat keras (hardware)
1. processor Intel Pentium Dual-Core T4300 2.10 GHz (unit pemroses);
2. memory 1 Gigabyte (penyimpanan sementara);
3. hardisk 160 Gigabyte (penyimpanan permanen);
4. graphic card 128 Megabyte (pengolah grafis);
5. dan printer (cetak dokumen).
b. Perangkat lunak (software)
1. Windows 7 32 bit (operating system);
2. Paket instalasi XAMPP 1.7.3 (PHP);
3. Apache Server 2.2.14 (web server untuk sistem berbasis web);
4. PostgreSQL dan MySQL (database);
5. PSPad Editor 4.5.3 (text editor);
6. Wireless Toolkit (bahasa pemrograman J2ME);
7. Pustaka NuSOAP (library untuk pembuatan web service);
8. Framework CodeIgniter 1.7.2 (framework PHP);
9. Visual Studio 2010 (bahasa pemrograman VB.NET);
10. Mozilla Firefox 5.0.1 dan Opera 10 (web browser untuk pengujian);
11. StarUML 5.0.2 (tool untuk desain perangkat lunak);
12. SoapUI-4.5.1 (tool untuk pengujian web service).
38
3.5 Metode Pengembangan Sistem
Metode pengembangan sistem yang digunakan dalam pengembangan
sistem informasi apotek terintegrasi ini mengacu pada tahapan-tahapan dalam
ketentuan SDLC (Systems Development Life Cycle) dengan menggunakan model
waterfall atau Model Sekuensial Linier (Pressman, 2005). Model waterfall pada
gambar 3.1 melakukan pendekatan secara sistematis dan urut dari tahap kebutuhan
sistem lalu menuju ke tahap analysis, design, coding, testing, dan maintenance.
Gambar 3.1. Model waterfall
Adapun penjelasan mengenai tahapan metode pengembangan sistem ini
adalah:
1. Analisis Kebutuhan
Penelitian ini bermaksud untuk memperoleh gambaran tentang informasi
seputar apotek dan obat. Analisis dilakukan untuk memperoleh gambaran sistem
yang akan dibuat. Tahapan analisis terbagi menjadi dua yaitu analisis fungsional
dan analisis non fungsional.
2. Desain
Sistem informasi apotek terintegrasi ini dikembangkan dengan model
pendekatan fungsional. Dalam hal ini, perancangan sistem diawali dengan
39
membuat arsitektur sistem yang akan dibangun, selanjutnya diteruskan dengan
membuat rancangan UML (Unified Modeling Language) dan rancangan antar
muka (interface) pengguna.
3. Pemrograman
Pemrograman merupakan proses implementasi dari perancangan dan
pemodelan sistem. Rancangan harus diterjemahkan ke dalam bentuk bahasa yang
bisa dimengerti oleh komputer dengan menggunakan bahasa pemrograman
(programming language). Pemrograman dilakukan dengan menggunakan bahasa
PHP dengan framework Code Igniter, J2ME, dan VB.NET. Basis data yang
digunakan yaitu PostgreSQL dan MySQL.
4. Pengujian
Pengujian pada penelitian ini yaitu pengujian layanan web service dan
pengujian fungsional sistem menggunakan teknik pengujian black-box. Pengujian
layanan web service dilakukan dengan menggunakan perangkat bantu pengujian
web service yaitu software soapUI. Pengujian layanan web service ini dilakukan
dengan memasukkan parameter input dan melihat hasil yang ditampilkan apakah
sesuai dengan yang diharapkan. Selanjutnya, pengujian berikutnya yaitu teknik
pengujian black-box memfokuskan pada domain informasi dari perangkat lunak,
dengan melakukan test case dengan mempartisi masukan dari suatu program
dengan cara memberikan cakupan pengujian yang mendalam.
40
BAB IV
ANALISIS DAN PERANCANGAN SISTEM
4.1 Analisis Kebutuhan Sistem
Pada tahap analisis kebutuhan sistem ini dilakukan analisis informasi yang
telah didapatkan dari berbagai sistem informasi yang telah ada. Adapun analisis
fungsional merupakan analisis fungsionalitas sistem yang digambarkan pada
UML (Unified Modeling Language). Penjelasan lengkap fungsionalitas sistem
sebagai berikut:
1. Sistem menyediakan fasilitas pemesanan obat secara terintegrasi.
2. Sistem menyediakan fasilitas konfirmasi pemesanan.
3. Sistem menyediakan fasilitas pembayaran pemesanan.
4. Sistem menyediakan fasilitas konfirmasi pembayaran.
5. Sistem menyediakan fasilitas pengiriman pemesanan.
6. Sistem menyediakan fasilitas pelaporan pemesanan.
7. Sistem menyediakan fasilitas cek stok obat secara terintegrasi.
8. Sistem menyediakan fasilitas registrasi member.
9. Sistem menyediakan fasilitas manajemen member.
Selanjutnya, analisis non fungsional merupakan analisis yang digunakan
untuk mengetahui elemen yang berinteraksi dengan sistem yang sedang berjalan.
Adapun analisis non fungsional dari sistem yaitu pengguna, merupakan pihak
yang menggunakan fasilitas sistem. Terdapat tiga pengguna, yaitu pengunjung,
member, dan administrator.
41
4.2 Perancangan Sistem
Pada tahap ini dilakukan perancangan sistem dari analisis kebutuhan yang
ditetapkan dalam fase analisis kebutuhan sistem sebelumnya.
4.2.1 Arsitektur Sistem
Perangkat lunak sistem informasi apotek terintegrasi ini merupakan sistem
informasi apotek yang diintegrasikan dengan berbagai sistem yang berbeda
platform pengembangan. Perbedaan tersebut meliputi bahasa pemrograman yang
digunakan maupun basis data yang dipakai sebagai back-end pengembangan.
Dalam penelitian ini sistem diimplementasikan berbasis web, desktop, dan mobile.
Sistem berbasis web dipakai oleh member sebagai media pemesanan obat antar
apotek yang terhubung. Sistem berbasis desktop dipakai oleh member untuk
melihat stok obat. Sistem berbasis mobile dipakai oleh pengunjung yang ingin
melihat stok obat disemua apotek yang terhubung. Gambaran tentang sistem
informasi apotek terintegrasi disajikan dalam gambar 4.1.
Gambar 4.1. Interaksi antara pemakai dan aplikasi
42
Basis data yang dimiliki member apotek diintegrasikan dengan perantaraan
web service. Sistem berbasis web menggunakan PostgreSQL. Selanjutnya sistem
berbasis web mengkonsumsi web service untuk mengambil data obat dan stok
disetiap database apotek yang terhubung.
4.2.2 Use Case Diagram
Diagram use case menggambarkan fungsionalitas sistem informasi apotek
terintegrasi. Dijelaskan apa saja yang terdapat pada sistem, seperti tersaji pada
gambar 4.2.
Gambar 4.2. Diagram use case
43
Deskripsi pendefinisian aktor pada sistem informasi apotek terintegrasi
disajikan pada tabel 4.1.
Tabel 4.1. Definisi aktor pada diagram use case
No. Aktor Deskripsi
1. Pengunjung Orang yang menjadi pengunjung atau calon
pembeli obat.
2. Member Pihak apotek yang menjadi anggota sistem
pemesanan berbasis web.
3. Administrator Orang yang yang bertugas dan memiliki hak
akses untuk melakukan operasi pengelolaan
sistem secara keseluruhan.
Selanjutnya, pendefinisian use case dijelaskan secara detail dan terperinci
sebagaimana yang disajikan pada tabel 4.2.
Tabel 4.2. Definisi use case
No. Nama Use Case Deskripsi
1. Pemesanan Berisi informasi dan form yang digunakan
untuk pemesanan obat antar apotek.
2. Konfirmasi Pemesanan Berisi informasi dan form yang digunakan
untuk pengelolaan pemesanan obat.
3. Pembayaran Berisi informasi dan form yang digunakan
untuk pembayaran pesanan.
4. Konfirmasi Pembayaran Berisi informasi dan form yang digunakan
untuk pengelolaan pembayaran pesanan.
5. Pengiriman Berisi informasi dan form yang digunakan
untuk pengelolaan pengiriman pesanan.
6. Laporan Berisi informasi laporan penjualan dan
laporan pembelian.
7. Menampilkan Stok Berisi informasi dan form yang digunakan
untuk menampilkan stok obat.
8. Registrasi Berisi informasi dan form yang digunakan
untuk registrasi member.
9. Manajemen Member Berisi informasi dan form untuk
pengelolaan anggota sistem pemesanan.
44
4.2.3 Sequence Diagram
Pada bagian ini akan ditampilkan diagram sequence yang menjelaskan
atau menggambarkan bentuk interaksi antar elemen dalam sistem informasi
apotek terintegrasi. Diagram sequence menggambarkan kelakuan objek pada use
case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan
dan diterima antarobjek. Banyaknya diagram sequence yang harus dibuat adalah
sebanyak pendefinisian use case yang memiliki proses sendiri atau semua use
case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada
diagram sequence. Adapun diagram sequence secara rinci sebagai berikut:
1. Diagram sequence pemesanan
Pada gambar 4.3 dijelaskan bahwa jika seorang member memilih submenu
pesan obat, maka sistem akan memanggil fungsi pesan_obat() pada class
C_Pemesanan dan jika member mengambil data obat maka sistem akan
memanggil fungsi tambah_cart() pada class C_Pemesanan. Selanjutnya pesanan
disimpan ke basis data pemesanan dengan memanggil fungsi simpan_order() pada
class M_Pemesanan.
Gambar 4.3. Diagram sequence pemesanan
45
2. Diagram sequence konfirmasi pemesanan
Pada gambar 4.4 dijelaskan bahwa jika seorang member memilih submenu
konfirmasi pemesanan, maka sistem akan memanggil fungsi
manajemen_pemesanan() pada class C_Pemesanan. Kemudian sistem akan
menampilkan daftar pesanan yang masuk. Selanjutnya apabila member memilih
salah satu item pesanan maka sistem akan memanggil fungsi proses_pemesanan()
pada class C_Pemesanan dan memanggil fungsi proses_pemesanan() pada class
M_Pemesanan. Apabila member menginginkan untuk memperbarui pesanan maka
sistem akan memanggil fungsi ubah_status_pesanan() pada class C_Pemesanan.
Selanjutnya pesanan disimpan ke basis data pemesanan dengan memanggil fungsi
ubah_status_pemesanan() pada class M_Pemesanan.
Gambar 4.4. Diagram sequence konfirmasi pemesanan
3. Diagram sequence pembayaran
Pada gambar 4.5 dijelaskan bahwa jika seorang member memilih submenu
pembayaran, maka sistem akan memanggil fungsi bayar_pesanan() pada class
46
C_Pembayaran. Selanjutnya pesanan disimpan ke basis data pemesanan dengan
memanggil fungsi add_data_pembayaran() pada class M_Pembayaran. Apabila
proses simpan data berhasil maka sistem akan menampilkan pesan bahwa data
berhasil disimpan.
Gambar 4.5. Diagram sequence pembayaran
4. Diagram sequence konfirmasi pembayaran
Pada gambar 4.6 dijelaskan bahwa jika seorang member memilih submenu
konfirmasi pembayaran, maka sistem akan memanggil fungsi
manajemen_pembayaran() pada class C_Pembayaran dan selanjutnya sistem akan
menampilkan daftar pembayaran yang masuk ke dalam sistem dengan terlebih
dahulu memanggil fungsi manajemen_pemesanan() pada class M_Pembayaran.
Apabila member memperbarui pesanan maka sistem akan memanggil fungsi
ubah_status() pada class C_Pembayaran. Selanjutnya pesanan disimpan ke basis
data pemesanan dengan memanggil fungsi ubah_status_pemesanan() pada class
M_Pembayaran.
47
Gambar 4.6. Diagram sequence konfirmasi pembayaran
5. Diagram sequence pengiriman
Pada gambar 4.7 dijelaskan bahwa jika seorang member memilih submenu
pengiriman, maka sistem akan memanggil fungsi lacak_pesanan() pada class
C_Pengiriman. Selanjutnya informasi pengiriman akan ditampilkan dengan
terlebih dahulu memanggil fungsi lacak_pesanan() pada class M_Pengiriman.
Gambar 4.7. Diagram sequence pengiriman
6. Diagram sequence laporan
Pada gambar 4.8 dijelaskan bahwa jika seorang member memilih submenu
laporan penjualan, maka sistem akan memanggil fungsi laporan_penjualan() pada
class C_Laporan. Selanjutnya sistem akan menampilkan laporan penjualan
48
dengan terlebih dahulu memanggil fungsi lap_jual_member() pada class
M_Laporan. Selanjutnya jika member memilih submenu laporan pembelian, maka
sistem akan memanggil fungsi laporan_pembelian() pada class C_Laporan.
Selanjutnya sistem akan menampilkan laporan pembelian dengan terlebih dahulu
memanggil fungsi lap_beli_member() pada class M_Laporan.
Gambar 4.8. Diagram sequence laporan
7. Diagram sequence menampilkan stok
Pada gambar 4.9 dijelaskan bahwa jika seorang member memilih submenu
menampilkan stok, maka sistem akan memanggil fungsi pencarian() pada class
C_Publik dan selanjutnya akan ditampilkan informasi stok obat yang dicari.
Selanjutnya jika member memilih submenu cari lokasi apotek maka sistem akan
memanggil fungsi cari_lokasi_apotek() pada class C_Publik dan akan
menampilkan informasi lokasi apotek dengan terlebih dahulu memanggil fungsi
cari_lokasi_apotek() pada class M_Member.
49
Gambar 4.9. Diagram sequence menampilkan stok
8. Diagram sequence registrasi
Pada gambar 4.10 dijelaskan bahwa jika seorang admin memilih submenu
registrasi, maka sistem akan memanggil fungsi add_member() pada class
C_Member. Selanjutnya data member disimpan ke basis data pemesanan dengan
memanggil fungsi add_data_member() pada class M_Member. Apabila proses
simpan data berhasil maka sistem akan menampilkan pesan bahwa data berhasil
disimpan.
Gambar 4.10. Diagram sequence registrasi
50
9. Diagram sequence manajemen member
Pada gambar 4.11 dijelaskan bahwa jika seorang admin memilih submenu
manajemen member, maka sistem akan memanggil fungsi manajemen_member()
pada class C_Member. Selanjutnya sistem akan menampilkan informasi member
dengan terlebih dahulu memanggil fungsi manajemen_member() pada class
M_Member. Apabila admin memilih submenu ubah member maka sistem akan
memanggil fungsi edit_member() pada class C_Member dan berikutnya sistem
akan memanggil fungsi edit_member() pada class M_Member. Apabila admin
memilih submenu hapus member maka sistem akan memanggil fungsi
delete_member() pada class C_Member dan akan memanggil fungsi
delete_member() pada class M_Member. Apabila proses hapus data berhasil maka
sistem akan menampilkan pesan bahwa data berhasil dihapus.
Gambar 4.11. Diagram sequence manajemen member
51
4.2.4 Activity Diagram
Activity diagram digunakan untuk menggambarkan proses yang terjadi
pada sistem. Selain itu activity diagram juga digunakan untuk memodelkan aspek
dinamis dari sistem. Atas dasar sequence diagram diatas, selanjutnya dibuat
activity diagram yang mana menjelaskan aktivitas pada setiap fungsi yang ada.
Adapun activity diagram sistem informasi apotek terintegrasi yaitu sebagai
berikut:
1. Diagram activity pemesanan
Gambar 4.12 menunjukkan alur sistem pada fungsi pemesanan. Fungsi
pemesanan akan mengambil data obat dari basis data apotek member dengan
perantaraan web service. Nama obat dan nama apotek yang dimasukkan pada form
pencarian akan dicari melalui web service. Apabila data obat yang diinginkan
berhasil ditemukan maka data obat akan ditampilkan. Selanjutnya member
memilih obat mana saja yang akan dipesan. Seterusnya masuk ke bagian
keranjang belanja. Apabila ingin memperbarui data, maka member harus memilih
submenu perbarui. Berikutnya untuk menambah pesanan, maka member harus
memilih submenu tambah pesanan. Selanjutnya untuk menghapus keranjang
belanja dipilih submenu hapus keranjang.
Apabila member ingin melakukan checkout, maka dipilih submenu
checkout. Data pesanan selanjutnya akan dibawa ke halaman konfirmasi pesanan.
Pada halaman ini akan ditampilkan data pesanan, beserta dengan data alamat
pemesan dan informasi tentang pembayaran. Apabila member ingin menyimpan
data pesanan maka dipilih simpan pesanan.
52
Gambar 4.12. Diagram activity pemesanan
2. Diagram activity konfirmasi pemesanan
Gambar 4.13 menunjukkan alur sistem pada fungsi konfirmasi pemesanan.
Fungsi konfirmasi pemesanan akan mengambil data dari pemesanan. Apabila
status pemesanan sudah terbayar maka member yang menjadi tujuan pemesanan
harus mengubah status pesanan.
Sedangkan apabila pesanan yang masuk belum dikonfirmasi, maka sistem
akan menampilkan form biaya pengiriman berdasar lokasi apotek pemesan.
53
Gambar 4.13. Diagram activity konfirmasi pemesanan
3. Diagram activity pembayaran
Gambar 4.14 menunjukkan alur sistem pada fungsi pembayaran. Fungsi
pembayaran akan mengambil data dari pemesanan dan pembayaran. Setelah
member mengisikan form pembayaran dan member melakukan submit, maka
sistem akan melakukan validasi terhadap pembayaran yang dilakukan. Apabila
member belum pernah melakukan pembayaran maka sistem akan menyimpan
pembayaran.
Gambar 4.14. Diagram activity pembayaran
54
4. Diagram activity konfirmasi pembayaran
Gambar 4.15 menunjukkan alur sistem pada fungsi konfirmasi
pembayaran. Fungsi konfirmasi pembayaran akan mengambil data dari
pembayaran. Apabila member pemesan sudah melakukan pembayaran, maka
member yang menjadi tujuan pemesanan harus mengubah status pembayaran.
Apabila member belum melakukan pembayaran, maka member yang menjadi
tujuan pemesanan tidak diperbolehkan mengubah status pembayaran.
Gambar 4.15. Diagram activity konfirmasi pembayaran
5. Diagram activity pengiriman
Gambar 4.16 menunjukkan alur sistem pada fungsi pengiriman. Fungsi
pengiriman akan mengambil data dari pemesanan. Setelah member pemesan
mengisikan form lacak pesanan dan member melakukan submit, maka sistem akan
melakukan validasi. Apabila pemesanan ditemukan maka informasi pengiriman
akan ditampilkan. Sedangkan apabila pemesanan tidak ditemukan maka akan
ditampilkan pesan bahwa pesanan tidak ditemukan.
55
Gambar 4.16. Diagram activity pengiriman
6. Diagram activity laporan
Gambar 4.17 menunjukkan alur sistem pada fungsi laporan. Setelah
dilakukan validasi input pada form, sistem akan menampilkan laporan. Laporan
terdiri dari dua bagian, yaitu laporan penjualan dan laporan pembelian.
Gambar 4.17. Diagram activity laporan
56
7. Diagram activity menampilkan stok
Gambar 4.18 menunjukkan alur sistem pada fungsi menampilkan stok.
Setelah dilakukan validasi input pada form, sistem akan menampilkan informasi
stok.
Gambar 4.18. Diagram activity menampilkan stok
8. Diagram activity registrasi
Gambar 4.19 menunjukkan alur sistem pada fungsi registrasi. Setelah
dilakukan validasi input pada form, sistem akan menyimpan data registrasi.
Gambar 4.19. Diagram activity registrasi
57
9. Diagram activity manajemen member
Gambar 4.20 menunjukkan alur sistem pada fungsi manajemen member.
Terdapat fungsi ubah member dan hapus member.
Gambar 4.20. Diagram activity manajemen member
4.2.5 Class Diagram
Class diagram atau diagram kelas menggambarkan struktur sistem dari
segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas
memiliki atribut dan metode. Atribut merupakan variabel-variabel yang dimiliki
oleh suatu kelas. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh
suatu kelas.
Dalam sistem ini ada beberapa kelas yang memiliki keterkaitan dengan
satu sama lain. Adapun struktur kelas dari sistem informasi apotek terintegrasi ini
secara terperinci dan lebih detail disajikan pada gambar 4.21:
58
Gambar 4.21. Class diagram sistem informasi apotek terintegrasi
4.2.6 Perancangan Antar Muka
Pada bagian ini akan ditampilkan rancangan antarmuka (interface) aplikasi
sistem informasi apotek terintegrasi. Aplikasi yang dibuat memiliki tiga model
antar muka yaitu antarmuka aplikasi berbasis web, antarmuka aplikasi berbasis
desktop dan antarmuka aplikasi berbasis mobile.
Antarmuka aplikasi berbasis web diakses dengan perantaraan web
browser. Antarmuka aplikasi berbasis desktop diakses melalui aplikasi desktop.
Sedangkan antarmuka aplikasi berbasis mobile diakses dari aplikasi J2ME dari
handphone yang mendukung teknologi mobile Java.
59
Adapun desain antarmuka dari aplikasi berbasis web disajikan pada
gambar 4.22.
Gambar 4.22. Desain antarmuka aplikasi berbasis web
Desain antarmuka aplikasi berbasis web terdiri dari header, navigasi,
konter, dan footer. Navigasi terletak disebelah kiri, sementara untuk menampilkan
konten terletak disebelah kanan. Pada bagian header diletakkan logo dari sistem.
Adapun tampilan rancangan antarmuka untuk aplikasi pencarian obat
berbasis desktop disajikan pada gambar 4.23.
Gambar 4.23. Desain antarmuka aplikasi desktop untuk member
Header
Navigasi
Konten
Footer
Input
Konten
60
Pada aplikasi desktop berbasis VB.NET yang digunakan member untuk
melakukan pencarian obat, terdapat dua bagian utama yaitu bagian input untuk
memasukkan parameter pencarian obat dan bagian konten untuk menampilkan
hasil pencarian obat. Aplikasi ini akan menggunakan web service untuk
melakukan pencarian ke basis data member sistem informasi apotek terintegrasi.
Pada aplikasi mobile berbasis J2ME yang digunakan pengunjung untuk
mengakses informasi obat dan informasi stok, terdapat tiga bagian utama yaitu
bagian input, bagian konten, dan bagian navigasi. Aplikasi ini akan menggunakan
web service untuk mengakses informasi stok obat. Adapun tampilan rancangan
antarmuka untuk aplikasi mobile disajikan pada gambar 4.24.
Gambar 4.24. Desain antarmuka aplikasi mobile untuk pengunjung
4.2.7 Perancangan Basis Data
Basis data yang digunakan untuk pengembangan sistem ini menggunakan
Database Management System (DBMS) PostgreSQL. Basis data pemesanan terdiri
dari 7 tabel yang terdiri dari tabel member, tabel admin, tabel status_pemesanan,
Input
Konten
Navigasi
61
tabel status_pembayaran, tabel pemesanan, tabel detail_pemesanan, dan tabel
pembayaran.
Tabel member memiliki 17 field dengan id_member sebagai primary key.
Detail tabel member secara lengkap disajikan pada tabel 4.3.
Tabel 4.3. Desain tabel member
Nama Kolom Tipe Data Lebar Keterangan
id_member varchar 40 primary key, auto_increment
nama_apotek varchar 45 nama apotek
username varchar 25 username untuk login
password varchar 20 password untuk login
email varchar 45 alamat email
nama_bank varchar 50 nama bank untuk pembayaran
no_rekening varchar 30 nomor rekening bank
telepon varchar 30 nomor telepon member alamat varchar 75 alamat lengkap
kota varchar 30 nama kota atau kabupaten
provinsi varchar 30 nama provinsi
posisi_latitude varchar 30 posisi latitude untuk peta
posisi_longitude varchar 30 posisi longitude untuk peta
kode_pos integer kode pos
tgl_daftar date tanggal pendaftaran
status varchar 20 status keanggotaan
hak_akses varchar 6 hak akses login
Tabel admin memiliki 6 field dengan id_admin sebagai primary key. Detail
tabel admin secara lengkap disajikan pada tabel 4.4.
Tabel 4.4. Desain tabel admin
Nama Kolom Tipe Data Lebar Keterangan
id_admin varchar 40 primary key, auto_increment
nama varchar 30 nama apotek
username varchar 25 username untuk login
password varchar 20 password untuk login
email varchar 45 alamat email
hak_akses varchar 6 hak akses untuk login
Tabel status_pemesanan memiliki 2 field dengan id_status sebagai primary
key. Detail tabel status_pemesanan secara lengkap disajikan pada tabel 4.5.
62
Tabel 4.5. Desain tabel status_pemesanan
Nama Kolom Tipe Data Lebar Keterangan
id_status integer primary key
status varchar 20 status pemesanan
Tabel status_pembayaran memiliki 2 field dengan id_status sebagai
primary key. Detail tabel status_pembayaran secara lengkap disajikan pada tabel
4.6.
Tabel 4.6. Desain tabel status_pembayaran
Nama Kolom Tipe Data Lebar Keterangan
id_status integer primary key
status varchar 20 status pembayaran
Tabel pemesanan memiliki 9 field dengan id_pemesanan sebagai primary
key. Selanjutnya id_member_pemesan, id_member_tujuan, dan id_status sebagai
candidate key. Detail tabel pemesanan secara lengkap disajikan pada tabel 4.7.
Tabel 4.7. Desain tabel pemesanan
Nama Kolom Tipe Data Lebar Keterangan
id_pemesanan integer primary key, auto_increment
total_pemesanan integer jumlah item pemesanan
total_harga numeric (25,2) total harga
total_biaya numeric (25,2) total biaya keseluruhan
biaya_pengiriman numeric (25,2) biaya kirim obat
id_member_pemesan varchar 40 id member pemesan
id_member_tujuan varchar 40 id member tujuan tgl_pemesanan timestamp id pemesanan
id_status integer id status
Tabel detail_pemesanan memiliki 7 field dengan id_detail sebagai primary
key, id_pemesanan sebagai candidate key. Detail tabel detail_pemesanan secara
lengkap disajikan pada tabel 4.8.
63
Tabel 4.8. Desain tabel detail_pemesanan
Nama Kolom Tipe Data Lebar Keterangan
id_detail integer primary key, auto_increment
id_pemesanan integer id pemesanan
kode_barang varchar 30 kode barang
nama_barang varchar 40 nama barang
jumlah_barang integer jumlah item
harga_barang numeric (25,2) harga barang
subtotal varchar (25,2) subtotal
Tabel pembayaran memiliki 5 field dengan id_pembayaran sebagai
primary key. Selanjutnya id_pemesanan dan id_status sebagai candidate key.
Detail tabel pembayaran secara lengkap disajikan pada tabel 4.9.
Tabel 4.9. Desain tabel pembayaran
Nama Kolom Tipe Data Lebar Keterangan
id_pembayaran integer primary key, auto_increment
id_pemesanan integer id pemesanan
tgl_pembayaran timestamp tanggal pembayaran
nilai_pembayaran numeric (25,2) nilai pembayaran
id_status integer id status pembayaran
64
BAB V
IMPLEMENTASI DAN PENGUJIAN SISTEM
5.1 Implementasi Sistem
Hasil perancangan dan desain sistem informasi apotek terintegrasi,
diimplementasikan melalui aplikasi web, desktop, dan mobile dengan
menggunakan operating system Windows 7 32 bit, web browser Mozilla Firefox
5.0.1, web server Apache 2.2.14, bahasa pemrograman PHP 5, bahasa
pemrograman Visual Basic .NET, bahasa pemrograman Java 2 Micro Edition,
database PostgreSQL, database MySQL. Tahap berikutnya untuk bisa dilakukan
implementasi sistem informasi apotek terintegrasi, basis data harus dalam keadaan
aktif. Selanjutnya, apabila service basis data PostgreSQL dalam keadaan aktif,
maka akan tampil pesan status yang terlihat seperti pada gambar 5.1.
Gambar 5.1. Informasi service PostgreSQL dalam keadaan aktif
Selanjutnya, apabila service basis data MySQL dalam keadaan aktif, maka
akan tampil pesan status yang terlihat seperti pada gambar 5.2.
Gambar 5.2. Informasi service MySQL dalam keadaan aktif
65
Berikutnya, apabila status engine PHP dalam keadaan running, maka
tampilan informasinya seperti yang disajikan pada gambar 5.3.
Gambar 5.3. Informasi PHP 5 dalam keadaan aktif
Selanjutnya, berikut tampilan IDE Visual Studio .NET yang digunakan untuk
melakukan implementasi sistem berbasis desktop seperti pada gambar 5.4.
Gambar 5.4. Informasi IDE Visual Studio 2010 dalam keadaan aktif
66
Berikutnya, untuk memastikan Wireless Toolkit dalam keadaan siap, dilakukan
pengecekan dengan membuka simulator J2ME untuk implementasi sistem mobile.
Apabila simulator dalam keadaan siap, maka tampilan seperti pada gambar 5.5.
Gambar 5.5. Informasi simulator J2ME dalam keadaan aktif
5.1.1 Implementasi Basis Data
Sistem informasi apotek terintegrasi ini diimplementasikan dalam basis
data apotek dengan nama domain localhost. Ada 7 tabel dalam basis data apotek
yaitu tabel member, tabel admin, tabel status_pemesanan, tabel
status_pembayaran, tabel pemesanan, tabel detail_pemesanan, dan tabel
pembayaran. Masing-masing tabel diatas diimplementasikan dengan SQL. Berikut
ini kode SQL untuk membuat sequence pada basis data PostgreSQL:
CREATE SEQUENCE member_seq;
CREATE SEQUENCE admin_seq;
CREATE SEQUENCE pemesanan_seq START 1001;
CREATE SEQUENCE detail_pemesanan_seq;
CREATE SEQUENCE pembayaran_seq START 101;
Selanjutnya 7 tabel dalam basis data apotek diimplementasikan dengan
SQL sebagai berikut:
67
CREATE TABLE member (
id_member VARCHAR(40),
nama_apotek VARCHAR(45),
username VARCHAR(25),
password VARCHAR(20),
email VARCHAR(45),
nama_bank VARCHAR(50),
no_rekening VARCHAR(30),
telepon VARCHAR(30),
alamat VARCHAR(75),
kota VARCHAR(30),
provinsi VARCHAR(30),
posisi_latitude VARCHAR(30),
posisi_longitude VARCHAR(30)
kode_pos INTEGER,
tgl_daftar DATE,
status VARCHAR(20),
hak_akses VARCHAR(6) DEFAULT('member'),
PRIMARY KEY(id_member)
);
CREATE TABLE admin (
id_admin VARCHAR(40),
nama VARCHAR(30),
username VARCHAR(25),
password VARCHAR(20),
email VARCHAR(45),
hak_akses VARCHAR(6) DEFAULT('admin'),
PRIMARY KEY(id_admin)
);
CREATE TABLE status_pemesanan (
id_status INTEGER,
status VARCHAR(20),
PRIMARY KEY(id_status)
);
INSERT INTO status_pemesanan VALUES (1, 'Menunggu Konfirmasi');
INSERT INTO status_pemesanan VALUES (2, 'Sedang Diproses');
INSERT INTO status_pemesanan VALUES (3, 'Sedang Dikirim');
INSERT INTO status_pemesanan VALUES (4, 'Pesanan Diterima');
CREATE TABLE status_pembayaran (
id_status INTEGER,
status VARCHAR(20),
PRIMARY KEY(id_status)
);
INSERT INTO status_pembayaran VALUES (1, 'Belum Lunas');
INSERT INTO status_pembayaran VALUES (2, 'Lunas');
CREATE TABLE pemesanan (
id_pemesanan INTEGER NOT NULL DEFAULT
nextval('pemesanan_seq'),
total_pemesanan INTEGER,
total_harga NUMERIC(25,2),
68
total_biaya NUMERIC(25,2),
biaya_pengiriman NUMERIC(25,2),
id_member_pemesan VARCHAR(40),
id_member_tujuan VARCHAR(40),
tgl_pemesanan TIMESTAMP DEFAULT NOW(),
id_status INTEGER,
PRIMARY KEY(id_pemesanan),
FOREIGN KEY(id_member_pemesan)
REFERENCES MEMBER(id_member) ON DELETE CASCADE,
FOREIGN KEY(id_member_tujuan)
REFERENCES MEMBER(id_member) ON DELETE CASCADE,
FOREIGN KEY(id_status)
REFERENCES STATUS_PEMESANAN(id_status) ON DELETE CASCADE
);
CREATE TABLE detail_pemesanan (
id_detail INTEGER NOT NULL DEFAULT
nextval('detail_pemesanan_seq'),
id_pemesanan INTEGER,
kode_barang VARCHAR(30),
nama_barang VARCHAR(40),
jumlah_barang INTEGER,
harga_barang NUMERIC(25,2),
subtotal NUMERIC(25,2),
PRIMARY KEY(id_detail),
FOREIGN KEY(id_pemesanan)
REFERENCES PEMESANAN(id_pemesanan) ON DELETE CASCADE
);
CREATE TABLE pembayaran (
id_pembayaran INTEGER NOT NULL DEFAULT
nextval('pembayaran_seq'),
id_pemesanan INTEGER,
tgl_pembayaran TIMESTAMP DEFAULT NOW(),
nilai_pembayaran NUMERIC(25,2),
id_status INTEGER,
PRIMARY KEY(id_pembayaran),
FOREIGN KEY(id_pemesanan)
REFERENCES PEMESANAN(id_pemesanan) ON DELETE CASCADE,
FOREIGN KEY(id_status)
REFERENCES STATUS_PEMBAYARAN(id_status) ON DELETE CASCADE
);
Selanjutnya terdapat dua function dan dua trigger untuk menangani proses
otomatisasi pembuatan id_member dan id_admin yang diimplementasikan dalam
SQL sebagai berikut:
CREATE OR REPLACE FUNCTION proses_auto_member() RETURNS TRIGGER AS
$$
BEGIN
SELECT 'MMB'||nextval('member_seq')
69
INTO NEW.id_member;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER auto_member
BEFORE INSERT ON member
FOR EACH ROW EXECUTE PROCEDURE proses_auto_member();
CREATE OR REPLACE FUNCTION proses_auto_admin() RETURNS TRIGGER AS
$$
BEGIN
SELECT 'ADM'||nextval('admin_seq')
INTO NEW.id_admin;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER auto_admin
BEFORE INSERT ON admin
FOR EACH ROW EXECUTE PROCEDURE proses_auto_admin();
Selanjutnya untuk melakukan pengujian penerapan konsep Service
Oriented Architecture (SOA) yang diimplementasikan dalam layanan web service,
peneliti menggunakan dua basis data yang digunakan untuk simulasi pemesanan
obat yang diambil dari penelitian sebelumnya yang berkaitan dengan apotek.
Basis data tambahan pertama, diambil dari hasil penelitian kerja praktek
yang dilakukan oleh Ricky Ferryanto N., mahasiswa program studi Sistem
Informasi, Sekolah Tinggi Manajemen Informatika dan Teknik Komputer
(STIKOM) Surabaya dengan judul Sistem Informasi Penjualan dan Pembelian
yang Terintegrasi dengan Inventory pada Apotek K-24 Manyar yang
diimplementasikan pada Apotek K-24 Manyar Surabaya (Njoo, 2009).
Basis data ini digunakan oleh peneliti untuk melakukan simulasi
pemesanan obat dan diimplementasikan dalam basis data PostgreSQL. Detail
nama tabel dalam basis data yang digunakan pada Apotek K24 Manyar Surabaya
disajikan pada tabel 5.1.
70
Tabel 5.1. Daftar tabel pada basis data Apotek K24 Manyar
Daftar Tabel pada Sistem Informasi Apotek K24 Manyar Surabaya
No Tabel No Tabel 1. MASTER_DOKTER 18. DETAIL_PEMBELIAN
2. MASTER_SPESIALISASI 19. DETAIL_BARANG
3. MASTER_KOTA 20. RESEP
4. MASTER_BANK 21. DETAIL_RESEP
5. MASTER_BARANG 22. SURAT_PESANAN
6. MASTER_CUSTOMER 23. DETAIL_SP
7 MASTER_JABATAN 24. TRANSAKSI_PENJUALAN
8. MASTER_KATEGORI_BARANG 25. DETAIL_PENJUALAN
9. MASTER_KATEGORI_CUSTOMER 26. RETUR_PENJUALAN
10. MASTER_KATEGORI_PEMBAYARAN 27. DETAIL_RETUR_JUAL
11. MASTER_LOKASI_STOK 28. RETUR_PEMBELIAN
12. MASTER_PABRIK 29. DETAIL_RETUR_BELI
13. MASTER_SATUAN 30. DETAIL_REKENING
14. MASTER_TERAPI 31. KARTU_STOK
15. MASTER_SUPPLIER 32. MENANGANI
16. MASTER_USER 33. MENSUPPLY
17. FAKTUR_PEMBELIAN 34. MEMILIKI_TIPE_PEMBAYARAN
Basis data tambahan kedua, diambil dari hasil penelitian yang dilakukan
oleh Singgih Kusumo, mahasiswa program studi Manajemen Informatika,
Universitas Komputer Indonesia (UNIKOM) Bandung dengan judul penelitian
Pengolahan Data Pembelian dan Penjualan Obat di Apotek 55 Bandung
(Kusumo, 2010).
Basis data ini digunakan oleh peneliti untuk melakukan simulasi
pemesanan obat dan diimplementasikan dalam basis data MySQL. Detail nama
tabel dalam basis data yang digunakan pada Apotek 55 Bandung disajikan pada
tabel 5.2.
Tabel 5.2. Daftar tabel pada basis data Apotek 55 Bandung
Daftar Tabel pada Sistem Informasi Apotek 55 Bandung
No Tabel No Tabel 1. OBAT 7. HEAD_PENJUALAN
2. PEGAWAI 8. HEAD_PEMESANAN
3. SUPPLIER 9. DETAIL_PEMESANAN
4. DETAIL_PEMBELIAN 10. HEAD_PENJUALAN_NON_PELANGGAN
5. HEAD_PEMBELIAN 11. DETAIL_PENJUALAN_NON_PELANGGAN
6. DETAIL_PENJUALAN
71
5.1.2 Implementasi Web Service
Sistem informasi apotek terintegrasi menggunakan layanan web service
dengan nama Layanan Apotek Terintegrasi Suka Farma. Detail dari layanan
web service yang sudah diimplementasikan, disajikan pada gambar 5.6.
Gambar 5.6. Layanan web service apotek terintegrasi
Layanan web service apotek terintegrasi memiliki 8 nama operasi
(operation name) dengan penjelasan yang disajikan dalam tabel 5.3.
Tabel 5.3. Operasi layanan web service
No. Nama Operasi Parameter Input Output
1 getInfoObatApotek55() string nama_obat array
2 getObatApotek55() string kode_obat string kode_obat, string nama_obat, long harga_jual, long stok, string nama_apotek
3 getInfoObatApotekK24Manyar() string nama_obat array
4 getObatApotekK24Manyar() string kode_obat string kode_obat, string nama_obat, long harga_jual, long stok, string nama_apotek
5 getInfoObatSemuaLokasi() string nama_obat array
6 getInfoObatSemuaLokasi2() string kode_obat string kode_obat, string nama_obat, long harga_jual, long stok, string nama_apotek
72
No. Nama Operasi Parameter Input Output
7 getObatPilihLokasi() string kode_obat, string nama_apotek
string kode_obat, string nama_obat, long harga_jual, long stok, string nama_apotek
8 getInfoObatPilihLokasi() string nama_obat, string nama_apotek
array
Adapun penjelasan secara detail dan terperinci dari tabel 5.3 adalah
sebagai berikut:
1) getInfoObatApotek55(parameter input), merupakan function untuk
mendapatkan data obat dengan memasukkan parameter input nama_obat
bertipe string. Nilai kembali (return) yang dikeluarkan fungsi ini adalah
bertipe array string.
2) getObatApotek55(parameter input), merupakan function untuk
mendapatkan data obat dengan memasukkan parameter input kode_obat
bertipe string. Nilai kembali (return) yang dikeluarkan fungsi ini adalah
kode_obat (string), nama_obat (string), harga_jual (long), stok (long), dan
nama_apotek (string).
3) getInfoObatApotekK24Manyar(parameter input), merupakan function
untuk mendapatkan data obat dengan memasukkan parameter input
nama_obat bertipe string. Nilai kembali (return) yang dikeluarkan fungsi
ini adalah bertipe array string.
4) getObatApotekK24Manyar(parameter input), merupakan function dengan
parameter input kode_obat bertipe string. Nilai kembali (return) yang
dikeluarkan fungsi ini adalah kode_obat (string), nama_obat (string),
harga_jual (long), stok (long), dan nama_apotek (string).
73
5) getInfoObatSemuaLokasi(parameter input), merupakan function untuk
mendapatkan data obat dengan memasukkan parameter input nama_obat
bertipe string. Nilai kembali (return) yang dikeluarkan fungsi ini adalah
bertipe array string.
6) getInfoObatSemuaLokasi2(parameter input), merupakan function untuk
mendapatkan data obat dengan memasukkan parameter input kode_obat
bertipe string. Nilai kembali (return) yang dikeluarkan fungsi ini adalah
kode_obat (string), nama_obat (string), harga_jual (long), stok (long), dan
nama_apotek (string).
7) getObatPilihLokasi(parameter input), merupakan function untuk
mendapatkan data obat dengan memasukkan parameter input kode_obat
dan nama_apotek yang bertipe string. Nilai kembali (return) yang
dikeluarkan fungsi ini adalah kode_obat (string), nama_obat (string),
harga_jual (long), stok (long), dan nama_apotek (string).
8) getInfoObatPilihLokasi(paramater input), merupakan function untuk
mendapatkan data obat dengan memasukkan parameter input nama_obat
dan nama_apotek yang bertipe string. Nilai kembali (return) yang
dikeluarkan fungsi ini adalah array string.
Dokumen WSDL (Web Service Description Language) yang mana
menjelaskan informasi detail web service layanan apotek terintegrasi dapat dilihat
pada lampiran A.
74
5.1.3 Implementasi Sistem Berbasis Web
Sistem informasi apotek terintegrasi berbasis web diimplementasikan
dengan menggunakan framework Code Igniter yang dikolaborasikan dengan basis
data PostgreSQL. Sebelum bisa digunakan, maka terlebih dahulu dilakukan
pengaturan koneksi database dengan setting bagian database.php yang terdapat
pada folder application/config/. Berikut ini listing code untuk melakukan
konfigurasi database yang disajikan pada gambar 5.7.
Gambar 5.7. Listing code koneksi basis data
5.1.3.1 Implementasi Login
Dalam desain MVC (Model View Controller), file controller dipanggil
pertama kali, yang selanjutnya menanggil file model yang ditampilkan dengan file
view. Halaman login merupakan halaman yang pertama kali ditampilkan kepada
pengguna pada saat mengakses sistem informasi apotek terintegrasi berbasis web.
Halaman ini digunakan untuk proses autentikasi pengguna sistem. Terdapat dua
halaman untuk login yaitu halaman untuk login member dan halaman untuk login
administrator. Berikut ini listing code dari halaman untuk login member
sebagaimana yang disajikan pada gambar 5.8.
75
Gambar 5.8. Listing code halaman login member
Adapun tampilan halaman login member sebagaimana yang disajikan pada
gambar 5.9.
Gambar 5.9. Tampilan login member
Berikut ini listing code dari halaman untuk login administrator
sebagaimana yang disajikan pada gambar 5.10.
Gambar 5.10. Listing code halaman login administrator
76
Adapun tampilan halaman login administrator sebagaimana yang disajikan
pad