1. Pendahuluan Teknologi Informasi adalah suatu teknologi yang digunakan untuk mengolah data, termasuk memproses, mendapatkan, menyusun, menyimpan, memanipulasi data dalam berbagai cara untuk menghasilkan informasi yang berkualitas, yaitu informasi yang relevan, akurat dan tepat waktu, yang digunakan untuk keperluan pribadi, bisnis, dan pemerintahan serta merupakan informasi yang strategis untuk pengambilan keputusan. Website merupakan salah satu pilihan dalam dunia pemrograman aplikasi, web memiliki banyak keuntungan terutama pada pamecahan masalah di area enterprise. Banyak pilihan dalam pemprograman web, salah satu bahasa pemrograman yang sangat terkenal dan banyak digunakan oleh para pembuat aplikasi web adalah PHP. Setelah dikembangkannya aplikasi berbasis OOP (Object Oriented Programming), akhirnya para developer PHP menciptakan sebuah kerangka kerja atau framework untuk memudahkan dalam merancang dan mengembangkan aplikasi berbasis web dengan PHP. Basis data juga menjadi elemen penting dalam pengembangan sistem informasi, dalam kegiatan rumah sakit yang merupakan penyedia layanan yang pasti memerlukan kecepatan dan konsistensi dalam pelayanan. Apalagi dengan banyaknya kegiatan pelayanan jasa dalam rumah sakit, perlu adanya media penyimpanan data yang cepat, kuat dan performa yang baik. Maka dari itu pengembangan sistem tersebut menggunakan Microsoft SQL Server 2008 yang memiliki performa yang baik sebagai basis data server, serta mampu melakukan komputasi yang besar sebagai media penyimpanan data, yang tentunya juga fleksibel untuk dikembangkan pada kemudian hari. Sedangkan sistem informasi pasien di dalam rumah sakit sudah menjadi sebuah kebutuhan, terutama untuk meningkatkan akuntabilitas sebuah instansi tersebut. Berdasarkan uraian tersebut maka muncullah ide untuk mengembangkan sebuah sistem informasi pasien yang menerapkan dan meneliti salah satu framework PHP yaitu Zend 2 yang telah mendukung arsitektur Model View Controller (MVC) dan dapat terkoneksi dengan basis data server yaitu Microsoft SQL Server 2008. Berdasarkan uraian latar belakang tersebut, maka muncullah sebuah keinginan untuk menerapkan dan meneliti Framework Zend 2, aplikasi ini akan digunakan untuk mengembangkan sebuah sistem berbasis web , kenapa website karena sistem tersebut dimungkinkan untuk pengembangan ke beberapa instansi lainnya selain hanya pada lokasi penelitian tersebut agar sistem tersebut menjadi sistem yang real time, memiliki performa yang cepat, ringan, dan perawatan yang mudah. Sistem tersebut merupakan pengembangan dari aplikasi sistem informasi pasien pada rumah sakit bunda medik, yang merupakan sebuah sistem yang mendukung pelayanan pada rumah sakit yang bersangkutan. Sistem ini adalah pengembangan fungsi sistem lama, yang selama ini masih merupakan sistem yang sederhana dan belum memiliki standar kerja pada pelayanan terhadap pasien pada rumah sakit tersebut. Kasus tersebut dirasa cocok dengan konsep pengembangan Framework Zend 2, selain karena framework open source juga dalam framework tersebut memiliki konsep module yang lebih baik. Memungkinkan untuk pada
1
pengembangan sistem menjadi lebih mudah, serta pembatasan penggunaan sistem jadi mudah diatur sesuai kebutuhan, dan memiliki library yang lengkap. Terutama untuk koneksi sistem ke basis data dengan basis data server, karena sistem informasi rekam medik ini digunakan untuk pengolahan data dalam jumlah yang besar, serta akan dikembangkan kearah web service. Dengan penjelasan Zend Framework 2 tersebut maka dirasa tepat framework ini digunakan untuk mengembangkan sistem informasi rekam medik tersebut di rumah sakit bunda medik. 2. Kajian Pustaka Penelitian Terdahulu penerapan framework PHP, arsitektur Model View Controller (MVC) dalam pengembangan sistem berbasis web sudah cukup banyak digunakan. Dalam beberapa artikel yang memuat tentang penggunaan Framework PHP, penggunaan framework dapat mempermudah dan mempercepat pembuatan aplikasi berbasis web, yang pasti karena dalam framework tersebut selalu menampilkan moda atau pola-pola tertentu yang memudahkan bagi developer untuk menghasilkan produk web yang lebih mudah dan baik, salah satunya adalah dengan dukungan pola arsitektur Model View Controller (MVC). MVC terbukti membangun aplikasi secara lebih efektif dengan membagi suatu aplikasi menjadi bagian-bagian tersendiri yaitu Model, View dan Controller. Pada penelitian yaitu pada jurnal dengan judul Penerapan Framework Zend dan Arsitektur Model View Controller dalam Pengembangan Aplikasi Manajemen Kepegawaian (Studi Kasus: Universitas Kristen Satya Wacana Salatiga). Yang menitih beratkan pada pengembangan ORM (Object Relational Mapping) dengan penggunaan framework Zend, atau yang sekarang dikenal sebagai Zend framework 1. Dalam jurnal tersebut berusaha mencari keuntungan dengan pengembangan teknologi yang dapat mempersingkat penulisan database atau mengefisienkan proses penulisan query SQL agar tidak terjadi pengulangan berkali-kali dalam penulisan query tersebut yaitu dengan menggunakan Object Relational Mapping, programmer. Pada artikel yang berjudul Object Relational Mapping dinyatakan bahwa dengan diterapkannya ORM memungkinkan programmer untuk melakukan manipulasi dan pengendalian data dalam basis data dengan lebih praktis, terutama pada aplikasi yang banyak melakukan pemrosesan data dalam basis data yang digunakan, karena ORM dapat mengurangi penulisan berulang pada kode SQL yang digunakan [1]. Penelitian yang lainnya, yaitu pada jurnal dengan judul Sistem Informasi Manajemen Rumah Sakit Bersalin Ananda Palembang, tujuan penulisan ini adalah untuk membuat Sistem Informasi Manajemen Rumah Sakit Bersalin Ananda. Penelitian membangun sebuah sistem informasi manajemen berbasis desktop menggunakan Microsoft Visual Studio 2008 dan Microsoft SQL Server 2008 sebagai database dan jaringan(LAN) sebagai media untuk mengkomunikasikan data antara komputer satu dengan lainnya. Metode yang digunakan dalam penulisan laporan ini adalah metode iterasi, dengan melakukan fase perencanaan, fase analisis, fase perancangan, analisis sistem yang berjalan, wawancara dan observasi serta pengumpulan data-data untuk memperoleh informasi yang
2
dibutuhkan. Dari hasil implementasi sistem informasi manajemen Rumah Sakit Bersalin Ananda dapat mengolah data dengan cepat, menyajikan informasi yang dibutuhkan oleh manajemen dan pasien dengan cepat dan akurat serta dapat menyimpan data dengan aman sehingga dapat membantu dalam proses pelayanan terhadap masyarakat [2]. Kerangka kerja (framework) adalah suatu struktur konseptual dasar yang digunakan untuk memecahkan atau menangani suatu masalah kompleks. Istilah ini sering digunakan antara lain dalam bidang manajemen untuk menggambarkan suatu konsep yang memungkinkan penanganan berbagai jenis atau entitas bisnis secara homogen. Dalam bidang perangkat lunak untuk menggambarkan suatu desain sistem perangkat lunak yang dapat digunakan kembali [3]. Sebuah framework umumnya telah menyertakan perintah-perintah siap pakai yang dibutuhkan dalam membuat suatu aplikasi, namun pihak developer tetap harus menulis kode sendiri dan harus menyesuaikan dengan lingkungan framework yang digunakan. Zend Framework 2 dikembangkan mulai pada akhir tahun 2005 oleh Zend Technologies, sebuah perusahaan spesialis PHP memulai sebuah proyek untuk meningkatkan kinerja dari PHP dengan Framework Zend sebagai produk awalnya. Proyek itu menghasilkan 3 keluaran, yaitu sebuah Eclipse IDE plugin dengan nama PDT, Framework Zend dan sebuah website Zend Developer Zone [4]. Pada awalnya Framework Zend (ZF) sendiri merupakan sebuah framework open source dalam pengembangan aplikasi web dan web services menggunakan PHP 5 dan diimplementasikan menggunakan object oriented code dan arsitektur MVC. Framework Zend menawarkan kehandalan dalam menerapkan arsitektur MVC. Dan setelah dirilisnya Framework Zend 2, maka berubah pula istilah pada Framework Zend versi lama yaitu menjadi Framework Zend 1 (ZF1) yang menjadi pembeda dalam pemakaian istilah pada pengembangan framework tersebut. Zend Framework (ZF) yang merupakan framewok open source PHP berbasis object oriented yang digunakan untuk mempermudah programmer dalam membangun aplikasi web. Zend Framework 2 (ZF2) adalah pengembangan dari ZF1 yang telah didownload lebih dari 15 juta kali. ZF2 mensyaratkan penggunaan minimal PHP versi 5.3, karena ZF2 menggunakan seluruh fitur unggulan PHP 5.3 seperti namespace, closure, lambda functions dan lain-lain. Berikut beberapa pengembangan baru yang terdapat pada Zend Framework 2 yang antara lain. Pertama adalah sistem Packaging Baru ZF2 memiliki sampai empat pilihan cara untuk diinstall dan disetup, Cara pertama adalah cara klasik yaitu dengan men-download lewat halaman download Zend Framework. Cara kedua Ssrupa dengan yang pertama tapi melalui halaman Github mereka. Cara ketiga menggunakan perangkat dependency management Composer. Cara terakhir adalah menggunakan PEAR2_Pyrus. Yang menarik buat adalah penggunaan Composer yang merupakan teknik packaging yang memungkinkan Anda untuk hanya menggunakan paket yang dibutuhkan saja. Singkatnya, Anda cukup mendeklarasikan kebutuhan/
3
dependency sistem Anda ke dalam file composer.json, maka Composer akan mendownload dan meng-update hanya paket-paket tersebut. Zend Framework 2 memang benar-benar merubah banyak hal, bukan hanya dari sisi kode-nya, tapi dari cara pandang penyelesaian masalah. Module adalah salah satu konsep yang benar-benar berubah pada Zend Framework 2. Dan melihat perubahan ini adalah ke arah yang jauh lebih baik dari versi sebelumnya. Selanjutnya pengembangan baru adalah konsep Module, Plugin dan Router, biarpun tidak dijelaskan secara spesifik, Zend Framework 1 seolah membagi jenis kontribusi third party developer pada siklus MVC dalam tiga hal yang berbeda: Module, Plugin, dan Router. Akibatnya tidak sedikit programmer, ketika membangun sistem membagi pluggable code ini pada tiga hal tersebut. Module berisi Model, View dan Controller yang membangun porsi tertentu dari website. Sehingga yang masuk dalam kategori module adalah sub sistem seperti artikel, agenda, buku tamu, dan lain-lain. Sementara router adalah yang bertanggung jawab khusus pada interpretasi URL ke controller tertentu. Akibat pembagian seperti ini, sangat sulit bagi developer dalam membangun module, karena terpecah-pecah dalam beberapa script yang tersebar di mana-mana. Selain itu, ZF1 tidak memiliki fungsionalitas untuk meng-arsip-kan module ke dalam satu paket. Module di Zend Framework 2 merupakan pengembangan konsep baru pada Zend Framework 2, konsep tersebut diubah secara drastis di Zend Framework 2. Istilah module, plugin dan router disatukan dalam satu istilah yaitu module. Module pada Zend Framework 2 bukan hanya berisi “module” ala ZF1, tapi juga bisa berupa plugin yang berbasis event, sekaligus router. Dalam module juga bisa berisi aset seperti view lengkap dengan file javascript dan CSS. Dan semuanya terkumpul dalam satu direktori, yang juga berada dalam satu namespace. Dengan demikian, module di Zend Framework 2 bisa berupa modul artikel atau berita. Juga bisa berupa RSS, fungsi email, REST, Google Analytics insertion, dan banyak lagi kemungkinannya. Anda bisa melihat contoh-contoh module ini di repositori module ZF2. Selain itu, Zend\ModuleManager\ModuleManager sebagai otak yang mengelola seluruh module dalam aplikasi ZF2 memiliki fitur untuk mengagregasi module-module sehingga memungkinkan satu module menggunakan module lain, dan kita bisa dengan mudah mendefinisikan kebergantungan antar module ini dalam file composer.json. Dependency/Kebergantungan dalam OOP menjadi hal yang tidak bisa dihindari karena secara natural OOP memang berusaha untuk membuat abstraksiabstraksi. Satu fungsionalitas sebisa mungkin dipecah dalam class/object yang berbeda-beda, sehingga mudah untuk dibongkar pasang. Dalam OOP tidak boleh ada satu class yang melakukan semuanya. Akibatnya hampir semua class akan bergantung pada class yang lain. Dependency tentu bukan hal yang buruk, karena abstraksi memang sangat diperlukan untuk membuat sistem yang kita bangun lebih modular. Dengan abstraksi, sistem kita bisa memiliki lebih banyak pilihan. Dan developer lain bisa
4
mengembangkan komponen-komponen yang bisa dipasangkan ke sistem yang kita bangun tanpa mengubah kode yang sudah kita tulis. Di sinilah Dependency Injection dibutuhkan. Dependency Injection adalah teknik untuk meng-inject (memasukan) object lain ke dalam satu object. Pada kasus di atas, class Registration perlu diubah dengan dependency injection menjadi seperti berikut. Dependency injection adalah design pattern yang berguna untuk membuat kode kita lebih fleksibel dan modular. Konsep dependency injection adalah konsep lama, mungkin seusia dengan konsep OOP itu sendiri. Dan kemungkinan besar developer telah menggunakannya sehari-hari, walaupun baru familiar dengan instilahnya sekarang [4]. Model View Controller (MVC) Jika diterjemahkan dalam bahasa Indonesia, Model View Controller dapat diartikan sebagai model, tampilan dan pengontrol. Dalam konteks penelitian ini, MVC diartikan sebagai pola arsitektur yang digunakan untuk rekayasa perangkat lunak. Di mana aplikasi dibagi menjadi 3 (tiga) modul utama, yaitu model, view dan controller. Dengan cara seperti ini maka manajemen pembagian tugas dan maintenance akan lebih mudah dan rapi.
Gambar 1. Arsitektur MVC [5]
Gambar 1. merupakan gambaran arsitektur MVC. Di mana request yang datang akan ditangani oleh bagian controller, kemudian controller berkomunikasi serta melakukan kontrol terhadap view dan model. Model dan view tidak berkomunikasi secara langsung, tetapi berkomunikasi melalui controller. Hanya model saja yang memiliki akses ke basis data [5]. Berikut ini merupakan penjelasan tentang bagian-bagian arsitektur MVC : Model bertugas sebagai business logic atau merepresetasikan struktur data dari situs web yang bisa berupa basis data maupun data lain, misalnya dalam bentuk file teks atau file XML. Biasanya di dalam model akan berisi class dan fungsi untuk mengambil, melakukan update dan menghapus data situs web. Karena sebuah situs web biasanya menggunakan basis data dalam menyimpan data maka bagian model biasanya akan berhubungan dengan perintah-perintah query SQL. View merupakan informasi yang ditampilkan kepada pengunjung situs web. Sebisa mungkin di dalam view tidak berisi logika-logika kode tetapi hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. View adalah halaman situs web yang dibuat menggunakan HTML dengan bantuan CSS atau Javascript. Di dalam view jangan pernah ada kode untuk melakukan koneksi ke basis data. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller. 5
Controller sesuai dengan namanya, controller bertugas sebagai pengontrol atau penghubung antara model dan view. Misalnya ada sebuah event atau request baru maka akan ditangani oleh Controller. Dari Controller akan dicari apa maksudnya. Kemudian controller akan menghubungi Model untuk mengolah datanya dan melakukan generate output menggunakan View. Jadi secara singkat urutan dari sebuah permintaan adalah sebagai berikut: user berhubungan dengan view, di mana di dalam view inilah semua informasi ditampilkan. Saat user melakukan permintaan, misal klik tombol maka permintaan tersebut akan diproses oleh controller. Apa yang harus dilakukan, data apa yang diinginkan, apakah ingin melihat data, atau memasukkan data atau mungkin melakukan validasi data terlebih dahulu, semua diproses oleh controller. Kemudian controller akan meminta model untuk menyelesaikan permintaan, apakah melakukan query atau apapun. Dari model, data akan dikirim kembali untuk diproses lebih lanjut di dalam controller dan baru dari controller data akan ditampilkan di view.
Gambar 2. MVC dalam Framework Zend [6]
Gambar 2. merupakan arsitektur MVC dalam sebuah aplikasi web menggunakan pustaka framework Zend. untuk membuat URL statis (Clean URL). File /application/controller/indexcontroller.php berisi kelas untuk menangani permintaan. Sementara dalam direktori /application/model berisi kelas untuk menangani database. Sedangkan /application/views untuk mewadahi HTML template yang berekstensi .phtml. 3. Metode dan Perancangan Sistem Metode penelitian yang digunakan pada pembuatan aplikasi ini yaitu model waterfall. Model waterfall disebut juga dengan classic life cycle. Secara lengkap, alur model waterfall yang merupakan model klasik akan digambarkan seperti pada gambar 3.
6
Gambar 3. Waterfall Model [7]
Keuntungan dari model waterfall ini, yaitu setiap tahapan akan dievaluasi secara teliti untuk mendapatkan hasil yang maksimal. Model tersebut dipilih karena kegiatan penelitian tersebut memerlukan waktu pengembangan yang terbatas dan interaksi antara peneliti dan user terbatas, maka dari itu metode tersebut merupakan metode yang paling tepat dan efisien. Berikut ini merupakan tahapan metode Waterfall dalam penelitian ini: Analisis kebutuhan dan pendefinisiannya Analisa kebutuhan dilakukan dengan melakukan penelitian pada bagian yang dibutuhkan dalam sistem informasi tersebut yaitu sistem yang berjalan pada pencatatan atau dokumentasi dan alur dari pasien baik rawat inap, jalan, ataupun kegiatan lain seperti phisiotherapi di sebuah rumah sakit. Dalam tahap ini dilakukan analisa terhadap kebutuhan pengguna sistem berdasarkan proses bisnis yang ada. Perancangan sistem dan perangkat lunak. Setelah melakukan analisa kebutuhan pengguna sistem, tahap kedua adalah melakukan perancangan sistem yang akan dibangun. Perancangan sistem dibuat dengan menggunakan diagram-diagram UML. Perancangan sistem dan perangkat lunak, setelah melakukan analisa kebutuhan pengguna sistem, tahap kedua adalah melakukan perancangan sistem yang akan dibangun. Perancangan sistem dibuat dengan menggunakan diagramdiagram UML. Implementasi dan pengujian unit, tahap ketiga adalah melakukan implementasi dari hasil perancangan sistem menggunakan Zend framework 2 serta dilakukan pengujian untuk mencari kesalahan pemrogramannya. Hasilnya dievaluasi kembali, jika masih belum sempurna, maka dikembalikan ke tahap sebelumnya yaitu tahap perancangan dari tahap tersebut. Migrasi dan pengujian sistem, merupakan tahap ke 4 (empat) adalah menyatukan program dan melakukan pengujian sistem, apakah benar-benar memberikan manfaat dalam segi efisiensi dan efektifitas serta memudahkan pengguna dalam pemakaiannya sehingga bisa menciptakan sebuah sistem yang terkomputerisasi dengan baik. Pada tahapan ini sistem akan dievaluasi. Tahap terakhir atau ke lima belum terdokumentasi olehkarena sistem tersebut belum terimplementasi pada pengguna, maka tahapan operasi dan pemeliharaan sistem tidak dapat dianalisis untuk saat pengembangan sistem tersebut. Tahap-tahap Penelitian, pada umumnya suatu penelitian dapat diperinci dala tujuh tahap yang satu sama lain saling bergantung dan berhubungan. Dengan
7
kata lain masing-masing tahap itu saling mempengaruhi dan dipengaruhi oleh tahap-tahap yang lain. Kesadaran terhadap keadaan ini membuat seorang peneliti lebih bijaksana dalam mengambil keputusan pada setiap tahap penelitian. Adapun tujuh tahap itu sebagai berikut : Perencanaan meliputi penentuan tujuan yang ingin dicapai oleh suatu penelitian dan merencanakan strategi umum untuk memperoleh dan menganalisa data bagi penelitian itu. Hal ini harus dimulai dengan memberikan perhatian khusus terhadap konsep.dan hipotesis yang akan mengarahkan peneliti yang bersangkutan dan penelaahan kembali terhadap literatur termasuk penelitian yang pernah dilakukan orang sebelumnya yang berhubungan dengan judul dan masalah penelitian yang bersangkutan. Tahap ini merupakan tahap penyusunan “term of reference”(TOR). Pengkajian secara teliti terhadap rencana penelitian. Tahap ini merupakan pengembangan dari tahap perencanaan. Di sini disajikan lagi latar belakang penelitian, permasalahan, tujuan penelitian, hipotesis serta metode atau prosedur analisis dan pengumpulan data. Tahap ini meliputi pula penentuan macam data yang diperlukan untuk mencapai tujuan pokok penelitian. Tahap ini merupakan tahap penyusunan usulan proyek penelitian. Pengambilan contoh (sampling), ini adalah proses pemilihan sejumlah unsur/ bagian tertentu dari suatu populasi guna mewakili seluruh populasi itu. Dalam tahap ini peneliti harus secara teliti membuat definisi atau rumusan mengenai populasi yang akan dikaji. Rencana pengambilan contoh itu terdiri dari prosedur pemilihan unsur-unsur populasi dan prosedur menjadikan atau mengubah data dari hasil sampel untuk memperkirakan sifat-sifat seluruh populasi. Tantangan yang harus dihadapi dalam penyusunan rencana pengambilan contoh ini adalah bagaimana kita dapat mengikuti sedemikian rupa prosedur yang kita miliki dengan keadaan setempat dan dengan sumber daya yang tersedia sementara tetap mempertahankan kebaikan atau keuntungan dari sample survey. Penyusunan daftar pertanyaan, ini merupakan proses penterjemahan tujuan-tujuan studi ke dalam bentuk pertanyaan untuk mendapatkan jawaban yang berupa informasi yang dibutuhkan. Sebenarnya ini merupakan proses coba-coba (trial and error) yang membutuhkan waktu yang cukup lama. Hal yang perlu diperhatikan adalah jumlah dan macam pertanyaan serta urutan dari masingmasing pertanyaan. Tidak ketinggalan pula adalah upaya bagaimana agar orangorang yang diwawancarai (responden) dengan senang hati mau menjawab pertanyaan-pertanyaan yang diajukan dan tetap senang dalam memberikan jawaban- jawaban. Kerja lapangan, tahap ini meliputi pemilihan dan latihan para pewawancara, bimbingan dalam wawancara serta pelaksanaan wawancara. Ini dapat meliputi pula berbagai tugas yang berhubungan dengan pemilihan lokasi sampel dan pretesting daftar pertanyaan. Kerja lapangan ini tidak akan diperlukan bila kita menggunakan cara wawancara lewat telepon atau surat. Editing dan coding, coding adalah proses memindahkan jawaban yang tertera dalam daftar pertanyaan ke dalam berbagai kelompok jawaban yang dapat disusun dalam angka dan ditabulasi. Editing biasanya dikerjakan sebelum coding agar pelaksanaan coding dapat sesederhana mungkin. Editing juga meneliti lagi
8
daftar pertanyaan yang telah diisi apakah yang ditulis benar atau sudah sesuai dengan yang dimaksud. Analisis dan laporan, ini meliputi berbagai tugas yang saling berhubungan dan terpenting pula dalam suatu proses penelitian. Suatu hasil penelitian yang tidak dilaporkan atau dilaporkan tetapi dengan cara yang kurang baik tidak akan ada gunanya. Tugas yang dikerjakan pada tahap ini ialah penyajian tabel-tabel dalam bentuk frekuensi distribusi, tabulasi sialng atau dapat pula berupa daftar yang memerlukan metode statistik yang kompleks kemudian interpretasi dari penemuan-penemuan itu atas dasar teori yang telah kita ketahui. Perancangan Model View Controller Perancangan Module Pada zend framework 2 pengembangan MVC menjadi tahapan yang sangat berpengaruh, tahapan tersebut merupakan gambaran umum dari program yang akan diciptakan. Module menjadi elemen penting dalam pengembangan MVC yang dimiliki oleh zend framework 2, dalam module tersebut berisikan semua konsep MVC yaitu Model, View, dan Control antara lain.
Admision Application Main Medic SysAdmin
Perancangan Model Model merupakan bagian yang bertugas merepresentasikan data yang digunakan oleh aplikasi sebagaimana proses bisnis yang diasosiasikan terhadapnya. Bagian Model yang dibangun berhubungan langsung dengan basis data dan menangani validasi dari bagian Controller, namun tidak berhubungan langsung dengan view. Model dalam aplikasi ini dikelompokkan dalam 2 (dua) buah package. Berikut ini merupakan Model yang dibuat dalam aplikasi ini:
Package Db : di dalamnya terdapat class-class yang berhubungan dengan basis data. Package Proses : di dalamnya terdapat sebuah class untuk menangani validasi dari bagian Controller. Perancangan View View merupakan bagian yang menangani presentation logic. Pada aplikasi web bagian ini biasanya berisi file template HTML yang diatur oleh Controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian Model. Pada aplikasi ini bagian View berisi file template PHTML. Desain yang dilakukan pada bagian View dikelompokkan dalam package-package untuk lebih memudahkan lagi dalam pengembangan, yaitu:
9
Package View index : berisi file index.phtml untuk tampilan login dan file logout.phtml untuk logout. Package View Admision: berisi file-file PHTML untuk menangani tampilan pada menu Administrasi, yang berisikan juga sub view yaitu dashboard, jadwal dokter, reservasi,ruang pasien, registrasi, dan reservasi. Package View Main: berisi file-file PHTML untuk menangani tampilan pada menu utama pada tampilan sistem yang beriskan sub view antara lain access, home, menu, dan my-account . Package View Medic: berisi file-file PHTML untuk menangani tampilan pada menu bagian medis yang berisikan sub menu antara lain dokter dan pasien. Package View SysAdmin : berisi file-file PHTML untuk menangani tampilan pada menu kelengkapan yang dimiliki oleh admin yang antara lain education, error, religion, sys admin,dan user group.
Perancangan Controller Controller merupakan bagian yang mengatur hubungan antara bagian model dan bagian view. Controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi. Controller yang dibuat dalam aplikasi ini yaitu:
IndexController DashboardController ReservationController PatientroomController PatienttodayController RegistrationController ReservationController AccessController HomeController MenuController MyAccountController DoctorController PatientController ErrorController
Perancangan sistem menggunakan Unified Modelling Language (UML) yang terdiri dari use case diagram, activity diagram, sequence diagram, class diagram dan deployment diagram.
10
Status antrean
Pasien
Admision BIC
Dokter Lihat jadwal dokter
Reservasi
Registrasi pasien Admision Inpatient Lihat daftar Dokter administrator
Status kamar inpatient Manipulasi Dokter
Master pasien
Pengaturan Akun
Admision
Master dokter
Manipulasi Admision BIC Manipulasi Admision
Manipulasi Admision Inpatient Transaksi harian
Gambar 4. Use Case Diagram Sistem
Di dalam use case diagram sistem, seorang user dalam hal ini adalah Administrator harus melakukan login terlebih dahulu ke dalam sistem. Pemilihan login akan menentukan hak akses dari seorang user. Terdapat 4 (empat) hak akses yaitu sebagai Admission, admission BIC, Admission Inpatient, dan Administrator seperti tergambar pada Gambar 4. Dan dalam penjelasan tersebut Administrator memiliki akses ke semua user, dan dalam lingkup sebagai main user atau dalam artian sebagai user yang memiliki segala akses ke dalam sistem. Activity diagram menggambarkan proses-proses yang terjadi dari suatu aktifitas dimulai sampai berhenti. Untuk kebutuhan proses dari sistem yang akan dibangun, terdapat Terdapat 3 (tiga) activity diagram yaitu sebagai Admission, Admission BIC, dan Administrator.
11
administrator
Sistem
Start
cek season
kirim request data
true
fals
Login
Set Admision
Set Admissi on BIC
Set Admissi on Inpatient
Set Master User Group
Set Master User
Set hak Akses
Set Master Pasien Set master Dokter
Logout
End
Gambar 5. Activity Diagram System
Gambar 5. menggambarkan aktifitas-aktifitas yang terjadi dalam hak akses Administrator. Aktifitas-aktifitas tersebut adalah pengaturan unit kerja admission, admission BIC, admission inpatient, mester group, master pasien, master dokter, pembagian hak akses dalam sistem dan terakhir melakukan aktivitas log out. Sequence diagram menggambarkan interaksi antar obyek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horisontal (obyek-obyek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah yang dilakukan sebagai tanggapan dari sebuah event untuk menghasilkan output tertentu.
12
: Us er
Dokter model
Admision Model
Admision BIC Model
Admision Inpatient
Basis data
1: Log in 2: Pilih menu Dokter 3: Pilih Admision 4: Pilih admision BIC 5: 6:
7: Olah data User 8: Cek Dokter 9: Cek Admision
10: 11: Cek Admis ion BIC 12: Cek Admis ion Inpatient
13: Keluar
Gambar 6 Sequence Diagram Sistem
Gambar 6 merupakan sequence diagram untuk proses sistem yang dilakukan oleh seorang Administrator. Penjelasan prosesnya adalah sebagai berikut: - Seorang Administrator pertama kali harus melakukan login ke aplikasi dengan memasukkan username, password dan hak aksesnya. - Data login yang dimasukkan saat login akan diteruskan ke database yang untuk dilakukan pemeriksaan apakah valid atau tidak dan akan disesuaikan hak aksesnya. - Diasumsikan bahwa data login valid sehingga pegawai dapat masuk ke yang ingin dituju antara lain Form Dokter, Form Admision, Form Admision BIC, dan lainnya. - Dalam masing-masing Form terdapat pilihan yang dapat digunakan oleh Administrator. - Untuk menutup aplikasi, pegawai tersebut melakukan log out sehingga database tertutup yang disusul dengan tertutupnya semua Form yang terdapat pada sistem. Aplikasi yang dibuat memiliki class diagram seperti yang terlihat pada Gambar 6.
13
Gambar 7. Class diagram sistem
Class diagram terdiri dari tabel-tabel yang digunakan dalam sistem. Tabel Dokter Master adalah menyimpan informasi tentang seluruh data dokter . Tabel dokter master ini memiliki 12 (dua belas) relasi dengan tabel lainnya. Sedangkan tabel Medic Patiente Info merupakan tabel inti bagi pasien yang berisikan semua data yang dimiliki pasien, baik nama, alamat, rekam medik, kode dokter, ruang praktek, dan lainnya. Relasi tabel Dokter Master dengan tabel Medic Patiente adalah Many To Many, di mana setiap dokter dapat diabsen lebih dari 1 (satu)Pasien . Demikian juga sebaliknya, setiap pasien dapat berisi lebih dari 1 (satu) Dokter. Gambar 8 merupakan deployment diagram sistem yang menggambarkan perangkat apa saja yang digunakan saat deployment.
Client (View)
1
n
Main Server (Model, Controller)
Gambar 8. Deployment Diagram System
Proses bisnis tidak pernah lepas dari sistem informasi, karena cara atau metode terbentuknya sistem oleh karena tahapan pada proses bisnis tersebut. Kegiatan tersebut menunjang bagi pengembang untuk mengetahui bagaimana jalannya sistem yang akan dibuat, alur yang terjadi didalam sistem, kegiatan apa yang terjadi, serta kebutuhan lain yang terjadi dan perlu diimplementasikan dalam sistem tersebut. Proses tesebut diawali dari pasien yang akan melakukan kegiatan pada rumah sakit tersebut, yang antara lain adalah melakukan pengecekan berkala,
14
melakukan rawat inap, konsultasi ke dokter atau physiotherapy, serta kegiatan lainnya. Selanjutnya sistem akan melakukan proses kegiatannya dengan perantara administrasi sebagai jembatan antara pasien dan kegiatan di rumah sakit tahapan selanjutnya adalah administrasi mentransferkan segala informasi yang berkaitan dengan pasien ke sistem tersebut, dengan ketentuan-ketentuan yang telah dimiliki. Apabila semua data pada pasien telah terdokumentasi pada sistem, maka kegiatan selanjutnya adalah dokter dapat mencek segala kegiatan atau jadwal yang dimilikinya dalam kegiatan tindakan ke pasien pada sistem rekam medik tersebut. Pengolahan, pencatatan, tampilan sistem disimpan dalam ruang penyimpanan berupa basis data dan untuk kemudahan segala kegiatan sistem karena ruang lingkup sistem tersebut sangat besar, maka dari itu website menjadi pilihan karena selain kecepatannya juga kegiatan menjadi lebih mudah baik untuk penanganan kejadian yang tidak diinginkan juga perawatan menjadi murah serta aman. 4. Hasil dan Pengimplemetasian Implementasi Model View Controller Arsitektur MVC yang telah dibuat dapat dilihat pada Gambar 9.
Gambar 9. Module MVC dalam Sistem
Pada gambar 9 bentuk model module MVC ditampilkan dalam bentuk seperti konsep tersebut, module memiliki sub yang merupakan bentuk dari MVC sistem yang berisikan antara lain Admision, Application, CommonUsage, Main, Medic, OldSystem, SysAdmin_Old. Dalam module tersebut dijabarkan lagi masing-masing MVC yang dipisahkan antara sub module-module tersebut.
15
Gambar 10. MVC pada Sistem
Gambar 10 merupakan konsep penjelasan module yang lebih detail merujuk bentuk MVC masing-masing module. Dalam sub module tersebut diperlihatkan bentuk MVC dari masing-masing sub module. Seperti pada contoh module Medic berisikan controller berupa DoctorController dan PatientController. View model tersebut berupa contentonly, layout, layoutbak, login, mobile, dan nav. Implementasi Sistem Informasi Rekam Medik Pemprograman web dengan platform php memiliki banyak pilihan framework dan dari beberapa framework tersebut memiliki banyak perbedaan dan keistimewaan antara masing-masing framework tersebut. Termasuk cara instalasi, penggunaan, setingan, serta banyak perbedaan. Maka dari itu dipenelitian ini juga akan menjelaskan bagaimana framework Zend 2 tersebut mulai dari tahap instalasi framework, sampai nanti juga tahapan-tahapan dalam setingan serta pada tahap implementasi sistem, dan terakhir adalah tahapan pengujian sistem tersebut.
16
Konfigurasi Sistem Informasi Pasien Kode Program 1. Konfigurasi Koneksi basisdata 1. 2. 3. 4. 5. 6. 7. 8. 9.
array( 'username' => 'sa', 'password' => 'Password.', 'database' => 'SIRSFRONT', 'hostname' => '(local)', ), );
Kode program 1 tersebut berisikan penjelasan koneksi antara sistem dengan basis data, dalam penelitian ini basis data yang digunakan dengan nama SIRSFRONT dengan username basis data server ’sa’ berlokasi pada hostname local. Tampilan awal pada saat user mengakses aplikasi adalah halaman login. Penanganan login dibuat menggunakan Kode Program 2. Kode Program 2. Kode Program untuk Login (1) 1. run();
Dalam kode program 2 kembali dijelaskan tahapan awal sistem dalam melakukan pemanggilan ke tampilan login sistem. Diperlukan tanda pengenal framework yang di gunakan dalam penelitian ini adalah versi Zend Framework 2.1.0 di buktikan dengan kode program putenv("ZF2_PATH=..\ZendFramework2.1.0\library");. Karena konsep MVC adalah bagian yang ada pada framework Zend tersebut, untuk selanjutnya kode untuk menjalankan aplikasi atau Run sistem memangil konfigurasi awal didalam 'config/application.config.php')>run();. Kode Program 3. Kode Program untuk cek database 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
'db' => array( 'driver' => 'Sqlsrv', ), 'db_cloud' => array( 'driver' => 'Sqlsrv', ), 'service_manager' => array( 'factories' => array( 'Zend\Db\Adapter\Adapter' 'Zend\Db\Adapter\AdapterServiceFactory',
17
Koneksi basis data dengan sistem tidak bisa begitu saja di jalankan karena dalam server web XAMPP 1.8.1 tidak terdapat driver yang langsung kopetibel dengan basis data SQL Server 2008, maka dari itu diperlukan tambahan driver di luar dari fitur xampp tersebut. Yaitu diver sqlsrv, yang dalam penelitian ini adalah driver php_sqlsrv_54_ts.dll setelah dideklarasikan dan telah terkoneksi, didalam sistem akan mengenali sebagai sqlsrv saja. Seperti terlihat pada kode program 3 untuk pendeklarisian driver sebagai konektor antara server web dengan server basis data. Kode Program 2 bertugas membuat obyek untuk menggunakan path library Zend yang digunakan dalam khasus ini menggunakan library zend versi ZendFramework-2.1.0. Kode program ke 3 adalah aplikasi mencek ke database untuk mengetahui koneksinya, dengan sebelumnya melakukan pengecekan pada driver yang digunakan. Pada kasus tersebut ‘sqlsrv’ adalah driver yang menghubungkan XAMPP dengan SQL Server 2008. Implementasi Sistem Informasi
Gambar 11. Halaman Administrator
Apabila login valid, maka aplikasi akan menampilkan tampilan yang sesuai dengan hak akses saat login. Gambar 11 merupakan halaman yang menjadi halaman home untuk administrator. Dalam halaman home terdapat link-link yang akan menghubungkan administrator ke fungsi lainnya. Untuk hak akses Admission, Admission BIC, Admission inpatient, dokter, pasien, dan lain-lain. Sebelum masuk ke tampilan admin tersebut sistem perlu melakukan validasi data yang diantaranya pengecekan ke dalam sistem apakah sudah berfungsi sebagai mana selayaknya atau memang belum berfungsi, hal tersebut dapat di cek pada kode program 3. Kode Program 4. Proses validasi data 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
$form = new UserMaster('userForm'); $form->setData($param); $form->get('USER_GROUP')->setValueOptions($optUsg); $form->setUserGroupValues($optUsg); if($form->isValid()) { // Get Data $validData = $form->getData(); unset($validData['USER_NUMBER']); unset($validData['CSRF']); unset($validData['userFormSubmit']); if(!empty($validData['PASSWORD'])) { $validData['PASSWORD'] = md5($validData['PASSWORD']); 18 } $where = array('USER_NUMBER'=>$param['USER_NUMBER']);
Dalam proses validasi data, proses tersebut di dalam tahapan untuk mencek data dari user yang akan masuk ke dalam sistem atau terlihat pada kode program 4. Pada proses tersebut user di cek dengan password serta hak akses dan User Group yang dimiliki oleh user tersebut. Data yang masuk akan di uji validitasnya atau akan disesuaikan dengan basis data yang ada dalam sistem untuk selanjutnya akan masuk form yang dimiliki user. Password pada sistem ini dienkripsikan dengan pengacak md5 seperti terlihat pada kode $validData['PASSWORD'] = md5($validData['PASSWORD']);.
Gambar 12. Halaman Form Reservasi
Sistem tersebut juga memiliki halamam form reservasi seperti terlihat pada gambar 12 tersebut, adapun informasi yang tersedia antara lain informasi pasien yang telah ada dalam Slot, informasi nama pasien yang telah mendaftar, tombol Navigasi. Selain beberapa fungsi tersebut juga berisikan kolom untuk melakukan pencarian pasien dengan cara tekan tombol ”Cari”, maka nama pasien akan tampil setelah melakukan klik yang dikehendaki untuk melakukan reservasi serta tekan tombol “Daftar’ untuk melakukan pendaftaran pasien baru. Kode Program 5. Kode Program control jadwal dokter 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
$todayCode = date('N')+1; $tommorowCode = date('N')+2; if($todayCode>7) { $todayCode -= 7; $tommorowCode -= 7; } // Get Doctor Schedule $doctor = $this ->tableService['Admission\DoctorSchedule'] ->getTodayComplete($this->sess->user['orgId'], 1,$this >pageSize['jadwalDokter']); $dataDoctor = $this->zArray->obj2array($doctor); // Get All Doctor Today $allDoctor = $this ->tableService['Admission\DoctorSchedule'] ->getTodayComplete($this->sess->user['orgId'], 1,$this->pageSize['dokter']); $allDoctor = $this->zArray->obj2array($allDoctor);
19
Dalam jadwal dokter adalah salah satu pilihan akses yang dimiliki semua user untuk menlihat jadwal dokter koding yang dijalankan seperti tertulis pada kode program 5. Kode Program 6. Kode Program reservasi 1. if(!empty($allDoctor)) { 2. $reservation = $this >tableService['Admission\DoctorSchedule'] 3. ->getDoctorSchedule($this->sess->user['orgId'], 4. //reset($allDoctor)['doctorId'] $tommorowCode); 5. } 6. $patientReserve = $this 7. tableService['Admission\RegistrationDetail'] 8. ->getTodayByDoctor($this->sess->user['orgId'], 9. //reset($allDoctor)['doctorId'], 'tomorrow'); 10. $patientReserve = $this->zArray>obj2array($patientReserve);
Kode program reservasi digunakan untuk melihat kegiatan yang terjadi di rumah sakit tersebut yang antara lain kegiatan dokter, pasien inggin berobat, data pasien yang terdahulu, dan lainnya. Pada tahapan ini diperlukan proses pengambilan data terdahulu dari pasien, jika pasien sudah teregister atau terdaftar. Hasil Analisa Pengujian pada pengujian sistem secara keseluruhan dilakukan dengan dua tahap yaitu validasi dan kuisoner. 1. Validasi Pada tahap pengujian validasi, sistem terlebih dahulu diintegrasikan menjadi satu kesatuan dalam sistem representasi informatif. Pengujian dilakukan dengan pengujian pada unit sistem login, input data dan pencarian data. Hasil dan penjelasan dari validasi dapat dilihat pada tabel 1. Tabel 1. Pengujian Validasi Sistem No 1
Unit Pengujian Koneksi data database
Validasi
Data Input
Hasil Uji
Status Uji
Username
Inputan data
Dikosongkan Value Username Dikosongkan Value Password Dikosongkan
Berhasil Berhasil Berhasil Berhasil Berhasil
Inputan kata
Value Data Dikosongkan
Gagal login Berhasil login Gagal login Berhasil login Tidak ada hasil Berhasil diinputkan Tidak ada hasil Berhasil ditampilkan
Password 2
3
Proses input
Proses pencarian
Kata inputan
Berhasil Berhasil Berhasil
Dari hasil pengujian semua unit dari pengujian yang ditampilkan pada table 1 berhasil melewati uji validitas sistem sehingga dapat ditarik kesimpulan bahwa hasil dari sistem telah sesuai dengan yang diharapkan.
20
2. Kuisoner Tahap kuisoner dilakukan dengan pengujian sistem yang dilakukan pada beberapa rumah sakit dengan sample sepuluh responden. Dari sepuluh responden terdiri dari satu responden dari bidang perencanaan dan pengembangan dan sepuluh responden dari petugas rumah sakit, petugas rawat inap dan karyawan administrasi dari rumah sakit Bunda medik yang berkepentingan terhadap sistem tersebut. Semua responden diperkenankan menjalankan sistem yang dibangun. Setelah semua responden melakukan pengujian sistem, setiap responden diperkenankan mengisi kuisoner yang telah disediakan untuk mengetahui tingkat efektifitas dari sistem informasi pasien tersebut. kemudian hasil kuisoner dari sepuluh responden (tabel 2.) dianalisa untuk mengetahui tingkat efektifitas dalam bentuk prosentase. Tabel 2. Hasil Kuisoner
No 1 2 3 4 5
Pertanyaan Apakah program yang dibuat bersifat user friendly Apakah menu yang ada sudah mencukupi dengan kebutuhan yang diperlukan Apakah informasi yang ada di program sudah sesuai dengan kebutuhan Apakah ada kesulitan dalam menjalankan program Apakah program tersebut berjalan dengan lancar
Jawaban Ya
Tidak
8
2
6
4
7
3
3
7
7
3
Dari hasil yang telah dipaparkan pada tabel 2. dihasilkan sebuah prosentase jawaban responden dari setiap pertanyaan yang diajukan. Hasil dan prosentase jawaban tiap-tap pertanyaan dari responden Hasil Analisa Dari hasil pengujian dengan menggunakan angket, dapat diambil kesimpulan dari kinerja sistem informasi akademik ini yaitu: User interface sangat mudah dipahami karena menggunakan desain yang sederhana sehingga tidak terlalu susah untuk dimengerti. Menu pada sistem sudah mencukupi segala kebutuhan yang diperlukan oleh penggunan. Penggunan dengan mudah mengunakan sistem tersebut dan tidak merasakan kesulitan dalam mengaplikasikan sistem yang telah dikembangkan. Mes b kipun mengunakan basis data server yang tentunya dalam kerja sistem akan lebih berat yaitu Microsoft SQL Server 2008 yang memiliki space penyimpanan yang besar. Tetapi sistem dapat berjalan dengan baik juga lancar, basis data server dipilih karena kebutuhan sistem yang membutuhkan performa basis data yang besar.
21
5. Simpulan Berdasarkan hasil penelitian dan pembahasan yang telah dilakukan tentang penerapan Zend Framework 2, maka disimpulkan bahwa: Zend Framework 2 adalah framework open source yang memiliki library yang banyak dibandingkan framework PHP lainnya, dengan banyaknya library tersebut pengembangan sistem dapat dilakukan lebih baik dibanding framework lainnya, salah satunya fitur koneksi basis data ke basis data server yang baik. Sehingga mampu mengantisipasi penggunaan data yang banyak pada sistem, framework tersebut juga kompetibel dengan basis data Microsoft SQL Server 2008 juga ke beberapa basis data termasuk basis data cloud sekalipun. Simpulan lainnya adalah dengan adanya pengembangan module pada framework tersebut memudahkan bagi pengguna untuk mengembangkan sistem tersebut sesuai dengan kebutuhan dan keinginan pengguna, walau untuk kearah web service sekalipun, dengan melakukan perubahan atau penyesuaian pada module tersebut.
6. Daftar Pustaka [1]
Somya, Ramos. 2010. Penerapan Framework Zend danArsitektur Model View Controller dalam Pengembangan Aplikasi Manajemen Kepegawaian (Studi Kasus: Universitas Kristen Satya Wacana Salatiga). Fakultas Teknologi Informasi UKSW: Salatiga.
[2]
Widya. Wenny. 2013 .Sistem Informasi Manajemen Rumah Sakit Bersalin Ananda. STMIK MDP: Palembang
[3]
Wikipedia, 2009, http://www.wikipedia.org, Diakses tanggal 22 April 2010.
[4]
Sulistiyo, Asmarina, 2013, Yang Baru dari Zend Framework 2, http://www.0prek.com/2013/01/yang-baru-dari-zend-framework-2/, Diakses tanggal 17 Desember 2013
[5]
Rahman, Muhammad Aditia, 2009, Analisis Perbandingan modifikasi Smarty Template Engine dan Framework CakePHP pada Model View Controller (MVC) untuk Aplikasi Web, http://www.ittelkom.ac.id, Diakses tanggal 12 November 2013.
[6]
Allen, Rob, 2007, Zend Framework in Action, http://www.manning.com/allen/meap_allench1.pdf, Diakses tanggal 10 November 2013.
[7]
Pressman, R.S, 2001, Software Engineering Serikat : R.S. Pressman and Associates.
22
: A Practitioner’s Approach, Amerika