Vous êtes sur la page 1sur 175

SKRIPSI

PENGEMBANGAN APLIKASI APOTEK MADANI

BERBASIS WEB

Oleh : Arief

Nugraha

105091002790

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI
SYARIF HIDAYATULLAH
JAKARTA
2014M / 1435H
Pengembangan Aplikasi Apotek Madani

Berbasis Web

Skripsi

Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer

Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta

Oleh :

Arief Nugraha

105091002790

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA

2014 M / 1435 H

ii
LEMBARPENGESAHAN

Pengembangan Aplikasi Apotek Madani


Berbasis Web

Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer
Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta

Oleh:

Arief Nugraba

105091002790

Menyetujui,

Pembimbing I

Andrew Fiade, M.Kom


NIP. 19820811200912 1 004

Mengetahui,
Ketua Program Studi Teknik Informatika

Nur ayati, Pb. D


NIP. 19690316 199903 2 002

3
3
PENGESAHAN UJIAN

Skripsi yang berjudul "Pengembangan Aplikasi Apotek Madani Berbasis


Web" yang ditulis oleh Arief Nugraha, NIM 105091002790 telah diuji dan
dinyatakan lulus dalam sidang Munaqosyah Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta, pada tanggal 25 April 2014.
Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar sarjana
strata satu (SI) pada Program Studi Teknik Informatika.

Menyetujui,

Penguji I Penguji II

Arini, MT Bakrie La Kationg, M.Kom


NIP. 19760131 200901 2 001 NIP. 19461006 197507 1 001

Pembimbing I

cAvb~{)'-
Andrew Fiade, M. Korn
NIP. 198208112009121 004

Mengetahui,
Ketua Program Studi Teknik
I

Nurha I Ph. D
NIP. 19690316 199903 2 002

4
4
PERNYATAAN

DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-

BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN

SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI

ATAU LEMBAGA MANAPUN.

JAKARTA, 25 April 2014

Arief Nugraha
105091002790

v
ABSTRAK

Arief Nugraha - 105091002790, “Pengembangan Aplikasi Apotek Madani


Berbasis Web”, dibimbing oleh Hendra Bayu Suseno, M.Kom dan Andrew
Fiade, M.Kom.

Apotek merupakan perusahaan yang bergerak di bidang penjualan obat-obatan


dan pelayanan kesehatan, dengan tujuan membantu menyehatkan masyarakat.
Memberikan pelayanan yang baik, salah satunya adalah dengan meningkatkan
pengolahan data system inventory obat yang berbasis komputerisasi sehingga
diharapkan dapat meningkatkan efektifitas kerja pelayanan kepada pasien dan
pembeli menjadi lebih baik. Apotek Madani dalam pengolahan datanya dilakukan
masih sederhana meskipun sudah di lengkapi komputer, namun penggunaannya
masih belum optimal. Sistem yang ada dilakukan masih offline dan semi
komputerisasi, proses pengolahan data belum terprogram secara menyeluruh,
mengakibatkan pencarian data yang sulit dan membutuhkan waktu yang cukup
lama. Untuk itu dibutuhkan suatu pengembangan system aplikasi pengolahan data
inventory obat yang dapat menangani masalah tersebut. Berdasarkan uraian di
atas, maka penulis membuat suatu pengembangan system aplikasi berbasis web.
Dengan menggunakan motodologi Application Development (RAD) dengan
pendekatan Unified Modelling Language (UML), penulis juga menggunakan
beberapa tools pendukung seperti Framework Code Igniter versi 1.7.2
berbasiskan bahasa pemrograman PHP versi 5.2.8 dan MySQL versi 5.1.30
sebagai database-nya. System ini diharapkan dapat membentu memberikan suatu
informasi yang lebih akurat, efektif dan efisien dan dapat menjamin kelangsungan
oprasional apotek yang pada akhirnya dapat meningkatkan keuntungan secara
optimal sesuai target yang di inginkan.

Kata kunci : Aplikasi Apotek, Web Base, Rapid Application Development (RAD),
Unified Modelling Language (UML), Framework Code Igniter (CI),
PHP, MySQL.

vi
KATA PENGANTAR

Bissmillahirrahmanirrohiim
Assalamu’alaikum Wr. Wb

Puji dan syukur kehadirat Allah SWT atas segala rahmat dan karunia-Nya

sehingga penulis dapat menyelesaikan skripsi ini dengan baik. Shalawat serta

salam tidak lupa penulis hanturkan kepada junjungan kita Baginda Nabi Muhammad

SAW.

Skripsi yang berjudul "Pengembangan Aplikasi Apotek Madani Berbasis

Web", yang disusun untuk memenuhi salah satu syarat dalam menyelesaikan

program SI pada Program Studi Informatika di Universitas Islam Negeri Syarif

Hidayatullah Jakarta. Semoga skripsi ini bermanfaat bagi penulis khususnya bagi

para peneliti selanjutnya.

Penulis menyadari bahwa dalam proses penulisan skripsi ini banyak

mengalami kendala, namun berkat bantuan, bimbingan, kerjasama dari berbagai

pihak dan berkah dari Allah SWT sehingga segala kendala dan masalah yang

penulis hadapi tersebut dapat di atasi. Untuk itu, penulis ingin mengucapkan

banyak terima kasih kepada berbagai pihak yang telah senantiasa mendukung dan

membatu penulis baik dalam bentuk materil maupun moril.

Pada kesempatan yang berbahagia ini, penulis mengucapkan terima kasih

kepada :

1. Secara khusus terima kasih kepada kedua orang tua tercinta yang selalu

memberikan doa dan ucapan penyemangat kepada penulis.

vii
2. Saudara-saudaraku tersayang yang telah memberikan dukungan dan

motivasi sehingga penulis menjadi lebih semangat dalam menyelesaikan

skripsi ini.

3. Bapak Dr. Agus Salim, M. Si. selaku Dekan Fakultas Sains dan Teknologi,

Universitas Islam Negeri Syarif Hidayatullah Jakarta.

4. Ibu Nurhayati, Ph. D, selaku Ketua Program Studi Teknik Informatika.

5. Bapak Hendra Bayu Suseno, M. Kom, selaku Sekretaris Program Studi

Teknik Informatika dan selaku Dosen Pembimbing II yang telah

memberikan nasihat dan saran serta bimbingan yang bermanfaat kepada

penulis selama penyusunan skripsi ini.

6. Bapak Andrew Fiade, M.Kom, selaku Dosen Pembimbing II yang juga

memberikan saran dan nasihat serta bimbingan yang bermanfaat.

7. Ibu Fitri Mintarsih, M.Kom, selaku Dosen Pembimbing Akademik yang

telah mendukung dalam menyelesaikan tugas skripsi ini.

8. Seluruh Dosen dan Staff Fakultas Sains dan Teknologi yang telah

memberikan ilmu, bantuan serta dukungannya kepada penulis.

9. Teman - teman TI A 2005, TI UIN 2005 yang seperjuangan dan satu

semangat selama penulis menyelesaikan pendidikan S1 ini.

10. Seluruh teman – teman Fakultas Sains dan Teknologi khususnya untuk

angkatan 2005 untuk selalu berbagi pengalaman, ilmu dan pengetahuan

serta saling memberikan dukungan satu sama lain.

11. Dan semua pihak yang secara langsung maupun tidak langsung membantu

penulis dalam menyelesaikan skripsi ini.

88
88
Penulis berharap semoga skrispi ini dapat bermanfaat bagi kita semua. Saran

dan kritik untuk kesempurnaan skripsi ini dapat disampaikan melalui email

uinformatika.tk@gmail.com.

Akhir kata, penulis juga ingin meminta maaf kepada seluruh pihak yang

terkait untuk seluruh kekurangan, kesalahan dan kekeliruan selama penulis

melakukan penelitian dan penyusunan skripsi ini.

Wassalamu’alaikum Wr. Wb

Jakarta, 25 April 2014

Arief Nugraha

9
9
DAFTAR ISI

Halaman

COVER JUDUL ………………………………………………………………….i

HALAMAN JUDUL …………………………………………………………….ii

LEMBAR PENGESAHAN …………………………………………………….iii

LEMBAR PENGESAHAN UJIAN .................................................................... iv

HALAMAN PERNYATAAN............................................................................... v

ABSTRAK ............................................................................................................ vi

KATA PENGANTAR ......................................................................................... vii

DAFTAR ISI......................................................................................................... x

DAFTAR GAMBAR ........................................................................................... xv

DAFTAR TABEL ............................................................................................. xvii

BAB I PENDAHULUAN ...................................................................................... 1

1.1 Latar Belakang ................................................................................................. 1

1.2 Perumusan Masalah ......................................................................................... 2

1.3 Batasan Masalah .............................................................................................. 3

1.4 Tujuan dan Manfaat Penelitian ........................................................................ 3

1.4.1 Tujuan Penelitian .................................................................................... 3

1.4.2 Manfaat Penelitian .................................................................................. 4

1.5 Metodologi Penelitian ...................................................................................... 6

1.5.1 Metode Pengumpulan Data .................................................................... 6

1.5.2 Metode Pengembangan Sistem............................................................... 7

1
0
1.5.3 Metode Perancangan............................................................................... 8

1.6 Sistematika Penulisan ...................................................................................... 8

BAB II LANDASAN TEORI ............................................................................. 10

2.1 Pengertian Pengembangan ............................................................................. 10

2.2 Pengertian Aplikasi ........................................................................................ 10

2.3 Definisi Website ............................................................................................. 11

2.4 Pengertian Apotek .......................................................................................... 12

2.5 Pengertian Framework .................................................................................. 12

2.6 Macam-macam Framework........................................................................... 13

1. Framework CakePHP ............................................................................ 13

2. Framework Symfony............................................................................... 14

3. Framework Codeigniter ......................................................................... 14

2.7 Model View Controller (VMC) .................................................................... 17

2.8 Konsep Sistem Informasi............................................................................. 20

1. Pengertian Sistem................................................................................... 21

2. Pengertian Informasi .............................................................................. 21

3. Pengertian Sistem Informasi .................................................................. 21

4 Komponen Sistem Informasi ................................................................. 22

2.9 Unified Modelling Language (UML) .......................................................... 23

2.9.1 Sejarah Singkat UML....................................................................... 26

2.9.2 Pendahuluan UML ........................................................................... 27

2.9.3 Diagram UML .................................................................................. 28

2.9.4 Notasi UML ..................................................................................... 34

1
1
2.10 Data Base ..................................................................................................... 40

2.11 Perangkat Lunak Pendukung Pembangun Sistem ....................................... 41

1. PHP (Hypertext Preprocessor) .............................................................. 41

2. MySQL (Structured Query Language) .................................................. 44

3. XAMPP .................................................................................................. 45

2.12 Metodologi Penelitian .................................................................................. 47

1. Waterfall................................................................................................. 47

2. RAD (Rapid Application Development) ................................................ 48

3. Mode Spiral ............................................................................................ 50

2.13 Literatur Sejenis ........................................................................................... 52

BAB III METODOLOGI PENELITIAN ......................................................... 56

3.1 Tempat dan Waktu Penelitian ........................................................................ 57

3.2 Metode Pengumpulan Data ............................................................................ 57

3.2.1 Studi Pustaka ........................................................................................ 57

3.2.2 Studi Lapangan ..................................................................................... 58

3.3 Metode Pengembangan Sistem ...................................................................... 59

3.3.1 Fase Perencanaan Syarat-syarat............................................................ 61

3.3.2 Workshop Design ................................................................................. 62

3.3.3 Fase Implementasi ................................................................................ 63

3.4 Alur Kerangka Penelitian ............................................................................... 65

BAB IV HASIL DAN PEMBAHASAN ............................................................ 66

4.1 Gambaran Umum Apotek Madani ................................................................. 66

4.1.1 Profil Apotek Madani ........................................................................... 66

xii
4.1.2 Visi dan Misi Apotek Madani .............................................................. 66

4.2.3 Struktur Organisasi Apotek dan Fungsi ............................................... 67

4.2 Metode Pengembangan Sistem ....................................................................... 69

4.2.1 Fase Perencanaan Syarat-syarat............................................................ 69

4.2.1.1 Analisis Sistem yang Berjalan ............................................... 60

4.2.1.2 Identifikasi Masalah .............................................................. 70

4.2.1.3 Usulan Penyelesaian Masalah ............................................... 70

4.2.2 Fase Perancangan (Workshop Design) ................................................. 71

4.2.2.1 Penentuan Aktor .................................................................... 71

4.2.2.2 Perancangan Usecase Diagram ............................................. 73

4.2.2.3 Perancangan Usecase Scenario ............................................. 76

4.2.2.4 Perancangan Activity Diagram .............................................. 84

4.2.2.5 Perancangan Sequence Diagram ........................................... 92

4.2.2.6 Perancangan Class Diagram ................................................. 98

4.2.2.7 Perancangan Basis Data......................................................... 99

4.2.2.8 Perancangan User Interface................................................. 102

4.2.3 Implementasi ...................................................................................... 112

4.2.3.1 Perangkat yang Digunakan .................................................. 112

4.2.3.2 Struktur File ......................................................................... 113

4.2.3.3 Alur Kerja Codeigniter Framework ................................... 114

4.2.3.4 Pengujian Browser............................................................... 123

BAB V PENUTUP............................................................................................. 124

5.1 Kesimpulan .................................................................................................. 124

13
13
13
5.2 Saran............................................................................................................. 125

DAFTAR PUSTAKA ........................................................................................ 126

LAMPIRAN

14
14
DAFTAR GAMBAR

Gambar 2.1 Struktur Direktori Codeigniter......................................................... 17

Gambar 2.2 Interaksi MVC ................................................................................. 19

Gambar 2.3 Aktor ................................................................................................ 34

Gambar 2.4 Use Case .......................................................................................... 34

Gambar 2.5 Notasi Kelas ..................................................................................... 35

Gambar 2.6 Notasi Package................................................................................. 36

Gambar 2.7 Notasi Interface ................................................................................ 37

Gambar 2.8 Notasi Interaction ............................................................................ 37

Gambar 2.9 Notasi Note ...................................................................................... 37

Gambar 2.10 Notasi Dependency .......................................................................... 38

Gambar 2.11Notasi Association............................................................................ 39

Gambar 3.1 Alur Kerangka Penelitian................................................................. 65

Gambar 4.1 Struktur Organisasi .......................................................................... 67

Gambar 4.2 Usecase Diagram Admin................................................................. 75

Gambar 4.3 Usecase Diagram Operator / Kasir.................................................. 76

Gambar 4.4 Activity Diagram Login................................................................... 84

Gambar 4.5 Activity Diagram Transaksi Obat ..................................................... 85

Gambar 4.6 Activity Diagram Input Data Obat................................................... 86

Gambar 4.7 Activity Diagram Edit Data Obat .................................................... 87

Gambar 4.8 Activity Diagram Delete Data Obat................................................. 88

Gambar 4.9 Activity Diagram Manage User ....................................................... 89

15
15
Gambar 4.10 Activity Diagram Logout ................................................................ 90

Gambar 4.11 Activity Sequence Diagram Login .................................................. 92

Gambar 4.12 Sequence Diagram Transaksi Obat ................................................. 93

Gambar 4.13 Sequence Diagram Input Data Obat................................................ 94

Gambar 4.14 Sequence Diagram Manage User ................................................... 95

Gambar 4.15 Sequence Diagram Logout .............................................................. 96

Gambar 4.16 Class Diagram Sistem Apotek ........................................................ 97

Gambar 4.17 Relasi Basis Data............................................................................. 98

Gambar 4.18 Rancangan Tampilan Halaman Login ........................................... 102

Gambar 4.19 Rancangan Tampilan Halaman Home........................................... 102

Gambar 4.20 Tampilan Menu Input Obat ........................................................... 103

Gambar 4.21 Tampilan Menu Search Obat ........................................................ 104

Gambar 4.22 Tampilan Daftar Obat yang Expired ............................................. 104

Gambar 4.23 Tampilan Daftar Stok Minimal Obat ............................................ 105

Gambar 4.24 Tampilan Menu Lihat Obat ........................................................... 106

Gambar 4.25 Tampilan Manu Transaksi Obat .................................................... 107

Gambar 4.26 Tampilan Dasboard/Home ............................................................ 108

Gambar 4.27 Tampilan Menu History Transaksi................................................ 110

Gambar 4.28 Tampilan Menu Laporan ............................................................... 110

Gambar 4.29 Tampilan Menu User Management............................................... 111

Gambar 4.30 Alur Kerja Framework Codeigniter .............................................. 114

16
16
DAFTAR TABEL

Tabel 2.1 Perbandingan Metodologi Penelitian I ................................................. 49

Tabel 3.1 Perbandingan Literatur Sejenis ............................................................. 57

Tabel 3.2 Perbandingan Metodologi Penelitian II ................................................ 60

Tabel 4.1 Penentuan Aktor ................................................................................... 71

Tabel 4.2 Usecase Diagram Interaksi Aktor dengan Sistem ................................ 72

Tabel 4.3 Usecase Scenario Login........................................................................ 76

Tabel 4.4 Usecase Scenario Transaksi ................................................................. 77

Tabel 4.5 Usecase Scenario Input Obat ................................................................ 78

Tabel 4.6 Usecase Scenario Edit Obat.................................................................. 78

Tabel 4.7 Usecase Scenario Delete Obat .............................................................. 79

Tabel 4.8 Usecase Scenario Lihat Obat ................................................................ 80

Tabel 4.9 Usecase Scenario Cari Obat ................................................................. 80

Tabel 4.10 Usecase Scenario Print Data Obat ..................................................... 81

Tabel 4.11 Usecase Scenario Manage User ......................................................... 81

Tabel 4.12 Usecase Scenario Logout.................................................................... 82

Tabel 4.13 Tabel User........................................................................................... 99

Tabel 4.14 Tabel Obat........................................................................................... 99

Tabel 4.15 Tabel Data Obat ................................................................................ 100

Tabel 4.16 Tabel Data Order............................................................................... 101

Tabel 4.17 Spesifikasi Hardware dan Software.................................................. 112

Tabel 4.18 Struktur File Codeigniter Framework............................................... 113

xvii
Tabel 4.19 Pengujian Blackbox pada Browser.................................................... 123

xviii
BAB I

PENDAHULUAN

1.1 Latar Belakang

Dalam era globalisasi sekarang ini, komputer merupakan alat yang

sangat dibutuhkan oleh banyak instansi dan perusahaan-perusahaan milik

negara maupun swasta. Pemakaian komputer saat ini semakin berkembang

pesat di segala bidang sesuai dengan kemajuan zaman. Kebutuhan akan

informasi yang akurat dan tepat waktu untuk menyajikan data yang lengkap

sangatlah diperlukan baik instansi – instansi maupun perusahaan. Sejalan

dengan lajunya perkembangan dunia teknologi modern saat ini, banyak

mengakibatkan perubahan kehidupan manusia dalam menangani setiap

permasalahan yang terjadi yang ada hubungannya dengan proses

pembangunan secara menyeluruh.

Kalau kita perhatikan dan telusuri kemajuan yang telah kita capai itu,

maka akan terlihat dengan jelas bahwa permasalahannya adalah terletak

pada penggunaan data dan informasi yang akurat. Penerapan suatu sistem

data dan informasi sebenarnya tidak terlepas dari penggunaan peralatan

elektronik yang dapat membantu manusia dalam proses penanganan sistem

informasi.

Informasi yang diperoleh dari Internet pun bermacam – macam

tergantung dari informasi yang dibutuhkan oleh user (pemakai). Dalam hal

ini penulis mengambil contoh pada Apotek Madani.

1
Berdasarkan pengamatan penulis terhadap bagian pelayanan konsumen

di Apotek Madani, ada berbagai kegiatan transaksi obat yang tidak

teradministrasi dengan baik sehingga pemilik apotek kesulitan dalam

memantau kondisi administrasi keuangan apotek, dan kalau kejadian ini sering

terjadi maka apotek akan mengalami kerugian. Atas dasar pertimbangan itu,

penulis pada kesempatan ini tertarik untuk membuat suatu penelitian informasi

dengan judul : “
PENGEMBANGAN APLIKASI APOTEK

MADANI BERBASIS WEB”

1.2 Perumusan Masalah

Berdasarkan latar belakang di atas, maka penulis menyimpulkan

beberapa pokok permasalahan yang akan dikaji lebih lanjut yaitu sebagai

berikut:

1. Bagaimana mengembangkan aplikasi pelayanan berbasis web di

Apotek Madani.

2. Bagaimana menerapkan aplikasi tersebut sehingga dapat membantu

pemilik apotek dalam menjalani kegiatan di apotek seperti menyimpan

hasil transaksi obat-obatan setiap hari secara offline maupun online

serta dapat memberikan informasi mengenai obat-obatan di Apotek

Madani, mulai dari transaksi, input dan edit obat, jenis obat, stock obat,

harga obat, masa kadalarsa obat, tempat penyimpanan obat, serta

histori transaksi obat yang pernah dilakukan.

2
1.3 Batasan Masalah

Penulis melakukan pembatasan masalah, hal ini dilakukan agar

pembahasannya tidak menyimpang dari topik permasalahan tentang

informasi database obat - obatan di Apotek Madani. Batasan masalah dalam

pembuatan tugas akhir ini nantinya adalah:

1. Aplikasi ini dikembangkan untuk mengatasi masalah pada database

obat-obatan.

2. Data-data yang ada dalam aplikasi bersifat statis.

3. Metode Pengembangan sistem yang penulis pakai di sini adalah

dengan menggunakan metodologi RAD (Rapid Aplication Development)

dengan 3 tahapan, yaitu : Fase Perencanaan syarat- syarat

(Requirement Planning), Desain Workshop (Workshop Design) dan Fase

Implementasi (Implementation).

4. Proses perancangan aplikasi menggunakan tools dengan pendekatan

UML (Unified Modeling Language) yang meliputi Usecase Diagram,

Activity Diagram, Sequence Diagram dan Class Diagram.

5. Aplikasi ini dibuat dengan menggunakan software pendukung seperti,

Framework Code Igniter versi 1.7.2 berbasiskan bahasa pemrograman

PHP versi 5.2.8 dan MySQL versi 5.1.30 sebagai basis datanya.

1.4 Tujuan dan Manfaaf Penelitian

