bab ii%2c iii%2c iv%2c v

99
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

Upload: putri-lestari-indah

Post on 23-Nov-2015

68 views

Category:

Documents


9 download

DESCRIPTION

top

TRANSCRIPT

  • 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