Perancangan Aplikasi Sistem Penunjang Laboratorium...
Transcript of Perancangan Aplikasi Sistem Penunjang Laboratorium...
i
Perancangan Aplikasi
Sistem Penunjang Laboratorium
Rumah Sakit Perguruan Tinggi Negeri (RS-PTN)
TUGAS AKHIR
Disusun dalam rangka memenuhi salah satu persyaratan
untuk menyelesaikan Program Studi Strata-1 Teknik Informatika
Departemen Teknik Informatika Fakultas Teknik Universitas Hasanuddin
Makassar
Disusun Oleh:
AHMAD IRFANDI
D421 12 270
TAUFIK ANSYARI ACHMAD
D421 12 279
DEPARTEMEN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS HASANUDDIN
MAKASSAR
2017
ii
LEMBAR PENGESAHAN SKRIPSI
“PERANCANGAN APLIKASI SISTEM PENUNJANG LABORATORIUM
RUMAH SAKIT PERGURUAN TINGGI NEGERI (RS-PTN)”
Oleh:
AHMAD IRFANDI D421 12 270
TAUFIK ANSYARI ACHMAD D421 12 279
Skripsi ini telah dipertahankan pada Ujian Akhir Sarjana tanggal 29 November 2017.
Diterima dan disahkan sebagai salah satu syarat memperoleh gelar
Sarjana Teknik (S.T.) pada Program Studi Strata-1 Teknik Informatika
Departemen Teknik Informatika Fakultas Teknik Universitas Hasanuddin.
Makassar, 29 November 2017
Disetujui oleh:
Pembimbing I
Dr.Eng. Muhammad Niswar, S.T., M.IT.
NIP. 19730922 199903 1 001
Pembimbing II
Dr. Ir. Ingrid Nurtanio, M.T.
NIP. 19610813 198811 2 001
Diterima dan disahkan oleh:
Ketua Departemen Teknik Informatika
Dr. Amil Ahmad Ilham, S.T., M.IT.
NIP. 19731010 199802 1 001
iii
ABSTRAK
Sistem Penunjang Laboratorium adalah sistem yang dikembangkan
menggunakan pendekatan berdasarkan penggunaan teknologi yang terintegrasi
dengan sistem mekanisasi pengolahan data sebagai penyedia informasi untuk
mendukung aspek kegiatan yang berkaitan dengan registrasi dan administrasi
operasional laboratorium. Setiap laboratorium rumah sakit memiliki sistem untuk
merekam semua yang berhubungan dengan data diri pasien dan rekam medis
pemeriksaan laboratorium. Dalam rekaman staf laboratorium rumah sakit yang
masih dilakuan secara manual, hal ini dapat menghabiskan waktu yang lama dan
dapat menyebabkan kesalahan dalam proses pendaftaran pasien dan pengisian data
hasil pemeriksaan.
Tujuan penelitian pada tugas akhir ini adalah untuk merancang framework
aplikasi sistem penunjang laboratorium pada Rumah Sakit Perguruan Tinggi Negeri
menggunakan framework codeigniter dengan metode MVC (Model, View,
Controller).
Hasil penelitian ini adalah rancangan framework aplikasi sistem penunjang
laboratorium yang terintegrasi dengan sitem admisi pasien sehingga proses
pengelolaan data pasien di laboratorium rumah sakit dapat terstruktur dengan baik.
Kata Kunci: laboratorium, codeigniter, MVC
iv
KATA PENGANTAR
Assalamualaikum Warahmatullahi Wabarakatuh.
Segaa puji dan syukur kami panjatkan ke hadirat Allah SWT Tuhan Yang
Maha Esa yang dengan limpahan rahmat dan hidayah-Nya sehingga kami dapat
menyelesaikan Laporan Skripsi ini dengan Judul “Perancangan Aplikasi Sistem
Penunjang Laboratorium Rumah Sakit Perguruan Tinggi Negeri (RS-PTN)”
diselesaikan dengan baik dan tepat pada waktu yang telah ditentukan sebagai salah
satu syarat untuk memperoleh gelar sarjana Program Strata Satu Fakultas Teknik
Jurusan Elektro Prodi Informatika Universitas Hasanuddin.
Kami menyadari bahwa dalam penyusunan Laporan Skripsi ini, kami
banyak mendapatkan sumbangan pikiran serta bimbingan baik moral maupun
materil dari berbagai pihak. Sehingga pada kesempatan ini kami menyampaikan
ucapan terima kasih sedalam-dalamnya kepada:
� Tuhan Yang Maha Esa atas semua berkat, karunia serta pertolongan-
Nya yang telah diberikan kepada kami disetiap langkah dalam
pembuatan program hingga penulisan laporan skrisi ini.
� Orang tua dan keluarga yang senantiasa memberikan motivasi,
bimbingan moral dan materil bagi kami.
� Bapak Dr-Eng. Muhammad Niswar, S.T. M.IT. selaku dosen
pembimbing I yang telah banyak memberi bimbingan dan masukkan
yang bermanfaat.
� Ibu Dr. Ir. Ingrid Nurtanio, M.T. selaku dosen pembimbing II yang
telah banyak memberi bimbingan dan masukan yang bermanfaat.
v
� Bapak Dr. Amil Ahmad Ilham, S.T., M.IT., Bapak Dr.Eng. Wardi,
S.T, M.Eng., Ibu Novy Nur R.A. Mokobombang, S.T., M.T., Bapak
Ir. Christoforus Yohannes, M.T., Ibu Anugrayani Bustamin, S.T.,
M.T., selaku dosen penguji yang telah memberikan saran sehingga
laporan skripsi ini menjadi lebih baik.
� Bapak Dr. Amil Ahmad Ilham, S.T., M.IT., sebagai Ketua
Departemen Teknik Informatika Fakultas Teknik Universitas
Hasanuddin.
� Staf Departemen Teknik Informatika Universitas Hasanuddin.
� Teman-teman Mahasiswa Departemen Teknik Informatika
Angkatan 2012 Universitas Hasanuddin.
� Serta seluruh pihak yang tak sempat kami sebutkan satu persatu
yang telah banyak meluangkan tenaga, waktu, dan pikiran selama
penyususan laporan skripsi ini.
Akhirnya dengan segala kerendahan hati, kami meyadari masih terdapat
banyak kekurangan dalam penyusunan Laporan Skripsi ini baik isi maupun cara
penyajian. Oleh karena itu, penyusun mengharapkan adanya saran dan kritik yang
bersifat membangun demi kesempurnaan laporan ini. Penyusun berharap semoga
Laporan Skripsi ini dapat memberikan manfaat bagi pembaca pada umumnya dan
manfaat bagi penulis khususnya. Terima Kasih.
Wassalamualaikum Warahmatullahi Wabarakatuh.
Makassar,
Penyusun
vi
DAFTAR ISI
HALAMAN SAMPUL ............................................................................................ i
LEMBAR PENGESAHAN SKRIPSI .................................................................... ii
ABSTRAK ............................................................................................................. iii
KATA PENGANTAR ........................................................................................... iv
DAFTAR ISI .......................................................................................................... vi
DAFTAR GAMBAR ............................................................................................. ix
DAFTAR TABEL .................................................................................................. xi
DAFTAR LAMPIRAN ......................................................................................... xii
BAB I PENDAHULUAN ....................................................................................... 1
1.1. Latar Belakang ......................................................................................... 1
1.2. Rumusan Masalah .................................................................................... 4
1.3. Batasan Masalah ...................................................................................... 4
1.4. Tujuan Penelitian ..................................................................................... 4
1.4.1. Tujuan Umum .................................................................................... 4
1.4.2. Tujuan Khusus ................................................................................... 5
1.5. Manfaat Penelitian ................................................................................... 5
1.5.1. Bagi Pengguna ................................................................................... 5
1.5.2. Bagi Peneliti ....................................................................................... 6
1.5.3. Bagi Institusi Pendidikan ................................................................... 6
1.6. Sistematika Penulisan .............................................................................. 6
BAB II LANDASAN TEORI ................................................................................. 8
2.1. Rumah Sakit ............................................................................................. 8
vii
2.1.1. Definisi Rumah Sakit ......................................................................... 8
2.1.2. Tugas dan Fungsi Rumah Sakit ......................................................... 9
2.2. Sistem Informasi .................................................................................... 10
2.2.1. Pengertian Sistem ............................................................................. 11
2.2.2. Karakteristik Sistem ......................................................................... 12
2.2.3. Informasi .......................................................................................... 13
2.3. Sistem Informasi Manajemen Rumah Sakit (SIMRS) ........................... 14
2.4. Instalasi Laboratorium Rumah Sakit ..................................................... 20
2.5. Codeigniter ............................................................................................. 21
2.2.1. MVC (Model-View-Controller) ....................................................... 22
2.2.2. Instalasi Codeigniter ........................................................................ 25
2.6. Perangkat Lunak yang Digunakan ......................................................... 28
2.6.1. MySQL ............................................................................................ 28
2.6.2. XAMPP ............................................................................................ 30
2.6.3. PHP & Object Oriented Programming (OOP) ................................ 30
2.6.4. JavaScript ......................................................................................... 32
BAB III METODOLOGI PENELITIAN ............................................................. 33
3.1. Waktu dan Tempat Penelitian ................................................................ 33
3.2. Metode Penelitian .................................................................................. 33
3.2.1. Analisi Permasalahan ....................................................................... 35
3.2.1.1. Alur Kerja Laboratorium .......................................................... 36
3.2.2. Desain .............................................................................................. 36
3.2.2.1. Perancangan Sistem .................................................................. 38
3.2.2.1.1. Use Case Digram .............................................................. 38
viii
3.2.2.1.2. State Transition Diagram ................................................. 41
3.2.2.2. Perancangan Basis Data ........................................................... 45
3.2.2.2.1. Entity Relationship Diagram (ERD) ............................... 45
3.2.2.2.2. Struktur Tabel Basis Data ................................................ 46
3.2.2.2.3. Relasi Antar Tabel (RAT) ............................................... 50
3.2.2.2.4. Data Flow Diagram (DFD) ............................................. 50
3.2.2.3. Perancangan Tampilan ............................................................. 52
3.2.3. Pengkodean ...................................................................................... 56
BAB IV HASIL DAN PEMBAHASAN .............................................................. 57
4.1. Hasil Wawancara ................................................................................... 57
4.2. Hasil Kuisioner ...................................................................................... 58
4.3. Hasil Pengujian Sistem .......................................................................... 59
4.4.1. Pengujian Proses pada Admin ......................................................... 60
4.4.2. Pengujian Proses pada User ............................................................. 60
4.4. Implementasi .......................................................................................... 61
4.4.1. Halaman Laboratorium .................................................................... 61
4.4.2. Halaman Admin ............................................................................... 67
BAB V PENUTUP ............................................................................................... 74
5.1. Kesimpulan ........................................................................................... 74
5.2. Saran ..................................................................................................... 74
DAFTAR PUSTAKA ........................................................................................... 75
LAMPIRAN .......................................................................................................... 79
ix
DAFTAR GAMBAR
Gambar 2.1: Flowchart MVC ............................................................................... 24
Gambar 2.2: Struktur Direktori Codeigniter ......................................................... 26
Gambar 2.3: Tampilan Browser Ketika Sukses Menginstal Codeigniter ............. 28
Gambar 3.1: Struktur Metode Penelitian .............................................................. 33
Gambar 3.2: Alur Kerja Laboratorium pada RS-PTN .......................................... 37
Gambar 3.3: Alur Kerja SIMRS ........................................................................... 39
Gambar 3.4: Use Case Diagram ............................................................................ 40
Gambar 3.5: State Transition Diagram Menu “Home”......................................... 42
Gambar 3.6: State Transition Diagram Menu “Manajemen Menu” ..................... 43
Gambar 3.7: State Transition Diagram Menu “Master Pemeriksaan Lab” ........... 43
Gambar 3.8: State Transition Diagram Menu “Order Pemeriksaan Lab” ............ 44
Gambar 3.9: State Transition Diagram Menu “Hasil Pemeriksaan” .................... 45
Gambar 3.10: Entity Relationship Diagram .......................................................... 46
Gambar 3.11: Relasi antar tabel “m_pasien”, “m_order pemeriksaan”,
“m_detail_order_pemeriksaan”, dan “m_pemeriksaan_lab”. ............................... 50
Gambar 3.12: Data Flow Diagram Level 1 (Sistem) ............................................ 51
Gambar 3.13: Data Flow Diagram Level 2 (Kelola Data Pemeriksaan) .............. 51
Gambar 3.14: Data Flow Diagram Level 2 (Kelola Hasil Pemeriksaan) .............. 52
Gambar 3.15: Rancangan Halaman List Pemeriksaan Lab................................... 53
Gambar 3.16: Rancangan Halaman List Pemeriksaan Lab................................... 53
Gambar 3.17: Rancangan Halaman Order Pemeriksaan Lab (1) .......................... 54
Gambar 3.18: Rancangan Halaman Order Pemeriksaan Lab (2) .......................... 54
Gambar 3.19: Rancangan Halaman Hasil Pemeriksaan Lab ................................ 55
x
Gambar 3.20: Rancangan Halaman Input Hasil Pemeriksaan Lab ....................... 55
Gambar 4.1: Halaman Beranda ............................................................................. 61
Gambar 4.2: Halaman Master Pemeriksaan Lab .................................................. 62
Gambar 4.3: Halaman Tambah Pemeriksaan Lab ................................................ 63
Gambar 4.4: Halaman Edit Informasi Pemeriksaan Lab ...................................... 63
Gambar 4.5: Halaman Order Pemeriksaan Lab (1)............................................... 64
Gambar 4.6: Halaman Order Pemeriksaan Lab (2)............................................... 65
Gambar 4.7: Halaman Hasil Pemeriksaan Lab ..................................................... 65
Gambar 4.8: Halaman Input Hasil Pemeriksaan Lab ............................................ 66
Gambar 4.9: Halaman Cetak Hasil Pemeriksaan Lab ........................................... 67
Gambar 4.10: Halaman Beranda Admin ............................................................... 67
Gambar 4.11: Halaman Sub-menu Group............................................................. 68
Gambar 4.12: Halaman Sub-menu Pengguna ....................................................... 69
Gambar 4.13: Halaman Sub-menu Group Pengguna ............................................ 70
Gambar 4.14: Halaman Sub-menu Daftar Aplikasi .............................................. 70
Gambar 4.15: Halaman Sub-menu Akses Group Aplikasi ................................... 71
Gambar 4.16: Halaman Sub-menu Master Poli .................................................... 72
Gambar 4.17: Halaman Sub-menu Master Dokter................................................ 72
Gambar 4.18: Halaman Sub-menu Setting Dokter Jaga ....................................... 73
Gambar 4.19: Halaman Sub-menu Praktek Dokter .............................................. 73
xi
DAFTAR TABEL
Tabel 3.1: Pembagian Hak Akses Aktor ............................................................... 40
Tabel 3.2: Struktur Tabel “m_order_pemeriksaan” .............................................. 47
Tabel 3.3: Struktur Tabel “m_pemeriksaan_lab” ................................................. 47
Tabel 3.4: Struktur Tabel “m_order_detail” ......................................................... 48
Tabel 3.5: Struktur Tabel “m_pasien” .................................................................. 48
Tabel 4.1: Kuisioner Admin ................................................................................. 58
Tabel 4.2: Kuisioner Staff Laboratorium .............................................................. 58
Tabel 4.3: Kuisioner Staff Perawat ....................................................................... 59
Tabel 4.4: Pengujian Proses pada Admin ............................................................. 60
Tabel 4.5: Pengujian Proses Pada User ................................................................. 60
xii
DAFTAR LAMPIRAN
LAMPIRAN A: Laporan Kegiatan Hasil Wawancara .......................................... 79
LAMPIRAN B: Source Code Sistem ................................................................... 81
LAMPIRAN C: Lembar Perbaikan Skripsi ........................................................ 188
LAMPIRAN D: Surat Penugasan Dosen Pembimbing ...................................... 189
LAMPIRAN E: Surat Penugasan Panitia Seminar Hasil .................................... 190
LAMPIRAN F: Surat Keterangan Nilai Seminar Hasil ...................................... 191
LAMPIRAN G: Daftar Hadir Seminar Hasil ...................................................... 193
LAMPIRAN H: Berita Acara Seminar Hasil ...................................................... 194
LAMPIRAN I: Surat Penugasan Panitia Ujian Sarjana ...................................... 196
LAMPIRAN J: Surat Keterangan Nilai Ujian Skripsi ........................................ 197
LAMPIRAN K: Daftar Hadir Ujian Skripsi ....................................................... 199
LAMPIRAN L: Berita Acara Ujian Skripsi ........................................................ 200
LAMPIRAN M: Kartu Bimbingan Skripsi ......................................................... 202
LAMPIRAN N: Surat Pernyataan....................................................................... 203
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dewasa ini laboratorium merupakan salah satu lingkungan yang
paling dinamis dalam pelayanan kesehatan. Masyarakat medis memberikan
tekanan pada laboratorium untuk memperluas jangkauan pelayanan karena
persaingan yang semakin tajam pada era globalisasi saat ini. Dalam
menghadapi persaingan tersebut, laboratorium secara terus menerus harus
mengevaluasi dan memadukan teknologi yang berubah sangat cepat ke dalam
kegiatan pelayanannya. Pelayanan laboratorium kesehatan masyarakat
dilakukan untuk mendukung upaya peningkatan kesehatan dan pencegahan
penyakit. Sedangkan pelayanan laboratorium klinis dilakukan untuk
mendukung upaya penyembuhan, pemulihan kesehatan serta untuk
penegakkan diagnosis suatu penyakit.
Dalam memberikan pelayanan kepada pelanggan, laboratorium harus
menerapkan standar pelayanan yang sama, tidak membedakan antara
pelanggan yang satu dan yang lain. Bagi laboratorium, pelanggan berarti
organsiasi atau orang yang menerima atau berkepentingan terhadap produk
laboratorium yaitu laporan pemeriksaan, termasuk pendapat dan interpretasi
terhadap hasil tersebut.
Ukuran kepuasan pelanggan erat kaitannya dengan mutu pelayanan
yang diberikan. Dalam kaitannya dengan laboratorium, data hasil
2
pemeriksaan bisa dikatakan mempunyai mutu tinggi apabila data hasil
tersebut memuaskan pelanggan dengan tetap mempertimbangkan aspek
teknis sehingga precision and accuracy (ketelitian dan ketepatan) yang tinggi
dapat dicapai. Selain itu, data tersebut harus mempunyai kemamputelusuran
pengukuran dan terdokumentasi dengan baik, sehingga dapat dipertahankan
secara ilmiah maupun hukum. Hal itu berarti seluruh metode dan prosedur
operasional laboratorium harus terpadu, mulai dari perencanaan pengambilan
sampel, penanganan, pemeriksaan dan/atau kalibrasi, sampai pemberian
laporan hasil kepada pelanggan. Oleh karena itu kebutuhan perbaikan kualitas
pelayanan adalah merupakan suatu kebutuhan yang paling mendasar bagi
kelangsungan hidup laboratorium dalam era kompetisi yang semakin ketat.
Rumah Sakit Perguruan tinggi Negeri (RS-PTN) Universitas
Hasanuddin, sedang dalam proses mengembangkan SIMRS nya sendiri,
bererapa sistem yang termasuk kedalam peroses pengembangan SIMRS ini
yaitu Sistem Admisi Pasien, Sistem Logistik Farmasi dan Sistem Penunjang
Laboratorium.
Sistem informasi yang saat ini diterapkan pada Rumah Sakit
Perguruan tinggi Negeri (RS-PTN) Universitas Hasanuddin adalah aplikasi
berbasis desktop yaitu MYHospital. Sistem MYHospital yg di gunakan
terbagi menjadi beberapa modul, setiap modul berhubungan dengan unit atau
layanan tertentu, Modul Billing rumah sakit masuk dalam Modul
MYHospital, Modul Accounting rumah sakit masuk dalam Modul
MYAccounting, Modul Personalia rumah sakit masuk dalam Modul
3
MYHRD. Penginputan Tindakan Hasil Laboratorium termasuk dalam Modul
Billing Sistem MyHospital. Setelah kertas formulir pemeriksaan laboratorium
diisi lalu kemudian, informasi dari form tersebut diinputkan pada
MYHospital. Sistem penginputan atau entri hasil Lab pada unit Lab Patologi
Klinik menggunakan 2 form Penginputan. Form Tindakan Umum di gunakan
oleh perawat yg bertugas sebagai form penginputan tindakan pasien
sedangkan Form Entri Hasil Digunakan sebagai Inputan form Hasil Hasil
Pemeriksaan Lab. Setiap detail penginputan dicek dan diperiksa oleh dokter
sebagai laporan tindakan pasien dan setiap laporan tindakan pasien digunakan
sebagai rekap laporan tiap bulanan atau tahunan tindakan Lab.
Sistem Penunjang Laboratorium yang merupakan bagian dari
pengembangan SIMRS yang dibangun dengan menganalisis sistem yang
telah berjalan sejauh ini sehingga model penginputan tindakan pada sistem
penunjang laborarium ini sangat menyerupai layanan sistem MYHospital
namun dengan tampilan yang lebih simple dan responsive sehingga
penginputan tindakan pemeriksaan laboratorium dan penginputan hasil
tindakan dapat dilakukan lebih cepat. Sistem dibangun berbasis website
dengan Framework Code Igniter (CI). Penulisan kode yang terstruktur
sehingga setiap update atau pengembangan system kedepannya dapat
dilakukan secara terpusat sehingga proses lebih cepat. Dengan aplikasi ini,
diharapkan akan bisa mempermudah dan mempercepat proses penginputan
tidakan dan pengeloaan pemeriksaan laboratorium pada Rumah Sakit
Perguruan tinggi Negeri (RS-PTN).
4
1.2 Rumusan Masalah
Berdasarkan latar belakang tersebut, rumusan masalah yang akan
diteliti adalah sebagai berikut.
1. Bagaimana merancang aplikasi berbasis website responsive yang
terfokus pada pelaksanaan alur kerja di laboratorium.
2. Bagaimana merancang aplikasi berbasis website yang terstruktur, mudah
untuk dikembangkan dan tingkat keamanannya lebih baik.
1.3 Batasan Masalah
Agar pembahasan terarah dan tidak menyimpang dari pokok
permasalahan yang dibahas, maka sistem ini dibatasi oleh ruang lingkup
permasalahan sebagai berikut.
1. Aplikasi ini dikhususkan pada bagian Laboratorium Rumah Sakit.
2. Aplikasi ini mencakup pada pemeriksaan tujuh sub-laboratorium yang
mencakup: Hematologi, Urinalisis, Diabetes, Analisa Lemak, Fungsi
Ginjal, Tes Narkoba, dan Elektrolit.
3. Aplikasi berbasis website dengan design responsive dan dikembangkan
dengan framework Codeigniter.
1.4 Tujuan Penelitian
1.4.1 Tujuan Umum
Tujuan penelitian ini adalah untuk merancang aplikasi
laboratoriumuntuk membantu proses medis yang berjalan di Rumah Sakit
Perguruan Tinggi Negeri (RS-PTN).
5
1.4.2 Tujuan Khusus
Sedangkan tujuan khusus dari penelitian ini adalah:
a. Mengetahui masalah-masalah yang berhubungan dengan keputusan
medis terkait dengan laboratoriumdi Rumah Sakit Perguruan Tinggi
Negeri (RS-PTN) yang dihadapi, dan dapat diselesaikan dengan
pengembangan aplikasi.
b. Menghasilkan perangkat lunak yang sesuai dengan kebutuhan.
c. Mengetahui perbedaan kualitas sistem informasi sebelum dan sesudah
penerapan sistem informasi laboratoriumdi Rumah Sakit Perguruan
Tinggi Negeri (RS-PTN).
1.5 Manfaat Penelitian
1.5.1 Bagi Pengguna
a. Meningkatkan performa dan kualitas pelayanan di Rumah Sakit
Perguruan Tinggi Negeri dengan penerapan aplikasi sistem penunjang
laboratorium.
b. Membantu staf medis (dokter) di bagian laboratoriumdalam
pengambilan keputusan klinis terhadap pasien rawat inap dan rawat
jalan di Rumah Sakit Perguruan Tinggi Negeri dengan tersedianya
informasi tentang pasien yang berhubungan dengan proses di
laboratorium.
c. Bagi pasien, meskipun bukan merupakan pengguna sistem secara
langsung, namun demikian diharapkan dapat menerima pelayanan
6
medis yang memadai sesuai dengan standar, tepat waktu, dan
memuaskan.
1.5.2 Bagi Peneliti
Manfaat penelitian bagi peneliti adalah dapat menyumbangkan hasil
studi kepada instansi dimana peneliti melakukan penelitian, yaitu Rumah
Sakit Perguruan Tinggi Negeri, sekaligus sebagai wahana dalam
pengembangan ilmu pengetahuan peneliti sehingga mencapai pemahaman
dan pengalaman yang berkaitan dengan lingkup keilmuan teknik
informatika pada umumnya dan pemahaman mengenai sistem informasi
laboratoriumrumah sakit pada khususnya.
1.5.3 Bagi Institusi Pendidikan
Sebagai sumbangan pengetahuan tentang aplikasi sistem informasi,
khususnya sistem informasi laboratorium di rumah sakit, sehingga dapat
dimanfaatkan sebagai bahan referensi/bacaan ilmiah bagi yang
membutuhkannya.
1.6 Sistematika Penulisan
Sistematika penulisan tugas akhir ini terbagi menjadi 5 (lima) bab
dengan beberapa sub bab. Berikut adalah sistematika penulisannya:
BAB I. PENDAHULUAN
Bab ini terdiri dari enam sub bab, yaitu Latar Belakang, Rumusan
Masalah, Batasan Masalah, Tujuan Penelitian, Manfaat Penelitian, dan
Sistematika Penulisan.
7
BAB II. LANDASAN TEORI
Bab ini berisi teori-teori yang digunakan dalam Perancangan
Aplikasi Sistem Penunjang Laboratorium Rumah Sakit Perguruan Tinggi
Negeri (RS-PTN).
BAB III. METODOLOGI PENELITIAN
Bab ini menguraikan secara rinci tentang metode penelitian yang
digunakan dalam menganalisis, merancang dan mengimplementasikan
sistem serta mengenai cara uji coba dan perawatan sistem.
BAB IV. HASIL DAN PEMBAHASAN
Bab ini membahas mengenai aplikasi laboratorium yang akan di
kembangkan, yaitu implementasi, dan pengujian dari sistem yang meliputi
pemrograman serta penerapan.
BAB V. PENUTUP
Bab ini merupakan penutup yang berisi kesimpulan tentang hasil
pemecahan masalah yang diperoleh selama penyusunan tugas akhir ini dan
beberapa saran untuk pengembangan lebih lanjut.
8
BAB II
LANDASAN TEORI
Pada bab ini akan dikemukan hal-hal atau teori-teori yang berkaitan dengan
permasalahan dan ruang lingkup pembahasan sebagai landasan dalam pembuatan
penelitian.
2.1 Rumah Sakit
2.1.1 Definisi Rumah Sakit
Batasan mengenai rumah sakit terdiri dari beberapa pendapat yang
didefinisikan oleh pakar maupun berdasarkan landasan hukum. Menurut WHO
sebagaimana yang termuat dalam WHO Technical Report Series No.122/1957:
"Rumah sakit adalah merupakan bagian integral dari satu organisasi sosial dan
kesehatan dengan fungsi menyediakan pelayanan kesehatan paripurna, kuratif dan
preventif kepada masyarakat, dan pelayanan rawat jalan yang diberikannya
menjangkau keluarga di rumah. Rumah sakit juga merupakan pusat pendidikan dan
latihan tenaga kesehatan dan pusat penelitian bio-medik. (Muhyarsyah, 2007).
Rumah sakit adalah salah satu sarana kesehatan tempat menyelenggarakan
upaya kesehatan. Upaya kesehatan adalah setiap kegiatan untuk memelihara dan
meningkatkan kesehatan, bertujuan untuk mewujudkan derajat kesehatan yang
optimal bagi masyarakat. Upaya kesehatan diselenggarakan dengan pendekatan
pemeliharaan, peningkatan kesehatan (promotif), pencegahan penyakit (preventif),
penyembuhan penyakit (kuratif), dan pemulihan kesehatan (rehabilitatif), yang
dilaksanakan secara menyeluruh, terpadu, dan berkesinambungan. (Widya, 2012).
9
Oleh karena kesehatan merupakan salah satu aspek yang sangat penting bagi
umat manusia, sehingga pelayanan kesehatan masyarakat harus bisa mencakup
berbagai lapisan masyarakat, harus bersifat dasar, spesialistik dan subspesialistik.
Sehingga tujuan rumah sakit adalah untuk menghasilkan produk, jasa atau
pelayanan kesehatan yang benar-benar menyentuh kebutuhan dan harapan pasien
dari berbagai aspek, yang menyangkut medis dan non medis, jenis pelayanan,
prosedur pelayanan, harga dan informasi yang dibutuhkan. (Muhyarsyah, 2007).
2.1.2 Tugas dan Fungsi Rumah Sakit
Menurut Milton Roemer dan Friedman dalam bukunya Doctors In Hostpitals
fungsi rumah sakit adalah :
a. Harus ada pelayanan rawat inap dengan fasilitas diagnostik dan
terapetiknya.
b. Harus memiliki pelayanan rawat jalan.
c. Rumah sakit juga bertugas untuk melakukan pendidikan pelatihan.
d. Rumah sakit perlu melakukan penelitian dibidang kedokteran dan
kesehatan.
e. Bertanggung jawab untuk program pencegahan penyakit dan penyuluhan
kesehatan bagi populasi di sekitarnya (Modeong, 2014).
Dalam pelaksanaan tugasnya rumah sakit mempunyai fungsi
menyelenggarakan pelayanan medis, penunjang medis dan non medis pelayanan
dan asuhan keperawatan, pelayanan rujukan, pendidikan dan pelatihan, penelitian
dan pengembangan serta administrasi dan keuangan. Berdasarkan landasan hukum
10
di Indonesia, fungsi rumah sakit seperti yang dinyatakan di dalam Permenkes RI
Nomor 159b Tahun 1988 adalah:
a. Menyediakan dan menyelenggarakan: (a) pelayanan medis, (b) pelayanan
penunjang medis, (c) pelayanan perawatan, (d) pelayanan rehabilitasi, (e)
pencegahan dan peningkatan kesehatan.
b. Sebagai tempat pendidikan dan atau latihan tenaga medis.
c. Sebagai tempat penelitian dan pengembangan ilmu dan teknologi bidang
kesehatan.
Sedangkan fungsi dari rumah sakit berdasarkan Undang-Undang Republik
Indonesia Nomor 44 Tahun 2009, rumah sakit umum mempunyai fungsi:
1. Penyelenggaraan pelayanan pengobatan dan pemulihan kesehatan sesuai
dengan standar pelayanan rumah sakit.
2. Pemeliharaan dan peningkatan kesehatan perorangan melalui pelayanan
kesehatan yang paripurna tingkat kedua dan ketiga sesuai kebutuhan medis.
3. Penyelenggaraan pendidikan dan pelatihan sumber daya manusia dalam
rangka peningkatan kemampuan dalam pemberian pelayanan kesehatan.
Penyelenggaraan penelitian dan pengembangan serta penapisan teknologi
bidang kesehatan dalam rangka peningkatan pelayanan kesehatan dengan
memperhatikan etika ilmu pengetahuan bidang kesehatan.
2.2 Sistem Informasi
Sistem informasi adalah suatu sistem dalam suatu organisasi yang
mempertemukan kebutuhan pengelolaan transaksi harian, mendukung operasi,
11
bersifat manajerial, dan kegiatan strategi dari suatu organisasi dan menyediakan
pihak luar tertentu dengan laporan-laporan yang dibutuhkan.
2.2.1 Pengertian Sistem
Pengertian sistem berdasarkan pendapat para ahli dapat didefinisikan sebagai
berikut :
a. Menurut Indrajit (2001: 2), sistem mengandung arti kumpulan-kumpulan
dari komponen-komponen yang dimiliki unsur keterkaitan antara satu
dengan lainnya.
b. Pengertian Sistem Menurut Jogianto (2005: 2), mengemukakan bahwa
sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk
mencapai suatu tujuan tertentu. Sistem ini menggambarkan suatu
kejadian-kejadian dan kesatuan yang nyata adalah suatu objek nyata,
seperti tempat, benda, dan orang-orang yang betul-betul ada dan terjadi.
c. Pengertian Sistem Menurut Murdick, R.G, (1991: 27),suatu sistem adalah
seperangkat elemen yang membentuk kumpulan atau prosedur-prosedur/
bagan-bagan pengolahan yang mencari suatu tujuan tertentu.
d. Pengertian Sistem Menurut Jerry FutzGerald, (1981 5), sistem adalah
suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan,
berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk
menyelesaikan suatu sasaran yang tertentu.
e. Pengertian Sistem Menurut Davis, G.B, (1991 : 45), sistem secara fisik
adalah kumpulan dari elemen-elemen yang beroperasi bersama-sama
untuk menyelesaikan suatu sasaran.
12
f. Definisi Sistem Menurut Dr. Ir. Harijono Djojodihardjo (1984: 78), "Suatu
sistem adalah sekumpulan objek yang mencakup hubungan fungsional
antara tiap-tiap objek dan hubungan antara ciri tiap objek, dan yang secara
keseluruhan merupakan suatu kesatuan secara fungsional.”
g. Definisi Sistem Menurut Lani Sidharta (1995: 9), "Sistem adalah
himpunan dari bagian-bagian yang saling berhubungan yang secara
bersama mencapai tujuan-tujuan yang sama”.
Dengan demikian sistem adalah suatu jaringan kerja dari prosedur-prosedur
yang saling berhubungan, berkumpul bersama-sama untuk melakukan kegiatan atau
untuk melakukan sasaran yang tertentu. Pendekatan system yang merupakan
jaringan kerja dari prosedur lebih menekankan urutan-urutan operasi di dalam
sistem. (Hutahean, 2014).
2.2.2 Karakteristik Sistem
Untuk memahami atau mengembangkan suatu sistem, maka perlu
membedakan unsur-unsur dari sistem yang membentuknya. Berikut adalah
karakteristik sistem yang dapat membedakan suatu sistem dengan sistem lainnya :
a. Batasan (boundary). Penggambaran dari suatu elemen atau unsur mana
yang termasuk di dalam sistem dan mana yang di luar sistem.
b. Lingkungan (environment). Segala sesuatu di luar sistem, lingkungan yang
menyediakan asumsi, kendala, dan input terhadap suatu sistem.
c. Masukan (input). Sumber daya (data, bahan baku, peralatan, energi) dari
lingkungan yang dikonsumsi dan dimanipulasi oleh suatu sistem.
13
d. Keluaran (output). Sumber daya atau produk (informasi, laporan,
dokumen, tampilan layer computer, barang jadi) yang disediakan untuk
lingkungan sistem oleh kegiatan dalam suatu sistem.
e. Komponen (component). Kegiatan-kegiatan atau proses dalam suatu
sistem yang mentransformasikan input menjadi bentuk setengah jadi
(output). Komponen ini bisa merupakan subsistem dari sebuah sistem.
f. Penghubung (interface). Tempat di mana komponen atau sistem dan
lingkungannya bertemu atau berinteraksi.
g. Penyimpanan (storage). Area yang dikuasai dan digunakan untuk
penyimpanan sementara dan tetap dari informasi, energi, bahan baku, dan
sebagainya. Penyimpanan merupakan suatu media penyangga di antara
komponen tersebut bekerja sama dengan berbagai tingkatan yang ada dan
memungkinkan komponen yang berbeda dari berbagai data yang sama (Al
Fatta, 2007).
2.2.3 Informasi
Informasi adalah data yang diolah menjadi bentuk yang lebih berguna dan
lebih berarti bagi penerimanya. Sumber informasi adalah data. Data adalah
kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata.
Menurut Gordon B. Davis : Informasi adalah data yang telah diolah menjadi suatu
bentuk yang penting bagi sipenerima dan memiliki nilai nyata atau yang dapat
dirasakan dalam keputusan-keputusan yang sekarang atau keputusan-keputusan
yang akan datang (Al Fatta, 2007).
14
� Fungsi Informasi :
Fungsi utama informasi adalah menambah pengetahuan atau mengurangi
ketidakpastian pemakai informasi, karena informasi berguna memberikan
gambaran tentang suatu permasalahan sehingga pengambil keputusan dapat
menentukan keputusan lebih cepat, informasi juga memberikan standar, aturan,
maupun indikator bagi penerima keputusan.
� Kegunaan informaasi tergantung pada :
a. Tujuan si penerima, bila tujuannya untuk memberi bantuan, maka
informasi itu harus membantu si penerima dalam apa yang ia usahakan
untuk memperolehnya.
b. Ketelitian penyampaian dan pengelolaan data, dalam menyampaikan dan
mengolah data, inti dan pentingnya informasi harus dipertahankan.
c. Waktu, mengenai updatenya suatu informasi tersebut.
d. Ruang atau tempat, informasi itu tersedia dalam ruangan atau tempat yang
tepat.
e. Bentuk, dapat digunakan secara efektif yaitu dengan menunjukkan
hubungan-hubungan yang diperlukan.
f. Semantik, hubungan antara kata-kata dan arti yang diinginkan jelas.
2.3 Sistem Informasi Manajemen Rumah Sakit (SIMRS)
Sistem informasi manajemen merupakan jaringan prosedur pengolahan data
yang dikembangakan dalam suatu organisasi dan disahkan bila diperlukan untuk
memberikan data kepada manajemen untuk dasar dalam pengambilan keputusan
dalam rangka mencapai tujuan (Al Fatta, 2007).
15
Sistem Informasi Manajemen Rumah Sakit (SIMRS) adalah suatu rangkaian
kegiatan yang mencakup semua pelayanan kesehatan (rumah sakit) disemua
tingkatan administrasi yang dapat memberikan informasi kepada pengelola untuk
proses manajemen (berhubungan dengan pengumpulan data, pengolahan data,
penyajian informasi dan analisa) pelayanan kesehatan di rumah sakit. Peran sistem
informasi didalam kegiatan manajemen rumah sakit sangat membantu dan
mempunyai peran yang sangat efektif dalam proses pelayanan kesehatan di rumah
sakit, dengan sistem informasi seorang pemimpin rumah sakit dapat mengambil
suatu kebijakan secara cepat, tepat dan akurat berdasarkan informasi yang didapat
dari pelayanan kesehatan di rumah sakit yang dipimpinnya.
SIMRS terintegrasi merupakan paket sistem aplikasi yang terpadu untuk
mengelola proses bisnis rumah sakit, yang dihubungkan secara online pada semua
fungsi pelayanan rumah sakit, mulai dari transaksi pendaftaran, perawatan,
pemeriksaan laboratorium, radiologi, pemberian obat, sampai dengan check-out
pasien, serta kegiatan keuangan, akuntansi, pengelolaan piutang, stok barang/obat,
hutang, manajemen aset, gizi, sterilisasi, laundry, kepegawaian, dan fungsi lainnya
(Setiawan, 2011).
Dengan adanya sebuah sistem informasi rumah sakit (SIMRS) sehingga
memiliki manfaat yang besar bagi meningkatkan kualitas pelayanan rumah sakit.
Berikut ini adalah manfaaat dari SIMRS (Megawarni, 2014) :
• Manfaat Umum
Manfaat umum yang dirasakan dengan menjalankan SIMRS, memberikan
nilai tambah dengan meningkatkan efisiensi, kemudahan, standar praktek
16
kedokteran yang baik dan benar, dokumentasi yang auditable dan accountable,
mendukung pemasaran jasa rumah sakit seperti mutu, kecepatan, kenyamanan,
kepastian, biaya, meningkatkan profesionalisme dan kinerja rumah sakit,
meningkatkan akses dan pelayanan rumah sakit terhadap berbagai sumber
daya, antara lain mitra usaha potensial seperti pedagang besar farmasi,
jamsostek, instansi/perusahaan pemberi jaminan karyawannya, askes.
• Manfaat Organisasi
Manfaat organisasi yang dirasakan dengan menjalankan SIMRS, adalah
sebagai berikut :
1. Budaya Kerja, karena SIMRS ini mensyaratkan kedisiplinan dalam
pemasukan data, baik ketepatan waktu maupun kebenaran data, maka
budaya kerja yang sebelumnya menangguhkan hal-hal seperti itu,
menjadi berubah. Hal ini dapat terjadi karena integrasi SIMRS dengan
seluruh unit layanan.
2. Transparansi, SIMRS sebaiknya dirancang menganut kebijakan data
terpusat, artinya data-data yang digunakan oleh seluruh rumah sakit
berada di bawah satu kendali. Misalnya untuk data tarif tindakan, unit
layanan tidak boleh dan tidak bisa memasukkan atau melakukan
perubahan pada tarif yang ada, data yang dimasukkan hanya layanan
yang diberikan kepada pasien sehingga manipulasi tarif tidak
dimungkinkan.
3. Koordinasi Antar Unit (Team Work), sering terjadi data yang
digunakan oleh unit layanan tertentu adalah milik unit layanan yang
17
lain, misal kode perusahaan pelanggan adalah milik keuangan yang
digunakan secara intensif oleh medical record, maka ketika terjadi
perubahan terhadap data tersebut, unit yang bersangkutan akan
mengkoordinasikannya dengan unit yang terpengaruh. Apabila hal ini
tidak dilakukan maka dengan sendirinya akan terjadi kekacauan data
referensi.
4. Pemahaman Sistem, dengan dipergunakannya SIMRS, setiap personil
di rumah sakit, secara tidak langsung akan dituntut untuk mengetahui
proses bisnis yang terjadi di rumah sakit tersebut. Ini disebabkan
karena data atau informasi yang dikirim ke unit lain, merupakan suatu
siklus proses bisnis di rumah sakit tersebut.
5. Mengurangi Biaya Administrasi, dengan adanya SIMRS maka
pengurangan biaya administrasi dapat dilakukan, sebagai contoh
adalah penghematan dalam bentuk kertas.
• Manfaat Operasional
Manfaat operasional yang dirasakan dengan menjalankan SIMRS, adalah
sebagai berikut :
1. Kecepatan, manfaat yang paling terasa ketika SIMRS tersebut selesai
diimplementasikan adalah kecepatan penyelesaian pekerjaan-
pekerjaan administrasi. Ketika dengan sistem manual pengerjaan
tagihan kepada mitra/pihak ke-3. Pada awal pemasangannya, ketika
aliran kerja belum lancar, peningkatan kecepatan belum terlalu terasa,
namun ketika komitmen seluruh unit untuk tepat waktu memasukkan
18
data dengan akurasi entri data yang tinggi dipenuhi, maka akan terasa
sekali dampak dari SIMRS terhadap kecepatan kerja.
2. Akurasi, hal lain yang juga terasa berubah adalah akurasi data, apabila
dengan sistem manual orang harus memeriksa satu demi satu
transaksi, namun dengan SIMRS hal tersebut cukup dilakukan dengan
membandingkan laporan antar unit yang dihasilkan olehnya. Ini juga
dapat mencegah terjadinya duplikasi data untuk transaksi-transaksi
tertentu.
3. Integrasi, hal lain yang juga terasa berpengaruh terhadap budaya kerja
adalah integrasi data di setiap unit. Bila dengan sistem manual, data
pasien harus dimasukkan di setiap unit, maka dengan SIMRS data
tersebut cukup sekali dimasukkan di pendaftaran saja. Hal ini jelas
mengurangi beban kerja adminstrasi dan menjamin konsistensi data.
4. Peningkatan Pelayanan, pengaruh SIMRS yang dirasakan oleh pasien
adalah semakin cepat dan akuratnya pelayanan. Pasien tidak perlu
menunggu lama untuk menyelesaikan administrasinya, baik rawat
inap ataupun rawat jalan. Hal yang sama juga dirasakan perusahaan
pelanggan, yang mana tagihan yang dikirim cukup akurat dan detail
sehingga memudahkan analisa mereka.
5. Peningkatan Efisiensi, tanpa SIMRS, beban pekerjaan lebih bersifat
administratif, sedangkan dengan diimplementasikannya beban
pekerjaan lebih bersifat analisis. Sebagai contoh, jika dahulu
konsentrasi bagian penagihan adalah membuat tagihan, sekarang
19
konsentrasinya lebih kepada umur tagihan itu sendiri. Selain itu,
karena kecepatan dan akurasi data meningkat, maka waktu yang
dibutuhkan untuk melakukan pekerjaan-pekerjaan administrasi
berkurang jauh, sehingga karyawan dapat lebih fokus pada pekerjaan
utamanya.
6. Kemudahan Pelaporan, pekerjaan pelaporan adalah pekerjaan yang
menyita waktu namun sangat penting. Dengan adanya SIMRS, proses
pelaporan hanya memakan waktu dalam hitungan menit sehingga kita
dapat lebih konsentrasi untuk menganalisa laporan tersebut.
• Manfaat Manajerial
Manfaat manajerial yang dirasakan dengan menjalankan SIMRS, adalah
sebagai berikut :
1. Kecepatan Mengambil Keputusan, dengan sistem manual, manajer
seringkali mengambil keputusan berdasarkan informasi yang
mungkin sudah tidak relevan lagi. Namun dengan SIMRS, informasi
yang disajikan bersifat real time, bahkan dapat membuat tabulasi dari
informasi tersebut sehingga informasi yang didapat sudah sangat
spesifik sesuai dengan kebutuhan. Hal ini tentu saja meningkatkan
kualitas keputusan, dan berkurangnya waktu dalam hal pengambilan
keputusan.
2. Akurasi dan Kecepatan Identifikasi Masalah, karena laporan-laporan
yang dihasilkan SIMRS memberi gambaran dari hari ke hari mengenai
kinerja rumah sakit, maka jika ada hal-hal yang tidak normal dapat
20
segera diketahui. Hal ini membuat identifikasi potensi masalah dapat
dilakukan lebih dini, sehingga tindakan pencegahan atau
penanggulangannya dapat segera disusun.
3. Kemudahan Penyusunan Strategi, sejalan dengan identifikasi masalah
di atas, manajer pun dapat menyusun strategi ke depan berdasarkan
data populasi, bukan lagi statistik, karena SIMRS mampu
memberikan data populasi dengan selang waktu tertentu, bahkan
dapat menyajikan kecenderungan datanya. Ini tentu saja semakin
menajamkan strategi yang disusun. Implementasi SIMRS tentunya
tidak dapat berjalan dengan baik tanpa dukungan semua pihak yang
terkait serta political will dari pimpinan rumah sakit maupun pemilik
rumah sakit.
2.4 Instalasi Laboratorium Rumah Sakit
Laboratorium klinik atau laboratorium medis merupakan laboratorium di mana
berbagai macam tes dilakukan pada spesimen biologis untuk mendapatkan
informasi tentang kesehatan pasien. Instalasi laboratorium rumah sakit adalah salah
satu bagian di rumah sakit yang merupakan pelayanan penunjang yang bertujuan
untuk:
1. membantu diagnose suatu penyakit sehingga dokter dapat menangani suatu
penyakit dengan tepat, cepat, dan akurat;
2. menentukan resiko terhadap suatu penyakit dengan harapan suatu penyakit
dapat terdeteksi secara dini; dan
21
3. menentukan prognosis/perjalanan penyakit sehingga dapat digunakan
sebagai pemantau perkembangan dan keberhasilan pengobatan suatu
penyakit.
Instalasi laboratorium rumah sakit adalah suatu unit pelayanan penunjang
medik rumah sakit yang berperan sebagai tempat penyelenggara semua kegiatan
pekerjaan laboratorium yang ditujukan untuk menunjang pelayanan kesehatan.
Instalasi laboratorium di RS-PTN Unhas terdiri dari tiga laboratorium, yaitu:
1. Instalasi Laboratorium Patologi Klinik;
2. Instalasi Laboratorium Patologi Anatomi; dan
3. Instalasi Laboratorium Mikrobiologi Klinik.
2.5 Codeigniter
Menurut Awan Pribadi Basuki (2014), Codeigniter adalah sebuah web
application framework yang bersifat open source digunakan untuk membangun
aplikasi php dinamis. Tujuan utama pengembangan Codeigniter adalah untuk
membantu developer untuk mengerjakan aplikasi lebih cepat daripada menulis
semua code dariawal. Codeigniter menyediakan berbagai macam library yang dapat
mempermudah dalam pengembangan. Codeigniter diperkenalkan kepada publik
pada tanggal 28 Februari 2006.
Codeigniter sendiri dibangun menggunakan konsep Model-View-Controller
development pattern. Codeigniter sendiri merupakan salah satu framework tercepat
dibandingkan dengan framework lainnya. Pada acara frOSCon (August 2008),
pembuat PHP Rasmus Lerdorf mengatakan diamenyukai codeigniter karena dia
22
lebih ringan dan cepat dibandingkan framework lainnya ("because it is faster,
lighter and the least like a framework") (Basuki, 2014:3).
Codeigniter sangat ringan, terstruktur, mudah dipelajari, dokumentasi
lengkap dan dukungan yangluar biasa dari forum codeigniter. Selain itu codeigniter
juga memiliki fitur-fitur lainya yang sangat bermanfaat, antara lain (Basuki,
2014:3):
• Menggunakan Pattern MVC: Dengan menggunakan pattern MVC ini,
struktur kode yang dihasilkan menjadi lebih terstruktur dan memiliki
standar yang jelas.
• URL Friendly: URL yang dihasilkan sangat URL friendly. Pada codeigniter
diminimalisasi penggunaan $_GET dan di gantikan dengan URL•
• Kemudahan:.Kemudahan dalam mempelajari, membuat library dan
helper, memodifikasi serta meng-integrasikan Library dan helper.
2.5.1 MVC (Model-View-Controller)
MVC adalah konsep dasar yang harus diketahui sebelum mengenal
codeigniter. MVC adalah singkatan dari Model View Controller. MVC sebenarnya
adalah sebuah pattern/teknik pemogramanan yang memisahkan bisnis logic (alur
pikir), data logic (penyimpanan data) dan presentation logic (antarmuka aplikasi)
atau secara sederhana adalah memisahkan antara desain,, data dan proses. Adapun
komponen-komponen MVC antara lain (Basuki, 2014:5):
• Model
Model berhubungan dengan data dan interaksi ke database atau webservice.
Model juga merepresentasikan struktur data dari aplikasi yang bisa berupa
23
basis data maupun data lain, misalnya dalam bentuk file teks, file XML
maupun webservice. Biasanya di dalam model akan berisi class dan fungsi
untuk mengambil, melakukan update dan menghapus data website. Sebuah
aplikasi web biasanya menggunakan basis data dalam menyimpan data,
maka pada bagian Model biasanya akan berhubungan dengan perintah-
perintah query SQL.
• View
View berhubungan dengan segala sesuatu yang akan ditampilkan ke end-
user. Bisa berupa halaman web, css, javascript, dan lain-lain. Kita harus
menghindari adanya logika atau pemrosesan data di view. Di dalam view
hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. View
dapat dikatakan sebagai halaman website yang dibuat dengan menggunakan
HTML dan bantuan CSS atau JavaScript. Di dalam view jangan pernah ada
kode untuk melakukan koneksi ke database. View hanya dikhususkan untuk
menampilkan data-data hasil dari model dan controller.
• Controller
Controller bertindak sebagai penghubung data dan view. Di dalam
Controller inilah terdapat class-class dan fungsi-fungsi yang memproses
permintaan dari View ke dalam struktur data di dalam Model. Controller
juga tidak boleh berisi kode untuk mengakses basisdata karena tugas
mengakses data telah diserahkan kepada model. Tugas controller adalah
menyediakan berbagai variabel yang akan ditampilkan di view, memanggil
model untuk melakukan akses ke basis data, menyediakan penanganan
24
kesalahan/error, mengerjakan proses logika dari aplikasi serta melakukan
validasi atau cek terhadap input.
Gambar 2.1: Flowchart MVC
Jika dipetakan, alur kerja CodeIgniter akan tampak seperti Gambar 2.1.
Browser berinteraksi melalui controller. Controller-lah yang akan menerima dan
membalas semua request dari browser. Untuk data maka controller akan meminta
ke Model dan untuk UI/template ak
an meminta ke View. Jadi “Otak” dari aplikasi ada di controller, “Muka”
aplikasi ada di view dan “Data” ada di model. Ketika browser meminta sebuah
halaman web maka router akan mencarikan controller mana yang harus menangani
request tersebut. Setelah itu barulah si controller menggunakan model untuk
mengakses data dan View untuk menampilkan data tersebut. (Basuki: 2014:7).
25
2.5.2 Instalasi Codeigniter
Instalasi codeigniter sangat mudah. Meskipun namanya instalasi tetapi karena
codeigniter adalah aplikasi berbasis website maka sebenarnya yang perlu dilakukan
adalah meng-copy folder aplikasi codeigniter ke dalam folder htdocs atau
Document Root dari web server yang telah diinstall sebelumnya. Berbeda dengan
instalasi software pada umumnya.
Sebelum melakukan instalasi yang perlu dilakukan pertama kali adalah
mendapatkan kode sumber dari codeigniter itu sendiri yang dapat di-download di
http://www.CodeIgniter.com/. Selanjutnya letakkan folder hasil ekstrak tadi di
Document Root web server, yaitu folder htdocs didalam direktori C:\xampp bagi
yang menggunakan XAMPP di Windows atau /var/www/html bagi yang
menggunakan linux(semua tergantung dimana anda meng-install dan
mengkonfigurasi webserver) (Basuki, 2014:13).
Dengan menggunakan konfigurasi default saja maka codeigniter sudah dapat
berjalan di web server anda. Adapun struktur utama dari codeigniter terbagi
menjadi dua bagian, yaitu application dan sistem/corecodeigniter. Application
adalah tempat kita meletakkan code yangakan dibuat (bewarna merah dan hijau
sedangkan sistem/corecodeigniter yang bewarna ungu). Folder sistem berisi
library-library dan helper bawaan codeigniter (Basuki, 2014:14).
26
Gambar 2.2: Struktur Direktori Codeigniter
Adapun susunan folder codeigniter secara default adalah:
• Folder application: disinilah aplikasi yang akan kita bangun diletakkan.
o Folder config - tempat menyimpan semua file konfigurasi yang ada di
dalam aplikasi, mulai dari database, router, dan autoload aplikasi.
o Folder controllers - tempat menyimpan semua file controller.
o Folder errors - tempat menyimpan semua template error aplikasi.
o Folder helpers - tempat menyimpan helper-helper yang bukan berasal
dari CI.
o Folder hooks - tempat menyimpan hook yang digunakan untuk
mengubah alur fungsi dari core CI.
27
o Folder language - tempat menyimpan bahasa-bahasa yang akan di
gunakan.
o Folder libraries - tempat menyimpan semua library buatan kita
sendiri.
o Folder models - tempat menyimpan semua model.
o Folder views - tempat menyimpan semua file view aplikasi.
• Folder system menyimpan semua file baik itu file aplikasi yang dibuat
maupun core framework-nya.
o Folder cache - tempat menyimpan semua cache yang dibuat caching
library.
o Folder codeigniter - tempat menyimpan semua semua file internals
CI.
o Folder database - tempat menyimpan semua driver database drivers
dan class yang akan digunakan.
o Folder fonts - tempat menyimpan semua font yang digunakan image
manipulation library.
o Folder helpers - tempat menyimpan semua helper core CI.
o Folder language - tempat menyimpan semua language core CI.
o Folder libaries - tempat menyimpan semua library core CI
o Folder logs - tempat menyimpan semua logs generated oleh CI.
o Folder plugin - tempat menyimpan semua plugin core CI.
o Folder scaffolding - tempat menyimpan semua file yang berfungsi
sebagai scaffolding.
28
• Folder user_guide - berisi userguide/manual penggunaan CI.
• File index.php - file yang akan menghandle semua request yang dilakukan
oleh client.
Setelah codeigniter diletakkan ke dalam folder htdocs maka akan didapatkan
tampilan seperti dibawah ini, artinya codeigniter telah sukses berjalan.
Gambar 2.3: Tampilan browser ketika sukses meng-instal codeigniter.
2.6 Perangkat Lunak yang Digunakan
2.6.1 MySQL
MySQL adalah sebuah DBMS (Database Management System). Sistem
database dirancang untuk mengelola informasi dalam jumlah yang besar. Perintah
MySQL dapat dikategorikan menjadi 3 sub perintah, yaitu DDL (Data Definition
Language), DML (Data Manipulation Language) dan DCL (Data Control
Language).
29
a. DDL (Data Definition Language)
DDL ialah perintah yang digunakan untuk mendefinisikan atau
membangun struktur database.
• CREATE: untuk membuat database, tabel dan kolom baru.
• ALTER: mengubah struktur tabel. Seperti mengganti nama tabel,
menambah kolom, mengubah kolom, menghapus kolom maupun
memberikan atribut pada kolom.
• DROP: untuk menghapus database dan tabel.
b. DML (Data Manipulation Language)
DML ialah perintah yang digunakan untuk mengelola atau memanipulasi
data dalam database.
• SELECT: untuk mengambil atau menampilkan data dari
database.
• INSERT: untuk memasukkan data ke dalam tabel.
• UPDATE: untuk memperbarui data dalam tabel.
• DELETE: untuk menghapus data dari tabel
c. DCL (Data control Language)
DCL ialah perintah yang digunakan untuk melakukan pengontrolan data
dan server database.
• GRANT : untuk memberikan hak akses pengguna ke database.
• REVOKE : untuk menghilangkan hak akses yang telah
diberikan dengan perintah
30
2.6.2 XAMPP
Menurut Yogajiwanjaya (2014), XAMPP adalah software web server apache
yang di dalamnya tertanam server MySQL yang didukung dengan bahasa
pemrograman PHP untuk membuat website yang dinamis. XAMPP sendiri
mendukung dua sistem operasi yaitu windows dan Linux.
Untuk linux dalam proses penginstalannya menggunakan command line
sedangkan untuk windows dalam proses penginstalannya menggunakan interface
grafis sehingga lebih mudah dalam penggunaaan XAMPP di Windows di banding
dengan Linux.
Adapun fungsi XAMPP menurut Yogajiwanjaya (2014), ialah sebagai
aplikasi untuk membangun aplikasi website dinamis di localhost atau yang belum
terkoneksi dengan internet. Selain itu, XAMPP terdiri atas program Apache HTTP
Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa
pemrograman PHP dan Perl. Nama XAMPP 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 melayani tampilan halaman web yang dinamis.
2.6.3 PHP & Object Oriented Programming
PHP pertama kali ditemukan tahun 1995 oleh seorang Software Developer
bernama Rasmus Lerdrof (Dwiartara: 3). PHP (Personal Home Page) atau saat ini
dikenal dengan singkatan Hypertext Preprocessor, hadir sebagai usaha
mendinamisasikan halaman website. Hal inilah yang membedakan PHP dengan
HTML. HTML merupakan bahasa statis yang apabila kita ingin mengubah
31
konten/isinya maka yang harus dilakukan pertama kali adalah membuka file-nya
terlebih dahulu, kemudian menambahkan isi kedalam file tersebut (Dwiartara: 4).
PHP disebut bahasa pemrograman server side karena PHP diproses pada
komputer server. Hal ini berbeda dibandingkan dengan bahasa pemrograman client-
side seperti JavaScript yang diproses pada web browser (client).
Pada awalnya PHP merupakan singkatan dari Personal Home Page. Sesuai
dengan namanya, PHP digunakan untuk membuat website pribadi. Dalam beberapa
tahun perkembangannya, PHP menjelma menjadi bahasa pemrograman web yang
powerful dan tidak hanya digunakan untuk membuat halaman web sederhana, tetapi
juga website populer yang digunakan oleh jutaan orang seperti wikipedia,
wordpress dan joomla.
Object Oriented Programming (OOP) merupakan paradigma pemrograman
yang berorientasikan kepada obyek. Semua data dan fungsi pada paradigma ini
dibungkus dalam kelas-kelas atauobyek-obyek. Bandingkan dengan logika
pemrograman terstruktur, setiap obyek dapat menerimapesan, memproses data, dan
mengirim pesan ke obyek lainnya. OOP diciptakan untuk mengatasiketerbatasan
pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah
semuapemecahan masalah dibagi ke dalam obyek. Dalam konsep OOP data dan
fungsi-fungsi yangakan mengoperasikannya digabungkan menjadi satu kesatuan
yang dapat disebut sebagai obyek.
32
2.6.4 JavaScript
JavaScript merupakan bahasa skript populer yang dipakai untuk menciptakan
halaman website yang dapat berinteraksi dengan pengguna dan dapat merespon
event yang terjadi pada halaman. JavaScript merupakan perekat yang menyatukan
halaman-halaman website. JavaScript awalnya dikenal sebagai LiveScript,
dikembangkan oleh Brendan Eich di Netscape pada tahun 1995 yang menjadi
bagian terintegrasi di dalam Netscape Navigator 2.0. JavaScript merupakan bahasa
script yang menghidupkan halaman-halaman HTML (Sianipar, 2015:1).
JavaScript bukan Java. Keduanya merupakan bahasa yang sangat berbeda.
Java dikembangkan oleh Sun Microsystems. JavaScript dikembangkan oleh
Netscape. Aplikasi Java bersifat independen dari halaman web, sedangkan program
JavaScript ditanam di dalam halaman web dan harus dijalankan pada jendela
browser (Sianipar, 2015:2).
Program JavaScript dipakai untuk mendeteksi dan beraksi terhadap event-
event yang disebabkan oleh pengguna. JavaScript dapat digunakan untuk
mengendalikan tampilan halaman dan memvalidasi apa yang diketikkan pengguna
ke dalam sebuah form sebelum pengiriman form ke server dilakukan. JavaScript
berperan sebagai bahasa pemrograman yang memiliki konstruksi-konstruksi dasar
seperti variabel dan tipe data, look kontrol, statemen if else, statemen switch, fungsi,
dan objek. JavaScript dapat dipakai untuk perhitungan aritmatik, pemanipulasian
tanggal dan waktu, pemodifikasian array, string dan objek (Sianipar, 2015:3).
33
BAB III
METODOLOGI PENELITIAN
3.1 Waktu dan Tempat Penelitian
Penelitian ini dilaksanakan pada bulan Maret 2017 sampai dengan Mei 2017.
Adapun tempat penelitian yang dilakukan di RS-PTN Universitas Hasanuddin.
3.2 Metode Penelitian
Metode Penelitian merupakan tahapan-tahapan kegiatan yang akan dilakukan
peneliti untuk mempermudah dalam melakukan penelitian. Metode penelitian
Aplikasi Sistem Penunjang Laboratorium Rumah Sakit Perguruan Tinggi Negeri
(RS-PTN) menggunakan metode seperti pada Gambar 3.1.
Gambar 3.1: Struktur Metode Penelitian
34
Penelitian dimulai dengan pengambilan data awal untuk menentukan
kebutuhan sistem yaitu dengan studi literatur dan wawancara.
a. Studi Literatur (kepustakaan)
Studi literatur dilakukan dengan cara mempelajari aspek-aspek yang
berkaitan dengan penelitian ini, di antaranya adalah mencari literatur-literatur
yang berakaitan dengan sistem informasi manajemen rumah sakit dan aplikasi
penunjang laboratorium, teknik pengkodean dengan metode MVC dan
pengembangan sistem dengan model Sekuensial Linier (Waterfall Method).
Data-data yang digunakan dalam studi literatur diperoleh dengan
mengumpulkan jurnal, penelusuran internet, dan buku yang berkaitan dengan
topik.
b. Wawancara
Wawancara dilakukan dengan mengadakan tanya jawab kepada
beberapa admin rumah sakit dan pihak-pihak yang berkepentingan yang
berhubungan dengan laboratorium, sehingga penelitian ini mendapatkan data
yang lebih akurat dan tidak terpaku pada studi literatur
Metode pengembangan perangkat lunak dalam penelitian ini menggunakan
model sekuensial linier atau lebih sering disebut sebagai metode waterfall. Model
ini mengusulkan pendekatan perkembangan perangkat lunak yang sistematis dan
sekuensial yang dimulai pada tingkat dan kemajuan sistem, yaitu tahap analisis,
desain, kode dan pengujian.
35
3.2.1. Analisis Permasalahan
Pada tahap ini, langkah awal yang dilakukan yaitu mengumpulkan data dan
informasi terkait dengan penelitian melalui studi literatur dan wawancara serta
observasi secara langsung dengan admin SIMRS dan staff laboratorium di Rumah
Sakit Pendidikan Universitas Hasanuddin.
Kemudian, dengan data dan informasi yang telah diperoleh dilakukan
analisa dan Perancangan Framework Aplikasi Sistem Sistem Penunjang
Laboratoirum. Pada umumnya sistem ini secara garis besar terdiri dari tiga
komponen utama yaitu manajemen pemeriksaan lab, order pemeriksaan lab, dan
hasil pemeriksaan.
Fitur manajemen pemeriksaan lab adalah menu yang tersedia untuk
mengatur jenis-jenis pemeriksaan yang tersedia oleh sistem. Pada menu manajemen
pemeriksaan lab ini tersedia daftar pemeriksaan-pemeriksaan yang telah tersimpan
pada sistem. Dapat pula dilakukan penambahan pemeriksaan baru, pengubahan data
pemeriksaan dan penghapusan pemeriksaan. Fitur order pemeriksaan lab adalah
menu yang tersedia untuk melakukan pemesanan tindakan / pemeriksaan lab untuk
pasien. Pada menu order pemeriksaan lab, tersedia form untuk diisi sesuai data
pasien dan memilih tindakan/pemeriksaan yang akan dilakukan. Fitur hasil
pemeriksaan adalah menu yang tersedia untuk melihat dan memasukkan hasil
pemeriksaan. Pada Menu hasil pemeriksaan menampilkan daftar pasien yang telah
terdaftar pada sistem telah melakukan pemesanan pemeriksaan. Dapat juga
dilakukan pemasukan data dan pencetakan hasil pemeriksaan lab pasien.
36
3.2.1.1. Alur Kerja Laboratorium
Alur kerja laboratorium pada Rumah Sakit Perguruan Tinggi Negeri seperti
yang terlihat pada Gambar 3.2 dimulai pada identifikasi pasien yang datang ke
laboratorium, apakah pasien berasal dari poliklinik atau dari instalasi rawat darurat
(IRD). Jika pasien berasal dari IRD, perawat IRD menghubungi laboratorium, dan
laboran akan datang mengambil sampel di IRD. Kemudian specimen di periksa di
laboratorium, setelah hasil pemeriksaan keluar akan diinspeksi oleh dokter yang
bertanggung jawab pada laboratorium tersebut. Jika pasien butuh tindakan/operasi
segera maka hasil laboratorium diantarkan oleh petugas laboratorium ke IRD,
apabila tidak butuhkan tindakan segera, hasil laboratorium dapat diambil sendiri
oleh perawat IRD.
Jika pasien berasal dari poliklinik, kemudian diidentifikasi status pasien
apakah pasien umum atau bukan. Jika pasien merupakan pasien umum, maka pasien
membayar biaya pemeriksaan terlebih dahulu. Kemudian pasien menuju
laboratorium dan dilakukan pemeriksaan spesimen di laboratorium. Hasil
pemeriksaan akan diinspeksi oleh dokter yang bertanggung jawab pada
laboratorium tersebut dan kemudian diserahkan langsung kepada pasien.
3.2.2. Desain
Pada proses ini hasil analisis akan digambarkan, dirancang, dan dibuat
menjadi suatu sistem yang utuh. Tahap desain meliputi perancangan sistem,
perancangan basis data, dan perancangan tampilan (interface).
37
Gambar 3.2: Alur Kerja Laboratorium pada RS-PTN
38
3.2.2.1 Perancangan Sistem
Pada tahap ini penulis merancang dan mendesain konsep awal dari sebuah
sistem yang akan dibuat. Rancangan ini merupakan hasil dari analisis data yang
telah diperoleh, kemudian diolah dan diterapkan kedalam rancangan awal kami.
Adapun pada tahap ini dilakukan dalam beberapa tahap perancangan yaitu
perancangan use case diagram, perancangan state transition diagram, perancangan
entity relationship diagram (ERD), dan perancangan data flow diagram (DFD).
Sistem penunjang laboratorium yang akan dibangun ini merupakan bagian
dari pengembangan SIMRS pada RS-PTN, sehingga sistem penunjang
laboratorium ini berkaitan dengan sistem lain pada SIMRS yaitu sistem admisi
pasien. Selain Sistem Penunjang Laboratorium dan Sistem Admisi Pasien ada pula
Sistem Logistik Farmasi dan Penarifan, namun sistem penunjang laboratorium
tidak memiliki kaitan langsung terhadap sistem logistic farmasi. Alur kerja SIMRS
dapat dilihat pada Gambar 3.3.
3.2.2.1.1 Use Case Diagram
Pada Gambar 3.4, use case diagram menunjukkan bahwa terdapat tiga aktor
yang masing-masing memiliki hak akses yang berbeda. yaitu Admin, User Staff
Lab, dan User Staff Perawat. Berdasarkan diagram use case diatas maka pembagian
hak akses setiap aktor dapat dibedakan seperti pada Tabel 3.1.
39
Gambar 3.3: Alur Kerja SIMRS
40
Gambar 3.4: Use Case Diagram
Tabel 3.1: Pembagian Hak Akses Aktor
Aktor Deskripsi Hak Akses
Admin • Login / Logout
• Tambah User
• Tambah Dokter
• Edit User
• Edit Dokter
• Hapus User
• Hapus Dokter
• Atur jadwal Dokter
• Tambah Poly
• Edit Poly
• Hapus Poly
• Mengatur Hak Akses untuk user pada aplikasi
41
Lanjutan Tabel 3.1.
User Staff Lab • Login / Logout
• Lihat Hasil Pemeriksaan
• Order Pemeriksaan
• Edit Hasil Pemeriksaan
• Edit Pemeriksaan
• Tambah Pemeriksaan
• Hapus Pemeriksaan
• Manajemen menu aplikasi
• Buat Laporan
User Staff Perawat • Login / Logout
• Order Pemeriksaan
• Lihat Hasil Pemeriksaan
3.2.2.1.2 State Transition Diagram
Dalam Perancangan Aplikasi Sistem Penunjang laboratorium ini, setiap
user memiliki keterbatasan hak akses sesuai dengan bagiannya. Admin (Super
admin) berperan dalam mengatur seluruh manajemen sistem SIMRS. Admin dapat
menambah, mengedit dan menghapus user, dokter dan poly, serta dapat mengatur
hak akses user terhadap setiap modul. Admin juga dapat mengakses seluruh fitur
pada Sistem Penunjang Laboratorium. Staff Lab dapat melakukan manajemen
menu pada sistem penunjang laboratorium, menambah, mengedit dan menghapus
pemeriksaan laboratorium, melakukan order pemeriksaan laboratorium untuk
pasien dan memasukkan hasil labororatorium pasien serta mencetaknya. Staff
Perawat dapat melakukan order pemeriksaan laboratorium untuk pasien dan melihat
hasil labororatorium pasien. Berikut ini adalah state transition diagram tiap fitur
pada sistem penunjang laboratorium.
42
• Menu “Home”
Gambar 3.5: State Transition Diagram Menu “Home”
Setelah user berhasil login ke dalam sistem penunjang laboratorium,
akan ditampilkan menu home. Pada menu ini ditampilkan grafik transaksi
order pemeriksaan laboratorium perbulan, user dapat mengunduh atau
mencetak grafik.
• Menu “Manajemen Menu”
Dalam manajemen menu user dapat menambahkan menu baru
ataupun melakukan pengurutan pada tampilan daftar menu. Setelah
melakukan pengaturan urutan menu, maka tampilan daftar menu terbaru
akan tampil pada halaman ini.
43
Gambar 3.6: State Transition Diagram Menu “Manajemen Menu”
• Menu “Master Pemeriksaan Lab”
Gambar 3.7: State Transition Diagram Menu “Master Pemeriksaan Lab”
44
Pada Master Pemeriksaan Lab, user dapat menambahkan
pemeriksaan baru atau group pemeriksaan baru. Selain itu dapat pula
mengedit data pemeriksaan yang telah ada, juga dapat menghapus data
pemeriksaan.
• Menu “Order Pemeriksaan Lab”
Gambar 3.8: State Transition Diagram Menu “Order Pemeriksaan Lab”
Pada Order Pemeriksaan Lab, user mengisi form order pemeriksaan
dengan cara memasukkan nomor medical record (No. MR) pasien kemudian
memilih pemeriksaan-pemeriksaan untuk pasien bersangkutan.
• Menu “Hasil Pemeriksaan”
Pada Hasil pemeriksaan Lab, user melihat seluruh daftar pasien yang
telah melakukan order pemeriksaan. Dan juga memasukkan hasil
45
pemeriksaan spesimen pasien, serta dapat mencetak hasil pemeriksaan
tersebut.
Gambar 3.9: State Transition Diagram Menu “Hasil Pemeriksaan”
3.2.2.2 Perancangan Basis Data
Perancangan basis data dilakukan dengan menentukan entitas-entitas yang
berperan pada sistem dan penentuan relationship antar entitas menggunakan ERD
(Entity Relationship Diagram). Kemudian membuat DFD (Data Flow Diagram)
yang menampilakn hubungan sistem dengan basis data
3.2.2.2.1 ERD (Entity Relationship Diagram)
ERD (Entity Relationship Diagram) adalah sebuah model data yang
menggunakan beberapa notasi untuk menggambarkan data dalam konteks entitas
dan hubungan yang dideskripsikan oleh data tersebut.
46
Gambar 3.10: Entity Relationship Diagram
3.2.2.2.2 Struktur Tabel Basis Data
Struktur basis data untuk pembuatan aplikasi sistem penunjang laboratorium
ini menggunakan basis data MySQL.
47
1. Tabel Order Pemeriksaan
Nama Tabel : m_order_pemeriksaan
Primary Key : id_order
Fungsi : Order Pemeriksaan Lab
Tabel 3.2: Struktur Tabel “m_order_pemeriksaan”
2. Tabel Pemeriksaan Lab
Nama Tabel : m_pemeriksaan_lab
Primary Key : kode_jasa
Fungsi : Pemeriksaan Lab
Tabel 3.3: Struktur Tabel “m_pemeriksaan_lab”
No Nama Field
Tipe Data File
Size Keterangan
1. id_order int 11 Kode Pemesanan
2. no_transaksi varchar 15 Nomor Transaksi
3. nomr varchar 20 Nomor MR Pasien
4. tgl_order datetime - Tanggal Order Pemeriksaan
5. tgl_pemeriksaan datetime - Tanggal Pemeriksaan
6. keterangan text - Keterangan tambahan
No Nama Field Tipe Data File
Size Keterangan
1. kode_jasa varchar 15 Jenis Pemeriksaan
2. group_jasa varchar 15 Golongan Pemeriksaan
3. nama_jasa varchar 50 Nama Pemeriksaan
4. nilai_normal_bayi varchar 50 Nilai Normal Bayi
5. nilai_normal_anak varchar 50 Nilai Normal Anak
6. nilai_normal_dewasa varchar 50 Nilai Normal Dewasa
48
Lanjutan Tabel 3.3.
3. Tabel Detail Order Pemeriksaan
Nama Tabel : m_detail_order_pemeriksaan
Primary Key : id_detail
Fungsi : Detail Order Pemeriksaan Lab
Tabel 3.4: Struktur Tabel “m_order_detail”
4. Tabel Detail Order Pemeriksaan
Nama Tabel : m_pasien
Primary Key : id
Fungsi : Simpan Data Pasien
Tabel 3.5: Struktur Tabel “m_pasien”
No Nama Field Tipe Data File
Size Keterangan
7. Satuan varchar 25 Satuan Nilai Normal
8. Keterangan text - Keterangan Tambahan
No Nama Field Tipe Data File
Size Keterangan
1. id_orderd int 11 Kode Pemeriksaan
2. no_transaksi varchar 15 Nomor Transaksi
3. kode_jasa varchar 15 Kode Jasa Pemeriksaan
4. hasil_pemeriksaan varchar 25 Hasil Pemeriksaan
No. Nama Field Tipe Data File Size Keterangan
1. id int 11 Primary Key
2. nomr varchar 10 Nomor MR Pasien
49
Lanjutan Tabel 3.5.
No. Nama Field Tipe Data File Size Keterangan
3. title varchar 10 Title pasien (Tn, Ny, Nn, An )
4. nama varchar 100 Nama Pasien
5. tempat varchar 64 Tempat Lahir Pasien
6. tgllahir date - Tanggal Lahir Pasien (YY-MM-DD)
7. jenis kelamin varchar 1 Jenis Kelamin Pasien (L/P)
8. alamat varchar 100 Alamat domisili pasien
9. kelurahan varchar 50 Kelurahan tempat tinggal pasien
10 kdkecamatan int 11 Kecamatan tempat tinggal pasien
11 kota varchar 50 Kota / Kabupaten tempat tinggal pasien
12 kdprovinsi int 5 Provinsi tempat tinggal pasien
13 notelp varchar 64 Nomor Telephone Pasien
14 noktp varchar 32 Nomor KTP Pasien
15 wn varchar 20 Warga Negara Pasien
16 suami_ortu varchar 32 Nama Suami / Orang Tua
17 pekerjaan varchar 20 Pekerjaan Pasien / Orang Tua
18 status int 11 Status Perkawinan pasien
19 agama int 11 Agama yang dianut pasien
20 pendidikan int 11 Pendidikan terakhir pasien
21 kdcarabayar int 11 Cara bayar pasien (BPJS dll)
22 tgldaftar date - Tanggal pasien masuk RS
22 alamat_ktp varchar 200 Alamat pasien sesuai KTP
50
3.2.2.2.3 Relasi Antar Tabel
Relasi dari tabel-tabel pada basis data sistem penunjang laboratorium dapat
dilihat pada Gambar 3.11.
Gambar 3.11: Relasi antar tabel “m_pasien”, “m_order pemeriksaan”,
“m_detail_order_pemeriksaan”, dan “m_pemeriksaan_lab”.
3.2.2.2.4 DFD (Data Flow Diagram)
DFD (Data Flow Diagram) adalah suatu diagram yang menggunakan notasi-
notasi untuk menggambarkan arus dari data sistem, yang penggunaannya sangat
membantu untuk memahami sistem secara logika, terstruktur, dan jelas.
51
Gambar 3.12: Data Flow Diagram Level 1 (Sistem)
Gambar 3.13: Data Flow Diagram Level 2 (Kelola Data Pemeriksaan)
52
Gambar 3.14: Data Flow Diagram Level 2 (Kelola Hasil Pemeriksaan)
Gambar 3.12 menampilkan DFD sistem aplikasi laboratorium secara garis
besar. Memperlihatkan proses-proses yang dapat dilakukan oleh user terhadap
sistem. Karena proses kelola data pemeriksaan dan kelola hasil pemeriksaan masih
belum detail maka akan diturunkan ke DFD level 2.
Gambar 3.13 merupakan DFD level 2 dari proses kelola data pemeriksaan.
Menampilkan lebih detail proses kelola data pemeriksaan yang dapat dilakukan
user yaitu input, edit dan hapus.
Gambar 3.14 merupakan DFD level 2 dari proses Kelola Hasil Pemeriksaan.
Menampilkan lebih detail proses Kelola Hasil Pemeriksaan yang dapat dilakukan
user yaitu input dan cetak hasil pemeriksaan.
3.2.2.3 Perancangan Tampilan
Pada tahap ini, penulis melakukan perancangan terhadap tampilan atau
layout antarmuka (interface) dari aplikasi. Perancangan yang dilakukan meliputi
perancangan layout halaman-halaman yang ada pada aplikasi.
53
• Rancangan Halaman List Pemeriksaan Lab
Gambar 3.15: Rancangan Halaman List Pemeriksaan Lab
• Rancangan Tambah Pemeriksaan Lab Baru
Gambar 3.16: Rancangan Halaman List Pemeriksaan Lab
54
• Rancangan Halaman Order Pemeriksaan Lab
Gambar 3.17: Rancangan Halaman Order Pemeriksaan Lab (1)
Gambar 3.18: Rancangan Halaman Order Pemeriksaan Lab (2)
55
• Rancangan Halaman Hasil Pemeriksaan Lab
Gambar 3.19: Rancangan Halaman Hasil Pemeriksaan Lab
• Rancangan Halaman Input Hasil Pemeriksaan Lab
Gambar 3.20: Rancangan Halaman Input Hasil Pemeriksaan Lab
56
3.2.3 Pengkodean
Dari hasil analisis dan desain yang telah dilakukan, penulis kemudian
mengubahnya dalam bentuk code dengan mengimplementasikannya dalam
bahasa pemrograman web (Framework Codeigniter, PHP, BootstrapCSS,
JavaScript, AJAX, Jquery).
57
BAB IV
HASIL DAN PEMBAHASAN
Proses implementasi dari rancangan aplikasi yang dilakukan pada bab
sebelumnya akan dijelaskan pada bab ini. Implementasi bertujuan untuk
menerjemahkan keperluan perangkat lunak ke dalam bentuk sebenarnya yang
dimengerti oleh komputer atau dengan kata lain tahap implementasi ini merupakan
tahapan lanjutan dari tahapan rancangan yang sudah dilakukan. Dalam
implementasi ini dijelaskan hasil screenshoot tampilan web serta hasil uji kelayakan
dari sistem yang telah dirancang. Adapun potongan-potongan script yang
digunakan untuk membuat web akan disertakan pada lampiran.
4.1 Hasil Wawancara
Berdasarkan hasil wawancara dan observasi langsung yang dilakukan di
Rumah Sakit Pendidikan Universitas Hasanuddin kepada beberapa narasumber
dirangkum sebagai berikut:
• Dalam pelaksanaan Sistem Penunjang Laboratorium di Rumah Sakit Perguruan
Tinggi Negeri (RS-PTN) Universitas Hasanuddin terdiri atas tiga fitur utama
yaitu manajemen pemeriksaan, order pemeriksaan, dan hasil pemeriksaan.
• Hak akses pada Sistem Penunjang Laboratorium dibedakan menjadi tiga yaitu
admin, staff lab dan staff perawat. Admin dan staff lab dapat mengakses seluruh
fitur pada Sistem Penunjang Laboratorium, Staff perawat hanya dapat
mengakses fitur order dan hasil pemeriksaan.
58
4.2 Hasil Kuisioner
Tabel 4.1: Kuisioner Admin
Pernyataan 1 2 3 4 5
Form yang tersedia pada menu manajemen menu,
grup, pengguna, pengguna grup, daftar aplikasi
dan akses aplikasi sesuai dengan kebutuhan
administrator
�
Fitur ganti urutan memudahkan dalam manajemen urutan menu
�
Mudah dipahami �
Mudah digunakan �
Desain interface lebih sederhana �
Responsif �
Bekerja dengan baik �
Tabel 4.2: Kuisioner Staff Laboratorium
Pernyataan 1 2 3 4 5
Form yang tersedia pada menu order pemeriksaan
lab sudah sesuai dengan data yang dibutuhkan lab �
Form yang tersedia pada menu Order Pemeriksaan
Lab memudakan dan mempercepat proses order �
Form yang tersedia pada manajemen pemeriksaan
sudah sesuai dengan kebutuhan data pemeriksaan �
Fitur ganti urutan memudahkan dalam manajemen urutan menu
�
Mudah dipahami �
Mudah digunakan �
Desain interface lebih sederhana �
Responsif �
Bekerja dengan baik �
59
Tabel 4.3: Kuisioner Staff Perawat
Pernyataan 1 2 3 4 5
Form yang tersedia pada menu Order Pemeriksaan
Lab memudakan dan mempercepat proses order �
Mudah dipahami �
Mudah digunakan �
Desain interface lebih sederhana �
Responsif �
Bekerja dengan baik �
Keterangan:
1 = Sangat tidak setuju
2 = Tidak setuju
3 = Netral
4 = Setuju
5 = Sangat setuju
Jumlah respon sangat tidak setuju berjumlah 0, tidak setuju berjumlah 0,
netral berjumlah 1, setuju berjumlah 13, dan sangat setuju berjumlah 6. Dari hasil
kuisioner diatas dapat dikatakan bahwa penunjang labratorium RS-PTN sudah
berjalan dengan baik, mudah dipahami dan digunakan serta sudah cukup responsif.
4.3 Hasil Pengujian Sistem
Pada tahap pengujian diharapkan implementasi dari sistem telah berjalan
dengan sesuai dengan rancangan desain yang telah dibuat sebelumnya. Adapun
pengujian yang dilakukan menggunakan metode black box. Berikut adalah hasil
pengujian black box.
60
4.3.1 Pengujian Proses Pada Admin
Tabel 4.4: Pengujian Proses pada Admin
No Proses Hasil Keterangan
1. Melakukan login sesuai dengan hak akses
� berhasil melakukan login
2. Masuk ke halaman dashboard
admin �
berhasil masuk ke halaman dashboard admin
3. Menambahkan user dan hak akses user
� berhasil menambahkan user dan hak akses
4. Mengatur tampilan menu dan sub-menu halaman admin dan halaman user
� berhasil mengatur tampilan menu dan sub-menu halaman admin dan halaman user
5. Membuat jadwal dokter � berhasil membuat jadwal dokter
6. Menampilkan pembuatan master data baru dan pengubahan data
� berhasil menampilkan halaman peng-input-an data baru dan pengubahan data
7. Menyimpan master data � berhasil menyimpan data ke dalam database
8. Menghapus master data �
berhasil menghapus data yang telah dipilih dari database
9. Melakukan logout � berhasil melakukan logout
4.3.2 Pengujian Proses Pada User
Tabel 4.5: Pengujian Proses Pada User
No Proses Hasil Keterangan
1. Melakukan login sesuai dengan hak akses
� berhasil melakukan login
2. Masuk ke halaman dashboard
user �
berhasil masuk ke halaman dashboard user
3. Menambahkan pemeriksaan � berhasilmelakukan penambahan terhadap data pemeriksaan
4. Mengedit pemeriksaan � berhasilmelakukan pengeditan terhadap data pemeriksaan
5. Menghapus pemeriksaan � berhasilmelakukan penghapusan terhadap data pemeriksaan
6. Meng-order pemeriksaan � berhasilmelakukan permintaan pemeriksaan
61
Lanjutan Tabel 4.5.
7. Mencari data pemeriksaan � berhasilmencari data pemeriksaan berdasarkan keyword yang dimasukkan
8. Mengatur tampilan menu dan sub-menu halaman admin dan halaman user
�
berhasilberhasil mengatur tampilan menu dan sub-menu halaman admin dan halaman user
9. Mencetak hasil pemeriksaan � berhasil mencetak data hasil pemeriksaan
4.4 Implementasi
4.4.1 Halaman Laboratorium
4.4.1.1 Halaman Beranda
Halaman ini berisi grafik transaksi order laboratorium setiap bulan dalam
satu tahun. Tampilan halaman ini dapat dilihat pada Gambar 4.1.
Gambar 4.1: Halaman Beranda
62
4.4.1.2 Halaman List Pemeriksaan Lab
Halaman ini menampilkan seluruh pemeriksaan beserta nilai normal dan
satuannya yang tersimpan dalam sistem. Pada halaman ini terdapat 3 aksi yang
dapat dilakukan oleh user yaitu tambah, edit, dan hapus, seperti yang ditampilkan
pada Gambar 4.2.
4.4.1.3 Halaman Tambah Pemeriksaan Lab Baru
Halaman ini menampilkan form untuk diisi mengenai data pemeriksaan
baru yang akan ditambahkan, contoh pada Gambar 4.3.
4.4.1.4 Halaman Edit Pemeriksaan Lab Baru
Halaman ini tidak berbeda dengan halaman tambah pemeriksaan, hanya saja
halaman ini sudah menampilkan data pemeriksaan yang telah tersimpan pada
database untuk diedit, contoh pada Gambar 4.4.
Gambar 4.2: Halaman Master Pemeriksaan Lab
63
Gambar 4.3: Halaman Tambah Pemeriksaan Lab
Gambar 4.4: Halaman Edit Informasi Pemeriksaan Lab
64
4.4.1.5 Halaman Order Pemeriksaan Lab
Halaman ini berfungsi untuk memesan pemeriksaan laboratorium untuk
pasien, dengan cara memasukkan nomor medical record (No. MR) pasien lalu
secara otomatis sistem akan menarik data pasien yang sudah terdaftar dan tersimpan
di database, seperti pada Gambar 4.5.
Setelah data pasien muncul berikutnya memilih pemeriksaan-pemeriksaan,
contoh pada Gambar 4.6.
Gambar 4.5: Halaman Order Pemeriksaan Lab (1)
65
Gambar 4.6: Halaman Order Pemeriksaan Lab (2)
4.4.1.6 Halaman Hasil Pemeriksaan Lab
Halaman ini menampilkan daftar pasien yang telah order pemeriksaan
laboratorium diturutkan berdasarkan tanggal order dari yang terbaru seperti yang
terlihat pada gambar 4.5.7
Gambar 4.7: Halaman Hasil Pemeriksaan Lab
66
4.4.1.7 Halaman Input Hasil Pemeriksaan Lab
Halaman ini menampilkan data pasien yang memesan pemeriksaan
laboratorium dan juga pemeriksaan-pemeriksaan yang dipesan beserta nilai normal
dan satuannya, serta field untuk diisikan hasil pemeriksaan pasien tersebut.
Gambar 4.8: Halaman Input Hasil Pemeriksaan Lab
4.4.1.8 Halaman Cetak Hasil Pemeriksaan Lab
Halaman ini berisi tampilan data hasil pemeriksaan dalam format siap cetak.
Halaman dapat dicetak secara langsung melalui printer, ataupun disimpan dalam
bentuk PDF.
67
Gambar 4.9: Halaman Cetak Hasil Pemeriksaan Lab
4.4.2 Halaman Admin
4.4.2.1 Halaman Beranda
Halaman ini menampilkan informasi-informasi jumlah dokter, jumlah poly,
jumlah tempat tidur yang belum terpakai dan jumlah user. Tampilan halaman ini
dapat dilihat pada gambar 4.10
Gambar 4.10: Halaman Beranda Admin
68
4.4.2.2 Halaman Manajemen Pengguna
Halaman ini memiliki 3 sub-menu yaitu Group, Pengguna, dan Group
Pengguna.
• Sub-menu Group
Halaman ini berisi daftar dari group-group pengguna aplikasi, tampilannya
pada Gambar 4.11.
• Sub-menu Pengguna
Halaman ini berisi daftar pengguna (user) aplikasi, tampilannya pada
Gambar 4.12.
• Sub-menu Group Pengguna
Halaman ini berisi daftar pengguna dan golongan group mereka ,
tampilannya pada Gambar 4.13.
Gambar 4.11: Halaman Sub-menu Group
69
Gambar 4.12: Halaman Sub-menu Pengguna
4.4.2.3 Halaman Manajemen Apps
Halaman ini memiliki 2 sub-menu yaitu Daftar Aplikasi dan Akses Group
Aplikasi.
• Sub-menu Daftar Aplikasi
Halaman ini berisi daftar modul aplikasi yang terpasang pada sistem,
tampilannya pada Gambar 4.14.
• Sub-menu Akses Group Aplikasi
Halaman ini berisi daftar modul aplikasi dan list group user yang dapat
mengaksesnya, tampilannya pada Gambar 4.15.
70
Gambar 4.13: Halaman Sub-menu Group Pengguna
Gambar 4.14: Halaman Sub-menu Daftar Aplikasi
71
Gambar 4.15: Halaman Sub-menu Akses Group Aplikasi
4.4.2.4 Halaman Master
Halaman ini memiliki 4 sub-menu yaitu Master Poli, Master Dokter, Setting
Dokter Jaga, dan Praktek Dokter.
• Sub-menu Master Poli
Halaman ini berisi daftar poly yang ada pada Rumah Sakit, tampilannya
pada Gambar 4.16.
• Sub-menu Master Dokter
Halaman ini berisi daftar dokter yang terdaftar pada Rumah Sakit,
tampilannya pada Gambar 4.17.
• Sub-menu Setting Dokter Jaga
Halaman ini berfungsi untuk mengatur jadwal dokter jaga, tampilannya
pada Gambar 4.18.
72
• Sub-menu Praktik Dokter
Halaman ini berfungsi untuk mengatur jadwal praktir dokter, tampilannya
pada Gambar 4.19.
Gambar 4.16: Halaman Sub-menu Master Poli
Gambar 4.17: Halaman Sub-menu Master Dokter
73
Gambar 4.18: Halaman Sub-menu Setting Dokter Jaga
Gambar 4.19: Halaman Sub-menu Praktik Dokter
74
BAB V
PENUTUP
Berdasarkan uraian bab-bab sebelumnya yaitu Pendahuluan, Landasan
Teori, Metodologi Penelitian, serta Hasil dan Pembahasan, maka dapat diambil
beberapa kesimpulan dan saran.
1.1 Kesimpulan
1. Aplikasi ini dibangun menggunakan framework Codeigniter dengan metode
MVC (Model, View, Controller) dan telah sesuai dengan kebutuhan user,
yaitu telah terintegrasi dengan sistem yang telah ada sebelumnya dan
memiliki desain yang responsive.
2. Aplikasi ini dikhususkan pada pelaksanaan alur kerja di bagian laboratorium
Rumah Sakit Perguruan Tinggi Negeri (RS-PTN).
3. Aplikasi ini dirancang sebagai sebuah sistem yang terstruktur dan mudah
untuk dikembangkan.
1.2 Saran
Berdasarkan hasil penelitian maka saran penulis untuk pengembangan aplikasi
ini ke arah yang lebih baik adalah:
1. Halaman Beranda Laboratorium dapat dikembangkan dengan
menambahkan statistik yang spesifik terkait masing-masing jenis
pemeriksaan yang tersedia.
75
2. Aplikasi dapat dikembangkan pada integrasi dengan Sistem Logistik
Farmasi terkait data penggunaan alat dan bahan pada proses pemeriksaan di
laboratorium.
3. Pengembangan aplikasi ini selanjutnya dapat memperluas cakupan pada
sub-laboratorium dan departemen-departemen yang lain sehingga tercapai
suatu sistem informasi manajemen rumah sakit yang komplit.
4. Dengan adanya aplikasi laboratorium ini sebaiknya dapat digunakan oleh
mahasiswa kedokteran umum dan rekam medik sebagai sarana penelitian.
76
DAFTAR PUSTAKA
Afriansyah, Boedhi. (2014). Skripsi: Perancangan Sistem Informasi Pendaftaran
Pasien Pada Poliklinik Pratama Siti Aisyah Madiun.
http://eprints.umpo.ac.id/752/1/COVER%20DAN%20ABSTRAK.pdf.
Diakses pada tanggal 22 Agustus 2017.
Alatas, Husein. (2013). Responsive Web Design dengan PHP dan Bootstrap.
Lokomedia.
Alviyah, Mei Eva. (2015). Skripsi: Membangun Sistem Informasi Pendaftaran dan
Rekam Medis Pasien di Klinik Berbasis Web.
http://eprints.umpo.ac.id/1438/1/COVER.pdf. Diakses pada tanggal 22
Agustus 2016.
Al Fatta Hanif. (2007). Analisis Dan Perancangan Sistem Informasi untuk
Keunggilan Bersaing Perusahaan dan Organisasi Modern. Yogyakarta:
Andi.
Ardhana, Y.M. Kusuma. (2013). Pemrograman PHP: CodeIgniter Black Box.
Jasakom.
Basuki, A. P. (2014). Proyek Membangun Website Berbasis PHP dengan
Codeigniter. Lokomedia.
Basuki, A. P. (2015). Kolaborasi Codeigniter dan Bootstrap: Membangun Aplikasi
PSB Sekolah. Lokomedia.
77
British Columbia Institute of Technology. (2016). Panduan Pengguna CodeIgniter.
http://www.codeigniter.com/user_guide/. Diakses pada tanggal 28 Januari
2017.
Fajriyah, Siti Khusnul. (2010). Skripsi: Implementasi Framework Code Igniter
untuk Aplikasi Situs Portal Berita.
http://repository.amikom.ac.id/files/PUBLIKASI_05.11.0728.pdf. Diakses
pada tanggal 28 Januari 2017.
Hutahean Jeperson. (2014). Konsep Sistem Informasi. Yogyakarta: Deepublish.
Kadir, Abdul. (2011). Buku Pintar JQuery dan PHP untuk Pemula. Yogyakarta:
Mediakom.
Megawarni. (2014). Pelaksanaan Sistem Informasi Manajemen Rumah Sakit
(SIMRS) di Rumah Sakit Martha Friska Multatuli Medan. Sumatra Utara:
Universitas Sumatra Utara.
Muhyarsyah. (2007). Sistem Informasi Manajemen dalam Rumah Sakit. Sumatra
Utara: Universitas Muhammadiyah.
Orr, E. & Zadik, Y. (2013). Programming With Codeigniter MVC. Packt Publishing
Ltd.
Prasetio, Adi. (2015). Buku Pintar Webmaster untuk Pemula. Jakarta Selatan:
Mediakita.
Pressman, R. S. (2001). Sofware Engineering: A Practitioner’s Approach: Fifth
Edition (E-Book). New York: McGraw-Hill.
78
Puryanti, Sri. (2007). Skripsi: Sistem Informasi Pasien Rawat Jalan di Balai
Pengobatan PKU Muhammadiyah Cawas Klaten.
https://core.ac.uk/download/files/478/12348686.pdf. Diakses pada tanggal
22 Agustus 2016.
Republik Indonesia. (2013). Peraturan Menteri Kesehatan Republik Indonesia
Nomor 82 Tahun 2013 Tentang Sistem Informasi Manajemen Rumah Sakit.
Jakarta: Sekretariat Negara.
Rouf, Abdul. (2012). Pengujian Perangkat Lunak Dengan Menggunakan Metode
White Box dan Black Box. Semarang: STMIK HIMSYA.
Saputra, Agus. (2011). Trik Kolaborasi Codeigniter dan JQuery. Lokomedia.
Setiawan David. (2011). Analisis Dan Perancangan Sistem Informasi Rumah Sakit
Rawat Inap Di Puskesmas Grabag I Kabupaten Magelang. Yogyakarta:
Sekolah Tinggi Manajemen Informatika dan Komputer Amikom.
Syuhada, Ibnu. (2015). Inspirasi Codeigniter. Elex Media Komputindo.
Widya Richardus Rikang Ajiwa. (2012). Landasan Konseptual Perancangan dan
Perencanaan Rumah Sakit Ibu dan Anak di Yogyakarta, Yogyakarta:
Universitas Atma Jaya Yogyakarta.
Yogajiwanjaya. (2014). Pengertian dan Kegunaan XAMPP.
http://www.pusatdesainweb.com/2014/06/29/pengetian-dan-kegunaan-
xampp/. Diakses pada tanggal 13 November 2016.
204
LAMPIRAN
79
LAMPIRAN A
LAPORAN KEGIATAN HASIL WAWANCARA
Tanggal
12 April 2017
Waktu
10.30
Tempat
Ruang Sim RS
Narasumber
Kak Yudhi
Daftar Wawancara
1. Bagaimana sistem yang digunakan untuk melakukan order pemeriksaan
laboratorium saat ini?
Sistem yang digunakan saat ini namanya MYHospital. Setelah kertas
formulir pemeriksaan laboratorium diisi lalu kemudian, informasi dari
form tersebut diinputkan pada MYHospital. Sistem penginputan atau
entri hasil Lab pada unit Lab Patologi Klinik menggunakan 2 form
Penginputan. Form Tindakan Umum digunakan oleh perawat yang
bertugas sebagai form penginputan tindakan pasien sedangkan Form
Entri Hasil digunakan sebagai inputan form Hasil Hasil Pemeriksaan
Lab.
2. Bagaimana alur kerja pemeriksaan laboratorium?
Formulir permintaan pemeriksaan pasien diisikan oleh perawat, lalu
kemudian pasien menuju laboratorium untuk dilakukan pengambilan
spesimen. Spesimien kemudian diperiksa. Hasil pemeriksaan
laboratorium kemudian diserahkan ke pasien.
3. Apakah sistem yang digunakan saat ini sudah berjalan dengan baik, apa
permasalahan yang biasa terjadi?
Sistem MYHospital yang berjalan saat ini sudah cukup baik namun tidak
semua menu yang tersedia digunakan untuk pemeriksaan laboratorium,
hanya beberapa menu saja.Tampilan aplikasi agak rumit dan banyaknya
menu yang tidak digunakan untuk pemeriksaan laboratorium.
4. Bagaimana alur kerja dari form tindakan umum pada sistem MYHospital
ini?
Form Tindakan Umum digunakan oleh perawat yang bertugas sebagai
form penginputan tindakan pasien. Data-data pasien dimasukkan sesusai
dengan formulir yang telah diisi, lalu dipilihkan pemeriksaan yang akan
dilakukan kemudian disimpan.
80
5. Bagaimana alur kerja dari form entri hasil pada sistem MYHospital ini?
Form Entri Hasil Digunakan sebagai Inputan form Hasil dari
Pemeriksaan Laboratorium. Order pemeriksaan pasien yang sudah
tersimpan dari form tindakan umum dicari berdasarkan nomor transaksi,
lalu akan tampil list pemeriksaan yang dilakukan terhadap pasien
tersebut. Data hasil pemeriksaan kemudian dimasukkan lalu disimpan.
6. Bagaimana pegelolaan data jenis pemeriksaan pada sistem MYHospital
ini?
Untuk hal ini saya kurang tau, karena saya tidak menemukan adanya
menu untuk melakukan tindakan ini.
7. Untuk sistem yang akan dibangun ini, bagaimana pembagian hak
aksesnya?
User yang dapat mengakses sitem tentu saja staf-staf dari laboratorium.
Untuk melakukan order pemeriksaan laboratorium dan mengelola hasil
pemeriksaan serta dapat juga untuk melakukan pengeloaan data-data
jenis pemeriksaan. Ada juga user perawat yang hanya dapat melakukan
order pemeriksaan.
8. Bagaimana dengan data-data jenis pemeriksaan?
Data-data pemeriksaan silahkan mengikuti data pemeriksaan yang ada
pada formulir permintaan pemeriksaan. Untuk nilai normal pemeriksaan
sebaiknya dipisahkan berdasarkan usia.
9. Apakah ada saran untuk Perancangan Aplikasi Sistem Penunjang
Laboratorium pada RS-PTN ini ?
Untuk pembuatan sistem selanjutnya, fitur yang disediakan agar sesuai
dengan kebutuhan. Untuk fitur-fitur yang tidak terpakai lebih baik
dihilangkan agar tampilannya lebih sederhana dan mudah untuk
dipahami.
81
LAMPIRAN B
SOURCE CODE SISTEM
VIEW
• template/header.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Laboratorium</title>
<link href="<?php echo base_url()?>component/images/favicon.png"
rel="shorcut icon">
<!-- Bootstrap Core CSS -->
<link href="<?php echo base_url();
?>component/bower_components/bootstrap/dist/css/bootstrap.min.css"
rel="stylesheet">
<!-- MetisMenu CSS -->
<link href="<?php echo base_url();
?>component/bower_components/metisMenu/dist/metisMenu.min.css"
rel="stylesheet">
<!-- Sweat Alert -->
<link href="<?php echo base_url();
?>component/bower_components/sweetalert/sweetalert.css"
rel="stylesheet">
<!-- DataTables CSS -->
<link href="<?php echo
base_url();?>component/bower_components/datatables-
plugins/integration/bootstrap/3/dataTables.bootstrap.css"
rel="stylesheet">
<!-- DataTables Responsive CSS -->
<link href="<?php echo
base_url();?>component/bower_components/datatables-
responsive/css/dataTables.responsive.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url(); ?>component/dist/css/sb-admin-
2.css" rel="stylesheet">
<link href="<?php echo base_url(); ?>component/dist/css/style.css"
rel="stylesheet">
82
<!-- Custom Fonts -->
<link href="<?php echo base_url();
?>component/bower_components/font-awesome/css/font-awesome.min.css"
rel="stylesheet" type="text/css">
<!-- jQuery -->
<script src="<?php echo base_url();
?>component/bower_components/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="<?php echo
base_url('component/bower_components/moment/min/moment.min.js');
?>"></script>
<script type="text/javascript" src="<?php echo
base_url('component/bower_components/eonasdan-bootstrap-
datetimepicker/build/js/bootstrap-datetimepicker.min.js');
?>"></script>
<link rel="stylesheet" href="<?php echo
base_url('component/bower_components/eonasdan-bootstrap-
datetimepicker/build/css/bootstrap-datetimepicker.min.css'); ?>" />
<script type="text/javascript" src="<?php echo
base_url();?>component/bower_components/jquery-ui/jquery-
ui.js"></script>
<link rel="stylesheet" href="<?php echo
base_url('component/bower_components/jquery-ui/jquery-ui.css'); ?>" />
<script type="text/javascript" src="<?php echo
base_url('component/bower_components/sweetalert/sweetalert.min.js');
?>"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and
media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file://
-->
<!--[if lt IE 9]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script
>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></scr
ipt>
<![endif]-->
<style type="text/css" media="screen">
#bg1 img {
width: 98%;
height: 98%;
}
</style>
</head>
<body>
<div id="wrapper">
83
<!-- Navigation -->
<nav class="navbar navbar-default navbar-static-top"
role="navigation" style="margin-bottom: 0">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-
toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="<?php echo
site_url('/main'); ?>">Laboratorium</a>
</div>
<!-- /.navbar-header -->
<ul class="nav navbar-top-links navbar-right">
<li >
<a href="<?php echo HOME_APLIKASI;?>">
<i class="fa fa-home fa-fw"></i> Apps
</a>
</li>
<!-- /.dropdown -->
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown"
href="#">
<i class="fa fa-user fa-fw"></i> <?php echo
$_user."<strong> (".$as.")</strong>" ?> <i class="fa fa-caret-
down"></i>
</a>
<ul class="dropdown-menu dropdown-user">
<li><a href="<?php echo
HOME_APLIKASI."login/logout";?>"><i class="fa fa-sign-out fa-fw"></i>
Logout</a>
</li>
</ul>
<!-- /.dropdown-user -->
</li>
<!-- /.dropdown -->
</ul>
<!-- /.navbar-top-links -->
<div class="navbar-default sidebar" role="navigation">
<div class="sidebar-nav navbar-collapse">
<ul class="nav" id="side-menu">
<li class="sidebar-search">
<div class="input-group" id="bg1" >
<img src="<?php
echo base_url()?>component/images/logo5.png" alt="">
</div>
</li>
<?php
84
$i = 1;
foreach($menu as $data){
if ($data->mnIdRoot == '0' && $data-
>modulFlag == 1){
$url = ($data->mnJenis == '0') ? "#" :
site_url($data->mnController);
if (!empty($data->mnIcon)){
$ico = explode('-', $data->mnIcon);
$icon = $ico[0] . ' ' . $data-
>mnIcon;
}
echo "
<li>
<a href='" . $url . "' ";
if($active==$data->mnController)
echo " class='active' ";
echo ">
<i class='" . $icon .
"'></i>
" . $data->mnNamaMenu
;
$icon = "";
if ($data->mnJenis == '0') echo "<span
class='fa arrow'></span>";
echo "
</a>
";
if ($data->mnJenis == '0'){
echo "<ul class='nav nav-second-
level'>";
foreach($menu as $data1){
if($data->mnId === $data1-
>mnIdRoot && $data1->modulFlag == 1){
$url1 = ($data1->mnJenis ==
'0') ? "#" : site_url($data1->mnController);
if (!empty($data1->mnIcon)){
$ico = explode('-', $data1-
>mnIcon);
$icon = $ico[0] . ' ' .
$data1->mnIcon;
}
echo "
<li>
85
<a href='" . $url1 . "'
";
if($active==$data1-
>mnController) echo " class='active' ";
echo ">
<i class='" . $icon .
"'></i>
" . $data1-
>mnNamaMenu . "
</a>
</li>
";
$icon = "";
}
}
echo " </ul> ";
}
echo "</li>";
}
$i++;
}
?>
</ul>
</div>
<!-- /.sidebar-collapse -->
</div>
<!-- /.navbar-static-side -->
</nav>
<div id="page-wrapper">
<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-
dismiss="modal">×</button>
<h4 class="modal-title">Informasi </h4>
</div>
<div class="modal-body">
<p><div id="pesan">Pesan</div></p>
</div>
</div>
</div>
</div>
86
<script type="text/javascript" src="<?php echo
base_url('component/bower_components/metisMenu/dist/metisMenu.min.js');
?>"></script>
<script type="text/javascript">
$(function() {
$('#side-menu').metisMenu();
});
</script>
• template/footer.php
</div>
<!-- /#page-wrapper -->
</div>
<!-- /#wrapper -->
<!-- Bootstrap Core JavaScript -->
<script src="<?php echo base_url();
?>component/bower_components/bootstrap/dist/js/bootstrap.min.js"></scri
pt>
<!-- Metis Menu Plugin JavaScript -->
<!--<script src="<?php echo base_url();
?>component/bower_components/metisMenu/dist/metisMenu.min.js"></script>
-->
<script src="<?php echo
base_url();?>component/bower_components/datatables/media/js/jquery.data
Tables.min.js"></script>
<script src="<?php echo
base_url();?>component/bower_components/datatables-
plugins/integration/bootstrap/3/dataTables.bootstrap.min.js"></script>
<!-- Custom Theme JavaScript
<script src="<?php echo base_url(); ?>component/dist/js/sb-admin-
2.js"></script> -->
<script>
$(document).ready(function() {
$('#dataTables-example').DataTable({
responsive: true
});
$('#dataTables-example1').DataTable({
responsive: true
});
});
</script>
</body>
</html>
87
• main/body.php
<style>
#chart
{
z-index:-10;
}
</style>
<div class="row" id="content-wrapper">
<div class="col-lg-12">
<h2 class="page-header">Laboratorium</h2>
<br><br>
<div id="chart">
<?php echo $text; ?>
</div>
</div>
<!-- /.col-lg-12 -->
</div>
<!--<script src="<?php echo
base_url();?>asset/highcharts/jquery.min.js"
type="text/javascript"></script>-->
<script src="<?php echo
base_url();?>asset/highcharts/highcharts.js"
type="text/javascript"></script>
<script src="<?php echo
base_url();?>asset/highcharts/modules/exporting.js"
type="text/javascript"></script>
<script src="<?php echo
base_url();?>asset/highcharts/themes/skies.js"
type="text/javascript"></script>
<script type="text/javascript">
jQuery(function(){
new Highcharts.Chart({
chart: {
renderTo: 'chart',
type: 'line',
},
title: {
text: 'Transaksi Order Laboratorium Tahun <?php echo $thn?>',
x: -20
},
/*subtitle: {
text: 'Total order per-bulan',
x: -20
},*/
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun',
'Jul', 'Ags', 'Sep', 'Okt', 'Nov', 'Des']
},
88
yAxis: {
title: {
text: 'Jumlah Order'
}
},
series: [{
name: 'Order Pemeriksaan',
data: <?php echo json_encode($grafik); ?>
}]
});
});
</script>
• listp/body.php
<br>
<div class="row" id="content-wrapper">
<div class="panel panel-default ">
<div class="panel-heading">
<strong><?php echo $judul; ?></strong>
<span class="pull-right">
<a id="addpemeriksaan" class="btn btn-primary
btn-xs" href="<?php echo site_url('/listperiksa_lab/add'); ?>">
<i class="glyphicon glyphicon-plus-sign"></i>
Tambah Pemeriksaan
</a>
<a id="addgroup" class="btn btn-primary btn-xs"
href="<?php echo site_url('/listperiksa_lab/add_group'); ?>">
<i class="glyphicon glyphicon-plus-sign"></i>
Tambah Group Pemeriksaan
</a>
</span>
</div>
<div class="panel-body">
<div class="">
<div class="dataTable_wrapper">
<table class="table table-
striped table-bordered table-hover" id="dataTables-example">
<thead>
<tr>
<th
width="7%">No</th>
<th
width="15%">Kode Jasa</th>
<th
width="20%">Nama Pemeriksaan</th>
<th
width="10%">Nilai Normal Bayi</th>
<th
width="10%">Nilai Normal Anak</th>
<th
width="10%">Nilai Normal Dewasa</th>
89
<th
width="10%">Satuan</th>
<th
width="10%">Action</th>
</tr>
</thead>
<tbody>
<?php
$counter = 1;
foreach ($list as
$row) {
?>
<tr>
<td><center><?php echo $counter++; ?></center></td>
<td><center><?php echo $row->kode_jasa; ?></center></td>
<td><center><?php echo $row->nama_jasa; ?></center></td>
<td><center><?php echo $row->nilai_normal_bayi;
?></center></td>
<td><center><?php echo $row->nilai_normal_anak;
?></center></td>
<td><center><?php echo $row->nilai_normal_dewasa;
?></center></td>
<td><center><?php echo $row->satuan; ?></center></td>
<td><center>
<button class='btn btn-xs btn-warning edit_nomr btx' data-
id='<?php echo $row->kode_jasa;?>'><i class='glyphicon glyphicon-
pencil'></i> Edit </button>
<button class='btn btn-xs btn-danger delete btx' data-
id='<?php echo $row->kode_jasa;?>' data-nama='<?php echo $row-
>nama_jasa;?>'><i class='glyphicon glyphicon-trash'></i> Hapus
</button>
</center>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
90
$(function(){
$(document).on("click",".edit_nomr",function(){
var id=$(this).attr("data-id");
window.location.href = "<?php echo
base_url();?>index.php/listperiksa_lab/edit/"+id;
});
$(document).on("click",".delete",function(){
var id=$(this).attr("data-id");
var nama=$(this).attr("data-nama");
//window.location.href = "<?php echo
base_url();?>index.php/listperiksa_lab/delete/"+id;
swal({
title:"Hapus Data Pemeriksaan : "+nama,
text:"Yakin akan menghapus data ini?",
type: "warning",
showCancelButton: true,
confirmButtonText: "Hapus",
closeOnConfirm: true,
},
function(){
$.ajax({
url: "<?php echo
site_url('listperiksa_lab/delete/'); ?>/"+id,
type: "post",
dataType:"json",
data:{ id: id },
success: function(d) {
window.location.href = "<?php echo
site_url('listperiksa_lab'); ?>";
},
error: function(){
$('#pesan').html("Terjadi kesalahan");
$('#myModal').modal('show');
setTimeout(function(){
$('#myModal').modal('hide');
}, 1500);
}
})//end ajax
});
});
});
</script>
• listp/add_form_group.php
<div class="row" id="content-wrapper"> <p></p>
<?php echo form_open('listperiksa_lab/save1', 'method="post"
class="form-horizontal"');?>
<!--<form role="form" class="form-horizontal" method="post">-->
91
<div class="panel panel-default ">
<div class="panel-heading">
<strong><?php echo $judul;?></strong>
</div>
<div class="panel-body">
<div class="row col-lg-12">
<div class="">
<div class="form-group">
<label class="col-sm-3 control-
label">Kode Group Pemeriksaan</label>
<div class="col-sm-7">
<input type="text"
readonly name="kodegp" id="kodegp" class="form-control" value="<?php
echo $kodegp;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Nama Group Periksaan</label>
<div class="col-sm-7">
<input type="text"
name="namagp" id="namag" class="form-control" value="<?php echo
$namagp;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Keterangan</label>
<div class="col-sm-7">
<textarea name="ket"
id="ket" class="form-control"><?php echo $ketp;?></textarea>
</div>
</div>
</div>
<div class="col-sm-12" style="float:right;">
<div class="form-group">
92
<button name="submit" type="submit"
class="btn btn-primary btn-md">Simpan</button>
<a href="<?php echo
site_url("listperiksa_lab");?>"><button type="button" class="btn btn-
default">Batal</button></a>
</div>
</div>
</div>
</div>
</form>
</div>
• listp/add_form.php
<div class="row" id="content-wrapper"> <p></p>
<?php echo form_open('listperiksa_lab/save', 'method="post"
class="form-horizontal"');?>
<!--<form role="form" class="form-horizontal" method="post">-->
<div class="panel panel-default ">
<div class="panel-heading">
<strong><?php echo $judul;?></strong>
</div>
<div class="panel-body">
<div class="row col-lg-12">
<div class="">
<div class="form-group">
<label class="col-sm-3 control-
label">Group Pemeriksaan</label>
<div class="col-sm-7">
<select name="grouppp"
id="grouppp" class="form-control">
<option
value="">.......</option>}
option
<?php
foreach
($gp as $row)
{
echo
'<option value="'.$row->kode_jasa.'">'.$row->kode_jasa.' - '. $row-
>nama_jasa.'</option>';
}
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Kode Pemeriksaan</label>
<div class="col-sm-7">
93
<input type="text"
readonly name="kodep" id="kodep" class="form-control" value="<?php
echo $kodep;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Nama Periksaan</label>
<div class="col-sm-7">
<input type="text"
name="naper" id="naper" class="form-control " value="<?php echo
$namap;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Nilai Normal Bayi</label>
<div class="col-sm-7">
<input type="text"
name="normal1" id="normal1" class="form-control" value="<?php echo
$nilain1;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Nilai Normal Anak</label>
<div class="col-sm-7">
<input type="text"
name="normal2" id="normal2" class="form-control" value="<?php echo
$nilain2;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Nilai Normal Dewasa</label>
<div class="col-sm-7">
<input type="text"
name="normal3" id="normal3" class="form-control" value="<?php echo
$nilain3;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Satuan</label>
<div class="col-sm-7">
<input type="text"
name="satuan" id="satuan" class="form-control" value="<?php echo
$satuanp;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Keterangan</label>
<div class="col-sm-7">
<textarea name="ket"
id="ket" class="form-control"><?php echo $ketp;?></textarea>
</div>
</div>
94
</div>
<div class="col-sm-12" style="float:right;">
<div class="form-group">
<button name="submit" type="submit"
class="btn btn-primary btn-md">Simpan</button>
<a href="<?php echo
site_url("listperiksa_lab");?>"><button type="button" class="btn
btn-default">Batal</button></a>
</div>
</div>
</div>
</div>
</form>
</div>
<script type="text/javascript">
$('#grouppp').blur(function() {
var grp = $(this).val();
if (grp != '') {
$.ajax({
type:"post",
url:"<?php echo
base_url();?>index.php/listperiksa_lab/next_kode",
dataType: "json",
data:{
dt: grp
},
success: function(a){
$('#kodep').val(a.kode);
}
});
}
});
</script>
95
• list/edit_form.php
<div class="row" id="content-wrapper"> <p></p>
<?php echo form_open('listperiksa_lab/save', 'method="post"
class="form-horizontal"');?>
<!--<form role="form" class="form-horizontal" method="post">-->
<div class="panel panel-default ">
<div class="panel-heading">
<strong><?php echo $judul;?></strong>
</div>
<div class="panel-body">
<div class="row col-lg-12">
<div class="">
<div class="form-group">
<label class="col-sm-3 control-
label">Group Pemeriksaan</label>
<div class="col-sm-7">
<input type="text"
readonly name="grouppp" id="grouppp" class="form-control " value="<?php
echo $groupp;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Kode Pemeriksaan</label>
<div class="col-sm-7">
<input type="text"
readonly name="kodep" id="kodep" class="form-control" value="<?php echo
$kodep;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Nama Periksaan</label>
<div class="col-sm-7">
96
<input type="text"
name="naper" id="naper" class="form-control " value="<?php echo
$namap;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Nilai Normal Bayi</label>
<div class="col-sm-7">
<input type="text"
name="normal1" id="normal1" class="form-control" value="<?php echo
$nilain1;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Nilai Normal Anak</label>
<div class="col-sm-7">
<input type="text"
name="normal2" id="normal2" class="form-control" value="<?php echo
$nilain2;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Nilai Normal Dewasa</label>
<div class="col-sm-7">
<input type="text"
name="normal3" id="normal3" class="form-control" value="<?php echo
$nilain3;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Satuan</label>
<div class="col-sm-7">
<input type="text"
name="satuan" id="satuan" class="form-control" value="<?php echo
$satuanp;?>">
97
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-
label">Keterangan</label>
<div class="col-sm-7">
<textarea name="ket"
id="ket" class="form-control"><?php echo $ketp;?></textarea>
</div>
</div>
</div>
<div class="col-sm-12" style="float:right;">
<div class="form-group">
<button name="submit" type="submit"
class="btn btn-primary btn-md">Simpan</button>
<a href="<?php echo
site_url("listperiksa_lab");?>"><button type="button" class="btn btn-
default">Batal</button></a>
</div>
</div>
</div>
</div>
</form>
</div>
98
• orderp/order_form.php
<style type="text/css">
.loader{background:url(<?php echo
base_url();?>/component/images/loading.gif) no-repeat; width:20px;
height:20px; float:left;}
</style>
<div class="row" id="content-wrapper"> <p></p>
<form class="form-horizontal" id="formorder" accept-charset="utf-
8">
<div class="panel panel-default ">
<div class="panel-heading">
<strong><?php echo $judul; ?></strong>
</div>
<div class="panel-body">
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<strong>Data Pasien</strong>
</div>
<div id="collapseOne" class="panel-
collapse">
<div class="panel-body">
<div class=" col-sm-12">
<div class="form-
group">
<label
class="col-sm-3 control-label">No. MR</label>
<div
class="col-sm-7">
<input type="text" name="nomr" id="nomr" class="form-control">
</div>
<div
class="col-sm-1 loader"></div>
</div>
99
<div class="form-
group">
<label
class="col-sm-3 control-label">Nama Lengkap Pasien</label>
<div
class="col-sm-7">
<input type="text" name="name" id="name" class="form-control
input-sm" readonly>
</div>
</div>
<div class="form-
group">
<div
class="col-sm-3"></div>
<div
class="col-sm-3">
<input type="text" class="form-control text" name="caller"
id="caller" value="" readonly="readonly">
</div>
</div>
<div class="form-
group">
<label
class="col-sm-3 control-label">Jenis Kelamin</label>
<div
class="col-sm-7">
<input type="text" name="sex" id="sex" class="form-control"
readonly="readonly" value="">
<!--
<select name="sex" id="sex" class="form-control" readonly="readonly">
<option value='0'>- Sex -</option>
<option value='L'>Laki-Laki</option>
<option value='P'>Perempuan</option>
</select> -
->
100
<?php echo
form_error('sex'); ?>
</div>
</div>
<div class="form-
group">
<label
class="col-sm-3 control-label">Tempat/Tgl. Lahir</label>
<div
class="col-sm-7">
<input type="text" name="tempat" id="tempat" class="form-control"
readonly="readonly">
</div>
<label
class="col-sm-3 control-label"></label></br></br>
<div
class="col-sm-7">
<div
class='input-group date' id='datetimepicker1'>
<input type='text' class="form-control" id="tgllahir"
name="tgllahir" readonly="readonly" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class="form-
group">
<label
class="col-sm-3 control-label">Umur</label>
<div
class="col-sm-7">
<input type="text" name="umur" id="umur" class="form-control
input-sm" placeholder="umur 0 tahun 0 bulan 0 hari" readonly="readonly">
101
</div>
</div>
<div class="form-
group">
<label
class="col-sm-3 control-label">Alamat</label>
<div
class="col-sm-7">
<input type="text" name="alamat" id="alamat" class="form-control
input-sm" readonly="readonly">
</div>
</div>
<div class="form-
group">
<label
class="col-sm-3 control-label">Jaminan</label>
<div
class="col-sm-7">
<input name="KDCARABAYAR" id="KDCARABAYAR" class="form-control"
readonly>
</div>
<div
class="col-sm-3"></div>
</div>
<div class="form-
group">
<label
class="col-sm-3 control-label">Dokter</label><div id='mabuk'></div>
<!-- <div
class="col-sm-3">
<select name="kdpoly" id="kdpoly" class="form-control selectbox
text required" title="">
<option value='3'>ANAK</option>
<option value='28'>THT</option>
<option value='9'>MATA</option>
102
</select>
</div> -->
<div
class="col-sm-7">
<input type="text" name="dktr" id="dktr" class="form-control"
readonly>
</div>
</div>
<div class="form-
group">
<label
class="col-sm-3 control-label">Tanggal Order</label>
<div
class="col-sm-7">
<input
readonly type="text" name="tgldaftar" id="tgldaftar" class="form-control
" value="<?php echo date("Y-m-d H:i:s"); ?>" />
<input
type='hidden' name='start_daftar' id='start_daftar' />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="panel panel-default" align="">
<div class="panel-heading">
<strong>Jenis
Pemeriksaan</strong>
</div>
<div class="panel-body">
<div class="col-sm-12">
<?php
foreach
($pemeriksaan as $row) {
?>
103
<div class="col-sm-4"
style="margin-bottom: 10px;">
<div class="panel
panel-default">
<div
class="panel-heading">
<strong><?php echo $row->nama_jasa; ?></strong>
</div>
<div
class="panel-body">
<?php
$daftar = $list_pemeriksaan->get_list_pemeriksaan($row-
>kode_jasa);
foreach ($daftar as $list) {
?>
<div
class="checkbox">
<label>
<input type="checkbox"
class="listjasa" name="kdjasa[]" value="<?php echo $list->kode_jasa;
?>">
<?php echo $list-
>nama_jasa; ?>
</label>
</div>
<?php
}
?>
</div>
</div>
</div>
<?php
}
?>
</div>
104
</div>
</div>
</div>
<div class=''>
<div class=" col-sm-12" style="float:right">
<div class="form-group">
<button name="submit"
id="submit" type="button" class="btn btn-primary">Submit</button>
<!--<button type="button"
class="btn btn-default">Print Kartu Pasien</button>-->
</div>
</div>
</div>
</div>
</form>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('.loader').hide();
$("#submit").click(function(){
var data = $("#formorder").serialize();
if ($("#formorder input:checkbox:checked").length >
0)
{
$.ajax({
type:"post",
url:"<?php echo
base_url();?>index.php/order_lab/save",
dataType: "text",
data: data,
success: function(a){
105
swal({title: "Berhasil", text:
"Order anda telah tersimpan!", type: "success"},
function(){
window.onbeforeunload = function () {
window.scrollTo(0, 0);
}
location.reload();
}
);
}
});
}
else
{
swal("Maaf", "Anda belum memilih
pemeriksaan!", "warning");
}
});
})
$('#nomr').blur(function() {
var nomr = $(this).val();
if (nomr != '') {
$('.loader').show();
$.ajax({
type:"post",
url:"<?php echo
base_url();?>index.php/order_lab/snomr",
dataType: "json",
data:{
dt: nomr
},
106
success: function(a){
$('#name').val(a.nama);
$('#caller').val(a.title).attr("selected", "selected");
$('#sex').val(a.jnsklmn).attr("selected", "selected");
/*$('#KDCARABAYAR').val(a.jaminan).attr("selected",
"selected");*/
$('#KDCARABAYAR').val(a.namajaminan);
/*$('#kdpoly').val(a.ply).attr("selected", "selected");*/
$('#tempat').val(a.tempat);
$('#dktr').val(a.dktr);
$('#tgllahir').val(a.tgllahir);
$('#umur').val(a.dinterv);
$('#alamat').val(a.address);
$('.loader').hide();
}
});
}
});
$(function(){
function startjam(){
var d = new Date();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();
var curr_sec = d.getSeconds();
document.getElementById('start_daftar').value=(curr_hour + ":" +
curr_min+ ":" + curr_sec);
}
startjam();
$('#datetimepicker1').datetimepicker({format: 'DD/MM/YYYY'});
107
$("#dktr").autocomplete({
source: function( request, response, kpoly) {
$.ajax({
type:"post",
url: "<?php echo
base_url();?>index.php/pendaftaran/get_dokter",
dataType: "json",
data: {
q: request.term, w:
document.getElementById("poly_id").value
},
success: function(data) {
response(data);
}
});
},
select: function(e, ui) {
//create formatted friend
$.ajax({
type:"post",
url:"<?php echo
base_url();?>index.php/pendaftaran/set_kdktr",
dataType:"json",
data:{
id: ui.item.value
},
success: function(a) {
//response( data );
document.getElementById("KDDOKTER").value = a.idx;
}
});
}
});
108
});
function getFormattedDate(date)
{
var year = date.getFullYear();
var month = (1 + date.getMonth()).toString();
month = month.length > 1 ? month : '0' + month;
var day = (1 + date.getDate()).toString();
day = day.length > 1 ? day : '0' + day;
return day + '/' + month + '/' + year;
}
</script>
• hasilp/hasil_list.php
<br>
<div class="row" id="content-wrapper">
<div class="panel panel-default ">
<div class="panel-heading">
<strong><?php echo $judul; ?></strong>
</div>
<div class="panel-body">
<div class="">
<div class="dataTable_wrapper">
<table class="table table-striped
table-bordered table-hover" id="dataTables-example">
<thead>
<tr>
<th
width="5%">No</th>
<th width="15%">No
RM</th>
<th
width="30%">Nama Pasien</th>
109
<th
width="10%">Jenis Kelamin</th>
<th
width="20%">Tanggal Order Pemeriksaan</th>
<th
width="15%">Action</th>
</tr>
</thead>
<tbody>
<?php
$counter = 1;
foreach ($list as $row) {
?>
<tr>
<td><center><?php
echo $counter++; ?></center></td>
<td><center><?php
echo $row->nomr; ?></center></td>
<td><center><?php
echo $row->nama; ?></center></td>
<td><center><?php
echo $row->jeniskelamin; ?></center></td>
<td><center><?php
echo $row->tgl_order; ?></center></td>
<td><center>
<?php if
($kd == '02'): ?>
<button class='btn btn-xs btn-danger edit_nomr' data-id='<?php
echo $row->no_transaksi;?>'><i class='glyphicon glyphicon-eye-open'></i>
Lihat </button>
<?php else:
?>
<button
class='btn btn-xs btn-danger edit_nomr' data-id='<?php echo $row-
>no_transaksi;?>'><i class='glyphicon glyphicon-pencil'></i> Edit
</button>
<button
class='btn btn-xs btn-success lihat_detail' data-id='<?php echo $row-
110
>no_transaksi;?>'><i class='glyphicon glyphicon-print'></i> Print
</button>
<?php endif
?>
</center>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(function(){
$(document).on("click",".edit_nomr",function(){
var id=$(this).attr("data-id");
window.location.href = "<?php echo
base_url();?>index.php/hasil_lab/edit/"+id;
});
$(document).on("click",".lihat_detail",function(){
var id=$(this).attr("data-id");
window.open( "<?php echo
base_url();?>index.php/hasil_lab/cetak/"+id, "_blank");
});
});
</script>
111
• hasilp/hasil_edit.php
<br>
<div class="row" id="content-wrapper">
<?php echo form_open('hasil_lab/save', 'method="post"
class="form-horizontal"');?>
<div class="panel panel-default ">
<div class="panel-heading">
<strong><?php echo $judul; ?></strong>
</div>
<div class="panel-body">
<div class="row col-lg-12">
<div class="col-md-5">
<div class="form-group">
<label class="col-sm-4 control-
label">No. Transaksi</label>
<div class="col-sm-8">
<input type="text"
name="nomr" id="nomr" class="form-control" value="<?php echo
$no_trans;?>" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-
label">Tanggal Daftar</label>
<div class="col-sm-8">
<input readonly
type="text" name="tgldaftar" id="tgldaftar" class="form-control "
value="<?php echo $tgl_order;?>" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-
label">Tanggal Pemeriksaan</label>
<div class="col-sm-8">
<input type="text"
name="tglperiksa" id="tglperiksa" class="form-control " value="<?php
echo $retVal = (!empty($tgl_pemeriksaan)) ? $tgl_pemeriksaan :
date("Y-m-d H:i:s"); ?>" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-
label">Dokter</label>
<div class="col-sm-8">
<input type="text"
name="dktr" id="dktr" class="form-control" value="<?php echo
$NAMADOKTER;?>" readonly>
</div>
</div>
</div>
<div class="col-md-7">
112
<div class="form-group">
<label class="col-sm-5 control-
label">No. MR</label>
<div class="col-sm-7">
<input type="text"
name="nomr" id="nomr" class="form-control" value="<?php echo
$nomr;?>" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-
label">Nama Lengkap Pasien</label>
<div class="col-sm-7">
<input type="text"
name="name" id="name" class="form-control input-sm" value="<?php echo
$NAMA;?>" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-
label">Jenis Kelamin</label>
<div class="col-sm-7">
<input name="sex"
id="sex" class="form-control" value="<?php echo $JENISKELAMIN;?>"
readonly>
<?php echo
form_error('sex'); ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-
label">Umur</label>
<div class="col-sm-7">
<input type="text"
name="umur" id="umur" class="form-control input-sm" placeholder="umur
0 tahun 0 bulan 0 hari" value="<?php echo $umur; ?>" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-
label">Jaminan</label>
<div class="col-sm-7">
<input type="text"
name="KDCARABAYAR" id="KDCARABAYAR" class="form-control selectbox
text required" value="<?php echo $CARABAYAR;?>" readonly>
</div>
<div class="col-sm-4"></div>
</div>
</div>
</div>
<div class="col-sm-12">
<hr>
<div class="table-responsive">
<div class="dataTable_wrapper">
<table class="table table-
striped table-bordered table-hover" id="dataTables">
<thead>
<tr>
113
<th
width="5%">No</th>
<th
width="20%">Jenis Pemeriksaan</th>
<th
width="15%">Nilai Normal</th>
<th
width="15%">Satuan</th>
<th
width="20%">Hasil</th>
<!-- <th
width="">Keterangan</th> -->
</tr>
</thead>
<tbody>
<?php
$counter = 1;
$umurx =
substr($umur, 0, 2);
foreach
($pemeriksaan as $row) {
if($umurx > 12){
$nlnormal =
$row->nilai_normal_dewasa;
$cek =
$cont->cek_type_nilai($nlnormal);
}else if($umurx <
2){
$nlnormal =
$row->nilai_normal_bayi;
$cek =
$cont->cek_type_nilai($nlnormal);
}else{
$nlnormal =
$row->nilai_normal_anak;
$cek =
$cont->cek_type_nilai($nlnormal);
}
?>
<tr>
<td><center><?php echo $counter; ?></center></td>
<td><?php
echo $row->nama_jasa; ?></center></td>
<td><center><?php echo $nlnormal; ?></center></td>
<td><center><?php echo $row->satuan; ?></center></td>
<td><center>
<?php
if ($kd == '02'):
if (!empty($row->hasil_pemeriksaan)) {
114
echo $row->hasil_pemeriksaan;
}else{
echo "<small><i>Hasil Pemeriksaan Belum
keluar</i></small>";
}
?>
<?php
else:
if (is_numeric($cek)) :
?>
<input type="number" name="hasil[]" id="hasil" value="<?php echo
$row->hasil_pemeriksaan; ?>" maxlength="3" min="0">
<?php else: ?>
<input type="text" name="hasil[]" id="hasil" value="<?php
echo $row->hasil_pemeriksaan; ?>" maxlength="30">
<?php endif ?>
<input type="hidden" name="num[]" id="<?php echo $counter;?>"
value="<?php echo $row->id_orderd; ?>">
<?php endif ?>
</center></td>
</tr>
<?php $counter++; } ?>
</tbody>
</table>
</form>
</div>
</div>
</div>
<div class="col-sm-12" style="float:right;">
<?php if ($kd == '02'): ?>
<div> </div>
<?php else: ?>
<div class="form-group">
<button name="submit"
type="submit" class="btn btn-primary btn-md">Submit</button>
</div>
<?php endif ?>
</div>
</div>
</div>
</form>
</div>
<script type="text/javascript">
115
$(function () {
function startjam(){
var d = new Date();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();
var curr_sec = d.getSeconds();
document.getElementById('start_daftar').value=(curr_hour +
":" + curr_min+ ":" + curr_sec);
}
startjam();
$('#datetimepicker1').datetimepicker({format:
'DD/MM/YYYY'});
function getFormattedDate(date)
{
var year = date.getFullYear();
var month = (1 + date.getMonth()).toString();
month = month.length > 1 ? month : '0' + month;
var day = (1 + date.getDate()).toString();
day = day.length > 1 ? day : '0' + day;
return day + '/' + month + '/' + year;
}
</script>
• hasilp/hasil_print.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link href="<?php echo base_url()?>component/images/favicon.png"
rel="shorcut icon">
<title>Cetak Hasil Laboratorium</title>
<link href="<?php echo base_url();?>component/dist/css/print.css"
rel="stylesheet"><!--
<link href="<?php echo base_url();?>component/dist/css/gridz.css"
rel="stylesheet"> -->
<link href="<?php echo base_url();
?>component/bower_components/bootstrap/dist/css/bootstrap.min.css"
rel="stylesheet">
</head>
<body>
<div id="wrapper" align="center">
<div id="inside">
<div id="header">
<div id="logo"><img src="<?php echo
base_url()?>component/images/logoS.png" width="80"
height="80"/></div>
<div id="textheader">
<strong>RUMAH SAKIT UNIVERSITAS
HASANUDDIN</strong><br>
<div class="subjudul">
Jl. Perintis Kemerdekaan KM. 11 Makassar 90245 <br>
Telp: 0411 - 591 331 (Hunting) Fax: 0411 591 332
</div>
116
</div>
</div>
<div id="textjdl">
HASIL PEMERIKSAAN LABORATORIUM<br>
</div>
<div class="panel-body" align="center">
<div class="">
<div class="row col-xs-7">
<table class="table" id="tablex"
width="100%">
<tr>
<td class="col-xs-5">No.
Transaksi</td>
<td>:</td>
<td class="col-xs-
7"><?php echo $no_trans;?></td>
</tr>
<tr>
<td>Tanggal Daftar</td>
<td>:</td>
<td><?php echo
$tgl_order;?></td>
</tr>
<tr>
<td>Tanggal
Pemeriksaan</td>
<td>:</td>
<td><?php echo
$tgl_pemeriksaan;?></td>
</tr>
<tr>
<td>Dokter</td>
<td>:</td>
<td><?php echo
$NAMADOKTER;?></td>
</tr>
</table>
</div>
<div class="row col-xs-5" >
<table class="table" id="tablex"
width="100%">
<tr>
<td class="col-xs-5">No.
Rekam Medis</td>
<td>:</td>
<td class="col-xs-
7"><?php echo $nomr;?></td>
</tr>
<tr>
<td>Nama Pasien</td>
<td>:</td>
<td><?php echo
$NAMA;?></td>
</tr>
<tr>
<td>Jenis Kelamin</td>
<td>:</td>
117
<td><?php echo
$JENISKELAMIN;?></td>
</tr>
<tr>
<td>Usia</td>
<td>:</td>
<td><?php echo
$umur;?></td>
</tr>
</table>
</div>
</div>
<br>
<div class="col-xs-12 row">
<div class="table-responsive">
<table class="table"
id="dataTables" align="center">
<thead align="center">
<tr>
<!-- <th
width="5%">No</th> -->
<th
width="25%">Jenis Pemeriksaan</th>
<th
width="15%"><center>Nilai Normal</center></th>
<th
width="20%"><center>Hasil</center></th>
<th
width="10%"><center>Satuan</center></th>
</tr>
</thead>
<tbody>
<?php
$counter = 1;
$umurx =
substr($umur, 0, 2);
foreach
($pemeriksaan as $row) {
if($umurx > 12){
$nlnormal =
$row->nilai_normal_dewasa;
}else if($umurx <
2){
$nlnormal =
$row->nilai_normal_bayi;
}else{
$nlnormal =
$row->nilai_normal_anak;
}
?>
<tr>
<!--
<td><center><?php echo $counter; ?></center></td> -->
<td><?php
echo $row->nama_jasa; ?></td>
118
<td><center><?php echo $nlnormal; ?></center></td>
<td><center><?php echo $row->hasil_pemeriksaan;?>
<td><center><?php echo $row->satuan; ?></center></td>
</center></td>
</tr>
<?php $counter++; } ?>
</tbody>
</table>
</div>
</div>
<br>
<div class="col-xs-12" id="ttd">
<table width="100%">
<tr align="center">
<td class="col-xs-4"></td>
<td class="col-xs-4"></td>
<td class="col-xs-4">
Pemeriksa
<br><br><br><br><br>
(........................)
</td>
</tr>
</table>
</div>
<div class="col-xs-12">
<button class="btn-print"
onClick="window.print()">Cetak</button>
</div>
<br><br><br>
</div>
</div>
</div>
</body>
</html>
119
• menu/list.php
<br>
<br>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Manajemen Menu
<span class="pull-right">
<a id="editdata" class="btn btn-primary btn-xs"
href="<?php echo site_url('/menu/ordering'); ?>">
<i class="glyphicon glyphicon-sort"></i>
Ganti Urutan
</a>
<a id="editdata" class="btn btn-primary btn-xs"
href="<?php echo site_url('/menu/add'); ?>">
<i class="glyphicon glyphicon-plus-sign"></i>
Data Baru
</a>
</span>
</div>
<!-- /.panel-heading -->
<div class="panel-body">
<div class="test" >
<div class="dataTable_wrapper">
<table class="table table-striped table-bordered
table-hover" id="dataTables-example" >
<thead>
<tr>
<th>Id</th>
<th>Icon</th>
<th>Nama Menu</th>
<th>Jenis</th>
<th>Controller</th>
120
<th>Root</th>
<th>Urutan</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php foreach($list_menu as $lmenu):
echo "
<tr>
<td>$lmenu->mnId</td>
<td>$lmenu->mnIcon</td>
<td>$lmenu->mnNamaMenu</td>
<td>$lmenu->mnJenis</td>
<td>$lmenu->mnController</td>
<td>$lmenu->mnIdRoot</td>
<td>$lmenu->mnOrder</td>
<td><a href='#'
onclick='hapus(\"$lmenu->mnNamaMenu\",\"$lmenu-
>mnIdEn\")'>Hapus</a> <a href='".site_url('menu/edit/'.$lmenu-
>mnIdEn)."'>Edit</a></td>
</tr>";
endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<!-- /.panel-body -->
</div>
<!-- /.panel -->
</div>
<!-- /.col-lg-12 -->
</div>
121
<script>
function hapus(data1, id){
swal({
title:"Hapus Menu : "+data1,
text:"Yakin akan menghapus data ini?",
type: "warning",
showCancelButton: true,
confirmButtonText: "Hapus",
closeOnConfirm: true,
},
function(){
//if (confirm('Ingin menghapus '+ data1 +'?')) {
$.ajax({
url: "<?php echo site_url('menu/delete/');
?>/"+id,
type: "post",
dataType:"json",
data:{ id: id },
success: function(d) {
/*console.log(d);
if(d.status=="sukses")
$.ajax({
url: "<?php echo
site_url('group/refresh/') ; ?>",
type: "post",
data:{ segarkan:
"ya" },
success :
function(result){
$('#refresh').html(result);
$('#dataTables-
example').DataTable({
responsive: true
});
122
},
error : function(){
}
});*/
window.location.href =
"<?php echo site_url('menu'); ?>";
},
error: function(){
$('#pesan').html("Terjadi kesalahan yang
tidak diinginkan...");
$('#myModal').modal('show');
setTimeout(function(){
$('#myModal').modal('hide');
}, 1500);
}
})
//batas ajax
});
}
</script>
123
• menu/add.php
<br>
<br>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Manajemen Menu
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<form method="post" id="tambah_menu">
<div class="form-group">
<label>Icon</label>
<input class="form-control" name="mnIcon" value="fa-
file" required="">
</div>
<div class="form-group">
<label>Nama Menu</label>
<input class="form-control" name="mnNamaMenu"
required="">
</div>
<div class="form-group">
<label>Jenis</label>
<select class="form-control" name="mnJenis" required="">
<option value="0">0 | Parent</option>
<option value="1">1 | Link</option>
</select>
</div>
<div class="form-group">
<label>Nama Controller</label>
124
<input class="form-control" name="mnController"
required="">
</div>
<div class="form-group">
<label>Root</label>
<select class="form-control" name="mnIdRoot"
required="">
<option value="0">0 | Root</option>
<?php
foreach($list_root as $lroot):
echo "<option value='$lroot->mnId'>$lroot->mnId |
$lroot->mnNamaMenu</option>";
endforeach;
?>
</select>
</div>
<button type="submit" class="btn btn-default">Submit
Button</button>
<button type="reset" class="btn btn-default">Reset
Button</button>
<a href="<?php echo site_url("menu");?>"><button
type="button" class="btn btn-default">Tutup</button></a>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$('#tambah_menu').submit(function(event){
event.preventDefault();
$.ajax({
125
url: "<?php echo site_url('menu/save'); ?>",
type: "post",
dataType : "json",
data: $(this).serialize(),
success: function(d) {
$('#pesan').html(d.pesan);
$('#myModal').modal('show');
setTimeout(function(){
$('#myModal').modal('hide');
}, 1500);
$('#tambah_menu')[0].reset();
},
error: function(){
$('#pesan').html("Terjadi kesalahan yang tidak
diinginkan...");
$('#myModal').modal('show');
setTimeout(function(){
$('#myModal').modal('hide');
}, 1500);
},
beforeSend: function(){
}
});
});
</script>
126
• menu/edit.php
<br>
<br>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Edit Menu
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<form method="post" id="edit_menu">
<div class="form-group">
<label>Icon</label>
<input class="form-control" name="mnIcon" value="<?php
echo $icon; ?>" required="">
</div>
<div class="form-group">
<label>Nama Menu</label>
<input class="form-control" name="mnNamaMenu"
value="<?php echo $nama; ?>" required="">
</div>
<div class="form-group">
<label>Jenis</label>
<select class="form-control" name="mnJenis" id="mnJenis"
required="">
<option value="0">0 | Parent</option>
<option value="1">1 | Link</option>
</select>
</div>
<div class="form-group">
<label>Nama Controller</label>
127
<input class="form-control" name="mnController"
required="" value="<?php echo $controller; ?>">
<input type="hidden" class="form-control"
name="id" required="" value="<?php echo $idk; ?>" >
</div>
<div class="form-group">
<label>Root</label>
<select class="form-control" name="mnIdRoot"
id="mnIdRoot" required="">
<option value="0">0 | Root</option>
<?php
foreach($list_root as $lroot):
echo "<option value='$lroot->mnId'>$lroot->mnId |
$lroot->mnNamaMenu</option>";
endforeach;
?>
</select>
</div>
<button type="submit" class="btn btn-default">Submit
Button</button>
<button type="reset" class="btn btn-default">Reset
Button</button>
<a href="<?php echo site_url("menu");?>"><button
type="button" class="btn btn-default">Tutup</button></a>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$(function(){
128
$('#mnJenis').val('<?php echo $jenis; ?>').attr("selected",
"selected");
$('#mnIdRoot').val('<?php echo $root; ?>').attr("selected",
"selected");
});
$('#edit_menu').submit(function(event){
event.preventDefault();
$.ajax({
url: "<?php echo site_url('menu/update'); ?>",
type: "post",
dataType : "json",
data: $(this).serialize(),
success: function(d) {
$('#pesan').html(d.pesan);
$('#myModal').modal('show');
setTimeout(function(){
$('#myModal').modal('hide');
}, 1500);
//$('#tambah_menu')[0].reset();
},
error: function(){
$('#pesan').html("Terjadi kesalahan yang tidak
diinginkan...");
$('#myModal').modal('show');
setTimeout(function(){
$('#myModal').modal('hide');
}, 1500);
},
beforeSend: function(){
}
});
});
</script>
129
• menu/order.php
<script src="<?php echo base_url();
?>component/dragndrop/jquery.sortable.min.js"></script>
<style>
li.sortable-placeholder {
border: 2px dashed #CCC;
background: none;
box-shadow: 1px 1px 5px #888888;
}
.sortable li {
list-style: none;
height:40px;
margin-left:-40px;
}
li:hover{
background:#F5F5F5;
cursor:move;
}
</style>
<br>
<br>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Manajemen Menu
</div>
<!-- /.panel-heading -->
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
130
<form id="order_menu">
<table>
<tr>
<strong>
Nama Menu
</strong>
</tr>
<tr>
<td width=400px><br>
<ul class="sortable list">
<?php foreach($data as $dt):
echo "<li class='list-group-item'><i
class='fa $dt->mnIcon'></i>  <input type='hidden' value='$dt-
>mnId' name='urutan[]'>$dt->mnNamaMenu</li>";
endforeach;?>
</ul>
</td>
</tr>
</table>
<button type="submit" class="btn btn-default">Update</button>
<a href="<?php echo site_url("menu");?>"><button type="button"
class="btn btn-default">Tutup</button></a>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$(function() {
$('.sortable').sortable();
});
131
$('#order_menu').submit(function(event){
event.preventDefault();
$.ajax({
url: "<?php echo site_url('menu/orderupdate');
?>",
type: "post",
dataType : "json",
data: $(this).serialize(),
success: function(d) {
$('#pesan').html(d.pesan);
$('#myModal').modal('show');
setTimeout(function(){
$('#myModal').modal('hide');
}, 1500);
},
error: function(){
$('#pesan').html("Terjadi kesalahan yang
tidak diinginkan...");
$('#myModal').modal('show');
setTimeout(function(){
$('#myModal').modal('hide');
}, 1500);
},
beforeSend: function(){
}
});
});
</script>
132
CONTROLLERS
• login.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
function __construct()
{
// load library
parent::__construct();
$this->load->library('session');
$this->load->library('form_validation');
$this->load->library('access');
$this->load->library('myencryption');
$this->load->helper('url');
}
public function index($kode=null){
$this->access->login($kode);
redirect('main');
}
function logout()
{
$this->load->library('access');
$this->access->logout();
$this->index();
}
}
?>
• main.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Main extends MY_Controller
{
function __construct ()
{
parent::__construct();
$this->load->model('mmenu');
133
$this->load->library('access');
$this->load->helper('url');
}
public function index () {
$menu = $this->mmenu->getByLevel($this->level);
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]-
>groupNama,
"active"=>$this-
>router->fetch_class()));
$data['bulan'] = array( 'Januari' => '01',
'Februari' =>
'02',
'Maret' => '03',
'April' => '04',
'Mei' => '05',
'Juni' => '06',
'Juli' => '07',
'Agustus' => '08',
'September' =>
'09',
'Oktober' => '10',
'November' =>
'11',
134
'Desember' =>
'12');
//var_dump($data['bulan']);
$data['thn'] = date("Y");
foreach($data['bulan'] as $row)
{
$data['grafik'][]=(int)$this->mmenu-
>laporanTahunan($row, $data['thn']);
}
//$data['text'] = "Selamat datang di Modul Laboratorium";
$this->load->view('main/body.php', $data);
$this->load->view('template/footer.php');
}
}
• menu.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Menu extends MY_Controller
{
function __construct ()
{
135
parent::__construct();
$this->load->model('mmenu');
$this->load->library('access');
$this->load->helper('url');
}
function index(){
$menu = $this->mmenu->getByLevel($this->level);
$listMenu = $this->mmenu->getAll();
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this-
>access->get_group()));
$this->load->view('template/header.php',
array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]->groupNama,
"active"=>$this->router->fetch_class()));
$this->load->view('menu/list.php',
array("list_menu"=>$listMenu));
$this->load->view('template/footer.php');
136
}
function add(){
$menu = $this->mmenu->getByLevel($this->level);
$lroot = $this->mmenu->getRoot();
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]->groupNama,
"active"=>$this->router->fetch_class()));
$this->load->view('menu/add.php',
array("list_root"=>$lroot));
$this->load->view('template/footer.php');
}
function save(){
$nama = htmlentities($this->input->post('mnNamaMenu'),
ENT_QUOTES);
$icon = $this->input->post('mnIcon');
137
$controller = $this->input->post('mnController');
$jenis = $this->input->post('mnJenis');
$root = $this->input->post('mnIdRoot');
$urutan = $this->mmenu->getCurrentOrder();
$result=0;
if($nama){
$result = $this->mmenu->addNew(array(
'mnNamaMenu' => $nama ,
'mnIcon' => $icon ,
'mnController' => $controller ,
'mnJenis' => $jenis ,
'mnIdRoot' => $root ,
'mnOrder' => $urutan
));}
if($result==1)
echo json_encode(array("pesan"=>"Data berhasil disimpan !!!",
"status"=>"sukses"));
else
echo json_encode(array("pesan"=>"Terjadi kesalahan ...",
"status"=>"error"));
}
138
function update(){
$nama = htmlentities($this->input->post('mnNamaMenu'), ENT_QUOTES);
$icon = $this->input->post('mnIcon');
$controller = $this->input->post('mnController');
$jenis = $this->input->post('mnJenis');
$root = $this->input->post('mnIdRoot');
$id = $this->input->post('id');
$result=0;
if($nama){
$data1 = array(
'mnNamaMenu' => $nama,
'mnIcon' => $icon,
'mnController' => $controller,
'mnJenis' => $jenis,
'mnIdRoot' => $root
);
$result = $this->mmenu->update_menu($data1, $id);
}
if($result==1)
echo json_encode(array("pesan"=>"Data berhasil disimpan !!!",
"status"=>"sukses"));
139
else
echo json_encode(array("pesan"=>"Terjadi kesalahan ...",
"status"=>"error"));
}
function ordering(){
$data = $this->mmenu->getAllMenuOrder();
$menu = $this->mmenu->getByLevel($this->level);
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]->groupNama,
"active"=>$this->router->fetch_class()));
$this->load->view('menu/order.php',
array("data"=>$data));
$this->load->view('template/footer.php');
}
function orderupdate(){
140
$urutan=$this->input->post('urutan');
$a=1;
foreach($urutan as $ur):
$this->mmenu->update($ur,array("mnOrder"=>$a));
$a++;
endforeach;
echo json_encode(array("pesan"=>"Data berhasil diupdate!!"));
}
function delete($id=null){
$result=$this->mmenu->delete($id);
if($result) echo json_encode(array("pesan"=>"Data berhasil
dihapus!!",
"status"=>"sukses"));
else echo json_encode(array("pesan"=>"Data gagal dihapus!!",
"status"=>"error"));
}
function edit($id=null){
//echo $urutan = $this->mmenu->getCurrentOrder();
$menu = $this->mmenu->getByLevel($this->level);
$lroot = $this->mmenu->getRoot();
141
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
$data = $this->mmenu->edit_menu($id);
//var_dump($data);
foreach($data as $dt){
$data1 = $dt->mnIcon;
$data2 = $dt->mnNamaMenu;
$data3 = $dt->mnJenis;
$data4 = $dt->mnController;
$data5 = $dt->mnIdRoot;
}
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]->groupNama,
"active"=>$this->router->fetch_class()));
$this->load->view('menu/edit.php',array("icon"=>$data1,
"nama"=>$data2,
142
"jenis"=>$data3,
"controller"=>$data4,
"root"=>$data5,
"idk"=>$id,
"list_root"=>$lroot));
$this->load->view('template/footer.php');
}
}
?>
• listperiksa_lab.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Listperiksa_lab extends MY_Controller
{
function __construct ()
{
parent::__construct();
143
$this->load->model('mmenu');
$this->load->library('access');
$this->load->helper('url');
}
function index(){
$menu = $this->mmenu->getByLevel($this->level);
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]-
>groupNama,
"active"=>$this-
>router->fetch_class()));
$this->load->model('m_pemeriksaan');
$data['judul'] = "Master Pemeriksaan Laboratorium";
$data['group'] = $this->m_pemeriksaan->get_group_pemeriksaan();
$data['list'] = $this->m_pemeriksaan->get_all_pemeriksaan();
$this->load->view('listp/body.php', $data);
$this->load->view('template/footer.php');
144
}
function add(){
$menu = $this->mmenu->getByLevel($this->level);
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]-
>groupNama,
"active"=>$this-
>router->fetch_class()));
$this->load->model('m_pemeriksaan');
$data['gp'] = $this->m_pemeriksaan-
>get_group_pemeriksaan();
$data['judul'] = "Tambah Pemeriksaan Laboratorium Baru";
$data['kodep'] = '';
$data['groupp'] = '';
$data['namap'] = '';
$data['nilain1'] = '';
145
$data['nilain2'] = '';
$data['nilain3'] = '';
$data['satuanp'] = '';
$data['ketp'] = '';
$this->load->view('listp/add_form.php', $data);
//form validation;
$this->load->view('template/footer.php');
}
function add_group(){
$menu = $this->mmenu->getByLevel($this->level);
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]-
>groupNama,
"active"=>$this-
>router->fetch_class()));
$this->load->model('m_pemeriksaan');
146
$data['gp'] = $this->m_pemeriksaan-
>get_group_pemeriksaan();
$data['judul'] = "Tambah Group Pemeriksaan Laboratorium Baru";
$data['kodegp'] = $this->next_kode_group();
$data['namagp'] = '';
$data['ketp'] = '';
$this->load->view('listp/add_form_group.php', $data);
//form validation;
$this->load->view('template/footer.php');
}
function edit(){
$menu = $this->mmenu->getByLevel($this->level);
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]-
>groupNama,
"active"=>$this-
>router->fetch_class()));
147
$this->load->model('m_pemeriksaan');
$data['judul'] = "Edit Informasi Pemeriksaan Laboratorium";
$key = $this->uri->segment(3);
$query = $this->m_pemeriksaan->get_data_pemeriksaan($key);
if($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data['kodep'] = $row->kode_jasa;
$data['groupp'] = $row->group_jasa;
$data['namap'] = $row->nama_jasa;
$data['nilain1'] = $row->nilai_normal_bayi;
$data['nilain2'] = $row->nilai_normal_anak;
$data['nilain3'] = $row->nilai_normal_dewasa;
$data['satuanp'] = $row->satuan;
$data['ketp'] = $row->keterangan;
}
}
$this->load->view('listp/edit_form.php', $data);
$this->load->view('template/footer.php');
}
148
function save(){
$this->load->model('mcrud');
$data['group_jasa'] = $this->input->post('grouppp');
$data['kode_jasa'] = $this->input->post('kodep');
$data['nama_jasa'] = $this->input->post('naper');
$data['nilai_normal_bayi'] = $this->input->post('normal1');
$data['nilai_normal_anak'] = $this->input->post('normal2');
$data['nilai_normal_dewasa'] = $this->input->post('normal3');
$data['satuan'] = $this->input->post('satuan');
$data['keterangan'] = $this->input->post('ket');
$query = $this->mcrud->count_where("m_pemeriksaan_lab",
array("kode_jasa" => $data['kode_jasa']));
var_dump($query);
if($query > 0){
$this->mcrud->update("m_pemeriksaan_lab", $data,
array("kode_jasa" => $data['kode_jasa']));
}else{
$this->mcrud->insert("m_pemeriksaan_lab", $data);
}
redirect('listperiksa_lab/index');
}
149
function save1(){
$this->load->model('mcrud');
$data['group_jasa'] = "0101";
$data['kode_jasa'] = $this->input->post('kodegp');
$data['nama_jasa'] = $this->input->post('namagp');
$data['nilai_normal_bayi'] = "";
$data['nilai_normal_anak'] = "";
$data['nilai_normal_dewasa'] = "";
$data['satuan'] = "";
$data['keterangan'] = $this->input->post('ket');
$this->mcrud->insert("m_pemeriksaan_lab", $data);
redirect('listperiksa_lab/index');
}
function delete($id){
$this->load->model('mcrud');
// $key = $this->uri->segment(3);
$result = $this->mcrud->delete("m_pemeriksaan_lab",
array("kode_jasa" => $id));
// redirect('listperiksa_lab/index');
if($result) echo json_encode(array("pesan"=>"Data berhasil
dihapus!!",
"status"=>"sukses"));
150
else echo json_encode(array("pesan"=>"Data gagal dihapus!!",
"status"=>"error"));
}
function next_kode(){
$this->load->model('m_pemeriksaan');
$grup = $this->input->post("dt");
//$grup = '010101';
$query = $this->m_pemeriksaan->get_last_kode($grup);
foreach ($query as $last) {
$next = $last->kode_jasa + 1;
$next = sprintf('%08d', $next);
}
echo json_encode(array("kode"=>$next));
}
function next_kode_group(){
$this->load->model('m_pemeriksaan');
$grup = '0101';
$query = $this->m_pemeriksaan->get_last_kode($grup);
foreach ($query as $last) {
$next = $last->kode_jasa + 1;
151
$next = sprintf('%06d', $next);
}
return $next;
//echo json_encode(array("kode"=>$next));
}
}
?>
• order_lab.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Order_lab extends MY_Controller
{
function __construct(){
parent::__construct();
$this->load->model('mmenu');
$this->load->library('access');
$this->load->helper('url');
}
function index(){
$this->load->model('mlogin');
$this->load->model('m_daftarperiksa');
152
$menu = $this->mmenu->getByLevel($this->level);
$user = $this->access->get_user();
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]-
>groupNama,
"active"=>$this-
>router->fetch_class()));
$data['judul'] = "Order Pemeriksaan Laboratorium";
$data['pemeriksaan'] = $this->m_daftarperiksa-
>get_pemeriksaan();
$data['list_pemeriksaan'] = $this->m_daftarperiksa;
$this->load->view('orderp/order_form.php', $data);
$this->load->view('template/footer.php');
}
public function snomr(){
$this->load->model('m_daftarperiksa');
$nmr= $this->input->post("dt");
//$nmr = '1300012';
$id = $this->m_daftarperiksa->ambil_nomr($nmr);
153
$nama = explode(',',str_replace('.',' ',$id['NAMA']));
//$title = substr($nama[1],1);
$date = new DateTime($id["TGLLAHIR"]);
//perhitungan umur
$dt = $date->format('Y/m/d');
$dn = date("Y/m/d");
$datetime1 = date_create($dn);
$datetime2 = date_create($dt);
$interval = date_diff($datetime1, $datetime2);
$dinterv = $interval->format('%y Tahun %m Bulan %d Hari');
$dateb = $date->format('d/m/Y');
//cek title
if(strpos($id['NAMA'], ',') !== false) {
//echo "explodable";
$title = substr($nama[1],1);
} else {
//echo "not explodable";
$title = "";
}
154
//cek alamat
if($id["ALAMAT"]!="-"){
$address = $id["ALAMAT"];
}else{
$address = "";
}
$jenkel = ($id["JENISKELAMIN"] == 'L') ? 'Laki-Laki' :
'Perempuan' ;
echo json_encode(array("tempat"=>$id["TEMPAT"],
"nama"=>$nama[0],
"title"=>$title,
"tgllahir"=>$dateb,
"dinterv"=>$dinterv,
"jnsklmn"=>$jenkel,
"jaminan"=>$id["KDCARABAYAR"],
"namajaminan"=>$id["CARABAYAR"],
"ply"=>$id["KDPOLY"],
"dktr"=>$id["NAMADOKTER"],
"address"=>$address));
}
155
function save(){
$this->load->model('mcrud');
$this->load->model('m_daftarperiksa');
$data['no_transaksi'] = $this->m_daftarperiksa->get_trans_num();
$data['nomr'] = $this->input->post('nomr');
$data['tgl_order'] = $this->input->post('tgldaftar');
$kdjasa = implode(",", $this->input->post('kdjasa'));
$datakdjs = explode(",", $kdjasa);
$query1 = $this->mcrud->insert("m_order_pemeriksaan", $data);
foreach($datakdjs as $row){
$query = $this->mcrud->query("INSERT INTO
m_order_detail(no_transaksi, kode_jasa) VALUES
('$data[no_transaksi]','$row')");
}
//die();
//return "success";
redirect('order_lab/index');
}
}
?>
156
• hasil.lab.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Hasil_lab extends MY_Controller
{
function __construct ()
{
parent::__construct();
$this->load->model('mmenu');
$this->load->library('access');
$this->load->helper('url');
$this->load->model('m_hasilperiksa');
}
function index(){
$menu = $this->mmenu->getByLevel($this->level);
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
157
$kode_group = $this->access->get_group();
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]-
>groupNama,
"kd"=>$kode_group,
"active"=>$this-
>router->fetch_class()));
$data['judul'] = "Hasil Pemeriksaan Laboratorium";
$data['list'] = $this->m_hasilperiksa-
>get_order_by_no_transaksi();
$this->load->view('hasilp/hasil_list.php', $data);
$this->load->view('template/footer.php');
}
function edit(){
$menu = $this->mmenu->getByLevel($this->level);
$user = $this->access->get_user();
$this->load->model('mlogin');
$test=json_decode($this->mlogin->get_namagroup($this->access-
>get_group()));
158
$kode_group = $this->access->get_group();
$this->load->view('template/header.php', array("menu"=>$menu,
"_user"=>$user,
"as"=>$test[0]-
>groupNama,
"kd"=>$kode_group,
"active"=>$this-
>router->fetch_class(),
"cont"=>$this));
$data['judul'] = "Input Hasil Pemeriksaan Laboratorium";
$key = $this->uri->segment(3);
$query = $this->m_hasilperiksa->get_order_detail($key);
$data['pemeriksaan'] = $this->m_hasilperiksa-
>get_order_pemeriksaan($key);
if($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data['no_trans'] = $row->no_transaksi;
$data['tgl_order'] = $row->tgl_order;
$data['tgl_pemeriksaan'] = $row->tgl_pemeriksaan;
$data['keterangan'] = $row->keterangan;
$data['nomr'] = $row->nomr;
159
$query1 = $this->m_hasilperiksa-
>ambil_data_pasien($data['nomr']);
if($query1->num_rows() > 0){
foreach ($query1->result() as $row)
{
$date = new DateTime($row->TGLLAHIR);
$dt = $date->format('Y/m/d');
$dn = date("Y/m/d");
$datetime1 = date_create($dn);
$datetime2 = date_create($dt);
$interval = date_diff($datetime1, $datetime2);
$dinterv = $interval->format('%y Tahun %m Bulan %d
Hari');
$data["TEMPAT"]= $row->TEMPAT;
$data["NAMA"]= $row->NAMA;
$data["TGLLAHIR"]= $row->TGLLAHIR;
$data["umur"]= $dinterv ;
$data["JENISKELAMIN"]= $row->JENISKELAMIN;
$data["KDCARABAYAR"]= $row->KDCARABAYAR;
$data["CARABAYAR"]= $row->CARABAYAR;
$data["KDPOLY"]= $row->KDPOLY;
160
$data["NAMADOKTER"]= $row->NAMADOKTER;
$data["ALAMAT"]= $row->ALAMAT;
}
}
}
}
$this->load->view('hasilp/hasil_edit.php', $data);
$this->load->view('template/footer.php');
}
function save(){
$this->load->model('mcrud');
$hasil = $this->input->post('hasil');
$id = $this->input->post('num');
$tgl_periksa = $this->input->post('tglperiksa');
$nomr = $this->input->post('nomr');
foreach($id as $key => $n){
$this->mcrud->update("m_order_detail",
array("hasil_pemeriksaan" => $hasil[$key]), array("id_orderd" => $n));
}
$this->mcrud->update("m_order_pemeriksaan",
array("tgl_pemeriksaan" => $tgl_periksa), array("nomr" => $nomr));
redirect('hasil_lab/index');
161
}
function cetak(){
$key = $this->uri->segment(3);
$query = $this->m_hasilperiksa->get_order_detail($key);
$data['pemeriksaan'] = $this->m_hasilperiksa-
>get_order_pemeriksaan($key);
if($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data['no_trans'] = $row->no_transaksi;
$data['tgl_order'] = $row->tgl_order;
$data['tgl_pemeriksaan'] = $row->tgl_pemeriksaan;
$data['keterangan'] = $row->keterangan;
$data['nomr'] = $row->nomr;
$query1 = $this->m_hasilperiksa-
>ambil_data_pasien($data['nomr']);
if($query1->num_rows() > 0){
foreach ($query1->result() as $row)
{
$date = new DateTime($row->TGLLAHIR);
$dt = $date->format('Y/m/d');
162
$dn = date("Y/m/d");
$datetime1 = date_create($dn);
$datetime2 = date_create($dt);
$interval = date_diff($datetime1, $datetime2);
$dinterv = $interval->format('%y Tahun');
$data["TEMPAT"]= $row->TEMPAT;
$data["NAMA"]= $row->NAMA;
$data["TGLLAHIR"]= $row->TGLLAHIR;
$data["umur"]= $dinterv ;
$data["JENISKELAMIN"]= $row->JENISKELAMIN;
$data["KDCARABAYAR"]= $row->KDCARABAYAR;
$data["CARABAYAR"]= $row->CARABAYAR;
$data["KDPOLY"]= $row->KDPOLY;
$data["NAMADOKTER"]= $row->NAMADOKTER;
$data["ALAMAT"]= $row->ALAMAT;
}
}
}
}
$this->load->view('hasilp/hasil_print.php', $data);
163
}
function cek_type_nilai($nilai){
$nilaix = str_replace(" ", "", trim($nilai));
if(strpos($nilaix, "-") !== false){
$nilaiz = explode("-", $nilaix);
return $nilaiz[0];
}else if(strpos($nilaix, "<") !== false){
$nilaiz = explode("<", $nilaix);
return $nilaiz[1];
}else if(strpos($nilaix, ">") !== false){
$nilaiz = explode(">", $nilaix);
return $nilaiz[1];
}
}
}
?>
164
• servive.php
<?php
class Service extends CI_Controller{
public function __construct(){
parent::__construct();
$this->load->library('nusoap_lib');
$this->nusoap_server = new soap_server();
$this->nusoap_server->configureWSDL("SimRS", "urn:SimRS");
$this->nusoap_server->register("getController",
array(),
array("return" => "xsd:string"),
"urn:SimRS",
"urn:SimRS#getController",
"rpc",
"encoded",
"Get Controller");
$this->nusoap_server->register("getAdm_modul",
array(),
array("return" => "xsd:string"),
"urn:SimRS",
"urn:SimRS#getAdm_modul",
165
"rpc",
"encoded",
"Get Admin Modul");
$this->nusoap_server->register("addAdm_modul",
array(),
array("return" => "xsd:string"),
"urn:SimRS",
"urn:SimRS#addAdm_modul",
"rpc",
"encoded",
"Add Admin Modul");
$this->nusoap_server->register("deleteAdm_modul",
array("id"=>"xsd:string"),
array("return" => "xsd:string"),
"urn:SimRS",
"urn:SimRS#addAdm_modul",
"rpc",
"encoded",
"Add Admin Modul");
}
function index() {
166
function doAuthenticate() {
if (isset($_SERVER['PHP_AUTH_USER']) and
isset($_SERVER['PHP_AUTH_PW'])) {
if ($_SERVER['PHP_AUTH_USER'] == SERVICE_USER &&
$_SERVER['PHP_AUTH_PW'] == SERVICE_PASS)
return true;
else
return false;
}
}
function getController() {
if (!doAuthenticate()) return "Invalid username or password";
$CI=& get_instance();
$CI->load->model('mservice');
// return json_encode("kucing");
return $CI->mservice->getController();
}
function getAdm_modul() {
if (!doAuthenticate()) return "Invalid username or password";
$CI=& get_instance();
167
$CI->load->model('mservice');
return $CI->mservice->getAdm_modul();
}
function addAdm_modul($modulController, $modulKodeGroup){
if (!doAuthenticate()) return "Invalid username or password";
$CI=& get_instance();
$CI->load->model('mservice');
return $CI->mservice->addAdm_modul($modulController,
$modulKodeGroup);
}
function deleteAdm_modul($id){
if (!doAuthenticate()) return "Invalid username or password";
$CI=& get_instance();
$CI->load->model('mservice');
return $CI->mservice->deleteAdm_modul($id);
}
$this->nusoap_server->service(file_get_contents("php://input"));
}
}
?>
168
MODELS
• m_daftarperiksa.php
<?php
if ( ! defined('BASEPATH')) exit('No direct script access
allowed');
class M_daftarperiksa extends CI_Model {
public function __construct(){
parent::__construct();
}
function get_pemeriksaan(){
$this->db->select('kode_jasa, nama_jasa');
$this->db->where('group_jasa', '0101');
$query=$this->db->get("m_pemeriksaan_lab");
return $query->result();
}
function get_list_pemeriksaan($kode_jasa){
$this->db->select('kode_jasa, nama_jasa');
$this->db->where('group_jasa', $kode_jasa);
$query=$this->db->get("m_pemeriksaan_lab");
return $query->result();
}
public function ambil_nomr($nmr){
$anotherdb = $this->load->database('anotherdb', true);
$anotherdb->select('TEMPAT, m_pasien.NAMA as NAMA,
TGLLAHIR, JENISKELAMIN, t_pendaftaran.KDCARABAYAR,
169
t_pendaftaran.KDPOLY, m_dokter.NAMADOKTER, ALAMAT, m_carabayar.NAMA
as CARABAYAR');
$anotherdb->from('m_pasien');
$anotherdb->where('m_pasien.NOMR',$nmr);
$anotherdb->join('t_pendaftaran', 't_pendaftaran.NOMR =
m_pasien.NOMR', 'left');
$anotherdb->join('m_dokter', 'm_dokter.KDDOKTER =
t_pendaftaran.KDDOKTER', 'left');
$anotherdb->join('m_carabayar', 'm_carabayar.KODE =
t_pendaftaran.KDCARABAYAR', 'left');
$sql_nmr=$anotherdb->get();
if($sql_nmr->num_rows()>0){
foreach ($sql_nmr->result_array() as $row)
{
$result["TEMPAT"]= $row["TEMPAT"];
$result["NAMA"]= $row["NAMA"];
$result["TGLLAHIR"]= $row["TGLLAHIR"];
$result["JENISKELAMIN"]=
$row["JENISKELAMIN"];
$result["KDCARABAYAR"]= $row["KDCARABAYAR"];
$result["CARABAYAR"]= $row["CARABAYAR"];
$result["KDPOLY"]= $row["KDPOLY"];
$result["NAMADOKTER"]= $row["NAMADOKTER"];
$result["ALAMAT"]= $row["ALAMAT"];
}
return $result;
}
}
function get_trans_num(){
170
$date = date('Y-m-d');
$thn = substr($date, 0, 4);
$bln = substr($date, 5, 2);
$tgl = substr($date, 8, 2);
$tail = '0000';
$format = $thn.$bln.$tgl;
//$format = '20170707';
$this->db->select('no_transaksi');
$this->db->like('no_transaksi', $format);
$this->db->order_by('no_transaksi', 'DESC');
$this->db->limit(1);
$query=$this->db->get("m_order_pemeriksaan");
if($query->num_rows()>0){
foreach ($query->result_array() as $row){
$last_trans = $row['no_transaksi'];
$last = substr($last_trans, 8);
$next = $format.sprintf('%04s', $last + 1);
}
}else{
$next = $format.sprintf('%04s', $tail + 1);
}
/*var_dump($next);
die();*/
return $next;
}
}
171
• m_hasilperiksa.php
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class M_hasilperiksa extends CI_Model {
public function __construct(){
parent::__construct();
}
function get_order_by_no_transaksi(){
/*$anotherdb = $this->load->database('anotherdb', true);
$this->db->select('a.nomr, a.no_transaksi, a.tgl_order,
b.nama, b.jeniskelamin');
$this->db->from('d_lab.m_order_pemeriksaan AS a');
$anotherdb->join('d_registrasi.m_pasien AS b', 'a.nomr =
b.nomr');
$query=$this->db->get();*/
$query=$this->db->query("SELECT a.nomr, a.no_transaksi,
a.tgl_order, b.nama, b.jeniskelamin
FROM m_order_pemeriksaan
a
JOIN
d_registrasi.m_pasien b ON a.nomr = b.nomr
ORDER BY a.tgl_order
DESC");
return $query->result();
}
function get_order_detail($notrans){
172
$this->db->select('nomr, no_transaksi, tgl_order,
tgl_pemeriksaan, keterangan');
$this->db->where('no_transaksi', $notrans);
$query=$this->db->get("m_order_pemeriksaan");
return $query;
}
function get_order_pemeriksaan($notrans){
$this->db->select('a.id_orderd, a.kode_jasa,
a.hasil_pemeriksaan, b.nama_jasa, b.nilai_normal_bayi,
b.nilai_normal_anak, b.nilai_normal_dewasa, b.satuan');
$this->db->from('m_order_detail AS a');
$this->db->join('m_pemeriksaan_lab AS b', 'a.kode_jasa =
b.kode_jasa');
$this->db->where('a.no_transaksi', $notrans);
$query=$this->db->get();
return $query->result();
}
function ambil_data_pasien($nmr){
$anotherdb = $this->load->database('anotherdb', true);
$anotherdb->select('TEMPAT, m_pasien.NAMA as NAMA,
TGLLAHIR, JENISKELAMIN, t_pendaftaran.KDCARABAYAR,
t_pendaftaran.KDPOLY, m_dokter.NAMADOKTER, ALAMAT, m_carabayar.NAMA
as CARABAYAR');
$anotherdb->from('m_pasien');
$anotherdb->where('m_pasien.NOMR',$nmr);
$anotherdb->join('t_pendaftaran', 't_pendaftaran.NOMR =
m_pasien.NOMR', 'left');
$anotherdb->join('m_dokter', 'm_dokter.KDDOKTER =
t_pendaftaran.KDDOKTER', 'left');
173
$anotherdb->join('m_carabayar', 'm_carabayar.KODE =
t_pendaftaran.KDCARABAYAR', 'left');
$query = $anotherdb->get();
return $query;
}
}
• m_pemeriksaan.php
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class M_pemeriksaan extends CI_Model {
public function __construct(){
parent::__construct();
}
function get_group_pemeriksaan(){
$this->db->select('kode_jasa, nama_jasa');
$this->db->where('group_jasa', '0101');
$this->db->order_by('kode_jasa', 'ASC');
$query=$this->db->get("m_pemeriksaan_lab");
return $query->result();
}
function get_all_pemeriksaan(){
$this->db->where_not_in('group_jasa', '0101');
$this->db->order_by('kode_jasa', 'ASC');
$query=$this->db->get("m_pemeriksaan_lab");
return $query->result();
}
174
function get_data_pemeriksaan($kode){
$this->db->where('kode_jasa', $kode);
$query=$this->db->get("m_pemeriksaan_lab");
return $query;
}
function get_last_kode($key){
$this->db->select('kode_jasa');
$this->db->where('group_jasa', $key);
$this->db->order_by('kode_jasa', 'DESC');
$this->db->limit(1);
$query=$this->db->get("m_pemeriksaan_lab");
return $query->result();
}
}
• mcrud.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Mcrud extends CI_Model {
public function count_all($table)
{
return $this->db->get($table)->num_rows();
}
public function get_all($table)
{
return $this->db->get($table)->result();
175
}
public function get_all_order($table, $order)
{
$this->db->order_by($order);
return $this->db->get($table)->result();
}
public function get_limit($table, $limit, $offset)
{
$this->db->limit($limit, $offset);
return $this->db->get($table)->result();
}
public function get_limit_order($table, $limit, $offset, $order)
{
$this->db->limit($limit, $offset);
$this->db->order_by($order);
return $this->db->get($table)->result();
}
public function count_where($table, $where)
{
$this->db->where($where);
return $this->db->get($table)->num_rows();
}
public function get_where($table, $where)
{
$this->db->where($where);
return $this->db->get($table);
176
}
public function get_where_order($table, $where, $order)
{
$this->db->where($where);
$this->db->order_by($order);
return $this->db->get($table)->result();
}
public function get_where_limit($table, $where, $limit, $offset)
{
$this->db->where($where);
$this->db->limit($limit, $offset);
return $this->db->get($table)->result();
}
public function get_where_limit_order($table, $where, $limit,
$offset, $order)
{
$this->db->where($where);
$this->db->limit($limit, $offset);
$this->db->order_by($order);
return $this->db->get($table)->result();
}
public function detail($table, $where)
{
$this->db->where($where);
return $this->db->get($table)->row();
}
177
public function insert($table, $data)
{
$this->db->insert($table, $data);
}
public function update($table, $data, $where)
{
$this->db->where($where);
$this->db->update($table, $data);
}
public function delete($table, $where)
{
$this->db->where($where);
$this->db->delete($table);
}
public function query($query)
{
return $this->db->query($query);
}
}
178
• mlogin.php
<?php
class Mlogin extends CI_Model {
// table name
function __construct()
{
parent::__construct();
$this->load->library('nusoap_lib');
$this->load->library('session');
$this->load->library('myencryption');
$this->nusoap = new nusoap_client(HOME_APLIKASI."service");
$this->nusoap->setCredentials(SERVICE_USER, SERVICE_PASS,
"basic");
}
function login($kode){
$this->session->set_userdata(KODE_APLIKASI,$kode);
}
function get_group(){
$data1= $this->myencryption->decode($this->session-
>userdata('kode'));
$data2= $this->myencryption->decode($this->session-
>userdata(KODE_APLIKASI));
$data1=explode("/",$data1);
$data2=explode("/",$data2);
if($data1[0]==$data2[1]) return $data2[0]; else return
$data1[1];
}
179
function is_login($userAccount,$session)
{
return $this->nusoap->call("isLogin",
array("a"=>$userAccount,"b"=>$session));
}
function is_validaplikasi($groupKode, $kodeVerifikasi)
{
return $this->nusoap->call("isValidaplikasi",
array("kodeGroup"=>$groupKode,"kodeVerifikasi"=>$kodeVerifikasi));
}
function get_namagroup($groupKode){
return $this->nusoap->call("getNamagroup",
array("kodeGroup"=>$groupKode));
}
function is_validmodul($modul,$group)
{ $this->db->join('adm_menu','mnId=modulController')
->where('mnController',$modul)
->where('modulKodeGroup',$group);
$res = $this->db->get('adm_modul')->num_rows();
return $res > 0 ? TRUE : FALSE;
}
}
?>
180
• mmenu.php
<?php
class Mmenu extends CI_Model {
public function __construct() {
// Call the CI_Model constructor
$this->load->library("myencryption");
parent::__construct();
}
public function addNew($data) {
$this->db->trans_start();
$this->db->insert('adm_menu', $data);
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
return false;
} else {
return true;
}
}
/*public function delete($data) {
$this->db->trans_begin();
$this->db->delete('adm_menu', array('mnId' => $data));
$this->db->delete('adm_modul', array('modulController' =>
$data));
if ( !$this->db->trans_status() ) {
$this->db->trans_rollback();
181
return FALSE;
} else {
$this->db->trans_commit();
return TRUE;
}
}*/
function delete($id){
$this->db->delete("adm_menu", array("mnId"=>$this-
>myencryption->decode($id)));
return $this->db->affected_rows();
}
public function update($id, $data ) {
$this->db->trans_start();
$this->db->update('adm_menu', $data, "mnId = " . $id);
$this->db->trans_complete();
if ( !$this->db->trans_status() ) {
return FALSE;
} else {
return TRUE;
}
}
public function getById( $data ) {
$result = $this->db->get_where('adm_menu' , array('mnId' =>
$data))->row();
return $result;
182
}
public function getByLevel($data) {
$this->db->trans_begin();
$this->db->select('*');
$this->db->from('adm_menu');
$this->db->join('adm_modul', 'adm_menu.mnId =
adm_modul.modulController');
$this->db->where( array('modulKodeGroup' => $data) );
$this->db->order_by("mnOrder", "ASC");
if (!$this->db->trans_status()){
$this->db->trans_rollback();
return false;
} else {
$this->db->trans_commit();
return $this->db->get()->result();
}
}
/*public function getAll() {
$result = $this->db->get('adm_menu')->result();
return $result;
}*/
function getAll(){
$this->db->select('*');
$tampung=$this->db->get('adm_menu')->result();
foreach($tampung as $temp):
183
$temp1[]=array("mnId"=>$temp->mnId,
"mnIcon"=>$temp->mnIcon,
"mnNamaMenu"=>$temp->mnNamaMenu,
"mnJenis"=>$temp->mnJenis,
"mnController"=>$temp->mnController,
"mnIdRoot"=>$temp->mnIdRoot,
"mnOrder"=>$temp->mnOrder,
"mnIdEn"=>$this->myencryption->encode($temp-
>mnId));
endforeach;
return json_decode(json_encode($temp1),false);
}
public function getAllMenuOrder() {
$this->db->select('*');
$this->db->from('adm_menu');
$this->db->order_by("mnOrder", "ASC");
return $this->db->get()->result();
}
public function getRoot() {
$this->db->select('*');
$this->db->from('adm_menu');
$this->db->where( array('mnJenis' => '0') );
$this->db->order_by("mnOrder", "ASC");
return $this->db->get()->result();
}
184
public function getCurrentOrder() {
$this->db->select_max('mnOrder');
$result = $this->db->get('adm_menu');
if($result->num_rows()>0){
foreach ($result->result_array() as $row)
{
$result2= $row["mnOrder"];
}
}
$result1 = $result2+1;
return $result1;
}
public function getLatestOrder(){
$this->db->select('mnOrder') ;
$this->db->order_by('mnOrder', "DESC");
return $this->db->get('adm_menu',1,0)->result();
}
function laporanTahunan($bln, $thn){
$this->db->select('no_transaksi');
if($bln!=""){
$this->db->where('DATE_FORMAT(tgl_order,"%m")',
$bln);
}
if($thn!=""){
$this->db->where('DATE_FORMAT(tgl_order,"%Y")',
$thn);
}
$this->db->from('m_order_pemeriksaan');
185
$this->db->order_by("no_transaksi","ASC");
return $this->db->count_all_results();
}
function edit_menu($id){
$this->db->select('*')
->where('mnId',$this->myencryption->decode($id));
return $this->db->get('adm_menu')->result();
}
function update_menu($data, $id){
$ids = $this->myencryption->decode($id);
$this->db->where('mnId', $ids);
$this->db->update('adm_menu', $data);
return $this->db->affected_rows();
}
}
?>
186
• mservice.php
<?php
class Mservice extends CI_Model{
public function __construct(){
parent::__construct();
$this->load->database();
}
function getController(){
$this->db->select('mnController, mnNamaMenu, mnId')
->from('adm_menu');
return json_encode($this->db->get()->result_array());
}
function getAdm_modul(){
$this->db->select('mnNamaMenu, modulId, modulController,
modulKodeGroup, modulFlag')
->from('adm_modul')
->join('adm_menu','modulController=mnId')
->where('modulFlag','1');
return json_encode($this->db->get()->result_array());
}
187
function addAdm_modul($modulController, $modulKodeGroup){
$this->db->select('*')
->where(array("modulController"=>$modulController,
"modulKodeGroup"=>$modulKodeGroup));
if(!$this->db->get('adm_modul')->result()) {
$this->db-
>insert('adm_modul',array("modulController"=>$modulController,
"modulKodeGroup"=>$modulKodeGroup));
return 1;
} else return 0;
}
function deleteAdm_modul($id){
$this->db->delete("adm_modul",array("modulId"=>$id));
return $this->db->affected_rows();
}
}
?>
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203