1.4.1 Tujuan Penelitian

Adapun tujuan penulis, antara lain:

3
1. Merancang suatu aplikasi berbasis web yang dinamis dan hanya

dioperasikan oleh pegawai serta pemilik sarana Apotek Madani.

2. Membantu karyawan dan pemilik Apotek Madani untuk

mengelola database obat – obatan serta kegiatan transaksi obat,

stock obat, harga obat, masa kadalarsa obat, tempat

penyimpanan obat, serta histori transaksi obat.

1.4.2 Manfaat Penelitian

A. Bagi Penulis

Manfaat yang dapat dipetik oleh Penulis dari penelitian ini

antara lain :

1. Dapat menjadi sarana untuk melatih kemampuan yang

dimiliki penulis mengembangkan aplikasi apotek berbasis

web dengan menggunakan Codeigniter Frameworks

sehingga dapat menambah wawasan penulis.

2. Mengerti dan memahami cara menggunakan Codeigniter

Frameworks.

3. Mengaplikasikan ilmu yang di dapat pada bangku kuliah

dengan pengalaman dan wawasan penulis dalam hal lainnya

yang berkaitan dengan metodologi penulisan tugas akhir ini.

4. Untuk memenuhi salah satu syarat kelulusan strata satu (S1)

pada Program Studi Teknik Informatika Fakultas Sains dan

Teknologi Universitas Islam Negeri (UIN) Syarif

Hidayatullah Jakarta.

4
B. Bagi Universitas

Manfaat yang dapat dipetik bagi Universitas dari penelitian

ini antara lain :

1. Memberikan gambaran seberapa jauh mahasiswa dapat

menerapkan ilmunya.

2. Dapat dijadikan referensi bagi penelitian berikutnya

khususnya dalam penegembangan aplikasi apotek berbasis

web.

C. Bagi Instansi

Manfaat yang dapat diambil oleh Apotek Madani dengan

adanya aplikasi ini antara lain :

1. Meningkatkan arus dan hubungan komunikasi antara

karyawan dengan pemilik apotek ke arah yang lebih baik.

2. Adanya sarana pencarian informasi yang dapat

dipertanggungjawabkan.

3. Meningkatkan kemandirian karyawan dalam mencari

informasi.

4. Dengan informasi-informasi yang jelas, diharapkan dapat

meningkatkan kinerja para karyawan untuk kepuasan para

pelanggan.

5
1.5 Metodologi Penelitian

Pada penulisan ini, diperluakan adanya suatu metodologi penelitian.

Metode penelitian yang digunakan oleh penulis adalah sebagai berikut :

1.5.1 Metode Pengumpulan Data

Metode yang digunakan peneliti dalam melakukan analisis data

ada beberapa tahap yaitu:

1. Studi Lapagan:

a. Pengamatan (Observasi)

Peneliti secara langsung ke lapangan dan mencatat masalah-

masalah yang dihadapi serta mendapatkan data-data

informasi mengenai objek yang berkaitan dengan masalah

yang akan dibahas.

b. Wawancara (Interview)

Mengadakan tanya jawab dengan pimpinan dan karyawan

serta pihak-pihak yang terkait dan berhubungan langsung

dengan objek penelitian.

2. Studi Pustaka

Pada tahapan pengumpulan dengan cara penelitian

kepustakaan, penulis mencari referensi-referensi yang relevan

dengan objek yang akan diteliti. Pencarian referensi dikalukan di

Perpustakaan, Toko buku, maupun online melalui Internet.

6
1.5.2 Metode Pengembangan Sistem

Pengembangan sistem yang penulis lakukan terdapat tiga tahap

siklus pengembangan dengan menggunakan metode Rapid

Application Development (RAD). Rapid Application Development

(RAD) adalah metodologi pengembangan perangkat lunak yang

berfokus pada membangun aplikasi dalam waktu yang sangat singkat.

Dengan tahapan-tahapan sebagai berikut:

1. Fase Perencanaan Syarat-syarat (Requirement Planning)

Dalam tahap ini pengguna dan analis bertemu untuk

mengidentifikasi tujuan-tujuan aplikasi atau sistem serta

mengidentifikasi syarat-syarat informasi yang ditimbulkan dari

tujuan-tujuan tersebut. Pada fase ini memerlukan peran aktif dari

kedua belah pihak yakni penulis dan dari pihak apotek. Selain

itu juga melibatkan pengguna dari beberapa level yang berbeda

dalam organisasi. Orientasi dalam fase ini adalah menyelesaikan

masalah-masalah yang ada. Meskipun teknologi informasi dan

sistem bias mengarahkan sebagian dari sistem yang diajukan,

fokusnya akan selalu tetap pada upaya pencapaian tujuan.

2. Fase Desain Workshop (Workshop Design)

Yaitu fase untuk merancang dan memperbaiki atau biasa

digambarkan sebagai workshop. Selama workshop design RAD,

pengguna merespon working prototype yang ada dengan

menganalisa, memperbaiki modul-modul yang dirancang

menggunakan perangkat lunak berdasarkan respon pengguna.

7
3. Fase Implementasi (Implementation)

Pada tahap ini analis bekerjasama secara intens dengan

pengguna selama workshop design untuk merancang

pengkodean, implementasi terhadap database dan pengujian

terhadap sistem.

1.5.3 Metode Perancangan

Dalam penelitian skripsi ini metode yang diambil antara lain

adalah Metode Object Oriented and Design & menggunakan UML

yang meliputi :

1. Usecase Diagram

2. Activity Diagram

3. Sequence Diagram

4. Class Diagram

1.6 Sistematika Penulisan

Dalam penulisan skripsi ini, penulis membaginya dalam lima bab

pembahasan. Rincian pembahasan setiap bab yaitu sebagai berikut:

BAB I PENDAHULUAN

Dalam bab ini diuraikan mengenai latar belakang, ruang

lingkup, tujuan dan manfaat, metodelogi, serta sistematika dari

penulisan skripsi ini.

8
BAB II LANDASAN TEORI

Dalam bab ini diuraikan tentang teori - teori yang digunakan untuk

membahas dan menganalisa masalah yang ada, yaitu teori dasar

atau umum dan teori khusus yang mana dapat digunakan sebagai

acuan untuk menyelesaikan topik permasalahan yang akan di

bahas.

BAB III METODOLOGI PENELITIAN

Pada bab ini, berisi uraian tentang metodologi yang digunakan

untuk perancangan dan implementasi sistem dari proses

pengumpulan data hingga proses pengembangan sistem.

BAB IV HASIL DAN PEMBAHASAN

Bab ini menguraikan mengenai perancangan dan pembuatan

aplikasi serta arsitektur yang dirancang, spesifikasi hardware

dan software yang dibutuhkan, penggambaran sistem

menggunakan sequence diagram serta tampilan layar.

BAB V PENUTUP

Pada bab ini, merupakan penutup yang berisi kesimpulan dari

hasil kegiatan penelitian dan pembuatan skripsi ini, serta saran

untuk pengembangan kegiatan perusahaan yang bersangkutan

maupun perbaikan untuk penelitian lebih lanjut.

9
BAB II LANDASAN

TEORI

2.1 Pengertian Pengembangan

Definisi pengembangan menurut Kamus Besar Bahasa Indonesia adalah

berasal dari kata dasar kembang, yakni suatu proses, cara, perbuatan

menjadikan maju (baik, sempurna, dan sebagainya). Jadi, pengembangan

merupakan sebuah tindakan untuk mengubah sesuatu menjadi lebih baik.

(Pusat Bahasa Departemen Pendidikan Nasional, 2008).

Dalam hal ini, pengembangan berarti sebuah tindakan, proses, dan cara

untuk menjadikan distribusi data menjadi lebih baik, yaitu dari sistem yang

masih manual menjadi sistem yang telah terkomputerisasi.

2.2 Pangertian Aplikasi

Aplikasi (Application) adalah software yang dibuat oleh suatu perusahaan

komputer untuk menerjakan tugas-tugas tertentu, misalnya Microsoft Exel,

Microsoft Word, dan lain-lain (Dhatta, 2003:32). Sedangkan

menurut Anisyah (2000:30), aplikasi adalah penerapan, penggunaan dan atau

penambahan data. Dari pengertian di atas dapat disimpulkan bahwa aplikasi

merupakan software yang berfungsi untuk melakukan berbagai bentuk

pekerjaan atau tugas-tugas tertentu seperti penerapan, penggunaan, dan

penambahan data.

10
2.3 Definisi Website

Website merupakan kumpulan halaman yang menampilkan informasi

data teks, data gambar diam atau gerak, data animasi, suara, video dan atau

gabungan dari semuanya, baik bersifat statis maupun dinamis yang membentuk

satu rangkaian bangunan yang saling terkait dimana masing- masing

dihubungkan dengan jaringan-jaringan halaman (hyperlink) (Saputro,2007:1).

1. Website Statis

Website statis adalah website yang kontennya statis atau tidak

berubah-rubah. Website statis ini umumnya jarang sekali merubah

kontennya (Fikri,2009:1). Seringkali website statis ini disusun dari html

polos yang antar halamannya dihubungkan dengan hyperlink tanpa

pemrograman disisi server karena tujuannya adalah ‘sebatas’

menampilkan informasi di internet. Aplikasi dari website statis sering kali

kita temukan di website company profile, personal profile, website

penawaran produk, dan semua website yang bertujuan melakukan

komunikasi satu arah dari pemilik website ke pengunjung tanpa

diperlukan interaksi.

2 Website Dinamis

Website dinamis adalah website yang kontennya berubah-ubah

(Fikri,2009:2). Aplikasi dari website dinamis ini sering kali ditemukan

diinternet dewasa ini, seperti Portal berita, blog, situs social networking,

dan lain-lain. Website dinamis selalu memiliki program yang bekerja di

sisi server karena dalam rentang waktu tertentu konten dari website

11
tersebut berubah. Jadi, salah satu ciri dari website dinamis adalah

adanya program yang berjalan disisi server untuk memanage perubahan

data yang ditampilkan oleh website dinamis tersebut.

Dalam hal ini web yang digunakan oleh penulis adalah web

dinamis. Dengan menggunakan web dinamis, aplikasi yang dibuat

menjadi lebih interaktif dan isi informasinya pun dapat lebih mudah

diperbaharui.

2.4 Apotek

Berdasarkan definisi yang diberikan oleh Kamus Besar Bahasa

Indonesia (KBBI,2010), Apotek berarti toko atau tempat meramu dan

menjual obat berdasarkan resep dokter serta memperdagangkan barang

medis.

Apotek (berasal dari bahasa Belanda: Apotheek) juga berarti tempat

menjual dan kadang membuat atau meramu obat. Apotek juga merupakan

tempat apoteker melakukan praktik profesi farmasi sekaligus menjadi peritel.

Kata ini berasal dari kata bahasa Yunani apotheca yang secara harfiah berarti

"penyimpanan".

2.5 Framework

Framework dalam sistem berorientasi objek, merupakan kumpulan

class yang melambangkan bentuk abstrak untuk pemecahan sejumlah

masalah yang berhubungan.( Howe, 1995)

12
Framework dalam dunia komputer digunakan sebagai sebuah acuan

utama berupa kerangka program yang bersifat global, yang dapat disesuaikan

dengan keinginan penggunanya. Framework yang dikembangkan saat ini

telah mencakup berbagai macam bahasa pemrograman. Pada pemrograman

web, framework telah dikembangkan untuk bahasa pemrograman antara lain

PHP, dan Java. Untuk PHP, framework yang banyak digunakan misalnya

Zend Framework yang dikembangkan oleh Zend Technologies, CodeIgniter

yang dikembangkan oleh Ellislab, Inc., dan Seagull Framework yang

memiliki lisensi dibawah BSD.

Sebuah framework selain menyediakan lingkungan pengembangan

sendiri juga menyediakan berbagai macam fungsi siap pakai yang bisa kita

gunakan dalam pembuatan website.

2.6 Macam – macam Framework

Framework yang dikembangkan saat ini telah mencakup berbagai macam

bahasa pemrograman. Pada pemrograman web, framework telah

dikembangkan untuk bahasa pemrograman antara lain PHP, dan Java. Untuk

PHP, framework yang banyak digunakan misalnya CakePHP, Symfony

Framework, dan Framework Code Igniter yang dikembangkan oleh Ellislab,

Inc.,

1. Framework CakePHP

Cake PHP atau orang lebih mengenalnya dengan nama CakePHP,

adalah sebuah framework atau kerangka kerja untuk membuat aplikasi

13
CRUD (Create, Read, Update, Delete) berbasis bahasa pemrograman

PHP (Imelza, 2008:5). CakePHP juga menjadi salah satu framework

pilihan yang memungkinkan seorang developer web untuk membuat

sebuah aplikasi dengan karakter pengembangan RAD (Rapid

Application Development), yang memungkinkan untuk digunakan dan

dikembangkan menjadi aplikasi lain yang lebih kompleks. Kekurangan

dari CakePHP adalah manual book CakePHP tidak selengkap

codeigniter dan terlalu banyak aturan jika dibandingkan dengan

codeigniter sehingga butuh waktu belajar yang cukup lama jika ingin

menguasai Framework CakePHP.

2. Framework Symfony

Symfony adalah framework web yang ditujukan untuk PHP 5

(Imelza, 2008:7). Selain itu Symfony juga kompatibel dengan berbagai

sistem database. Sama seperti CakePHP dan CodeIgniter, Symfony juga

menganut arsitektur MVC (Model View Controller). Dukungan untuk

AJAX juga tersedia di framework Symfony ini. Dokumentasi yang

disediakan cukup baik. Mungkin yang menjadi persoalan adalah proses

instalasi dan konfigurasi cukup rumit bila dibandingkan dengan

framework sebelumnya.

3. Framework Codeigniter

CodeIgniter adalah aplikasi opensource yang berupa framework

dengan model MVC (Model, View, Controller) untuk membangun

aplikasi web dinamis dengan menggunakan PHP (Yunanto,2008:5).

Tujuan dari pembuatan CodeIgniter adalah untuk menghasilkan

14
framework yang akan dapat digunakan untuk pengembangan proyek

pembuatan website dinamis secara lebih cepat dibandingkan dengan

pembuatan website dengan cara coding secara manual, dengan

menyediakan banyak sekali pustaka yang dibutuhkan dalam pembuatan

website, dengan antamuka yang sederhana dan struktur logika untuk

mengakses pustaka yang dibutuhkan (Yunanto,2008:5). CodeIgniter

membiarkan pembuat web untuk memfokuskan diri pada pembuatan

website dengan meminimalkan pembuatan kode untuk berbagai tujuan

pembuatan website.

Dalam Pembuatan Aplikasi Pelayanan Informasi Kesehatan dan

Pendaftaran Berobat pasien, penulis menggunakan Framework

Codeigniter dengan alasan sebagai berikut:

a) Gratis

CodeIgniter dilisensikan dibawah lisensi Apache atau BSD style

opensource license, ini berarti pembuat web dapat menggunakannya

sesuai dengan keinginan.

b) Berjalan di PHP versi 4 dan 5

c) Ringan dan Cepat

Secara default CodeIgniter hanya berjalan dengan me load beberapa

pustaka saja, dengan demikian hanya membutuhkan resource yang

sedikit sehingga ringan dan cepat dijalankan. Pustaka-pustaka lain

yang nantinya akan digunakan bisa di load sesuai dengan

kebutuhan.

d) Menggunakan MVC (Model,View,Controller)

15
CodeIgniter menggunakan lingkungan pengembangan dengan

metode Model View Controller (MVC) yang membedakan antara

logika dan presentasi atau tampilan sehingga tugas bisa lebih mudah

dipecah-pecah. Ada bagian yang khusus membuat tampilan

dan bagian yang membuat code programnya.

e) Dokumentasi

Salah satu hal yang bisa dijadikan barometer apakah sebuah aplikasi

benar-benar dikembangkan atau tidak bisa dilihat dari

dokumentasinya. Dalam hal ini CodeIgniter sangat luar biasa

terdapat dokumentasi yang sangat lengkap tentang semua hal yang

ada dalam CodeIgniter. Mulai dari langkah instalasi sampai

dokumentasi fungsi-fungsi nya tersedia. Adanya dokumentasi

sangat memudahkan bagi pemula dalam mempelajari lingkungan

pengembangan website dengan CodeIgniter.

f) Pustaka yang lengkap

CodeIgniter dilengkapi dengan berbagai pustaka siap pakai untuk

berbagai kebutuhan, misalnya saja koneksi database, email,

session dan cookies, keamanan, gambar dan banyak lagi.

16
Gambar 2.1 Struktur Direktori Codeigniter
( Sumber : Hakim, 2010)

2.7 MVC (Model View Controller)

Model View Controller merupakan suatu konsep yang cukup populer

dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small

Talk. ( Myer, 2008 )

Secara sederhana konsep MVC terdiri dari tiga bagian yaitu bagian

Model, bagian View dan bagian Controller. Didalam website dinamis

setidaknya terdiri dari 3 hal yang paling pokok, yaitu basis data, logika aplikasi

dan cara menampilkan halaman wesite. 3 hal tersebut direpresentasikan dengan

MVC yaitu model untuk basis data, view untuk cara menampilkan halaman

website dan controller untuk logika aplikasi.

17
1. Model

Merepresentasikan struktur data dari website yang bisa berupa

basis data maupun data lain, misalnya dalam bentuk file teks atau file

xml. Biasanya didalam model akan berisi class dan fungsi untuk

mengambil, melakukan update dan menghapus data website. Karena

sebuah website biasanya memnggunakan basis data dalam menyimpan

data maka bagian Model biasanya akan berhubungan dengan perintah-

perintah query SQL. ( Myer, 2008 )

Model khusus digunakan untuk melakukan koneksi ke basis data

oleh karena itu logika-logika pemrograman yang berada didalam model

juga harus yang berhubungan dengan basis data.

2. View

Merupakan informasi yang ditampilkan kepada pengunjung website

Sebisa mungkin didalam View tidak berisi logika-logika kode tetapi

hanya berisi variabel-variabel yang berisi data yang siap ditampilkan.

View bisa dibilang adalah halaman website yang dibuat menggunakan

HTML dengan bantuan CSS dan JavaScript (Myer,2008)

Didalam view tidak ada kode untuk melakukan koneksi ke

basisdata. View hanya dikhususkan untuk menampilkan data-data hasil

dari model dan controller.

3. Controller

Controller merupakan penghubung antara Model dan View. Di

dalam Controller inilah terdapat class dan fungsi-fungsi yang

18
memproses permintaan dari View kedalam struktur data didalam

Model.( Myer, 2008 )

Controller juga tidak berisi kode untuk mengakses basis data.

Tugas controller adalah menyediakan berbagai variabel yang akan

ditampilkan di view, memanggil model untuk melakukan akses ke basis

data, menyediakan penanganan error, mengerjakan proses logika dari

aplikasi serta melakukan validasi atau cek terhadap input.

Gambar 2.2 Interaksi MVC


( Sumber : Hakim, 2010 )

2.8 Konsep Sistem Informasi

Sistem informasi bertujuan untuk menyajikan informasi guna mendukung

fungsi operasional, manajemen, dan pengambil keputusan dalam sebuah

organisasi.

1. Pengertian Sistem

Sistem adalah kumpulan subsistem yang diorganisasikan untuk

menyelesaikan tujuan tertentudan digambarkan oleh sekumpulan

19
model, dari sudut pandang yang berbeda-beda. Subsistem adalah

pengelompokan elemen yang mana sebagian dari elemen tersebut

menyatakan spesifikasi tingkah laku dari elemen lain. (Booch, dkk,

1998)

Pengertian yang paling umum dari sebuah sistem adalah

sekumpulan benda yang memiliki hubungan di antara mereka.

Sistem terdiri dari empat elemen, yaitu :

1. Objek, yaitu berupa bagian, elemen, ataupun variabel.

2. Atribut, dalam hal ini menentukan kualitas atau sifat kepemilikan

sistem dan objeknya.

3. Hubungan internal, di dalam objek-objek di dalamnya.

4. Lingkungan, lokasi dari sistem itu berada.

2. Pengertian Informasi

Informasi adalah data yang telah terorganisasi, dengan demikian

data tersebut memiliki arti dan nilai bagi si penerima. (Turban, 2005)

3. Pengertian Sistem Informasi

Sistem informasi merupakan suatu proses pengumpulan,

pengolahan, penyimpanan, dan penyebaran informasi untuk tujuan

tertentu, kebanyakan sistem informasi sudah terkomputerisasi. (Turban,

2005)

Sistem Informasi adalah suatu pengaturan dari orang-orang, data,

proses, dan teknologi informasi yang saling berinteraksi untuk

mengumpulkan, memproses, menyimpan, dan menyediakan informasi

yang dibutuhkan. (Whitten, 2004)

20
Sistem informasi adalah komponen-komponen yang saling

berhubungan dan bekerjasama untuk mengumpulkan, memproses,

menyimpan, dan mendistribusikan informasi untuk mendukung

pengambilan keputusan, koordinasi, kontrol, anlisis, dan visualisasi

dalam suatu organisasi. (Laudon, 2004)

Berdasarkan definisi di atas dapat disimpulkan bahwa, sistem

informasi adalah sekumpulan komponen yang saling berinteraksi

dimana data dikumpulkan, diproses menjadi informasi dan

didistribusikan kepada pemakai untuk mendukung pengambilan

keputusan dan mencapai sasaran.

4. Komponen Sistem Informasi

Dalam suatu sistem informasi terdapat komponen-komponen

seperti (Kadir, 2003):

1. Perangkat keras (Hardware): mencangkup peranti-peranti fisik

seperti komputer dan printer.

2. Perangkat lunak (software) atau program: sekumpulan instruksi

yang memungkinkan perangkat keras untuk dapat memproses data.

3. Prosedur (orang): sekumpulan aturan yang dipakai untuk

mewujudkan pemrosesan data dan pembangkitan keluaran yang

dikehendaki.

4. Orang: semua pihak yang bertanggung jawab dalam

pengembangan sistem informasi, pemrosesan, dan penggunaan

keluaran sistem informasi.

21
5. Basis data (database): sekumpulan tabel, hubungan, dan lain-lain

yang berkaitan dengan penyimpanan data.

6. Jaringan komputer dan komunikasi data: sistem penghubung yang

memungkinkan sumber (resources) dipakai secara bersama atau

diakses oleh sejumlah pemakai.

2.9 UML (Unified Modelling Language)

2.9.1 Pengertian UML

Pada perkembangan teknik pemrograman berorientasi objek,

muncullah sebuah standarisasi bahasa pemodelan untuk pembangunan

perangkat lunak yang dibangun dengan menggunakan teknik

pemrograman berorientasi objek, yaitu Unified Modeling Language

(UML). UML muncul karena adanya kebutuhan pemodelan visual untuk

menspesifikasikan, menggambarkan, membangun, dan dokumentasi

dari sistem perangkat lunak. UML merupakan bahasa visual untuk

pemodelan dan komunikasi mengenai sebuah sistem

dengan menggunakan diagram dan teks-teks pendukung. (Rosa A.S

dan Shalahuddin, 2011:119)

Dalam penulisan tugas akhir ini peralatan pendukung yang

digunakan oleh penulis adalah Unified Modelling Language (UML).

Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah

menjadi standar dalam industri untuk visualisasi, merancang dan

22
mendokumentasikan sistem piranti lunak (Dharwiyanti, 2003:2). UML

menawarkan sebuah standar untuk merancang model sebuah sistem.

Dengan menggunakan UML kita dapat membuat model untuk

semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat

berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta

ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga

menggunakan class dan operation dalam konsep dasarnya, maka ia lebih

cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi

objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML

tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB

atau C.

Pemodelan (modeling) ialah suatu proses di dalam merancang

suatu perangkat lunak sebelum dilakukannya pengkodean (coding).

Melakukan pembuatan sebuah model dari sebuah sistem yang

kompleks sangatlah penting karena kita tidak dapat memahami sistem

secara menyeluruh. Semakin kompleksnya sebuah sistem maka

semakin pentingnya teknik pemodelan yang digunakan dalam

merancang sistem tersebut.

UML didefinisikan sebagai notasi diagram untuk

menggambarkan artefak pada Object-Oriented Analysis and Design

(OOAD). Dengan UML kita bisa memvisualisasikan, menetapkan,

membuat dan mendokumentasikan aplikasi software kita. Saat sistem

software menjadi lebih besar dan lebih kompleks, kita perlu untuk

23
mengatur kekompleksan tersebut dan dalam arti menyederhanakannya

sehingga kita bisa lebih mengertinya. (Barclay and Savage, 2004)

Unified Modelling Language (UML) adalah sistem arsitektur

yang menggunakan Object Oriented Analysis Design dengan

menggunakan satu bahasa yang konsisten untuk menspesifisikan,

memvisualisasikan, membangun, dan mendokumentasikan obyek –

obyek dari sebuah sistem software untuk memodelkan bisnis dan

komponennya. Dengan menggunakan UML dapat membantu tim dari

sebuah proyek untuk berkomunikasi, memeriksa potensi rancangannya

dan menyetujui arsitektur rancangan dari proyek software tersebut.

UML adalah bahasa pemodelan untuk menspesifikasikan,

menvisualisasikan, membangun dan mendokumentasikan artifak- artifak

dari sistem :

1. Di dalam system intensive process, metode diterapkan sebagai

proses untuk menurunkan atau mengevolusikan sistem.

2. Sebagai bahasa, UML digunakan untuk komunikasi yaitu alat

untuk menangkap pengetahuan (semantiks) mengenai satu subyek

dan mengekspesikan pengetahuan (sintaks) yang mempedulikan

subyek untuk maksud berkomunikasi. Subyek adalah sistem yang

dibahas.

3. Sebagai bahasa pemodelan, UML fokus pada pemahaman subyek

melalui formulasi model dari subyek (dan konteks yang terhubung).

Model memuat pengetahuan pada subyek, dan aplikasi dari

pengetahuan ini berkaitan dengan intelejensia.

24
4. Berkaitan dengan unifikasi. UML memadukan praktek rekayasa

terbaik sistem informasi dan industri, meliputi beragam tipe

sistem (perangkat lunak dan non perangkat lunak), domain (bisnis,

perangkat lunak) dan proses siklus hidup.

5. Begitu diterapkan untuk menspesifikasikan sistem, UML dapat

digunakan untuk mengkomunikasi "apa" yang diperlukan dari

sistem dan "bagaimana" sistem dapat direalisasikan.

6. Begitu diterapkan untuk memvisualisasikan sistem, UML dapat

digunakan untuk menjelaskan sistem secara visual sebelum

direalisasikan.

7. Begitu diterapkan untuk membangun sistem, UML dapat

digunakan untuk memadu realisasi sistem serupa dengan

"blueprint".

8. Begitu diterapkan untuk mendokumentasikan sistem, UML dapat

digunakan untuk menangkap pengetahuan mengenai sistem pada

seluruh siklus hidup (Hariyanto, 259).

2.9.2 Sejarah Singkat UML

Pertama kali UML dikembangkan ialah pada akhir tahun 1994

sewaktu Grady Booch dan Jim Rumbaugh dari Rational Software

Corporation memulai pekerjaan mereka di dalam menyatukan The

Booch dan Metode OMT (Object Modelling Technique). Pada myusim

gugur tahun 1995, Ivar Jacobson dan perusahaan yang pernah

menolaknya untuk bergabung dengan Rational dan usaha

25
penggabungan ini menghasilkan metode OOSE (Object Oriented

Software Engineering). Usaha dari Booch, Rumbaugh dan Jacobson

berhasil dengan dikeluarkannya UML versi 0.9 dan versi 0.91 pada

Juni dan Oktober 1996.

Selama kurun waktu tahun 1996, jelas bahwa beberapa organisasi

melihat UML sebagai strategi untuk perusahaan. Pada januari tahun

1997 beberapa 66perusahaan seperti IBM, Object Time, Platinum

Technologu, Ptech, Taskon, Reich Technologies dan Softeam

menggabungkan partner UML untuk bersama-sama membuat

tanggapan UML versi 1.1 yang sudah dilakukan revisi. UML versi 1.1

telah diresmikan oleh Object Management Group (OMG) pada bulan

November 1997, sedangkan UML versi 1.3 dikeluarkan pada kuartal

kedua tahun 1999. Saat ini versi terbaru UML adalah 1.5 yang dirilis

bulan Maret 2003.

2.9.3 Pendahuluan Unified Modeling Language

Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan

syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus

untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk

memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana

bentuk-bentuk tersebut dapat dikombinasikan.

Notasi UML terutama diturunkan dari 3 notasi yang telah ada

sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim

26
Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson

OOSE (Object-Oriented Software Engineering). ( Dharwiyanti, 2003)

Unified Modeling Language mempunyai beberapa tujuan, yaitu :

1. Memberikan model yang siap pakai, bahasa pemodelan visual

yang ekspresif untuk mengembangkan dan saling menukar model

dengan mudah dan dimengerti secara umum.

2. Memberikan bahasa pemodelan yang bebas dari berbagai bahasa

pemrograman dan proses rekayasa.

3. Menyatukan praktek-praktek terbaik yang terdapat dalam

permodelan.

2.9.4 Diagram Unified Modeling Language

Perancangan aplikasi yang penulis lakukan dengan menggunakan

tools UML ini meliputi :

1. Use Case Diagram

Use case adalah deskripsi dari urutan aksi-aksi yang

ditampilkan sistem yang menghasilkan suatu hasil yang terukur

bagi suatu aktor (Nugroho, 2005:26). Use case diagram

menggambarkan fungsionalitas yang diharapkan dari sebuah

system (Dharwiyanti,2003:4). Yang ditekankan adalah “apa”

yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case

merepresentasikan sebuah interaksi antara aktor dengan sistem.

Use case merupakan sebuah pekerjaan tertentu, misalnya login

ke sistem, meng-create sebuah daftar belanja, dan sebagainya.

27
Diagram use-case (Use case diagram) merupakan salah

satu diagram untuk memodelkan aspek perilaku sistem. Masing-

masing diagram use-case menunjukkan sekumpulan use-case,

aktor dan hubungannya. Diagram use-case adalah penting untuk

memvisualisasikan, menspesifikasikan, dan mendokumentasikan

kebutuhan perilaku sistem. Diagram-diagram use-case

merupakan pusat pemodelan perilaku sistem, subsistem, dan

kelas.

Elemen diagram use case adalah :

 Aktor

 Use case

 Hubungan ketergantungan, generalisasi dan asosiasi

Seorang/sebuah aktor adalah sebuah entitas manusia atau

mesin yang berinteraksi dengan sistem untuk melakukan

pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat

membantu bila kita sedang menyusun requirement sebuah sistem,

mengkomunikasikan rancangan dengan klien, dan merancang test

case untuk semua feature yang ada pada sistem.

2. Activity Diagram

Activity diagrams menggambarkan berbagai alir aktivitas

dalam sistem yang sedang dirancang, bagaimana masing-masing

alir berawal, decision yang mungkin terjadi, dan bagaimana

mereka berakhir (Dharwiyanti,2003:7). Activity diagram juga

28
dapat menggambarkan proses paralel yang mungkin terjadi pada

beberapa eksekusi.

Activity diagram merupakan state diagram khusus, di mana

sebagian besar state adalah action dan sebagian besar transisi di-

trigger oleh selesainya state sebelumnya (internal processing).

Oleh karena itu activity diagram tidak menggambarkan

behaviour internal sebuah sistem (dan interaksi antar subsistem)

secara eksak, tetapi lebih menggambarkan proses-proses dan

jalur-jalur aktivitas dari level atas secara umum.

Sebuah aktivitas dapat direalisasikan oleh satu use case

atau lebih. Aktivitas menggambarkan proses yang berjalan,

sementara use case menggambarkan bagaimana aktor

menggunakan sistem untuk melakukan aktivitas.

Pada dasarnya, diagram aktivitas adalah diagram flowchart

yang diperluas yang menunjukkan aliran kendali satuaktivitas ke

aktivitas lainnya. Kita menggunakan diagram ini untuk

memodelkan aspek dinamis sistem. Aktivitas adalah eksekusi

nonatomik yang berlangsung di state machine. Diagram aktivitas

mendeskripsikan aksi-aksi dan hasilnya. Diagram aktivitas

berupa operasi-operasi dan aktivitas-aktivitas di use case.

Diagram aktivitas dapat digunakan untuk :

 Pandangan dalam yang dilakukan di operasi

 Pandangan dalam bagaimana objek-objek bekerja

29
 Pandangan dalam di aksi-aksi dan pengaruhnya pada

objek-objek

 Pandangan dalam dari suatu use case

 Logik dari proses bisnis.

3. Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di

dalam dan di sekitar sistem (termasuk pengguna, display, dan

sebagainya) berupa message yang digambarkan terhadap waktu

(Dharwiyanti,2003:8). Sequence diagram terdiri atas dimensi

vertikal (waktu) dan dimensi horizontal (objek-objek yang

terkait).

Sequence diagram biasa digunakan untuk menggambarkan

skenario atau rangkaian langkah-langkah yang dilakukan sebagai

respons dari sebuah event untuk menghasilkan output tertentu

(Dharwiyanti,2003:8). Diawali dari apa yang men-trigger

aktivitas tersebut, proses dan perubahan apa saja yang terjadi

secara internal dan output apa yang dihasilkan.

Masing-masing objek, termasuk aktor, memiliki lifeline

vertikal. Message digambarkan sebagai garis berpanah dari satu

objek ke objek lainnya. Pada fase desain berikutnya, message

akan dipetakan menjadi operasi/metoda dari class. Activation bar

menunjukkan lamanya eksekusi sebuah proses, biasanya diawali

dengan diterimanya sebuah message. Untuk objek-objek yang

30
memiliki sifat khusus, standar UML mendefinisikan icon khusus

untuk objek boundary, controller dan persistent entity.

Untuk dapat membuat statechart kita dapat dibantu dengan

terlebih dulu menggambarkan urutan kejadian (event trace

diagram) suatu kegiatan (skenario). Urutan kejadian ini

digambarkan dengan diagram sekuen (diagram lacak kejadian).

Diagram sekuen mendeskripsikan komunikasi di antara objek-

objek, meliputi pesan-pesan yang ada dan urutan pesan tersebut

muncul.

Diagram sekuen digunakan untuk :

 Overview perilaku sistem,

 Menunjukkan objek-objek yang diperlukan,

 Mendokumentasikan skenario dari suatu diagram use

case,

 Memeriksa jalur-jalur pengaksesan.

4. Class Diagram

Class adalah sebuah spesifikasi yang jika diinstansiasi akan

menghasilkan sebuah objek dan merupakan inti dari

pengembangan dan desain berorientasi objek. Class

menggambarkan keadaan (atribut/properti) suatu sistem,

sekaligus menawarkan layanan untuk memanipulasi keadaan

tersebut (metoda/fungsi).

31
Class diagram menggambarkan struktur dan deskripsi

class, package dan objek beserta hubungan satu sama lain seperti

containment, pewarisan, asosiasi, dan lain-lain.

Class memiliki tiga area pokok :

1) Nama (dan stereotype)

2) Atribut

3) Metoda

Atribut dan metoda dapat memiliki salah satu sifat berikut :

a) Private, tidak dapat dipanggil dari luar class yang

bersangkutan

b) Protected, hanya dapat dipanggil oleh class yang

bersangkutan dan anak-anak yang mewarisinya

c) Public, dapat dipanggil oleh siapa saja

Diagram kelas juga merupakan diagram paling umum

dipakai di semua pemodelan berorientasi objek. Pemodelan kelas

merupakan pemodelan paling utama di pendekatan berorientasi

objek. Pemodelan kelas menunjukkan kelas-kelas yang ada di

sistem dan hubungan antar kelas-kelas itu, atribut-atribut dan

operasi-operasi di kelas-kelas.

Diagram kelas menunjukkan aspek statik sistem terutama

untuk mendukung kebutuhan fungsional sistem. Kebutuhan

fungsional berarti layanan-layanan yang harus disediakan sistem

ke pemakai. Meskipun diagram kelas serupa dengan model data,

namun kelas-kelas tidak hanya menunjukkan struktur informasi

32
tapi juga mendeskripsikan perilaku. Salah satu maksud diagram

kelas adalah untuk mendefinisikan fondasi bagi diagram-diagram

lain dimana aspek-aspek lain dari sistem ditunjukkan.

Elemen diagram kelas adalah :

 Kelas

 Antarmuka (interface)

 Kolaborasi

 Hubungan (relationship)

2.9.5 Notasi UML

Notasi UML diturunkan dari tiga notasi yang sudah ada

sebelumnya yaitu Grady Booch OOD (Object Oriented Design), Jim

Rumbough OMT (Object Modelling Techique), dan Ivar Jacobson

OOSE (Object Oriented Software Engineering). Notasi UML yang

digunakan sekarang merupakan penggabungan dari tiga notasi tersebut

terdiri dari :

1. Aktor (Actor)

Aktor merepresentasikan peran dari pemakai. Aktor selama

merupakan eksternal terhadap sistem yang dikembangkan. Aktor

tidak perlu harus orang. Aktor dapat berupa sistem eksternal yang

lain seperti mainframe di sistem lama dimanadiperoleh data, atau

perangkat untuk memperoleh data seperti keypad di mesin ATM.

33
Gambar 2.3 Aktor

2. Use Case

Use case merepresentasikansekuen dari aksi-aksi yang

dijamin sistem perangkat lunak untuk dilakukan ke aktor.

Ketika mendefinisikan use case, level granularitas menjadi

penting. Ini bervariasi di antara sistem-sistem. Satu yang tetap

adalah use case seharusnya menyediakan hasil dari nilai yang

diobervasi ke aktor. Umumnya, proses-proses bisnis utama

merupakan kandidat-kandidat bagus untuk use case.

Dengan cara ini, use case individu dapat menuntun usaha

pengembangan, yaitu berfokus pada proses-proses bisnis pokok.

Hal ini memungkinkan kita melacak hasil-hasil kita di seluruh

siklus pengembangan. Use case seharusnya berfokus

pada sistem dari perspektif pembeli.

Gambar 2.4 Use Case

3. Kelas (Class)

Kelas adalah cetak biru untuk objek. Kelas merupakan

tiga compartment

34
Merepresentasikan nama kelas yang didefinisikan di Java.

Merepresentasikan atribut-atribut. Atribur-atribut

berkorespondensi dengan variabel-variabel instan di dalam

kelas. Atribut didefinisikan di pandangan kedua sama dengan

hubungan penyususunan.

Merepresentasikan metode-metode di kelas. Atribut dan

operasi dapat diberi access modifier untuk menyatakan

ketampakan.

(+) menyatakan public

(-) menyatakan private

(#) menyatakan protected

Keberadaan access modifier ini menyatakan ketampakan

di level paket. Jika atribut dan operasi digarisbawahi, ini

menunjukkan statik. Operasi dapat juga mendaftarkan daftar

parameter yang diterimanya, juga tipe yang dikirimkan.

Nama Kelas

Atribut

Operasi

Gambar 2.5 Notasi Kelas

35
4. Package

Paket (package) merupakan pengelompokkan secara

umum. Paket dapat berisi tiga elemen lain. Paket di UML

dapat diterjemahkan langsung ke package di Java. Di Java,

paket dapat berisi paket-paket, kelas-kelas, atau keduanya.

Ketika pemodelan, kita umumnya mempunyai paket yang

secara logik bertindak hanya untuk mengorganisasikan model

kita.

Kita juga mempunyai paket-paket yang secara fisik,

mengimplikasikan paket-paket ini diterjemahkan secara

langsung menjadi paket-paket Java di sistem kita. Paket akan

mempunyai nama yang secara unik mengidentifikasinya.

Gambar 2.6 Notasi Package

5. Interface

Interface adalah kumpulan operasi yang

menspesifikasikan layanan dari kelas. Interface diterjemahkan

secara langsung menjadi interface di Java. Interface dapat

direpresentasikan dengan icon, atau oleh kelas biasa di

Stereotype dengan <<interface>>.

Umumnya, Interface ditunjukkan di diagram kelas

sebagai mempunyai hubungan realisasi (realization) di antara

36
kelas dan interface.

Gambar 2.7 Notasi Interface

6. Interaction

Menurut Hermawan (2004) interaction digunakan untuk

menunjukan baik aliran pesan atau informasi antar objek

maupun hubungan antar objek. Biasanya interaction ini

dilengkapi juga dengan teks bernama operation signature

yang tersusun dari nama operasi, parameter yang dikirim dan

tipe parameter yang dikembalikan.

Gambar 2.8 Notasi Interaction

7. Note

Note digunakan untuk memberikan keterangan dan

komentar tambahan dari suatu elemen sehingga bisa langsung

terlampir dalam model. Note ini bisa ditempelkan ke semua

elemen notasi yang lain.

Gambar 2.9 Notasi Note

37
8. Dependency

Hubungan "using" di antara entitas-entitas

mengimplikasikan spesifikasi satu entitas dapat

mempengaruhi entitas-entitas yang bergantung padanya. Lebih

kongkret, kebergantungan (dependency) ini diterjemahkan ke

suatu tipe pengacuan ke kelas atau objek yang tidak ada di

lingkup instan. Ini termasuk variabel lokal, pengacuan ke

objek yang diperoleh lewat pemanggilan metode, seperti

contoh di bawah, atau pengacuan ke metode statik kelas, dimana

instan kelas tidak ada.

Dependency juga digunakan untuk merepresentasikan

hubungan antara paket-paket. Karena paket berisi kelas-kelas,

kita dapat mengilustrasikan bahwa beragam paket

mempunyai hubungan di antaranya berbasiskan hubungan di

antara kelas-kelas di paket-paket itu.

Gambar 2.10 Notasi Dependency

9. Association

Hubungan struktur antara entitas-entitas yang

menspesifikasikan objek-objek yang terhubung. Anak panah

adalah optional dan menspesifikasikan navigasi. Tidak ada

anak panah mengimplikasikan navigasi dua arah (bidirectional),

yang menghasilkan coupling lebih ketat. Instan dari asosiasi

adalah link, yang digunakan di diagram

38
interaksi untuk memodelkan pesan-pesan yang dikirim di

antara objek-objek.

Gambar 2.11 Notasi Association

2.10 Data Base (Basis Data)

Basis data adalah kumpulan data, yang dapat digambarkan sebagai

aktifitas dari satu atau lebih organisasi yang berelasi (Suyanto,2004:1).

Sedangkan menurut Mcleod (2004:196) “basis data adalah kumpulan

seluruh sumber daya berbasis komputer milik organisasi dan system

manajemen basis data adalah aplikasi perangkat lunak yang menyimpan

struktur basis data, hubungan antar-data dalam basis data, serta berbagai

formulir dan laporan yang berkaitan dengan basis data itu.

Dua tujuan utama dari konsep basis data adalah meminimalkan

pengulangan data (Redudancy Data) dan mencapai Independensi Data

(Mcleod,2004:196). Pengulangan data (Redudancy Data) adalah duplikasi

data dimana data yang sama disimpan dalam beberapa file. Independensi

Data adalah kemampuan untuk membuat perubahan dalam struktur data

tanpa membuat perubahan pada program yang memproses data.

Independansi data dicapai dengan menempatkan spesifikasi data dalam table

dan kamus yang terpisah secara fisik dari program. Kamus data merupakan

istilah basis data yang mengacu pada definisi data yang disimpan dalam

basis data itu sendiri yang dikendalikan oleh system manajemen basis data.

39
2.11 Perangkat Lunak Pendukung Pembangun Sistem

1. PHP (Hypertext Preprocessor)

PHP adalah sebuah bahasa pemrograman yang didesain agar

dapat disisipkan dengan mudah ke halaman HTML. PHP memberikan

solusi sangat murah (karena gratis digunakan) dan dapat berjalan di

berbagai jenis platform. Pada awalnya memang PHP berjalan di

sistem UNIX dan variannya, namun kini dapat berjalan dengan lancar

di lingkungan sistem operasi Windows. Suatu nilai tambah yang luar

biasa karena proses pengembangan program berbasis web dapat

dilakukan lintas sistem operasi.

Dengan luasnya cakupan sistem operasi yang mampu

menjalankan PHP dan ditambah begitu lengkapnya function yang

dimilikinya (tersedia lebih dari 400 function di PHP yang sangat

berguna) tidak heran jika PHP semakin menjadi tren di kalangan

programmer web.

Penemu bahasa pemrograman ini adalah Rasmus Lerdorf, yang

bermula dari keinginan sederhana Lerdorf untuk mempunyai alat

bantu dalam memonitor pengunjung yang melihat situs web pribadinya.

Inilah sebabnya pada awal pengembangannya, PHP merupakan

singkatan dari Personal Home Page tools, sebelum akhirnya menjadi

Hypertext Preprocessor. (Agus, 2008)

Salah satu fitur yang dapat diandalkan oleh PHP adalah

dukungannya terhadap banyak database. Berikut database yang dapat

didukung oleh PHP :

40
- Adabas D

- dBase

- Direct MS-SQL

- Empress

- FilePro(read only)

- FrontBase

- Hyperwave

- IBM DB2

- Infomix

- MySQL

- PostgrSQL

- Oracle

a. Kelebihan PHP

Di antara maraknya pemrograman server web saat ini,

adalah ASP yang berkembang menjadi ASP .NET, JSP, CFML,

dan PHP. Jika dibandingkan di antara 3 terbesar pemrograman

server web di atas. Terdapat kelebihan dari PHP itu sendiri,

yaitu (Mohamad, 2006):

1. PHP merupakan sebuah bahasa script yang tidak

melakukan sebuah kompilasi dalam penggunaanya.

Tidak seperti halnya bahasa pemrograman aplikasi

seperti Visual Basic dan Sebagainya.

41
2. PHP dapat berjalan pada web server yang dirilis oleh

Microsoft, seperti IIS atau PWS juga pada Apache yang

bersifat open source.

3. Karena sifatnya yang open source, maka perubahan dan

perkembangan interpreter pada PHP lebih cepat dan

mudah, karena banyak milis-milis dan developer yang

siap membantu pengembangannya.

4. Jika dilihat dari segi pemahaman, PHP memiliki

referensi yang begitu banyak sehingga sangat mudah

untuk dipahami.

5. PHP dapat berjalan pada 3 operating system, yaitu:

Linux, Unux, dan Windows, dan juga dapat dijalankan

secara runtime pada saat consule.

b. Kekurangan PHP

Seperti pemrograman aplikasi atau web lainnya, PHP

pun memiliki beberapa kelemahan, di antaranya (Mohamad,

2006):

1. Tidak ideal untuk pengembangan skala besar.

2. Tidak memiliki sistem pemrograman berorientasi objek

yang sesungguhnya (sampai versi 4 ini). Namun pada

versi PHP 5 sudah dilengkapi OOP yang sesungguhnya.

42
2. MySQL (Structured Query Language)

MySQL adalah sistem manajemen database yang bersifat open

source. MySQL adalah pasangan serasi dari PHP. MySQL dibuat dan

dikembangkan oleh MySQL AB yang berada di Swedia. MySQL

merupakan sistem manajemen database yang bersifat relasional.

Artinya data-data yang dikelola dalam database akan diletakkan pada

beberapa table yang terpisah sehingga manipulasi data akan menjadi

lebih cepat.

MySQL dapat digunakan untuk mengelola database mulai dari

yang kecil sampai dengan yang sangat besar. MySQL juga dapat

menjalankan perintah-perintah Structured Query Language (SQL)

untuk mengelola database-database relasional yang ada di dalamnya.

(Arief, 2006).

SQL merupakan bahasa komputer standar ANSI (American

National Standars Institute). Dengan SQL dapat mengakses database,

menjalankan queri untuk mengambil data dari database,

menambahkan data ke database, menghapus data di dalam database,

dan meng-update data di dalam database.

Bahasa SQL seperti yang didefinisikan oleh ANSI tersusun atas

3 kelompok pernyatan berdasarkan fungsi dari pernyatan tersebut, yaitu

Data Definition Language (DDL), Data Manipulation Language

(DML), dan Data Control Language (DCL). DDL adalah sekelompok

yang terdiri atas perintah-perintah SQL yang secara langsung membuat

objek database seperti tabel dan indeks. DML

43
adalah sekelompok yang terdiri atas perintah-perintah yang beroperasi

pada data di dalam database. Ini mencakup penyataan-pernyataan

untuk menambahkan data ke dalam tabel atau pernyataan yang

dipakai untuk melakukan queri terhadap database. DCL adalah

sekelompok yang berisi perintah-perintah dalam kelompok yang

merupakan perintah yang dipakai untuk pengaturan keamanan (Suja,

2005:139).

3. XAMPP

XAMPP adalah perangkat lunak gratis, yang mendukung

banyak sistem operasi, merupakan kompilasi dari beberapa program

untuk menjankan fungsinya sebagai server yang berdiri sendiri, yang

terdiri atas program Apache HTTP Server, MySQL database, dan

penterjemah bahasa yang ditulis dengan bahasa pemrogramaan PHP

dan Perl. XAMPP adalah nama yang merupakan singkatan dari X

(empat sistem operasi apapun), Apache, MySQL, PHP dan Perl.

Program ini tersedia dalam GNU General Public License dan bebas,

merupakan web server yang mudah digunakan yang dapat mampu

melayani halaman dinamis. Saat ini, XAMPP tersedia untuk sistem

operasi Microsoft Windows, Linux, Sun Solaris dan Mac OS X.

Dengan XAMPP kita bisa mengaplikasikan Content

Management System seperti Joomla di server perusahaan dalam

jaringan intranet guna penyampaian kebijakan perusahaan,

pengumuman, membuat database 6karyawan, aplikasi cuti online

44
berbasis PHP dan MySql secara online. Dengan XAMPP kita juga

bisa memulai membangun Sistem Informasi Sekolah, daftar mata

pelajaran, profile sekolah, kegiatan sekolah, pengumuman sekolah

dan lain-lain. Dengan kata lain XAMPP merupakan salah satu

peralatan pondasi dasar dalam membangun aplikasi berbasis web

menggunakan bahasa pemrograman PHP dan database MySQL.

(Satria, 2009)

2.12 Metodologi Penelitian

Metodologi merupakan sebuah pendekatan yang dibuat dalam

melaksanakan penelitian, dimana didalamnya terdapat rangkaian langkah-

langkah dalam melakukkan penelitian dan hasilnya (Fitrianah, Devi,

2008:2). Sedangkan definisi penelitian adalah sebuah proses yang sistematis

dalam mengumpulkan dan menganalisis data guna meningkatkan

pengertian/persepsi kita tentang fenomena yang akan kita teliti. (Fitrianah,

Devi, 2008:1).

Metodologi penelitian memiliki beberapa kategori yaitu process-

centered, data-centered dan object-oriented. Metodologi disebut process-

centered apabila menekankan pada pemodelan proses sebagai inti dari

konsep sistem. Disebut data-centered apabila menekankan pada pemodelan

data sebagai inti dari konsep sistem. Sedangkan sebuah metodologi disebut

object-oriented bila berupaya menyeimbangkan fokus bahasan baik proses

dan data pada sebuah model. (Fitrianah, Devi, 2008 : 2).

45
Pada penelitian ini, penulis menerapkan metodologi yang bersifat

data-centered dengan menggunakan Rapid Application Development

(RAD).

Di dalam pengembangan aplikasi ataupun sistem informasi, terdapat

beberapa metodologi pengembangan sistem yang sudah dikenal, antara lain :

1. Waterfall

Untuk mengembangkan aplikasi dibutuhkan metode

atau model pengembangannya, salah satunya adalah model

dengan pendekatan sekuensial (Pressman,1992:24). Model

sekuensial linier untuk software engineering, sering disebut

juga dengan siklus kehidupan klasik atau model air terjun.

Model ini mengusulkan sebuah pendekatan kepada

perkembangan software yang sistematik dan sekuensial yang

mulai pada tingkat dan kemajuan sistem pada seluruh analisis,

desain, kode, pengujian, dan pemeliharaan.

2. RAD (Rapid Application Development)

Pengembangan Aplikasi cepat (Rapid Application

Development) adalah suatu pendekatan berorientasi objek

terhadap pengembangan system yang mencakup suatu metode

pengembangan serta perangkat-perangkat lunak (Kendall,

Kenneth E, Julie E Kendall, 2004:237). Model RAD ini dibuat

oleh James Martin pada tahun 1991. RAD merupakan sebuah

46
adaptasi “kecepatan tinggi” dari model sekuensial linier di

mana perkembangan cepat dicapai dengan menggunakan

pendekatan kontruksi berbasis komponen. Jika kebutuhan

dipahami dengan baik, proses RAD memungkinkan tim

pengembangan menciptakan “sistem fungsional yang utuh”

dalam periode waktu yang sangat pendek (kira-kira 60 sampai

90 hari).

Metode RAD mempunyai 3 (tiga) tahapan utama, yaitu :

(Kendall, Kenneth E, Julie E Kendall, 2004:238)

a. Perencanaan Syarat-syarat

Pada tahap ini, user dan analyst melakukan semacam

pertemuan untuk melakukan identifikasi tujuan aplikasi

atau sistem dan melakukan identifikasi kebutuhan

informasi untuk mencapai tujuan. Pada tahap ini hal

terpenting adalah adanya keterlibatan dari kedua belah

pihak bukan hanya sekedar persetujuan proposal yang

sudah dibuat. Untuk lebih jauh lagi, keterlibatan user

bukan hanya dari satu tingkatan pada suatu organisasi,

melainkan beberapa tingkatan organisasi, sehingga

informasi yang dibutuhkan untuk masing-masing user

dapat terpenuhi dengan baik.

b. Workshop Design

Pada tahap ini adalah melakukan proses desain dan

melakukan perbaikan-perbaikan apabila masih terdapat

47
ketidaksesuaian desain antara user dan analyst. Untuk

tahap ini maka keaktifan user yang terlibat sangat

menentukan untuk mencapai tujuan, karena user bias

langsung memberikan komentar apabila terdapat

ketidaksesuaian pada desain.

c. Implementasi

Setelah desain dari sistem yang akan dibuat sudah

disetujui baik itu oleh user dan analys, maka pada tahap

ini programmer mengembangkan desain menjadi suatu

program. Setelah program selesai baik itu sebagian

maupun secara keseluruhan, maka dilakukan proses

pengujian terhadap program tersebut apakah terdapat

kesalahan atau tidak sebelum diaplikasikan pada suatu

organisasi.

Menurut Kendall & Kendall (2010), model RAD memiliki

keuntungan sebagai berikut :

1. Dapat mempersingkat waktu yang biasanya diperlukan

dalam SHPS (Siklus Hidup Pengembangan Sistem)

tradisional antara perancangan dan penerapan sistem

informasi.

2. Pengembangan aplikasi cepat dapat digunakan sebagai

perangkat yang tajam dan dimaksudkan untuk

memperbaharui, meningkatkan dan menyeleksi bagian-

bagian terpilih dari suatu sistem.

48
3. Model Spiral

Model spiral (spiral model) adalah model proses

software yang evolusioner yang merangkai sifat iteratif dari

prototipe dengan cara kontrol dan aspek sistematis dari model

sekuensial linier (Suyanto, Asep Herman, 2005:8). Model ini

berpotensi untuk pengembangan versi pertambahan software

secara cepat. Di dalam model spiral, software dikembangkan

di dalam suatu deretan pertambahan. Selama awal iterasi, rilis

inkremental bisa merupakan sebuah model atau prototipe kertas.

Selama iterasi berikutnya, sedikit demi sedikit dihasilkan versi

sistem rekayasa yang lebih lengkap.

Perbandingan dari ketiga metodologi tersebut dapat dilihat pada tabel

berikut ini (Widiyaningrum, Retno Ayu, 2009:38):

Tabel 2.1 Perbandingan Metodologi Penelitian I

Perbandingan Waterfall RAD Spiral


Karakteristik Salah satu point yang Aspek utama yang Model spiral life
menjadi karakteristik dimiliki oleh
utama yang dimiliki RAD adalah developer model cycle ini
menggabungkan
oleh model waterfall dapat membangun antara model
adalah tidak akan ada ebuah software dengan waterfall dengan
fase yang selesai cara acak untuk model
hingga dokumentasi mempercepat pengerjaan prototyping
dari fase tersebut uatu produk. Biasa dengan
selesai dibuat dan digunakan pada project menambahkan
produk yang berskala kecil – risk analysis pada
dihasilkan pada fase menengah. setiap fasenya.
tersebut diterima oleh
software quality
assurance (SQA)
group.

49
Tahapan 1. Requirement 1. Analysis : client dan 1. Customer
2. Analysis developer bersama- Communicatio
3. Design sama berinteraksi dan n : komunikasi
4. Implementation bereksperimen antara
5. Postdelivery dengan prototype pengembang
maintenance awal yang telah ada. dengan
6. Retirement Jika client pelanggan.
menginginkan 2. Planning :
adanya perubahan penentuan
pada protoype yang tujuan,
ada, maka developer alternatif dan
harus batasan.
menggambarkan 3. Risk Analysis :
ulang spesifikasi analisa
yang diinginkan oleh alternatif dan
client. Hal ini terus identifikasi/pe
dilakukan hingga mecahan
kedua pihak resiko.
meyakini bahwa 4. Engineering :
produk yang akan pengembanga
dibuat tersebut telah n level
memenuhi kebutuhan berikutnya
client. dari produk.
2. Design : developer 5. Construction
melakukan and release :
perancangan- testing,
perancangan yang instalasi, dan
sesuai dengan menyediakan
delivery product support
yang dihasilkan dari termasuk
tahap analysis. dengan
3. Prototyping cycles : training pada
dilakukan pengerjaan user dan
dari design yang pembuatan
telah ada. Pada dokumentasi.
model RAD, di tahap 6. Customer
ini memungkinkan Evaluation :
untuk dilakukan penilaian
perubahan pada terhadap hasil
design produk yang engineering.
ada, jika diharuskan
adanya perubahan
yang mengacu
kepada produk yang
berhasil dibuat.
4. Testing : developer
masih dapat

50
memasuki tahapan
baik analysis, design,
maupun
implementation,
sesuai dengan
kebutuhan
maintenance yang
dilakukan

Kelebihan 1. Sederhana dan 1. Hasil pengembangan Model ini baik


mudah digunakan. bisa lebih cepat untuk digunakan
2. Mudah diatur. dibandingkan SDLC pada
3. Baik digunakan lainnya pengembangan
pada 2. Memerlukan biaya software internal
pengembangan yang lebih sedikit yang berskala
aplikasi dimana 3. Mementingkan dari besar
requirement telah segi bisnis dan
diketahui. teknik
4. Berkonsentrasi pada
sudut pandang user
5. Menyediakan
kemungkinan
perubahan secara
cepat sesuai
permintaan user
6. Menghasilkan jarak
kesesuaian yang
kecil antara
kebutuhan user dan
spesifikasi sistem
7. Waktu, biaya, dan
effort minimal
Kekurangan 1. Memiliki resiko 1. RAD memerlukan Model ini dapat
besar. sumber daya menyulitkan jika
2. Pendefinisian manusia yang digunakan pada
kebutuhan sistem memadai untuk project berskala
memakan waktu menciptakan jumlah kecil.
yang lama tim RAD yang baik.
3. Tidak cocok untuk 2. RAD menuntut
digunakan untuk pengembangan dan
aplikasi yang pelanggan memiliki
object-oriented. komitmen di dalam
4. Tidak cocok untuk aktivitas rapid-fire
digunakan pada yang diperlukan
project yang untuk melengkapi
panjang. sebuah sistem, di
dalam kerangka

51
waktu yang sangat
diperpendek.
3. Kecepatan yang
tinggi dengan biaya
minimal
kemungkinan besar.
4. Proyek mungkin
berakhir dengan
lebih banyak
tambahan kebutuhan
daripada yang telah
dipenuhi
5. Potensial adanya
penambahan fitur
6. Sulit membuat
modul yang dapat
digunakan kembali
Dalam penelitian ini, penulis memutuskan untuk menggunakan

metodologi Rapid Application Development (RAD), dengan alasan :

a. Penelitian yang dilakukan masih berskala kecil.

b. Waktu pengembangan singkat.

c. RAD merupakan pendekatan berorientasi objek terhadap

pengembangan system, dimana sesuai dengan program yang penulis

gunakan yaitu Framework Codeigniter yang merupakan pemrograman

berorientasi objek.

2.13 Literatur Sejenis

(Halimatus sadiyah, 2010) Salah satu halangan dalam

perkembangan intranet perusahaan bagaimana manajemen yang efektif dari

otorisasi data. Salah satu teknik yang digunakan adalah Role-Based Access

Control (RBAC). RBAC dapat menggambarkan struktur suatu organisasi.

Hal ini dapat dilakukan dengan membuat suatu fungsi yang di kelompokkan

52
ke dalam role dan user dimasukkan pada salah satu atau lebih dari role.

Agar informasi yang berada pada aplikasi hanya dapat di akses oleh orang

yang mempunyai hak berdasarkan pembagian rule. Dengan fasilitas yang

diberikan untuk semua user, baik Admin ataupun user biasa, di harapkan

sistem ini digunakan berdasarkan kebutuhan masing masing tiap user. Dengan

pengembangan sistem pembagian hak akses ini di harapkan dapat

mempermudah pengisian nilai pada mata kuliah, mengetahui perkembangan

mutu pendiikan mahasiswa dengan memantau nilai pada mahasiswa, dapat

insert nilai pada data mahasiswa yang mengikuti kuliah, serta dapat melihat

history sebuah nilai sebelum sebuah nilai menjadi nilai huruf. Dengan

menggunakan aplikasi berbasis web yang di dukung dengan framework,

akan memudahkan developer untuk mengembangkan aplikasi ini. Karena

dengan menggunakan framework, sistem pengaturan data lebih terstruktur,

sehingga menjadi lebih mudah untuk di analisa dan di kembangkan.

(Yudha Wicaksono, 2011) Dalam kegiatan pengelohan data barang

di sebuah toko saat ini masih banyak yang menggunakan cara manual.

Sekarang ini tuntutan untuk menggunakan teknologi komputer sangatlah

wajar karena zaman sudah canggih Banyaknya data barang yang ada

membuat pegawainya kerepotan dalam merapikan setiap data yang ada.

Untuk mempermudah hal tersebut dibutuhkan sebuah aplikasi yang dapat

mendukung proses tersebut. Data barang yang ada di toko IPC cukup

banyak. Dengan demikian data yang cukup banyak tersebut perlu ditata dan

dikelompokkan sesuai dengan kriteria yang ada dengan menggunakan

sebuah aplikasi pengolahan data toko barang yang berbasis framework

53
codeigniter dengan menggunakan metode Model View Controller (MVC).

Dengan adanya aplikasi diharapkan dapat membatu pihak toko untuk dapat

mengelola datanya dengan baik. Aplikasi ini merupakan sarana untuk

mempermudah proses pengelolan data barang di dalam toko yang meliputi

stok barang, pembelian, penjualan, retur pembelian dan pembayaran kredit

oleh pihak toko secara komputerisasi dan aplikasi ini berjalan secara offline.

Supaya tidak menggunakan sistem manual lagi dalam merekapitulasi data.

(ASWIN ROSADI, 2011) Dengan adanya teknologi internet yang

berkembang pada saat ini membuat jarak, tempat, serta kecepatan bertransaksi

akan semakin dapat dipermudah. Salah satu sarana untuk mempercepat itu

adalah Electronic Commerce, yaitu dengan pembuatan penjualan produk baju

busana muslim di Butik Anaya Collection. Langkah awal yang kita lakukan

adalah dengan pengumpulan data berupa data toko, dan produk yang dijual,

kemudian menganalisis data dan merancang sistem yang diharapkan bisa

memenuhi keinginan customer dalam membeli produk secara mudah dan

cepat. Langkah terakhir yang dilakukan adalah dengan pembuatan

implementasi sistem. Pembuatan E-Commerce Butik

Anaya Collection Berbasis Web PHP Dan Menggunakan Framework

Codeigniter ini dibuat dengan arsitektur web Framework Codeigniter dan

menggunakan bahasa pemograman PHP, MySQL sebagai data base-nya dan

apache sebagai web server-nya, dibantu juga dengan penggunaan

phpmyadmin dalam pembuatan tabel, selain itu penulis juga menggunakan

macromedia dreamweaver sebagai tool pembantu untuk memperindah

tampilan web. Dengan alasan untuk memperoleh kemudahan mendapatkan

54
segala informasi terbaru mengenai produk baju busana muslim dan

pembeliannya secara cepat dan tepat maka penulis telah berhasil membuat

“E-Commerce Butik Anaya Collection Berbasis Web PHP Dan Menggunakan

Framework Codeigniter di Surabaya” yang bisa memenuhi kebutuhan

customer tentang segala sesuatu yang berhubungan dengan baju busana

muslim.

55
BAB III

METODOLOGI PENELITIAN

3.1 Tempat dan Waktu Penelitian

Penelitian yang penulis lakukan bertempat di Apotek Madani yang

berlokasi di Cileungsi Bogor mulai dari bulan Juli 2012 sampai bulan

Oktober 2012.

3.2 Metode Pengumpulan Data

Penelitian ini terdiri dari beberapa pengumpulan data yaitu :

3.2.1 Studi Pustaka

Pada tahapan studi pustaka dilakukan dengan mengumpulkan

data dan informasi dengan cara penelitian kepustakaan, penulis

mencari referensi-referensi yang relevan dengan objek yang akan

diteliti. Referensi- referensi tersebut berasal dari perpustakaan, toko

buku, artikel, maupun online melalui internet serta informasi lain

yang berkaitan dengan penelitian ini. Informasi yang didapatkan

digunakan dalam penyusunan landasan teori, metodologi penelitian

serta pengembangan sistem secara langsung. Pustaka - pustaka yang

dijadikan acuan dapat dilihat di daftar pustaka.

56
Untuk studi literature sejenis, abstrak dapat dilihat pada bab 2.

Berikut adalah hal yang membedakan antara aplikasi penulis dengan

literature yang dipakai :

Tabel 3.1 Perbadingan Literatur Sejenis

No Nama / Universitas Judul Skripsi Kelebihan Kelemahan


1. Halimatus sadiyah, Pengembangan Dengan Aplikasi yang
UIN Jakarta 2010 Aplikasi pengembangan dibuat belum
menejemen sistem pembagian disajikan dalam
aplikasi otorisasi hak akses ini di bentuk relevansi
data harapkan dapat
user. Sehingga
menggunakan mempermudah
hanya berfokus
teknik Role- pengisian nilai pada
Based Access mata kuliah, pada user admin,
Control (RBAC) mengetahui hal ini cukup
perkembangan berbahaya karena
mutu pendiikan admin dapat
mahasiswa dengan mengelola semua
memantau nilai proses tanpa
pada mahasiswa, batasan.
dapat insert nilai
pada data
mahasiswa yang
mengikuti kuliah,
serta dapat melihat
history sebuah nilai
sebelum sebuah
nilai menjadi nilai
huruf.
2. Aswin Rosadi, UIN Pembuatan E- memperoleh Aplikasi yang di
Jakarta 2011 Commerce Butik kemudahan buat belum bisa
Anaya Collection mendapatkan segala di akses
Berbasis Web informasi terbaru sepenuhnya
PHP mengenai produk secara online,
baju busana muslim
sehingga
dan pembeliannya
secara cepat dan mengharuskan
tepat maka penulis costumper
telah berhasil mendatangi lokasi
membuat “E- butik
Commerce Butik
Anaya Collection
Berbasis Web PHP
Dan Menggunakan
Framework
Codeigniter

57
3. Yudha Wicaksono, Aplikasi Dengan adanya Data barang yang
UIN Jakarta 2011 pengolahan data aplikasi diharapkan ada di toko IPC
toko barang yang dapat membatu cukup banyak dan
berbasis pihak toko untuk Aplikasi yang di
framework dapat mengelola buat hanya bisa
codeigniter datanya dengan diakses secara
dengan baik. Aplikasi ini offline
menggunakan merupakan sarana
metode Model untuk
View Controller mempermudah
(MVC) proses pengelolan
data barang di
dalam toko yang
meliputi stok
barang, pembelian,
penjualan, retur
pembelian dan
pembayaran kredit
oleh pihak toko
secara
komputerisasi dan
aplikasi ini berjalan
secara offline.

3.2.2 Studi Lapangan

1. Wawancara

Wawancara dilakukan kepada Bapak Mufti Djusnir Apt.

MSi. selaku pemilik Apotek Madani dan bagian Administrasi

Tiara Trinindya Herowati pada tanggal 4 Juli 2012. Tujuan

penulis melakukan wawancara adalah untuk mengumpulkan data

yang dibutuhkan untuk pengembangan sistem dari segi

arsitektur aplikasi, teknologi yang digunakan serta

pemanfaatannya apakah bermanfaat bagi Apotek untuk ke

depan nanti.

58
Adapun data-data tersebut adalah: daftar nama dan jenis

obat, harga obat, serta cara penempatan obat pada rak obat.

2. Observasi

Observasi adalah sebuah metode pengumpulan data dengan

cara pengamatan atau peninjauan langsung terhadap objek

penelitian, yaitu mengumpulkan, menelaah, dan mengamati

setiap aktivitas beserta data-data. (lampiran A:127)

Guna mengumpulkan informasi mengenai kebutuhan

sistem (sistem requirements) penulis melakukan pengumpulan

data dengan cara observasi di Apotek Madani Cileungsi Bogor

Jawa Barat, yang dalam hal ini adalah Aplikasi Apotek

Berbasis Web. Penulis ke lapangan untuk mengetahui sistem

yang sedang berjalan saat ini. Hal ini perlu dilakukan agar

dapat melakukan analisis terhadap sistem yang telah berjalan

serta menentukan rancangan sistem baru yang akan

dibangunagar tetap sinkron dengan sistem yang sudah ada,

lebih lanjut sistem yang berjalan akan dibahas pada sub-bab

4.2.1.1.

3.3 Metode Pengembangan Sistem

Dalam pengembangan aplikasi Klinik ini penulis memilih untuk

menggunakan Rapid Application Development (RAD). Pemilihan metode

penelitian Rapid Application Development (RAD) ini dilakukan dengan

59
alasan aplikasi yang akan dibuat merupakan aplikasi yang dirancang

dengan konsep object oriented. Pemilihan metodologi ini juga dengan

alasan bahwa aplikasi ini adalah aplikasi kecil atau menengah sehingga

cukup dengan metode yang ringkas dan tidak membutuhkan proses yang

panjang.

Perbandingan antara metodologi lainnya dapat dilihat pada tabel

berikut ini (Herly Gunawan, 2013:54):

Tabel 3.2 Perbandingan Metodologi Penelitian II


Perbandingan Waterfall Prototyping RAD
Kelebihan 1. Cocok untuk 1. Melibatkan user 1. Mengikuti
sistem software dalam analisa dan tahapan
berskala besar. desain. pengembangan
2. Pengerjaan 2. Untuk digunakan sistem seperti
Project system secara standalone. umumnya, tetapi
akan terjadwal mempunyai
dengan baik dan kemampuan
mudah dikontrol. untuk
menggunakan
kembali
komponen yang
ada.
2. Setiap fungsi
dapat
dimodulkan
dalam waktu
tertentu dan

60
dapat
dibicarakan oleh
tim RAD yang
terpisah dan
kemudian
diintregasikan
sehingga
waktunya lebih
efisien.

Kekurangan 1. Persyaratan 1. Kurang fleksibel 1. Tidak cocok


sistem harus dalam untuk proyek
digambarkan menghadapi skala besar.
dengan jelas. perubahan 2. Risiko teknis
2. Sulit untuk 2. Prototype yang yang tinggi juga
mengadaptasi dihasilkan tidak kurang cocok
jika terjadi selamanya mudah untuk model ini.
perubahan dirubah.
spesifikasi pada
suatu tahapan
pengembangan.

3.3.1 Fase Perencanaan Syarat – Syarat (Requirement Planning)

Dalam tahap ini pihak apotek dan penulis bertemu untuk

mengidentifikasi tujuan-tujuan aplikasi atau sistem serta

menidentifikasi kebutuhan aplikasi yang ditimbulkan dari tujuan-

tujuan tersebut. Dalam pertemuan ini diperoleh perencanaan yang akan

dibuat ke dalam system, yaitu :

61
1. Pengamatan terhadap sistem yang sedang berjalan di Apotek

Madani mengenai sistem pembagian level untuk user admin

dan operator.

2. Melakukan identifikasi masalah yang terjadi pada sistem yang

sedang berjalan, seperti proses transaksi obat, input, edit dan

delete obat, stock obat, history transaksi keuangan, serta untuk

managemen user.

3. Menentukan alur bisnis dan aplikasi serta wilayah persoalan

data yang akan didukung oleh sistem yang akan dikembangkan

serta ditentukan pula jangkauan atau batasan sistem. Solusi

permasalahan menguraikan tentang beberapa usulan alternatif

yang dapat membantu menyelesaikan permasalahan yang ada

dalam sistem perusahaan.

3.3.2 Fase Desain Workshop (Workshop Design)

Tahap ini merupakan tahap untuk merancang dan memperbaiki

yang dapat digambarkan sebagai workshop. Selama workshop desain

RAD, pihak klinik merespon working prototype yang ada dan

penulis memeperbaiki modul-modul yang dirancang menggunakan

perangkat lunak berdasarkan respon pihak klinik. Adapun metode

desain yang digunakan terdiri dari beberapa tahapan, yaitu:

1. Usecase Diagram, menggambarkan bagaimana sistem yang

digunakan.

62
2. Activity Diagram, penulis menggambarkan aliran keseluruhan

kegiatan, dan masing-masing usecase diagram dapat membuat

satu kegiatan.

3. Sequence Diagram, Penulisan menjelaskan interaksi objek

yang disusun dalam suatu urutan waktu. Penullis

memperlihatkan tahap apa yang seharusnya terjadi untuk

menghasilkan sesuatu didalam usecase.

4. Class Diagram, penulis menggambarkan kelas dan

hubungannya, dan penjelasan detail tiap-tiap kelas di dalam

model desaain (dalam logical view) dari suatu sistem.

3.3.3 Fase Implementasi (Implementation)

Pada tahap ini, penulis melakukan tahapan implementasi dari

hasil workshop desain yang telah dilakukan. Tahap implementasi ini

meliputi :

1. Membangun Sistem

Pada tahap ini sistem dirancang dengan menggunakan

Framework Codeigniter 1.7.2 dengan bahasa pemrograman

PHP versi 5.2.8 dan database MySQL versi 5.1.30

2. Menguji Sistem

Pada tahap ini penulis melakukan pengujian atau testing

terhadap sistem, dan melakukan pengenalan terhadap sistem.

Untuk pengujian ini, penulis menerapkan 2 (dua) macam

63
pengujian yaitu secara whitebox (pengujian mandiri) dan secara

blackbox (pengujian lapangan).

Dalam hal ini dilakukan pengujian masing-masing fitur dan

fungsi untuk mengetahui apakah aplikasi dapat bekerja dengan

semestinya. Pengujian dilakukan dengan menguji coba aplikasi

secara mandiri dan melakukan testing mengenai apakah

fitur-fitur aplikasi sudah berjalan dengan semestinya atau

tidak.

64
3.4 Alur Kerangka Penelitian

Penentuan Tema

Studi Pustaka
Studi Lapangan
Studi Literatur

Fase Perencanaan Merumuskan masalah,


Syarat Kebutuhan, Tujuan dan Syarat

Workshop Design Perancangan Usecase, Activity,


Sequence, Class
Perancangan Diagram
Database

Perancangan
Interface

Fase Implementasi
Database

BlackBox Testing

Tanggapan User Perbaikan dan


Tambahan
Kesimpulan dan
Saran

Gambar 3.1 Alur Kerangka Penelitian

65
BAB IV

HASIL DAN PEMBAHASAN

4.1 Gambaran Umum Apotek Madani

4.1.1 Profil Apotek

Pada awalnya Apotek Madani merupakan apotek penjualan obat

umum milik perseorangan. Apotek ini mulai dirintis pada tanggal 24

Februari 2008. Salah satu tujuan dari di buatnya apotek ini adalah

memberikan pelayanan ketersediaannya obat berkualitas yang sesuai

dengan kaidah – kaidah pengobatan menurut ilmu kedokteran. Oleh

karena semakin berkembang, dimana jumlah kunjungan pembeli dari

bulan ke bulan semakin banyak, sementara jam pelayanan yang

diberikan sangat pendek, yaitu mulai pukul 16.00 sampai dengan

pukul 20.00, maka untuk memberikan pelayanan yang lebih optimal

dengan waktu yang lebih panjang, sehingga di tambah jam kerja yang

dapat memberikan pelayanan tersebut, dimana pelayanannya menjadi

pukul 09.00 sampai dengan pukul 22.00.

4.1.2 Visi dan Misi Apotek Madani

Apotek Madani memiliki visi dan misi sebagai berikut :

1. Visi Apotek

Menjadi pusat pelayanan yang optimal yang selalu

berpedoman pada ilmu farmasi dan kedokteran.

66
2. Misi Apotek

a) Memberikan pelayanan kesehatan professional yang

selalu berpedoman pada kode etik farmasi dan

kedokteran.

b) Selalu menjamin ketersediaan obat yang terbaik untuk

pelanggan dengan menyediakan obat bermutu dan

terjangkau.

4.1.3 Struktur Organisasi Apotek dan Fungsi

Struktur organisasi Apotek Madani adalah sebagai berikut :

Gambar 4.1 Struktur Organisasi

Adapun fungsi atau tugas dari masing – masing bagian adalah

sebagai berikut :

1. Kepala Apotek

a) Bertanggung jawab atas seluruh kegiatan yang ada

pada apotek.

b) Melakukan pemeriksaan laporan pembukuan.

67
c) Menetapkan kebijakan dalam bidang medis, yang

berguna bagi peningkatan pelayanan medis pada

apotek.

d) Menandatangani dokumen penting dan menyusun

program kerja apotek.

e) Mengatur dan mengontrol terhadap semua kegiatan

yang dipimpinnya melalui staf-stafnya.

2. Farmasi / Apoteker

a) Sebagai tempat pelayanan yang memberikan obat

kepada pasien yang sudah mendapatkan resep obat dari

dokter maupun individu.

b) Sebagai tempat pengadaan obat untuk keperluan

apotek.

c) Mengatur persediaan obat.

Dalam hal ini penulis membuatkan note / resep obat

yang akan digunakan oleh bagian administrasi.

3. Kasir / Administrasi

a) Memberikan pelayanan kepada pasien yang melakukan

pembayaran.

b) Memberikan laporan keuangan kepada Kepala Apotek.

68
4.2 Metode Pengembangan Sistem

4.2.1 Fase Perencanaan Syarat – syarat (Requirement Planning)

4.2.1.1 Analisis Sistem yang Berjalan

Analisis sistem ditujukan untuk menganalisis sistem

yang sedang berjalan, sehingga dapat dipahami keadaan

sistem yang ada.

Gambaran sistem yang berjalan saat ini pada Apotek

Madani, yaitu :

1. Pelanggan / pasien membeli obat sesuai dengan kebutuhan

penyakit yang diderita.

2. Lalu bagian farmasi / apoteker menyediakan obat yang di

pesan si pasien.

3. Kemudian bagian farmasi memberikan catatan laporan obat

apa saja dan jumlah obat yang di beli pasien kepada

operator / kasir.

4. Pasien lalu membayar total harga obat yang telah dibeli

kepada kasir, lalu kasir membuatkan transaksi di sistem

apotek dan memberikan struk bukti pembelian obat kepada

pasien.

5. Kepala Apotek dapat melakukan pemeriksaan terhadap

seluruh transaksi yang pernah di lakukan setiap harinya.

69
4.2.1.2 Identifikasi Masalah

Setelah menganalisa proses pelayanan kesehatan mulai

dari pendaftaran berobat sampai proses konsultasi pada

Apotek Madani, maka peneliti akan menguraikan beberapa

permasalahan yang terdapat pada proses pelayanan kesehatan

yang sedang berjalan, antara lain:

1. Pengelola Apotek menginginkan sebuah sistem aplikasi

yang fleksibel, dalam arti pengelola dapat memeriksa

sistem administrasi keuangan di mana pun secara online

tanpa harus datang ke apotek itu sendiri.

2. Staf-staf yang bekerja di apotek juga ingin aplikasi selain

yang mudah di operasikan (user friendly) juga mampu

memberikan kemudahan dalam bertransaksi maupun dalam

menyediakan laporan administrasi keuangan sebagai

tanggung jawab mereka kepada pihak pengelola apotek.

4.2.1.3 Usulan Penyelesaian Masalah

Dari hasil analisa permasalahan, peneliti mencoba untuk

memberikan solusi terhadap masalah yang terjadi, yaitu:

1. Dengan menerapkan aplikasi berbasis web agar

memudahkan dari pihak pengelola dalam memeriksa

laporan administrasi keuangan sehingga diharapkan mampu

mengatasi kerugian yang dialami pengelola apotek.

70
2. Membuat aplikasi sederhana namun mampu mencakup

semua sistem transaksi yang di butuhkan dan juga database

obat-obatan.

4.2.2 Fase Perancangan (Workshop Design)

Dalam fase perancangan, penulis menggunakan pendekatan

UML untuk pemodelan sistem. Adapun perancangan sistem yang

penulis buat meliputi perancangan penetuan aktor, perancangan

usecase diagram, usecase scenario, activity diagram, sequence

diagram, dan class diagram.

4.2.2.1 Penentuan Aktor

Pada sistem yang diusulkan ini, penulis memisahkan

Aktor menjadi 2 (dua) tingkatan, yaitu admin, dan

operator(kasir). Wewenang masing-masing aktor tersebut

adalah sebagai berikut :

1. Admin

Admin merupakan aktor yang menempati tingkatan

tertinggi pada sistem. Admin memiliki wewenang yaitu :

1. Transaksi penjualan

2. Input/tambah data obat.

3. Edit data obat.

4. Delete data obat.

5. Lihat data obat.

71
6. Cari obat.

7. Print data obat.

8. History transaksi.

9. Laporan transaksi

10. Tambah/input user.

11. Edit user.

12. Delete user.

2. Operator / kasir

Operator merupakan tingkatan yang berada di bawah

admin pada sistem. Operator memiliki wewenang yaitu :

1. Transaksi penjualan.

2. Lihat Obat.

3. Cari obat

4. Print data obat.

5. History transaksi.

6. Laporan transaksi.

Tabel 4.1 Penentuan Aktor

No Aktor Deskripsi

1 Admin Pemilik apotek atau seseorang yang di beri


wewenang oleh pemilik apotek untuk
dapat mengakses keseluruhan dalam
aplikasi ini. Admin memiliki otoritas
penuh dalam melihat laporan transaksi

72
serta melakukan penambahan, pengeditan,
penghapusan dan melihat data obat
maupun management user.

2 Operator Operator adalah staf / kasir yang


menggunakan aplikasi apotek untuk
melakukan transaksi dan hanya dapat
melihat informasi data obat serta laporan
transaksi.

4.2.2.2 Perancangan Usecase Diagram

Tahapan yang dilakukan dalam membuat usecase

diagram menentukan kandidat aktor dan interaksi antara aktor

dan usecase - usecase yang telah didefinisikan melalui

pembuatan usecase diagram.

Pada tabel 4.2 penulis menjelaskan interaksi aktor

dengan sistem yang sudah dirancang.

Tabel 4.2 Usecase Diagram interaksi Aktor dengan sistem.

Usecase
No Deskripsi Aktor
Name

1 Login Usecase menggambarkan Admin dan


kegiatan menginput username
dan password untuk masuk ke Operator
dalam aplikasi apotek.
2 Transaksi Usecase menggambarkan Admin dan
kegiatan transaksi penjualan
obat. Operator

3 Input Obat Usecase menggambarkan Admin


kegiatan menambah data obat.

73
4 Edit Obat Usecase menggambarkan Admin
kegiatan merubah data obat.
5 Delete Obat Usecase menggambarkan Admin
kegiatan menghapus data obat.
6 Lihat Obat Usecase menggambarkan Admin dan
kegiatan melihat data obat.
Operator

7 Cari Obat Usecase menggambarkan Admin dan


kegiatan mencari data obat.
Operator

8 Print Data Usecase menggambarkan Admin dan


Obat kegiatan mencetak data obat.
Operator

9 History Usecase menggambarkan Admin dan


Transaksi kegiatan melihat transaksi obat
per-user dan per-hari. Operator

10 Laporan Usecase menggambarkan Admin dan


Penjualan kegiatan melihat transaksi obat
per-user dan per-hari. Operator

11 Manage User Usecase menggambarkan Admin


kegiatan menambah, mengedit,
dan menghapus data user.
12 Logout Usecase menggambarkan Admin dan
proses keluar dari aplikasi
apotek. Operator

Berikut ini adalah gambar Use case diagram yang

menggambarkan proses kegiatan aplikasi.

74
Gambar 4.2 Usecase Diagram Admin

75
Gambar 4.3 Usecase Diagram Operator / Kasir

4.2.2.3 Perancangan Usecase Scenario

Pada proses gambar 4.2 dan gambar 4.3 akan dijelaskan

lebih rinci tabel usecase scenario. Usecase scenario berfungsi

menjelaskan lebih rinci modul-modul yang terdapat pada

aplikasi apotek berbasis website. Usecase scenario terdiri dari:

a) Usecase Name : nama usecase yang

dideskripsikan

b) Actor : yang terlibat

c) Description : deskripsi usecase

76
d) Pre Condition : syarat penting bagi usecase

untuk mengulang

e) Action : kegiatan yang dilakukan

oleh usecase

f) Post Condition : kegiatan setelah usecase

dilaksanakan

Berikut adalah Usecase Scenario dari diagram usecase

di atas:

Tabel 4.3 Usecase Scenario Login

Use case Name Login


Use case Id 1
Actor Admin dan Operator
Description Usecase ini menggambarkan aplikasi apotek
yang menampilkan menu login pada halaman
utama, kemudian user akan memasukkan
username dan password yang dimilikinya
maka sistem akan cek username dan
password. Jika benar, user akan masuk ke
halaman menu home aplikasi absensi.
Pre Condition User harus memiliki username dan password
yang sudah terdaftar pada aplikasi absensi
sebelumnya.
Typical Course of Actor Action System Response
Event 1. Membuka aplikasi 2. Sistem
apotek. menampilkan menu
login
3. Mengisi username 4. Sistem mengecek
dan password. username dan
password
5. User mengklik 6. Sistem akan
tombol login. menampilkan

77
halaman home
aplikasi jika
username dan
password benar.
Bidang Alternatif Jika username dan password benar, maka
masuk ke dalam halaman utama aplikasi
absensi.
Jika username dan password salah, maka
sistem akan menampilkan pesan login gagal!
username dan password anda tidak benar
atau account anda belum terdaftar.
Post Condition Aplikasi menampilkan halaman menu home.

Tabel 4.4 Usecase Scenario Transaksi

Use case Name Transaksi


Use case Id 2
Actor Admin dan Operator
Description Usecase ini menggambarkan aplikasi apotek
untuk kegiatan transaksi penjualan obat.
Pre Condition User login Data obat, harga obat dan stok obat
sudah terdaftar
Typical Course of Actor Action System Response
Event 1. Ketik obat yang 2. Sistem
akan dibeli. menampilkan obat
yang dimaksud
3. Mengisi banyak 4. Sistem akan
obat yang akan dibeli, mengkalkulasi harga
lalu klik ubah. total.
5. Ketik obat lain 6. Sistem akan
yang akan dibeli, jika menampilkan
sudah, klik bayar lembar struk untuk
sekarang dan print dicetak.
sekarang.
Bidang Alternatif Jika obat yang dicari sudah habis, maka akan
ada pemberitahuan bahwa obat sudah habis
dan transaksi bias dilanjutkan dengan

78
mencari obat yang lain.
Post Condition Data obat berubah dan keluar struk transaksi.

Tabel 4.5 Usecase Scenario Input Obat

Use case Name Input Obat


Use case Id 3
Actor Admin
Description Usecase ini menggambarkan aplikasi apotek
untuk kegiatan menambah data obat.
Pre Condition Admin login Input Data obat, nama obat, harga
obat, jenis obat, status resep, obat depan, stok obat,
lemari, exp date, dirtributor, dan no faktur.
Typical Course of Actor Action System Response
Event 1. Ketik data obat 2. Sistem
yang ingin di input. menampilkan data
obat yang dimaksud.
3. Ketik simpan untuk 4. Sistem akan
menyimpan data obat. menyimpan data
obat yang baru.
5. Ketik kosongkan 6. Sistem akan
form untuk mulai menampilkan form
ulang input obat baru. kosong untuk dapat
di isi kembali.
Bidang Alternatif Jika obat yang sudah expired, habis, maka
akan ada pemberitahuan di halaman depan.
Post Condition Data obat telah berubah dan bertambah.

Tabel 4.6 Usecase scenario Edit Obat

Use case Name Input Obat


Use case Id 4
Actor Admin
Description Usecase ini menggambarkan aplikasi apotek
untuk kegiatan merubah data obat.

79
Pre Condition Admin login Input Data obat, nama obat, harga
obat, jenis obat, status resep, obat depan, stok
obat, lemari, exp date, dirtributor, dan no faktur.
Typical Course of Actor Action System Response
Event 1. Ketik tombol edit 2. Sistem
obat untuk data obat menampilkan data
yang ingin di edit. obat yang dimaksud.
3. Ketik simpan untuk 4. Sistem akan
menyimpan data obat. menyimpan data
obat yang baru.
5. Ketik tombol edit 6. Sistem kembali
obat untuk mulai menampilkan data
ulang edit obat yang obat yang ingin di
lain. edit.
Bidang Alternatif Jika obat yang sudah expired, habis, maka
akan ada pemberitahuan di halaman depan.
Post Condition Data obat telah berubah.

Tabel 4.7 Usecase scenario Delete Obat

Use case Name Delete Obat


Use case Id 5
Actor Admin
Description Usecase ini menggambarkan aplikasi apotek
untuk kegiatan menghapus data obat.
Pre Condition Admin login lalu klik menu input obat.
Typical Course of Actor Action System Response
Event 1. Ketik tombol delete 2. Sistem
obat untuk data obat menampilkan
yang ingin dihapus. notifikasi “Hapus
Obat xxx?”.
3. Ketik Ok untuk 4. Sistem akan
menghapus data obat. menghapus data
obat yang dimaksud.
Post Condition Data obat telah berubah dan berkurang.

80
Tabel 4.8 Usecase scenario Lihat Obat

Use case Name Lihat Obat


Use case Id 6
Actor User
Description Usecase ini menggambarkan aplikasi apotek
untuk kegiatan melihat data obat pada daftar
obat.
Pre Condition User login lalu klik menu lihat obat. Typical
Course of Actor Action System Response Event
1. Ketik menu lihat 2. Sistem
obat untuk data obat menampilkan tabel
yang ingin dilihat. Daftar Obat.
Bidang Alternatif Untuk melihat data obat yang lain, klik
tombol next.
Post Condition Menampilkan data obat.

Tabel 4.9 Usecase scenario Cari Obat

Use case Name Cari Obat


Use case Id 7
Actor User
Description Usecase ini menggambarkan aplikasi apotek
untuk kegiatan mencari data obat yang di
inginkan
Pre Condition User login lalu klik menu lihat obat.
Typical Course of Actor Action System Response
Event 1. Ketik menu lihat 2. Sistem
obat lalu ketik nama menampilkan tabel
obat pada form Daftar Obat yang
Search Obat dicari.
Bidang Alternatif Untuk mencari data obat bisa dengan
mengetik nama obat, no faktur dan
distributor.
Post Condition Menampilkan data obat.

81
Tabel 4.10 Usecase scenario Print Data Obat

Use case Name Print Data Obat


Use case Id 8
Actor User
Description Usecase ini menggambarkan aplikasi apotek
untuk kegiatan mencari data obat yang di
inginkan
Pre Condition User login lalu klik menu lihat obat. Typical
Course of Actor Action System Response Event
1. Ketik menu lihat 2. Sistem
obat lalu ketik nama menampilkan tabel
obat pada form Daftar Obat yang
Search Obat dicari.
Bidang Alternatif Untuk mencari data obat bisa dengan
mengetik nama obat, no faktur dan
distributor.
Post Condition Menampilkan data obat.

Tabel 4.11 Usecase scenario Manage User

Use case Name Manage User


Use case Id 9
Actor Admin
Description Use case ini admin melakukan manage data
user.
Pre Condition Admin berada pada menu User.
Typical Course of Actor Action System Response
Event 1. Admin memilih 2. Sistem
menu User. menampilkan
tampilan data user.
3. Admin mengisi 4. Sistem
form tambah user dan menampilkan form
pilih level admin atau yang terisi data user
operator. baru.
5. Admin klik tombol 6. Sistem
simpan. menyimpan dan

82
menampilkan data
user dalam tabel
daftar user.
7. Admin mengklik 8. Sistem
tombol edit data user. menampilkan form
user yang ingin
diubah.
9. Admin mengklik 10. Sistem
tombol delete data menampilkan form
user. user yang ingin
dihapus.
11. Admin mengklik 12. Sistem
tombol Ok untuk menyimpan dan
menghapus data user menampilkan data
yang diinginkan. user yang masih
tersimpan dalam
tabel daftar user.
Bidang Alternatif Data harus diisi secara lengkap, jika tidak
lengkap maka tidak bisa memanage data
user.
Post Condition Data user tambah/input dan hapus/delete.

Tabel 4.12 Use case Scenario Logout

Use case Name Logout


Use case Id 10
Actor Admin dan Operator
Description Use case ini user keluar dari aplikasi apotek.
Pre Condition User berada pada menu login aplikasi
apotek.
Typical Course of Actor Action System Response
Event
1. User memilih 2. Sistem
menu logout. menampilkan
tampilan "Anda
berhasil logout…".
Post Condition User berhasil keluar aplikasi apotek.

83
4.2.2.4 Perancangan Activity Diagram

Diagram aktivitas adalah diagram flowchart yang

diperluas yang menunjukkan aliran kendali satu aktivitas ke

aktivitas lain. Kita menggunakan diagram ini untuk

memodelkan aspek dinamis sistem. Aktivitas adalah eksekusi

nonatomik yang berlangsung di state machine. Diagram

aktivitas mendeskripsikan aksi-aksi dan hasilnya. Diagram

aktivitas berupa operasi-operasi dan aktivitas-aktivitas di

usecase.

Maka dapat beberapa buah activity diagram yang dapat

digambarkan yaitu :

1. Activity Diagram Login

Gambar 4.4 Activity Diagram Login

84
Keterangan Gambar :

Pada activity diagram “Login”, yang pertama dilakukan

oleh user yaitu membuka Aplikasi Apotek. User terlebih dahulu

melakukan login. Saat membuka sistem, maka sistem akan

menampilkan menu login. Masukkan username dan password

pada kolom yang tersedia dan kemudian memilih tombol

“Login” Apabila
. username ataupun password salah, maka

sistem akan menampilkan pesan kesalahan dan kembali ke

menu login. Jika username dan password yang dimasukkan

benar maka sistem akan kembali menampilkan halaman

utama.

2. Activity Diagram Transaksi Obat

85
Gambar 4.5 Activity Diagram Transaksi Obat

Keterangan Gambar :

Pada Activity Diagram “Transaksi Obat”, setelah user

melakukan login di halaman pertama, lalu sistem akan

langsung menampilkan menu “Transaksi”. Kemudian user klik

tombol “Mulai Transaksi” untuk memulai transaksi obat, lalu

sistem akan menampilkan menu transaksi obat. User bias

langsung menginput nama obat yang akan dibeli, kemudian isi

jumlah obat yg dibeli pada tab “banyak obat”. Apabila user

86
ingin menambah jenis obat yang lain, kembali ke input nama

obat. Setelah selesai, user klik tombol “bayar sekarang” lalu

“print sekarang” dan selesai.

3. Activity Diagram Input Data Obat

Gambar 4.6 Activity Diagram Input Data Obat

Keterangan Gambar :

Didalam activity diagram “Input Obat”, sistem akan

menampilkan halaman “Input Obat”, kemudian admin

memilih menu tambah obat dan sistem akan menampilkan

halaman tambah obat. Kemudian admin dapat mengisi form

tambah obat. Setelah mengisi form input obat tersebut maka

87
admin memilih button “simpan” untuk menyimpan dalam

database dan sistem akan langsung menampilkan halaman

Daftar Obat yang berisi data-data yang sudah di-input. Apabila

admin “batal” untuk menyimpan data obat, maka staff admin

dapat memilih menu Lihat obat kembali untuk dapat melihat

daftar obat.

4. Activity Diagram Edit Data Obat

Gambar 4.7 Activity Diagram Edit Data Obat

88
Keterangan Gambar :

Didalam activity diagram “Edit Obat”, sistem akan

menampilkan halaman “Input Obat”, kemudian admin

memilih menu tambah obat dan sistem

5. Activity Diagram Delete Data Obat

Gambar 4.8 Activity Diagram Delete Data Obat

Keterangan Gambar :

Didalam activity diagram “Delete Obat”, sistem akan

menampilkan halaman “Input Obat”, kemudian admin

89
memilih menu tambah obat dan sistem.

6. Activity Diagram Manage User

Gambar 4.9 Activity Diagram Manage User

Keterangan gambar :

Didalam activity diagram “Input Manajemen User”,

sistem akan menampilkan halaman manajeman user,

kemudian staff admin memilih menu tambah user dan sistem

akan menampilkan halaman tambah user. Kemudian staff

90
admin dapat mengisi form tambah user. Setelah mengisi form

input data tersebut maka staff admin memilih button “simpan”

untuk menyimpan dalam database dan sistem akan langsung

menampilkan halaman Lihat User yang berisi data-data yang

sudah di-input. Apabila staff admin “batal” untuk menyimpan

data user baru, maka staff admin memilih menu Lihat User

kembali untuk dapat melihat data-data user yang dapat

mengakses sistem.

6. Activity Diagram Logout

Gambar 4.10 Activity Diagram Logout

Keterangan gambar :

Di dalam activity diagram “logout” yang pertama harus

dilakukan oleh staff admin dan dokter yaitu membuka sistem.

91
Staff admin dan dokter terlebih dahulu melakukan login. Saat

membuka sistem akan menampilkan menu login. Masukkan

Username dan Password. Jika salah memasukkan Username

dan Password, sistem akan menampilkan pesan kesalahan dan

kembali ke menu login untuk memasukkan Username dan

Password yang benar. Jika benar memasukkan Username dan

Password maka sistem akan menampilkan halaman utama.

Kemudian staff admin dan dokter dapat memilih menu logout

untuk keluar dan sistem, lalu otomatis staff admin dan logout

akan keluar dan halaman sistem.

4.2.2.5 Perancangan Sequence Diagram

Sequence Diagram menjelaskan komunikasi di antara

objek-objek, meliputi pesan-pesan yang ada dan urutan pesan

tersebut muncul. Diagram ini secara khusus berasosiasi

dengan use case. Sequence Diagram memperlihatkan tahap

demi tahap apa yang seharusnya terjadi untuk menghasilkan

sesuatu didalam use case. Pada gambar dibawah ini

digambarkan sequence diagram dalam sistem informasi

apotek :

92
1. Sequence Diagram Login

User
Staf Admin, Dokter

1. Masukan Username & Password

2. Login Gagal 3. Username dan Password


Salah

4. Tampil an Pesan “ username


Dan password Salah!!”

5. Login Sukses 6. Username dan Password


Benar

7. Tampilkan Halaman Utama

Gambar 4. 11 Sequence Diagram Login

93
2. Sequence Diagram Transaksi Obat untuk Pasien

Gambar 4.12 Sequence Diagram Transaksi Obat

94
3. Sequence Diagram Input Data Obat

Gambar 4.13 Sequence Diagram Input Data Obat

95
4. Sequence Diagram Input Manajemen User Login

Admin

User Data User


Staff Admin

1. Masukkan Username & Password

2. Login Gagal 3. Username dan Password


Salah

4. Tampi lan Pesan “ username


Dan password Salah!!”

5. Login Sukses 6. Username dan Password


Benar

7. Tampilkan Halaman Utama

8. Pilih Menu Manajemen User

9. Tampil Halaman Manajemen


User

10. Pilih “Tambah User”

11. Tampil halaman Tambah User

12. Masukkan data User


13. Data User telah di simpan

14. Pilih “Lihat User”

15. Tampil halaman List User

Gambar 4.14 Sequence Diagram Input Manajemen User Login

Admin

96
5. Sequence Diagram Logout

Gambar 4.15 Sequence Diagram Logout

97
4.2.2.6 Perancangan Class Diagram

Class Diagram membantu kita dalam visualisasi struktur

kelas-kelas dari suatu sistem dan merupakan tipe diagram paling

umum dipakai. Class Diagram menunjukkan kelas- kelas yang

ada di sistem dan hubungan antar kelas-kelas dan penjelasan

detail tiap-tiap kelas di dalam model desain dari suatu sistem,

seperti gambar berikut ini :

Gambar 4.16 Class Diagram Sistem Apotek

Selama proses analisis, class diagram memperlihatkan

aturan-aturan dan tanggung jawab entitas yang menentukan

perilaku sistem. Selama sistem tahap desain, class diagram

98
berperan dalam menangkap struktur dari semua kelas yang

membentuk arsitektur sistem yang dibuat.

4.2.2.7 Perancangan Basis Data

Perancangan basis data pada sistem apotek dimaksudkan

untuk mempermudah hubungan-hubungan antar tabel satu

dengan tabel lainnya. Basis data mempunyai fungsi untuk

menverifikasi, mencatat, menyimpan, dan menampilkan hasil.

Secara umum konsep rancangan basis data sistem dapat dilihat

pada gambar dibawah ini :

Gambar 4.17 Relasi Basis Data (Sumber: Saputra, 2012)

Dari struktur jenis tabel pada gambar diatas dapat

dijelaskan sebagai berikut :

99
a. Tabel User

Tabel user merupakan tabel yang digunakan untuk

menampung seluruh data pengguna untuk mengakses halaman

admin absensi. Spesifikasi field-nya sebagai berikut :

Tabel 4.13 Tabel User

Nama Field Jenis Panjang Deskripsi

user_id Integer 11 Id user

user_username Varchar 30 Username

user_password Varchar 50 Password

user_name Varchar 100 Nama lengkap

user_logincount Integer 11 Penghitung akses login

user_level Enum - Admin atau Operator

b. Tabel Obat

Tabel obat merupakan tabel yang digunakan untuk

menampung seluruh data obat untuk mengakses halaman

daftar obat dan untuk melihat, menambah, edit dan delete data

obat. Spesifikasi field-nya sebagai berikut :

Tabel 4.14 Tabel Obat

Nama Field Jenis Panjang Deskripsi

id_obat Integer 3 Id obat

nama_obat Varchar 30 Nama obat

harga_satuan Integer 6 Harga obat

100
100
100
jenis Varchar 20 Jenis obat

status_resep Varchar 10 Resep obat

stok Integer 6 Stok obat

stokmin Integer 10 Stok minimal obat

lemari Varchar 50 Lemari obat

exp_date Date - Tanggal kadaluarsa

distributor Varchar 50 Distributor obat

no_faktur Varchar 100 Nomor faktur

c. Tabel Data Obat

Data obat merupakan tabel yang digunakan untuk

menampung seluruh data obat untuk mengakses halaman

daftar obat dan untuk melihat, menambah, edit dan delete data

obat. Spesifikasi field-nya sebagai berikut :

Tabel 4.15 Tabel Data Obat

Nama Field Jenis Panjang Deskripsi

id_dataobat Integer 50 Id data obat

id_obat Integer 10 Id obat

id_order Integer 50 Id order

harga Varchar 10 Harga obat

priceservice Integer 50 Biaya service

subtotal Varchar 10 Subtotal harga obat

101
banyak Integer 5 Jumlah obat yg dibeli

d. Tabel Data Order

Data order digunakan untuk melakukan transaksi obat.

Spesifikasi field-nya sebagai berikut :

Tabel 4.16 Tabel Data Order

Nama Field Jenis Panjang Deskripsi

id_order Integer 50 Id order

id_user Integer 5 Id user

nama Varchar 50 Nama user

no_resep Varchar 50 Nomor resep obat

no_telp Integer 20 Nomor telpon

tgl_order Date - Tanggal pemesanan obat

jam Varchar 15 Jam pemesanan obat

total Varchar 100 Total harga obat

bayar Double - Jumlah harga dibayar

4.2.2.8 Perancangan User Interface

Berikut ini tampilan rancangan interface untuk sistem

informasi absensi dan keterangan mengenai bagian-bagian

dari interface tersebut. Yang akan ditampilkan adalah

102
102
102
interface yang memiliki rancangan dan fungsi yang saling

berbeda.

1. Tampilan Halaman Login Form

LOGO
Username

Password

capta

Gambar 4.18 Rancangan Tampilan Halaman Login

2. Tampilan Halaman Home pada user Admin

LOGO
transaksi input lihat history laporan user logout

Selamat Datang di Sistem Informasi Apotik

Mulai transaksi

Gambar 4.19 Rancangan Tampilan Halaman Home

103
103
103
3. Tampilan menu input obat

Gambar 4.20 Tampilan menu input obat

4. Tampilan Menu Search obat

Pada sub module search pengguna dapat melakukan

pencarian berdasarkan nama obat, no faktur dan

distributor. Setelah melakukan input dan memilih akan

melakukan pencarian berdasarkan pilihan tertentu, maka

nama obat yang dicari akan tampil di sub module daftar

obat.

Berikut hasil pencarian berdasarkan nama obat

andalan.

104
104
104
Gambar 4.21 Hasil pencarian nama obat andalan.

5. Tampilan Menu Expired obat

Expired obat adalah daftar obat-obat yang akan expired 3 bulan kemudian

dan obat-obat yang sudah melewati batas expired. Obat yang sudah expired dapat

dilakukan perubahan tanggal expired dengan melakukan edit.

Gambar 4.22 Daftar obat yang sudah expired

105
6. Tampilan Menu Stok Minimal

Daftar stok minimal adalah daftar obat-obat yang sudah kurang dari stok

minimal. Hal ini berguna sebagai notifikasi sekaligus melakukan pengecekan jika

obat tersebut sudah mulai habis.

Gambar 4.23 Daftar stok minimal obat

7. Tampilan Menu Lihat Obat

Module lihat obat diperuntukan untuk operator. Fitur yang ada pada

module lihat obat sama dengan module daftar obat. Pada module lihat obat, operator

hanya dapat melihat daftar obat-obat yang dijual beserta informasinya dan tidak

dapat melakukan input obat, edit obat atau pun melakukan delete obat.

Pada module lihat obat tedapat pula fitur untuk melakukan search obat.

106
106
106
Gambar 4.24 Menu lihat obat

8. Tampilan Menu Transaksi

Module transaksi berguna untuk melakukan transaksi penjualan obat. Pada

modul transaksi, operator akan menginputkan nama obat di kolom pencarian. Jika

nama obat ditemukan maka akan ditampilkan nama obat beserta harga, lemari,

dan sebagainya. Obat tersebut dapat diubah banyaknya (quantity) dan nilai

service. Nilai Service adalah harga tambahan pada obat, jika obat yang bersangkutan

harus dilembutkan terlebih dahulu. Jika data sudah benar maka akan dikalkukalasi

dari harga satuan dikali quantity.

107
107
107
Jika masih ada data obat yang harus diinputkan (pembelian obat lebih dari

satu), maka operator akan melakukan pencarian kembali nama obat dan

menampilkan detail obatnya, mengkalkulasi kembali antara harga dan quantity

sekaligus menjumlahkan dengan total obat sebelumnya.

Setelah semua proses transaksi selesai dilakukan, maka akan dilakukan

printout ke printer yang merupakan struk obat.

Gambar 4.25 Menu Transaksi

9. Dashboard / Home

Module ini akan tampil pertama kali pada saat user/operator telah melakukan

login. Pada module ini akan diberitahukan nama obat yang akan expired dalam

waktu 3 bulan kemudian dan stok obat yang lebih kecil dari batas stok minimal.

Berikut adalah tampilan dashboard

108
108
108
Gambar 4.26 Dashboard / Home

10. History Transaksi

Pada module history transaksi, user/operator dapat melihat history

transaksi yang bersangkutan. Sebagai contoh, terdapat operator A dan operator B,

operator A hanya dapat melihat history transaksi yang dilakukan oleh Operator A

dan tidak dapat melihat history transaksi operator B. Khusus untuk Admin dapat

melihat history transaksi milik Operator A dan Operator B.

Berikut adalah interface dari History transaksi

109
109
109
Gambar 4.27 Menu History Transaksi

11. Tampilan Menu Laporan

Module laporan berbeda dengan history transaksi. Module laporan berisi

ringkasan history transaksi yang dijadikan sebagai laporan dan ditandatangani

oleh Atasan sebagai penanggung jawab (Apoteker).

Untuk membuat laporan, pilih tanggal yang akan dijadikan laporan dan

kemudian tekan tombol lihat, output dari proses tersebut dapat dilihat pada

gambar 4.15

Gambar 4.28 Menu Laporan

110
12 User (User Management)

Module user management berguna untuk melakukan pendaftaran atau

perubahan data user (operator dan admin).

Field-field yang harus diisi pada saat pendaftaran user adalah :

a. Nama

b. Username

c. Password

d. Level

Level terbagi menjadi 2 yaitu Admin dan operator. Admin dapat

mengakses semua module sedangkan operator tidak dapat mengakses user

management dan input obat.

Berikut adalah interface dari user management

Gambar 4.29 Menu User Management

111
111
111
4.2.3 Impelementasi

Pada tahap ini dilaksanakanlah implementasi dari rancangan-

rancangan, baik rancangan basis data, rancangan aplikasi, maupun

rancangan tampilan.

4.2.3.1 Perangkat yang Digunakan

Pada proses pengujian ini dibutuhkan beberapa

peralatan-peralatan baik berupa perangkat keras dan

perangkat lunak, agar dapat berjalan dengan baik.

a. Perangkat Keras :

1. Komputer Dekstop

2. Intel Pentium 3, 512 GHz

3. Modem Speedy

3. Kabel Data

b. Perangkat Lunak :

1. Sistem Operasi Microsoft XP Professional

2. Application Server : Apache 2.2.11

3. PHP 5.2.8

4. MySQL versi 5.1.30

5. Framework : Codeigniter 1.7.2

6. Notepad++ versi 6.1.1

112
112
112
Bahasa pemrograman dan komponen – komponen yang digunakan

dalam pengembangan aplikasi ini adalah :

Tabel 4.17 Spesifikasi Hardware dan Software

No Hal Spesifikasi Spesifikasi Spesifikasi yang

Minimal Rekomendasi digunakan

1 Processor Intel Pentium Intel Pentium Dual Core T 4500

3, 512 GHz 4, 1,7 GHz

2 Harddisk 40 Gb 80 Gb 320 Gb

3 Ram 128 Mb 512 Mb 2 Gb

4 Sistem Microsoft Microsoft Microsoft Windows

Operasi Windows XP Windows XP XP Professional

Professional Professional

5 Server Apache 2.2.10 Apache 2.2.11 Apache 2.2.11

6 Database Mysql 5.1 Mysql 5.1.30 Mysql 5.1.30

7 Framework Codeigniter 1.7.1 Codeigniter 1.7.2 Codeigniter 1.7.2

4.2.3.2 Struktur File

Karena aplikasi ini merupakan penerapan dari

Codeigniter Framework, maka dalam penyusunan struktur

file juga harus mengikuti standar baku yang dimiliki oleh

Codeigniter Framework itu sendiri.

113
113
113
Tabel 4.18 Struktur File Codeigniter Framework

Struktur File Keterangan

Apotek/system/application/config Konfigurasi server dan database

Apotek/system/application/controller Source code logika aplikasi

Apotek/system/application/model Source code database

Apotek/system/application/view Source code tampilan

Apotek/system/application/library Source code library tambahan

4.2.3.3 Alur Kerja Codeigniter Framework

Secara umum alur kerja framework codeigniter adalah seperti

gambar berikut:

Gambar 4.30 Alur kerja framework codeigniter

Index.php merupakan front controller atau file yang berhubungan

langsung dengan user. Saat user membuka index.php dan melakukan

request, akan dicek di Router alamat yang dimasukan oleh user tersebut.

Bila ada pada cache data, maka akan langsung menuju ke Caching dan

114
114
114
kembali lagi ke user. Bila di cache tidak ada maka diteruskan lagi ke

Security untuk memvalidasi, menyaring dan mengamankan informasi

yang dimasukan user (bila ada). Lalu dari security informasi tersebut

dikirim ke Application Controller. Di Application Controller informasi dan

data akan diolah. Bila diperlukan, Application Controller akan

berhubungan dengan Model, Libraries, Helpers, Plugins atau skrip lainnya.

Application Controller akan mengirimkan respon ke View untuk

ditampilkan ke user. View akan disimpan di Cache bila berikutnya

melakukan request yang sama. Sehingga mempercepat proses. Setelah

dicache, maka akan ditampilkan informasi kepada user.

Dalam implementasinya pada sistem informasi apotek dapat

diuraikan sebagai berikut :

a. Routing

Ketika pertama kali mengakses aplikasi melalui web browser, maka

halaman yang pertama dipanggil adalah halaman index.php pada folder

aplikasi. Setelah itu file index.php melakukan routing ke controller

yang telah di config oleh programmer pada file

system/application/config/routes.php, dari code route,

maka sistem akan menjalankan controller admin.php, dari code

controller admin.php pada baris akhir, sistem memanggil file

system/application/view/admin/login_form.php dimana isinya sebagai

berikut :

115
115
115
<?php if ( ! defined('BASEPATH')) exit('No direct script

access allowed');

$route['default_controller'] = "umum";

Dari code diatas, maka system akan menjalankan controller

umum.php yang sebagian berisi sebagai berikut :

class Umum extends Controller {

function Umum()

parent::Controller();

$this->load-

>helper(array('file','number','directory'));

function login(){

$data = array();

$data['pesan'] = null;

$this->load->view('umum/header');

$this->load->view('umum/login',$data);

$this->load->view('umum/footer');

116
116
116
Dari code controller umum.php pada baris akhir, system

memanggil file system/application/view/umum/login.php yang berisi

sebagai berikut :

<div id="page">
<!-- start content -->
<div id="content">
<div class="post">
<h1 class="title" style="background-color:#efefff;border:
1px solid #8f8f9f;">&nbsp;&nbsp;Halaman Login</h1>
<div class="entry">

<div style="border:1px solid


#E6E6E6;color:#000000;margin:10px
0px;"><h4style="background:#dbdbdb;color:#000000;padding:
8px;margin:2px;">
<?php
if($pesan != null){
echo "<span style='color:red;'>".$pesan."</span>";
}
else {
print "LOGIN";
}
?>

</h4><div style="overflow:auto; border-left:5px solid #dbdbdb;


padding-left:5px;margin:10px;">
<?=form_open('umum/proses_login')?>
<table width="240px" align="center">
<tr>
<td width="100">User Name : </td>
<td><input type="text" name="user"></td>
</tr>
<tr>
<td width="100">Password : </td>
<td><input type="text" name="pass"</td>
</tr>
<tr>
<td colspan="2" align="right"><input style="width:
70px;" type="submit" value="OK"></td>
</tr>
</table>
<?=form_close();?>

117
117
117
</div><p align="right" style="padding-right:10px;"><small
style="color:#6b8732"></small></p></div>

</div>

</div>
</div>
<!-- end content -->
<!-- start sidebar -->
<div id="sidebar">

</div>
<!-- end sidebar -->
<div style="clear: both;">&nbsp;</div>
</div>

Jadi secara singkat proses routing framework codeigniter yaitu

ketika user mengakses aplikasi pada web browser, maka sistem akan

memanggil controller yang telah di set pada file config routes. Setelah itu

controller memanggil file view, jadi halaman yang tampil pada web

browser adalah file view yang ditentukan controller, secara detail coding

pada lampiran B.

b. Sistem Informasi Data

Dalam sebuah sistem informasi tentunya ada proses create, update,

delete dan view data. Pada penerapannya dengan framework codeigniter

keempat proses tersebut tidak berbeda jauh karena sama-sama melibatkan

controller sebagai logika sistem, model sebagai query database dan view

sebagai tampilan, sehingga penulis hanya akan menjelaskan proses view

data.

118
118
118
Saat akan melakukkan view data, maka user mengklik menu

Berita. Pada menu Berita web browser mendapatkan link

”index.php/umum/view_berita”, dari link tersebut dapat

dijelaskan bahwa system akan menuju “function view_berita()”

yang berada dalam file controller ”umum” sebagai berikut :

<?php if (!defined('BASEPATH')) exit('No direct script access

allowed');

class Umum extends Controller {

function view_berita(){

$id = $this->uri->segment(3,0);

$data['berita'] = $this->mainmodel->getBeritaById($id);

$this->load->view('umum/header');

$this->load->view('umum/view_berita',$data);

$this->load->view('umum/footer');

Pada baris “$data['berita'] = $this->mainmodel-

>getBeritaById($id);”, fungsi getBeritaById memanggil fungsi

getBeritaById pada file mainmodel.php yang terletak di

system/application/model/ yang isinya sebagai berikut :

<?php

Class Mainmodel extends Model

119
119
119
{

function getBeritaById($id){

$sql = "select * from berita where id_berita='$id'";

return $this->db->query($sql);

Pada baris code diatas melakukan query dalam sql sebagai

berikut “SELECT*FROM berita WHERE id_berita=$id”.

Kembali lagi fungsi view_berita pada controller umum, setelah

memanggil query database dilanjutkan memanggil file view

pada baris “$this->load->view('umum/view_berita',$data);”.

Baris tersebut memanggil view_berita.php pada folder

“system/application/view/umum” yang nantinya akan

ditampilkan di web browser yang berisi sebagai berikut :

<div id="page">
<!-- start content -->
<div id="content">
<div class="post">
<h1 class="title" style="background-
color:#efefff;border: 1px solid #8f8f9f;">&nbsp;&nbsp;Artikel
Kesehatan</h1>
<div class="entry">

<? foreach($berita->result() as $row):?>


<div style="border:1px solid
#E6E6E6;color:#000000;margin:10px 0px;"><h4
style="background:#dbdbdb;color:#000000;padding:8px;margi
n:2px;">
<?=$row->judul?></h4><div
style="overflow:auto; border-left:5px solid #dbdbdb; padding-
left:5px;margin:10px;">
<?=$row->berita?>
</div><p align="right" style="padding-
right:10px;"><small

120
120
120
style="color:#6b8732"></small></p></div>

<? endforeach?>

</div>

</div>
</div>
<!-- end content -->
<!-- start sidebar -->
<div id="sidebar">
<ul>
<li id="search">
<h2>Pencarian</h2>
<?=form_open('umum/cari_berita');?>
<fieldset>
<input type="text" name="key" value="" />
<input type="submit" id="x" value="cari" />
</fieldset>
<?=form_close();?>
</ul>
</div>
<!-- end sidebar -->
<div style="clear: both;">&nbsp;</div>
</div>

Pada akhirnya user akan melihat data-data berita di web

browser.

c. Penerapan Keamanan

Pada sisi keamanan di aplikasi ini akan diterapkan 2 metode,

yaitu XSS filtering dan anti SQL injection.

1. XSS filtering

XSS merupakan cara memasukkan code / script

HTML kedalam suatu web site dan dijalankan melalui

browser diclient. Untuk menghindari hal tersebut maka

configurasi XSS filtering pada codeigniter framework harus

121
121
121
diaktifkan. Cara mengaktifkannya adalah dengan merubah

baris code pada application/config/config.php yang isinya :

$config['global_xss_filtering'] = FALSE; menjadi

$config['global_xss_filtering'] = TRUE;

2. Anti SQL injection

SQL injection adalah sebuah teknik untuk merubah

database server melalui aplikasi client. Untuk

menghindarinya maka dilakukan perubahan script pada

proses login.

function cek_login($user,$pass){
$sql = "select * from user where
nama='$user'";
$result = $this->db->query($sql);
foreach($result->result() as $row){
if($row->password == $pass){
if($row->level == "admin")
return "admin";
else{
if($row->poli ==
"umum") return
"dokter1";
else
return
"dokter2";
}
}
else

return "salah";
}
}

122
122
122
4.2.3.4 Pengujian Browser

Setelah selesai melakukan pengembangan, maka aplikasi ini

harus diuji coba yang bertujuan untuk mengetahui sejauh mana

aplikasi ini dapat bekerja dengan baik dan apakah aplikasi ini

dapat memenuhi tujuan yang ingin diperoleh sebelum diserahkan

kepada pengguna. Pengujian ini dilakukan pada browser yang

umum, seperti mozilla firefox, internet explorer, google chrome dan

opera.

Tabel 4.19 Pengujian Blackbox pada Browser

Nama Browser Status

Mozilla Firefox 15.0.1 Baik

Internet explorer 9 Baik

Opera 9.1 Baik

Google Chrome 21.0.1180.89 Baik

123
123
123
BAB V

KESIMPULAN DAN SARAN

Pembuatan Aplikasi Apotek Berbasis Web ini setidaknya dapat

mengurangi permasalahan-permasalahan yang berhubungan dengan pencarian

data obat – obatan seperti sisa stock obat, harga obat, masa kadaluarsa obat, letak

obat dalam rak/lemari, serta banyak transaksi obat-obatan dalam waktu

perharinya.

Setelah melakukan serangkaian penelitian, seperti yang tertera pada bab

III dan Bab IV, maka pada bab ini penulis akan menguraikan kesimpulan yang

dapat ditarik dari rangkaian penelitian tersebut. Selain kesimpulan, penulis juga

memberikan saran yang akan bermanfaat bagi pihak-pihak yang akan melanjutkan

pengembangan penelitian ini.

5.1 Kesimpulan

Dari penelitian dan tulisan yang telah penulis uraikan, maka

dapat ditarik kesimpulan sebagai berikut :

1. Pengembangan aplikasi apotek berbasis web dengan menggunakan

Code Igniter Framework dapat dilaksanakan sesuai dengan analisis

dan perancangan yang telah dilakukan, yang juga sesuai dengan

kebutuhan penggunanya. Software yang mendukung pengembangan

ini antara lain dapat dilihat pada tabel 4.17.

124
124
124
2. Aplikasi ini dapat mempermudah admin di dalam mengakses

informasi obat-obatan dimulai dari input data obat (gambar 4.20)

melihat data obat (gambar 4.24), transaksi penjualan (gambar 4.25)

sampai dengan management user (gambar 4.29).

3. Aplikasi ini juga menyediakan sistem dokumentasi (arsip) data

informasi berupa data obat-obatan seperti sisa stock obat, harga obat,

letak obat dalam lemari serta masa kadaluarsa obat yang terorganisir

dengan baik (lihat gambar 4.24), terutama dalam proses penyimpanan

data, sehingga dapat mempermudah kinerja admin dan kasir.

5.2 Saran

Aplikasi ini tentu saja masih belum sempurna. Masih banyak hal

yang dapat dilakukan untuk mengembangkan aplikasi ini agar menjadi lebih

baik lagi, seperti :

a. Pengembangan aplikasi untuk divisi pendaftaran yaitu aplikasi untuk

pelayanan pendaftaran berobat dengan memanfaatkan fasilitas

komputer secara online.

b. Pengembangan aplikasi untuk divisi dokter yaitu aplikasi untuk

pelayanan penyampaian informasi hasil pemeriksaan berobat pasien

dengan memanfaatkan fasilitas komputer secara online.

125
125
125
DAFTAR PUSTAKA

Anisyah, Suci Nur dan Riwayadi, Susilo. 2000. Kamus Lengkap Bahasa
Indonesia. Surabaya : Sinar Terang.

A.S, Rosa dan Shalahuddin, M. 2011. Modul Pembelajaran Rekayasa Perangkat


Lunak (Terstruktur dan Berorientasi Objek). Bandung : Modula.

Chirillo, John dan Blaul, Scott. 2003. Implementing Biometric Security.


Indianapolis, Indiana : Wiley Publishing.

Dhanta, Rizky. 2009. Kamus Istilah Komputer Grafis & Internet. Surabaya:
Indah.

Dharma Oetomo, Budi Soetedjo & Handoko, Yosia, 2003 “ Teleakses Database
Pendidikan Berbasis Ponsel”, Penerbit Andi, Yogyakarta.

Hariyanto, Bambang. 2004. Rekayasa Sistem Berorientasi Objek. Bandung :


Informatika.

Jogianto, H.M. 2000. Pengenalan Komputer, Dasar Ilmu Komputer,


Pemrograman, Sistem Informasi dan Intelegensi Buatan. Yogyakarta : ANDI.

Kadir, Abdul. 2004. Dasar Pemrograman Java 2. Yogyakarta : Andi.

Dimaz Abipraya, 2011. Aplikasi Pelayanan Informasi Kesehatan dan Pendaftaran


Pasien Dengan Menggunakan Framework Codeigniter

Kendall, Kenneth E dan Kendall, Julie E. 2010. Analisis dan Perancangan Sistem,
Edisi Kelima (Edisi Bahasa Indonesia). Jakarta : PT Indeks.

Ladjamuddin B, Al-Bahra. 2006. Rekayasa Perangkat Lunak. Yogyakarta : Graha


Ilmu.

Peranginangin, Kasiman. 2006. Aplikasi WEB dengan PHP dan MySQL.


Yogyakarta : C.V. Andi Offset.

Prahasta, Eddy. 2005. Konsep-konsep Dasar Sistem Informasi Geografis.


Bandung : C.V. Informatika.

Pressman, Roger S. 2002. Rekayasa Perangkat Lunak. Yogyakarta : Andi.

Purwanto, Murfid D. dan Herlambang, M. Tito. 2002. Membangun Web Server


dengan Linux. Jakarta : PT. Elex Media Computindo.

126
126
126
Putra, Darma. 2009. Sistem Biometrika. Yogyakarta : C.V. Andi Offset.

Saputra, Agus. 2011. Step by Step Membangun Aplikasi SMS dengan PHP dan
MySQL. Jakarta : PT. Elex Media Komputindo.

Saputra, Agus. 2012. Membuat Aplikasi Absensi dan Kuesioner untuk Panduan
Skripsi. Jakarta : PT. Elex Media Komputindo.

Saputra, Agus dan Agustin, Feni. 2012. Membangun Sistem Aplikasi E-Commerce
dan SMS. Jakarta : PT. Elex Media Komputindo.

Suja, Iman. 2005. Pemrograman SQL dan Database Server MySQL. Yogyakarta :
C.V. Andi Offset.

Whitten, J.L., Bentley, L.D. & Dittman, K.C. 2004. Metode Desain dan Analisis
Sistem. Diterjemahkan oleh Tim Penerjemah ANDI. Edisi 6. Yogyakarta : ANDI.

Witarto. 2004. Memahami Sistem Informasi Pendekatan Praktis Rekayasa Sistem


Informasi Melalui Kasus-kasus Sistem Informasi Di Sekitar Kita. Bandung :
Informatika.

http://www.gammu.org/wiki/index.php?title=Gammu:Full_reference_manual. 2
Maret 2013

http:// www.gammu.org/wiki/index.php?title=Main_Page. 2 Maret 2013

http://id.wikipedia.org. 2 Maret 2013

http://www.kumpulanistilah.com. 28 April 2013

http://www.total.or.id. 28 April 2013

http://3.bp.blogspot.com. 28 April 2013

127
127
127
LAMPIRAN

SOURCE CODE

Home.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


class Home extends Controller {
function Home()
{
parent::Controller();
$this->load->library('auth');
$this->load->model(array('trmodel','obmodel'));
$this->load->helper(array('html', 'url'));
}
function index()
{
$this->lo d->view('home/index');
}
function do_login()
{
$this->auth->restrict(true);
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required');
$this->form_validation->set_rules('password', 'Password', 'trim|required');
$this->form_validation->set_rules('captcha', 'Captcha', 'trim|required|callback_valid_captcha');
$this->form_validation->set_message('valid_captcha','%s tidak sama');
if ($this->form_validation->run() == FALSE)
{
$this->index();
}
else
{
$this->load->library('auth');
$login = array('username'=>$this->input->post('username'),
'password'=>$this->input->post('password')
);
$ eturn = $this->auth->do_login($login);
r ($return)
if
{ echo warning('Selamat datang, '.from_session('nama'),'home');

} se
el
{ echo warning('Maaf, username atau password yang Anda masukkan salah...','home');

}
}
} ptcha($str)
function valid_ca
{ n = time()-60;
$expiratio >query("DELETE FROM captcha WHERE captcha_time < ".$expiration);
$this->db-ELECT COUNT(*) AS count FROM captcha WHERE word = ?
$sql = "S AND ip_address = ? AND captcha_time > ?";
rray($str, $this->input->ip_address(), $expiration);
$binds = a this->db->query($sql, $binds);
$query = $uery->row();
$row = $qcount == 0)
if ($row->
{
return FALSE;
}else{
return TRUE;
}
}
function logout()
{
$this->auth->logout();
echo warning('Anda berhasil logout...','home');
}
function front()
{
if(!is_logged_in())
{
$data = $this->auth->setChaptcha();
$this->load->view('home/login_form',$data);
}
else
{
$this->trmodel->get_front();
}
}
function about()
{
$this->lo d->view('home/about');
}
}

/* End of file home.php */


/* Location: ./system/application/controllers/home.php */
obat.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


class Obat extends Controller {
function Obat()
{
parent::Controller();
$this->load->library(array('auth','pagination','paginasi'));
$this->load->model(array('trmodel','obmodel'));
$this->load->helper(array('html', 'url'));
}
function index()
{
$page='0';
$config['base_url'] = base_url().'obat/lihat/';
$config['total_rows'] = $this->db->count_all('table_obat');
$config['full_tag_open'] = '<strong>';
$config['full_tag_close'] = '</strong>';
$config['per_page'] = 15;
$this->pagination->initialize($config);
$data['querysemua'] = $this->obmodel->ambilobatsemua();
$data['query'] = $this->obmodel->ambil($config['per_page'],$this->uri->segment(3));
$this->load->view('obat/insert_obat', $data);
}

function lihat_obat()
{
$page='0';
$config['base_url'] = base_url().'obat/lihat/';
$config['total_rows'] = $this->db->count_all('table_obat');
$config['full_tag_open'] = '<strong>';
$config['full_tag_close'] = '</strong>';
$config['per_page'] = 15;
$this->pagination->initialize($config);
$data['querysemua'] = $this->obmodel->ambilobatsemua();
$data['query'] = $this->obmodel->ambil($config['per_page'],$this->uri->segment(3));
$this->load->view('obat/lihat_obat', $data);
}
function lihat($pa ge='0')
{

$config['base_url'] = base_url().'obat/lihat/';
$config['total_rows'] = $this->db->count_all('table_obat');
$config['full_tag_open'] = '<strong>';
$config['full_tag_close'] = '</strong>';
$config['per_page'] = 15;
$this->pagination->initialize($config);
$nohalaman = $this->uri->segment(3);
$data['query'] = $this->obmodel->ambil($config['per_page'],$nohalaman);
$data['no_hal'] = $nohalaman;
$this->load->view('obat/insert_obat', $data);
}
function lihat_lihat($page='0')
{
$config['base_url'] = base_url().'obat/lihat_lihat/';
$config['total_rows'] = $this->db->count_all('table_obat');
$config['full_tag_open'] = '<strong>';
$config['full_tag_close'] = '</strong>';
$config['per_page'] = 15;
$this->pagination->initialize($config);
$nohalaman = $this->uri->segment(3);
$data['querysemua'] = $this->obmodel->ambilobatsemua();
$data['query'] = $this->obmodel->ambil($config['per_page'],$nohalaman);
$data['no_hal'] = $nohalaman;
$this->load->view('obat/lihat_obat', $data);
}
function search()
{
$pilihan = $this->input->post('pilihan');
$searchobat = $this->input->post('searchobat');
if(!empty($searchobat) and !empty($pilihan))
{
$data['query'] = $this->obmodel->search($searchobat, $pilihan);
$this->load->view('obat/insert_obat', $data);
}
}
function search_lihat()
{
$pilihan = $this->input->post('pilihan');
$searchobat = $this->input->post('searchobat');
if(!empty($searchobat) and !empty($pilihan))
{
$data['pilihan'] = $pilihan;
$data['searchobat'] = $searchobat;
$data['querysemua'] = $this->obmodel->ambilobatsemua();
$data['query'] = $this->obmodel->search($searchobat, $pilihan);
$data['prints'] = 'printsearch';
$this->load->view('obat/lihat_obat', $data);
}
}
function frame_lihat_obat()
{
$this->lo d->view('obat/frame_lihat_obat');
}
function frame_obat()
{
$page='0';
$config['base_url'] = base_url().'obat/frame_obat/';
$config['total_rows'] = $this->db->count_all('table_obat');
$config['full_tag_open'] = '<strong>';
$config['full_tag_close'] = '</strong>';
$config['per_page'] = 15;
$this->paginasi->initialize($config);
$nohalaman = $this->uri->segment(3);
$data['query'] = $this->obmodel->ambil($config['per_page'],$this->uri->segment(3));
$data['querysemua'] = $this->obmodel->ambilobatsemua();
$data['no_hal'] = $nohalaman;
$this->load->view('obat/frame_lihat', $data);
}

function printobat()
{

$searchobat = $this->uri->segment(4);
$pilihan = $this->uri->segment(3);
$data['querysemua'] = $this->obmodel->ambilobatsemua();
$data['query'] = $this->obmodel->search($searchobat, $pilihan);
$this->load->view('obat/frame_lihat_search', $data);
}
function simpan()
{
$data = array(
'id_obat' => $this->input->post('id_obat') ,
'nama_obat' => $this->input->post('nama_obat') ,
'harga_satuan' => $this->input->post('harga_satuan') ,
'jenis' => $this->input->post('jenis') ,
'status_resep' => $this->input->post('status') ,
'stokmin' => $this->input->post('stokmin') ,
'distributor' => $this->input->post('distributor') , t('no_faktur') ,
'no_faktur' => $this->input->pos
'exp_date' => $this->input->post('exp_date') , mari') ,
'lemari' => $this->input->post('le
'stok' => $this->input->post('stok')
$namaob );
a t = $data['nama_obat'];
if($data['id_obat'] != '')
{
(empty($data['nama_obat']) || empty($data['harga_satuan']) || empty($data['jenis']) || empty($data['
']) || empty($data['lemari'])){
if $data['hasil'] = 'Gagal menyimpan, semua kolom harus diisi'; status_resep'])
|| empty($data['exp_date
se if(strtotime($data['exp_date']) <= strtotime(date('Y-m-d'))){
$data['hasil'] = 'Gagal menyimpan, '.$namaobat.' Sudah expired';
}else{
$this->db->where('id_obat',$data['id_obat']);
}el $this->db->update('table_obat',$data);
$data['hasil'] = 'Data Obat '.$namaobat.' Berhasil diupdate';

}
}
else
{
$this->db->from('table_obat');
$this->db->where('nama_obat',$data['nama_obat']);
$num = $this->db->count_all_results();
if($num > 0)
{
$data['hasil'] = 'Data Obat '.$namaobat.' Sudah Tersedia';

} else if(empty($data['nama_obat']) || empty($data['harga_satuan']) || empty($dat a['jenis']) ||


empty($data['status_rese p']) || empty($data['exp_date']) || empty($data['lemari'])){
$data['hasil'] = 'Gagal menyimpan, semua kolom harus diisi';

}else if(strtotime($data['exp_date']) <= strtotime(date('Y-m-d'))){


$data['hasil'] = 'Gagal menyimpan, '.$namaobat.' Sudah expired';

}
else
{
$this->obmodel->simpan($data, $table = 'table_obat');
$data['hasil'] = 'Data Obat '.$namaobat.' Berhasil diproses';
}
}
$page='0';
$config['base_url'] = base_url().'obat/lihat/';
$config['total_rows'] = $this->db->count_all('table_obat');
$config['full_tag_open'] = '<strong>';
$config['full_tag_close'] = '</strong>';
$config['per_page'] = 15;
$this->pagination->initialize($config);

$data['query'] = $this->obmodel->ambil($config['per_page'],$this->uri->segment(3));
$this->load->view('obat/insert_obat', $data);
}
function hapus()
{
$id = $this->uri->segment(3);
if(!is_numeric($id))
return false;

$hasil = $ his->db->get_where('data_obat', array('id_obat' => $id));


if($hasil->num_rows() > 0)
{
$data['hasil'] = 'Data Obat Gagal di hapus, karena nama obat sudah ada dalam transaksi penjualan';
}
else
{
$this->obmodel->hapus($id, $table='table_obat', $id_db='id_obat');
$data['hasil'] = 'Data Obat Berhasil dihapus';
}
$page='0';
$config['base_url'] = base_url().'obat/lihat/';
$config['total_rows'] = $this->db->count_all('table_obat');
$config['full_tag_open'] = '<strong>';
$config['full_tag_close'] = '</strong>';
$config['per_page'] = 15;
$this->pagination->initialize($config);
$hal ='';
$data['querysemua'] = $this->obmodel->ambilobatsemua();
$data['query'] = $ this->obmodel->ambil($config['per_page'],$hal);
$this->load->view('obat/insert_obat', $data);
}
}

/* End of file obat.php */


/* Location: ./system/application/controllers/obat.php */
transaksi.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Transaksi extends Controller {

function Transaksi()
{
parent::Controller();
$this->load->library('auth');
$this->auth->restrict();
$this->load->helper('url');
$this->load->model('obmodel');
}
function index()
{
$this->lo d->view('transaksi/form_transaksi');
}

function export_data()
{
$this->lo d->view('transaksi/export_data');
}
function laporan()
{
$data['hasil'] = $this->obmodel->ambiluser($table = 'user');
$this->load->view('transaksi/laporan', $data);
}
function laporan_iframe()
{
$this->lo d->view('transaksi/laporan_iframe');
}
function history()
{
$data['hasil'] = $this->obmodel->ambiluser($table = 'user');
$this->load->view('transaksi/history', $data);
}
function search()
{
$this->lo d->view('obat/search');
}
function proses_l poran()
{
$user = $this->input->post('user');
if(empty($user))
{
$user = $this->session->userdata('user_id');
}
$tanggal = $this->input->post('tanggal');

$data['query'] = $this->obmodel->ceklaporan($tanggal, $user);


$newDate = date("d F Y", strtotime($tanggal));
$hasil = $this->obmodel->ambiluser1($user);

foreach($hasil->result() as $row)
{
$data['namauser'] = $row->user_name;
}

$data['tanggal'] =$newDate;
$this->load->view('transaksi/proses_laporan', $data);
}
function proses_history()
{
$user = $this->input->post('user');
if(empty($user))
{
$user = $this->session->userdata('user_id');
}
$tanggal = $this->input->post('tanggal');

$data['query'] = $this->obmodel->cekhistory($tanggal, $user);


$newDate = date("d F Y", strtotime($tanggal));
$hasil = $this->obmodel->ambiluser1($user);

foreach($hasil->result() as $row)
{
$data['namauser'] = $row->user_name;
}

$data['tanggal'] =$newDate;
$this->load->view('transaksi/proses_history', $data);
}
function import_data()
{

$this->load->view('transaksi/import');
}
function import_data1()
{
$this->load->view ('transaksi/import1');
}
function prosescsv ()
{
$filecsv = $_FILES['filecsv'];
$fname = $filecsv['name'];
$chk_ext = explode(".",$fname);

if(strtolower($chk_ext 1]) == "csv")


{

$filename = $_FILES['filecsv']['tmp_name'];
$handle = fopen($filename, "r");

while (($data = fgetcs v($handle, 1000, ",")) !== FALSE)


{
if($data[7] != 'databarisyangbersifatstatis')
{
$sql = "INSERT into dataorder(id_user,nama,no_resep, no_telp, dokter, tgl_order, jam, t otal, bayar)
values('$data[1]','$data[2 ]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')";
mysql_query($sql) or die(mysql_error());

$ elect = mysql_query("select * from dataorder order by id_order desc limit 1") or die(mysql_error());

$row1 = mysql_fetch_row($select);
$idorder[$data[0]] = $row1[0];
}
else
{

if (array_key_exists($data[2], $idorder)) {
$orderid = $idorder[$data[2]];
} otal, banyak)
values('$data[1]','$orderid $sql1 = "INSERT into data_obat(id_obat, id_order, harga, priceservice, subt
','$data[3]','$data[4]','$data[5]','$data[6]')";
mysql_query($sql1) or die(mysql_error());

}
}

fclose($handle);
$msg = "Successfully Imported";
}
else
{
$msg = "Invalid File! (File must csv format)";
}
$data['name'] = $msg;
$this->load->view('transaksi/import', $data);
}
}
/* End of file transaksi.php */
/* Location: ./system/application/controllers/transaksi.php */
user.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User extends Controller {

function User()
{
parent::Controller();
$this->load->library('auth');
$this->load->model(array('usermodel'));
$this->auth->restrict();
$this->auth->cek('manajemen_user');
}
function index()
{
$data['user'] = $this->usermodel->get_list_user();
$this->load->view('user/panel',$data);
}
function simpan()
{

$data1 = $this->fungsi->accept_data(array_keys($_POST));
$this->usermodel->simpan($data1);
$data['hasil'] = 'Proses Berhasil';
$data['user'] = $this->usermodel->get_list_user();
$this->load->view('user/panel',$data);
}
function hapus()
{
$id = $this->uri->segment(3);
$hasil = $ his->db->get_where('dataorder', array('id_user' => $id));
if($hasil->num_rows() > 0)
{
$data['hasil'] = 'Data user Gagal di hapus, karena nama user sudah ada dalam transaksi penjualan';
}
else
{
$this->usermodel->hapus_user($id);
$data['hasil'] = 'Data user Berhasil dihapus';
}

$data['user'] = $this->usermodel->get_list_user();
$this->load->view('user/panel',$data);
}
}

/* End of file user.php */


/* Location: ./system/application/controllers/user.php */
supplier.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


class Suppliers extends Co ntroller {
function Suppliers()
{
parent::Controller();
$this->load->library('auth');
$this->auth->restrict();
$this->load->helper('url');
$this->load->model('obmodel');
}
function index()
{
$data['query'] = $this->obmodel->ambil($table = 'suppliers');
$this->load->view('transaksi/suppliers', $data);
}
function simpan_suppliers() {
$data = array(
'id_suppliers' => $this->input->post('id_suppliers') ,
'nama_suppliers' => $this->input->post('nama_suppliers') ,
'nama_perusahaan' => $this->input->post('nama_perusahaan') ,
'alamat_suppliers' => $this->input->post('alamat_suppliers') ,
'email_suppliers' => $this->input->post('email_suppliers') ,
'notelp_suppliers' => $this->input->post('notelp_suppliers')
);
$namasuppliers = $data['nama_suppliers'];
if($data['id_suppliers'] != '')
{
$this->db->where('id_suppliers',$data['id_suppliers']);
$this->db->update('suppliers',$data);
$data['hasil'] = 'Data suppliers '.$namasuppliers.' Berhasil diupdate';
}
else
{
$this->db->from('suppliers');
$this->db->where('nama_suppliers',$data['nama_suppliers']);
$num = $this->db->count_all_results();
if($num > 0)
{
$data['hasil'] = 'Data suppliers '.$namasuppliers.' Sudah Tersedia';
}
else
{
$this->obmodel->simpan($data, $table = 'suppliers');
$data['hasil'] = 'Data suppliers '.$namasuppliers.' Berhasil diproses';
}
}
$data['query'] = $this->obmodel->ambil($table = 'suppliers');
$this->load->view("transaksi/suppliers", $data);
}
function hapus()
{
$id = $this->uri->segment(3);
if(!is_numeric($id))
return false;
$this->obmodel->hapus($id, $table='suppliers', $id_db = 'id_suppliers');
$data['hasil'] = 'Data suppliers Berhasil dihapus';
$data['query'] = $this->obmodel->ambil($table = 'suppliers');
$this->load->view("transaksi/suppliers", $data);
}
}
sales.php

<?php
class Sales extends Contro ller
{
function __construct()
{
parent:: construct('sales');
$this->load->library('sale_lib');
$this->load->library('auth');
$this->load->model('obmodel');
$this->auth->restrict();
}
function index()
{
$this->_reload();
}
function item_se rch()
{
$suggestions = $this->Item->get_item_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
//Alain Multiple Payments
function add_payment()
{
$data=array();
$this->form_validation->set_rules('amount_tendered', 'lang:sales_amount_tendered', 'numeric');

if ($this->form_validation->run() == FALSE)
{
if ( $this->input->post('payment_type') == $this->lang->line('sales_gift_card') )
$data['error']=$this->lang->line('sales_must_enter_numeric_giftcard');
else
$data['error']=$this->lang->line('sales_must_enter_numeric');

$ his->_reload($data);
return;
}
$payment_type=$this->input->post('payment_type');
if ( $payment_type == $this->lang->line('sales_giftcard') )
{
$payments = $this->sale_lib->get_payments();
$payment_type=$this->input->post('payment_type').':'.$payment_amount=$this->input->post('amount_ tendered');
$current_payments_with_giftcard = isset($payments[$payment_type]) ?
$payments[$payment_type]['payment_amount'] : 0;
$cur_giftcard_value = $this->Giftcard->get_giftcard_value( $this->input->post('amount_tende red') ) -
$current_payments_with_giftcard;
if ( $cur_giftcard_value <= 0 )
{
$data['error']='Giftcard balance is '.to_currency( $this->Giftcard->get_giftcard_value( $this->input-
>post('amount_tendered') ) ).' !';
$this->_reload($data);
return;

} seif ( ( $this->Giftcard->get_giftcard_value( $this->input->post('amount_tendered') ) - $this->sale_lib-


el >get_total() ) >
0)
{ $data['warning']='Giftcard balance is '.to_currency( $this->Giftcard->get_giftcard_value(
$this->input-
>post('amount_tendered') ) - $this->sale_lib->get_total() ).' !';
}
$payment_amount=min( $this->sale_lib->get_total(), $this->Giftcard->get_giftcard_value( $this->input-
>post('amount_tendered') ) );
}
else
{
$payment_amount=$this->input->post('amount_tendered');
}

if( !$this->sale_lib->add_payment( $payment_type, $payment_amount ) )


{
$data['error']='Unable to Add Payment! Please try again!';
}
$this->_reload($data);
}

//Alain Multiple Payments


function delete_payment($payment_id)
{
$this->sale_lib->delete_payment($payment_id);
$this->_reload();
}

function add()
{
$data=array();
$mode = $this->sale_lib->get_mode();
$item_id_or_number_or_item_kit_or_receipt = $this->input->post("item");
$quantity = $mode=="sale" ? 1:-1;
if($this->sale_lib->out_of_stock($item_id_or_number_or_item_kit_or_receipt))
{
$data['warning'] = "Maaf, Obat yang Anda masukan stoknya sudah habis, silahkan isi kembali pada input obat";
$this->_reload($data);
}
else
{

if($this->sale_lib->is_valid_item_kit($item_id_or_number_or_item_kit_or_receipt))
{
$ his->sale_lib->add_item_kit($item_id_or_number_or_item_kit_or_receipt);
}
elseif(!$this->sale_lib->add_item($item_id_or_number_or_item_kit_or_receipt,$quantity))
{
$data['error']=$this->lang->line('sales_unable_to_add_item');
}
$this->_reload($data);
}
}
function edit_item($line)
{
if($this->sale_lib->out_of_stock($this->sale_lib->get_item_id($line)))
{
$data['warning'] = "Maaf stok tidak mencukupi, silahkan ubah stok terlebih dahulu";
$this->_reload($data);
}
else
{
$data= array();

$this->form_validation->set_rules('price', 'lang:items_price', 'required|numeric');


$this->form_validation->set_rules('quantity', 'lang:items_quantity', 'required|numeric');

$price_service = $this->input->post("price_service");
$price = $this->input->post("price");
$quantity = $this->input->post("quantity");
$discount = $this->input->post("discount");
if ($this->form_validation->run() != FALSE)
{
$this->sale_lib->edit_item($line,$quantity,$discount,$price,$price_service);
}
else
{
$data['error']=$this->lang->line('sales_error_editing_item');
}
$this->_reload($data);
}
}

function delete_i em($item_number)


{
$this->sale_lib->delete_item($item_number);
$this->_reload();
}
function complete()
{
$id_user = $this->session->userdata('user_id');
$hour = time() - (60 * 60);
$tot = number_format($this->sale_lib->get_total(), 0, '.', '');
$bayar1 = $this->input->post('bayar');
$bayar = number_format($bayar1, 0, '.', '');
$nama_pasien = $this->input->post('nama');
$dataorder = array(

'id_user' => $id_user ,


'nama' => $nama_pasien ,
'no_resep' => $this->input->post('noresep') ,
'no_telp' => $this->input->post('notelp') ,
'dokter' => $this->input->post('dokter') ,
'tgl_order' => date('Y/m/d'),
'jam' => date('H:i:s', $hour),
'total' => $tot,
'bayar' => $bayar
);
$this->obmodel->simpan($dataorder, $table = 'dataorder');
$query = $this->obmodel->ambilidobat();
foreach ($query->result() as $row)
{
$id_order = $row->id_order;
}
$nomor = $this->input->post('nomor');
for ($i=1; $i<$nomor; $i++)
{
$idobat = 'idobat'.$i;
$hargaobat = 'hargaobat'.$i;
$subtotal = 'subtotal'.$i;
$banyak = 'banyak'.$i;
$priceservice = 'priceservice'.$i;
$idobath = $this->input->post($idobat);
$banyakh = $this->input->post($banyak);
$hasil = $this->obmodel->kurangi_stok($idobath, $banyakh);
$data = array(
'id_order' => $id_order,
'id_obat' => $idobath,
'harga' => $this->input->post($hargaobat),
'subtotal' => $this->input->post($subtotal),
'banyak' => $banyakh,
'priceservice' => $this->input->post($priceservice)
);
$ his->obmodel->simpan($data, $table = 'data_obat');
}

$vardata['transaksi'] = $this->obmodel->print_transaksi($id_order);
$vardata['today'] = date("j-m-Y");
$vardata['nama_pasien'] = $nama_pasien;
$vardata['nama_apotek'] = $this->config->item('nama_apotek');
$vardata['alamat'] = $this->config->item('alamat');
$vardata['no_telp'] = $this->config->item('no_telp');
$vardata['apoteker'] = $this->config->item('apoteker');
$vardata['total'] = $tot;
$vardata['bayar'] = $bayar;
$this->sale_lib->clear_all();
$this->load->view('sales/print',$vardata);
}

function receipt($sale_id)
{
$sale_info = $this->Sale->get_info($sale_id)->row_array();
$this->sale_lib->copy_entire_sale($sale_id);
$data['cart']=$this->sale_lib->get_cart();
$data['payments']=$this->sale_lib->get_payments();
$data['subtotal']=$this->sale_lib->get_subtotal();
$data['taxes']=$this->sale_lib->get_taxes();
$data['total']=$this->sale_lib->get_total();
$data['receipt_title']=$this->lang->line('sales_receipt');
$data['transaction_time']= date('m/d/Y h:i:s a', strtotime($sale_info['sale_time']));
$customer_id=$this->sale_lib->get_customer();
$emp_info=$this->Employee->get_info($sale_info['employee_id']);
$data['payment_type']=$sale_info['payment_type'];
$data['amount_change']=to_currency($this->sale_lib->get_amount_due() * -1);
$data['employee']=$emp_info->first_name.' '.$emp_info->last_name;

if($customer_id!=-1)
{
$cust_info=$this->Customer->get_info($customer_id);
$data['customer']=$cust_info->first_name.' '.$cust_info->last_name;
}
$data['sale_id']='POS '.$sale_id;
$this->load->view("sales/receipt",$data);
$this->sale_lib->clear_all()
}
function edit($sale_id)
{
$data = array();

$data['customers'] = array('' => 'No Customer');


foreach ($this->Customer->get_all()->result() as $customer)
{
$data['customers'][$customer->person_id] = $customer->first_name . ' '. $customer->last_name;
}

$data['employees'] = array();
foreach ($this->Employee->get_all()->result() as $employee)
{
$data['employees'][$employee->person_id] = $employee->first_name . ' '. $employee->last_name;
}

$data['sale_info'] = $this->Sale->get_info($sale_id)->row_array();
$this->lo d->view('sales/edit', $data);
}

function delete($ ale_id)


{
$data = array();

if ($this->Sale->delete($sale_id))
{
$data['success'] = true;
}
else
{
$data['success'] = false;
}

$this->lo d->view('sales/delete', $data);

function save($sale_id)
{
$sale_data = array(
'sale_time' => date('Y-m-d', strtotime($this->input->post('date'))),
'customer_id' => $this->input->post('customer_id') ? $this->input->post('customer_id') : null,
'employee_id' => $this->input->post('employee_id'),
'comment' => $this->input->post('comment')
);

if ($this->Sale->update($sale_data, $sale_id))
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('sales_successfully_updated')));
}
else
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('sales_unsuccessfully_updated')));
}
}
function _payments_cover_total()
{
$total_payments = 0;

foreach($ his->sale_lib->get_payments() as $payment)


{
$ otal_payments += $payment['payment_amount'];
}
/* Changed the conditional to account for floating point rounding */
if ( ( $this->sale_lib->get_mode() == 'sale' ) && ( ( to_currency_no_money( $this->sale_lib->get_total() ) - $total _payments ) >
1e-6 ) )
{
return false; e;
}
return trudata=array())
}
rt']=$this->sale_lib->get_cart();
function _reload($ total']=$this->sale_lib->get_subtotal();
{
$data['ca
$data['sub
$data['total']=$this->sale_lib->get_total();
$data['payments_total']=$this->sale_lib->get_payments_total();
$data['amount_due']=$this->sale_lib->get_amount_due();
$data['payments']=$this->sale_lib->get_payments();
$hour = time() - (60 * 60);
$data['nama'] = $this->session->userdata('nama');
$data['today'] = date("j F Y, g:i a", $hour);
$data['payments_cover_total'] = $this->_payments_cover_total();
$this->load->view("sales/register",$data);
}
function cancel_sale()
{
$this->sale_lib->clear_all();
$this->_reload()
}
}
?>

Vous aimerez peut-être aussi