Untuk Informatika
Medis, Rekam
Medis & Sistem
Informasi
Kesehatan
Oleh : Windiarto
Nugroho, Dewi Ekawati,
Irnawati
Syukur alhamdulillah, kami haturkan ke hadirat Alloh SWT, karena dengan karunia-Nya
kami dapat menyelesaiakan buku “Pengenalan Dasar Perancangan, Desain & Pembuatan Sisem
Informasi Rekam Medis Pada Klinik Rawat Jalan (diimplemantasikan dengan java netbeans)”.
Dalam buku ini kami mencoba menyajikan konsep-konesp dasar dalam merancang
sebuah software rekam medis dimulai dari perancangannya terlebih dahulu yang terdari dari
normalisasi, relasi antar tabel, kamus data, pembuatan DAD, Flow Chart System, desain menu,
desain form yang masing-masing kami beri penjelasan agar pembaca mudah memahaminya,
sementara untuk perancangan dan desain di buku ini kami coba implementasikan dengan
Microsoft Visio 2003. Dilanjutkan denggan instalasi software-software yang dibutuhkan dalam
memulai membuat software rekam medis seperti MySQL sebagai database server aplikasi(kami
menggunakan wamp), Instalasi Netbeans sebagai tools pengembang software yang nanti akan
kita buat, sementara untuk aplikasi yang dibuat kami tidak menggunakan konsep/desain petern
MVC, tetapi masih bersifat procedural, hal ini kami maksudkan karena buku ini ditujukan
sebagai dasar bagi teman-teman yang baru belajar sehingga kami mencoba mengenalkan
sesimple mungkin agar mudah dipahami, disini juga kami tidak terlalu membahas tentang dasar-
dasar programing tapi lebih ke pemberian contoh secara teknis melalui gambar-gambar ilustrasi
yang ada. Kami sangat menyarankan bagi pembaca yang sudah selesai membaca dan
mempraktikan isi yang ada di dalam buku ini untuk memulai membuat aplikasi dengan konsep
MVC, karena konsep MVC sendiri memiliki banyak kelebihan terutama dari sisi maintenance
dan lifecycle pengembangan software.
Penulis menyadari bahwa dalam menyusun buku ini masih jauh dari kesempurnaan,
untuk itu penulis sangat mengharapkan kritik dan saran yang bersifat membangun guna
sempurnanya buku ini. Penulis berharap semoga karya tulis ini bisa bermanfaat bagi penulis
khususnya dan bagi pembaca pada umumnya.
Yogyakarta, November
Penyusun
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, ii
Dewi Ekawati, Windiarto
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, ii
Dewi Ekawati, Windiarto
DAFTAR ISI
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Dewi iii
Ekawati, Windiarto
PENDAHULUAN
A. Latar Belakang
Modul/Buku ini kami susun sebagai bagian dari kepedulian kami agar teman-teman di
jurusan Rekam Medis/Sistem Informasi kesehatan bisa secara mandiri merancang, mendesain,
membuat aplikasi rekam medisnya sendiri. Dapat mengolah data penyakit, data petugas, data
dokter, data pasien, data rawat jalan, data hasil diagnosa penyakit. Serta bagaimana menyajikan
laporan-laporan yang terkait secara cepat dan akurat. Kami mencoba memberikan informasi
tentang dasar-dasar perancangan software rekam medis dimulai dari dasar sekali, jadi kami harap
pembaca mau membacanya setahap demi setahap agar dapat memamahami alurnya, untuk
perancangan sendiri kami lebih memilih menggunakan DFD dan bukan menggunakan UML,
karena kami rasa DFD lebih mudah dipahami bagi mereka yang baru belajar khususnya bagi
jurusan baru seperti rekam medis/informatika kesehatan. Kenapa kami memilih java sebagai
dasar pengembangan aplikasi? Karena java sebagai salah satu bahasa pemrograman baru
menjanjikan banyak kemudahan bagi programer junior maupun senior. Tutorial ini akan
membawa Anda mengenal lebih jauh bahasa ini melalui pembahasan konsep model perancangan
dan petunjuk sederhana penggunaannya. Sedangkan pengertian java adalah bahasa pemrograman
berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991. Bahasa ini
dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang
agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis
sistem operasi dan arsitektur komputer.
NetBeans adalah Integrated Development Environment (IDE) berbasiskan Java yang dulu
dikembangkan oleh Sun Microsystems yang berjalan di atas Swing, dan saat ini pengembangan
selanjutnya dipegang oleh Oracle setelah Sun Microsystem di akuisisi oleh oracle. Swing
merupakan teknologi Java untuk pengembangan aplikasi Desktop yang dapat bejalan di berbagai
macam platforms seperti Windows, Linux, Mac OS X and Solaris. Suatu IDE adalah lingkup
pemrograman yang diintegrasikan kedalam suatu aplikasi perangkat lunak yang menyediakan
pembangun Graphic User Interface (GUI), suatu text atau kode editor, suatu compiler atau
interpreter dan suatu debugger. Netbeans merupakan software development yang Open Source,
dengan kata lain software ini di bawah pengembangan bersama, bebas biaya dan NetBeans
merupakan sebuah proyek kode terbuka yang sukses dengan pengguna yang sangat luas,
komunitas yang terus tumbuh, dan memiliki hampir 100 mitra. Sun Microsystems mendirikan
proyek kode terbuka NetBeans pada bulan Juni 2000 dan terus menjadi sponsor utama sebelum
akhirnya diakuisisi oleh Oracle.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 1
Windiarto Nugroho, Dewi Ekawati
B. Tujuan
Untuk membatasi konsistensi perancangan, desain dan pembuatan aplikasi maka kami
membatasi pembahasan di buku ini sebagai berikut :
1. Normalisasi data yang didapat dari hasil observasi di klinik rawat jalan(sebagai contoh saja)
2. Perancangan DFD, Flowchart System aplikasi rawat jalan
3. Instalasi Software-software yang dibutuhkan
4. Pembuatan aplikasi rawat jalan yang meliputi Data Pasien, Data Dokter, Daata Petugas,
Data Tarif, Data Obat, Tindakan Rawat Jalan, Pemberian Obat, Registrasi Pasien,
Pembayaran
Manfaat yang bisa didapatkan oleh pembaca saat menggunakan buku ini adalah :
1. Bagi para dosen jurusan kesehatan khususnya rekam medis, buku ini bisa sebagai buku
pegangan untuk diajarkan kepada mahasiswanya atau sebagai modul praktikum pembuatan
aplikasi rekam medis.
2. Bagi para mahasiswa rekam medis, buku ini bisa digunakan sebagai referensi dalam
penyusunan tugas akhir tentang pembuatan aplikasi rekam medis yang menggunakan java
sebagai dasar pengembangannya.
3. Bagi orang awam dan diluar rekam medis, bisa sebagai sarana belajar bahasa pemrograman
java database memanfaatkan JDBC dan mysql sebagai databasenya secara prosedural bukan
MVC.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 2
Windiarto Nugroho, Dewi Ekawati
PEMBAHASAN I
TEORI DASAR REKAM MEDIS DAN SISTEM INFORMASI
A. Rekam Medis
a) Pengertian Rekam Medis
Di dalam peraturan Menteri Kesehatan No 269/2008, rekam medis adalah berkas berisi
catatan dan dokumen tentang pasien yang berisi identitas, pemeriksaan, pengobatan,, tindakan
medis lain pada sarana pelayanan kesehatan untuk rawat jalan, rawat inap baik dikelola
pemerintah maupun swasta.
Menurut Depkes RI tahun 2002, rekam medis adalah keterangan yang tertulis maupun
terekam tentang identitas, anamnese, penentuan fisik laboratorium, diagnose segala pelayanan
dan tindakan medis yang diberikan kepada pasien, serta pengobatan baik rawat inap, rawat jalan,
maupun yang mendapatkan pelayanan gawat darurat.
Menurut hatta (2008) Rekam Medis adalah siapa, apa, mengapa, dimana, harapan dan
bagaimana pelayanan yang diperoleh seorang dirawat dan diobati.
1) Berisi keterangan dan catatan serta rekaman tentang pasien secara lengkap meliputi
identitas pribadi, sosial dan semua keterangan lainnya yang menjelaskan tentang pasien
tersebut. Isi keterangan dan catatan meliputi :
(a) Identitas siapa yang melayani dan siapa yang dilayani.
(b) Pelayanan apa saja yang dilakukan atau diberikan kepada pasien.
(c) Alasan mengapa pelayanan tersebut diberikan atau sering disebut dengan indikasi
medis.
(d) Bilamana pelayanan tersebut diberikan yang menunjukkan waktu (tanggal, jam, menit).
(e) Bagaimana proses pelayanan tersebut diberikan pada pasien.
2) Memuat informasi yang cukup untuk menemukan kembali (mengidentifikasi) pasien,
berarti informasi yang terkandung dalam rekam medis harus dapat ditemukan kembali
ketika pasien tersebut datang untuk berobat pada kunjungan-kunjungan selanjutnya.
3) Membenarkan diagnosa dan pengobatan, berarti data dan informasi dalam rekam medis
dapat digunakan untuk menilai proses dan hasil pelayanan klinis guna memperoleh
kebenaran ilmiah dan hukum.
4) Merekam hasilnya, berarti rekam medis harus dapat didokumentasi sedemikian rupa
sehingga hasil rekamannya dapat digunakan untuk berbagai keperluan pelayanan dan
pengelolaan pasien.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 3
Windiarto Nugroho, Dewi Ekawati
3) Aspek Keuangan
Isinya dapat digunakan sebagai bahan untuk menetapkan biaya pembayaran pelayanan
Rumah Sakit.
4) Aspek Penelitian
Isinya mengandung data atau informasi yang dapat digunakan sebagai aspek penelitian dan
pengembangan ilmu pengetahuan.
5) Aspek Pendidikan
Isinya menyangkut data atau informasi tentang perkembangan kronologis dari kegiatan
pelayanan medis yang diberikan kepada pasien.
6) Aspek Dokumentasi
Isinya menjadi sumber ingatan yang harus didokumentasikan dan dipakai sebagai bahan
pertanggungjawaban dan laporan Rumah Sakit.
7) Aspek Medis
Digunakan sebagai dasar untuk merencanakan pengobatan dan perawatan yang harus
diberikan kepada pasien.
1) Komponen Sistem
Suatu sistem yang saling bekerjasama membentuk satu kesatuan. Suatu sistem terdiri dari
sejumlah komponen yang saling berinteraksi.
2) Batas Sistem
Batasan sistem (boundary) merupakan daerah yang membatasi antara suatu sistem dengan
sistem yang lain atau lingkungan luarnya.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 4
Windiarto Nugroho, Dewi Ekawati
3) Lingkungan Luar Sistem
Lingkungan luar (environment) dari suatu sistem adalah apapun diluar batas dari sistem yang
mempengaruhi operasi sistem. Lingkungan luar yang menguntungkan merupakan energi dari
sistem sehingga harus tetap dijaga dan dipelihara.
4) Penghubung Sistem
Penghubung sistem (interface) adalah merupakan media penghubung antara satu subsistem
dengan subsistem yang lain.
5) Masukan Sistem
Masukan (input) adalah energi yang dimasukan kedalam sistem. Masukan dapat berupa
masukan Perawatan (Maintenance input) dan masukan Signal (Signal Input).
Maintenance input ialah energi yang dimasukan supaya sistem tersebut dapat beroperasi.
Sedangkan signal Input yaitu energi yang diproses untuk mendapatkan keluaran.
6) Keluaran Sistem
Keluaran (Output) adalah hasil dari energi yang diolah dan diklasifikasikan menjadi keluaran
ynag berguna. Output ini dapat berupa laporan, grafik,dan lain-lain.
7) Pengolah Sistem
Pengolahan merupakan suatu bagian dari sistem yang mengolah atau memproses masukan data
menjadi informasi sesuai dengan keinginan penerima.
8) Sasaran sistem
Suatu sistem pasti mempunyai tujuan (goal) atau sasaran dari sistem sangat menentukan
sekali masukan yang dibutuhkan sistem dan keluaran yang akan dihasilkan sistem.
2) Kualitas Informasi
Kualitas informasi tergantung dari 3 (tiga) hal penting yaitu :
1. Accurate (Akurat).
Informasi harus bebas dari kesalahan-kesalahan. Akurat juga berarti informasi
harus jelas mencerminkan maksudnya, informasi harus akurat karena dari sumber
informasi sampai ke penerima informasi kemungkinan banyak terjadi gangguan
yang dapat merubah atau merusak informasi tersebut.
3. Relevance (Relevan).
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 5
Windiarto Nugroho, Dewi Ekawati
Informasi tersebut mempunyai manfaat untuk pemakaiannya.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 6
Windiarto Nugroho, Dewi Ekawati
Banyak hal yang dapat merusak sistem informasi, seperti misalnya
bencana alam, kebakaran dan lain-lain. Beberapa pengendalian perlu
dirancang dan diterapkan untuk meyakinkan bahwa hal-hal yang dapat
merusak sistem dapat dicegah ataupun bila terlanjur terjadi kesalahan-
kesalahan tersebut dapat langsung cepat diatasi.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 7
Windiarto Nugroho, Dewi Ekawati
Normalisasi merupakan suatu proses untuk mengubah suatu tabel yang memiliki
masalah tertentu ke dalam dua buah tabel atau lebih yang tidak lagi memiliki masalah
tersebut. (Abdul Kadir)
(a) Kunci Sederhana (simple key), yaitu kunci relasi yang tersusun atas sebuah
atribut.
(b) Kunci Komposit (composite key), yaitu kunci ynag tersusun atas gabungan
atribut.
Berdasarkan macamnya, kunci relasi terdiri atas :
(a) Kunci Kandidat (Candidate Key)
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 8
Windiarto Nugroho, Dewi Ekawati
Candidate key adalah satu atau gabungan minimal atribut yang bersifat unik
yang dapat digunakan untuk mengidentifikasi setiap record dalam relasi.
Dalam setiap relasi minimal mempunyai sebuah candidate key.
(b) Kunci Primer (Primery Key)
Kunci primer adalah kunci kandidat yang dipilih untuk mewakili setiap
kejadian dari suatu entity. Kunci primer ini sifatnya unik, tidak mungkin sama
dan tidak mungkin ganda.
(c) Kunci Alternatif (Alternate Key)
Kunci alternatif adalah kunci kandidat yang tidak dipilih sebagai kunci primer.
(d) Kunci Tamu (Foreign Key)
Kunci tamu adalah kunci primer yang ditempatkan pada file lain dan biasanya
menunjukkan dan melengkapi suatu hubungan (relationship) antara file satu
dengan file lainnya. Biasanya kalau ada 2 file, kunci primer akan diletakkan
pada entity induk sedangkan kunci tamu akan diletakkan pada entity anak.
Hubungan antara entity induk dengan entity anak adalah one to many.
Dalam proses normalisasi juga membutuhkan beberapa tahap sebelum nantinya
akan diimplementasikan dalam program.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 9
Windiarto Nugroho, Dewi Ekawati
sejumlah entitas.(Fathansyah:2002). Dalam table relasi antar tabel dimaksudkan
adanya hubungan logis antara table yang satu dengan yang lainnya.
(a) One To One Relationship
Hubungan antara file pertama dengan file kedua adalah satu berbanding satu.
Entitas 1 Entitas 2
Entitas 1 Entitas 2
Entitas 1 Entitas 2
Aliran Data
Menggambarkan aliran data dari satu proses ke proses
lainnya.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 10
Windiarto Nugroho, Dewi Ekawati
Pedoman dalam penggambaran DAD :
(a) Mengidentifikasi semua kesatuan luar (external entity) yang terlibat dalam
sistem.
(b) Mengidentifikasi semua input dan output yang terlibat dengan kesatuan luar.
(c) Menggambar diagram konteks, yang berfungsi untuk mengambarkan sistem
pertama kali secara garis besar.
(d) Menggambar bagan berjenjang yang menggambarkan semua proses yang ada
di sistem .
(e) Menggambar sketsa DAD untuk overview diagram (level 0) berdasakan
proses di diagram berjenjang.
(f) Menggambar DAD untul level-level berikutnya, yaitu level 1 dan seterusnya
untuk tiap-tiap proses yang di pecah-pecah sesuai dengan bagan
berjenjangnya.
Kesalahan yang harus dihindari berkaitan dengan proses yaitu :
(a) Proses mempunyai input tetapi tidak menghasilkan output (back hole), ada
data masuk tetapi tidak ada data keluar.
(b) Proses menghasilkan output tetapi tidak pernah menerima input (miracle).
Proses
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 11
Windiarto Nugroho, Dewi Ekawati
Manual input (keyboard)
PEMBAHASAN II
NORMALISASI DATA DAN DIAGRAM ALIR DATA
Langkah awal yang harus dilakukan oleh seorang pembuat aplikasi rekam medis adalah
melakukan observasi atau penelitian mengenai kebutuhan yang ada di lingkungan kerja tempat software
mau dibuat. Kita tidak bisa menentukan sendiri fitur-fitur apa saja yang akan dibuat, setiap apa yang kita
rancangan harus benar-benar dikomunikasikan dengan pemakai agar benar-benar sesuai dengan
kebutuhan. Sering kali pembuat software membuat aplikasi yang sangat lengkap tapi justru fitur yang ada
dianggap terlalu ribet bagi pengguna dan justru tidak digunakan dan ini menjadi sangat mubadzir, atau
sebaliknya pengguna sangat butuh dengan sebuah fitur tapi tidak ada di sistem yang dibuat. Sistem
aplikasi rekam medis yang baik ada yang sesuai kebutuhan, tidak ada fitur yang menganggur atau tidak
digunakan, memiliki interface(tampilan) yang baik dalam artian mudah digunakan bukan sekedar
tampilan yang bagus, karena sering kali penulis mendapati aplikasi rekam medis yang sangat bagus dari
sisi tampilan tapi tidak memperhatikan sisi kemudahan penggunaan sehingga si pengguna sendiri bingung
saat memakai, dan bahkan terkesan ribet. Perancangan dan desain aplikasi sendiri disusun atau dirancang
secara Eksperimental, artinya selalu dievaluasi antara pembuat dan pengguna, diujicoba oleh pengguna
dan dari situ dapat disumpulkan apa saja yang kurang dan apa yang perlu ditambahkan atau fitur apa yang
tidak dibutuhkan, sehingga bisa jadi masukkan bagi pembuat. Hal ini tidak cukup dilakukan sekali dua
kali, karena kadang bisa sampai berbulan-bulan seiring dengan perkembangan yang ada di lingkungan
pengguna seperti misalnya perubahan system dari yang tadinya klinik menjadi rumah sakit.
A. PERANCANGAN SISTEM
Tujuan dari perancangan sistem secara umum adalah untuk memberikan gambaran secara
umum kepada pemakai program tentang sistem yang baru. Rancangan sistem secara umum
mengidentifikasikan komponen-komponen sistem informasi yang akan di rancang secara rinci. Pada tahap
perancangan secara umum, komponen-komponen sistem informasi dirancang dengan tujuan untuk
dikomunikasikan kepada pemakai program (user) bukan untuk pemrogram. Untuk merancang sebuah
sistem kita bisa menggunakan berbagai macam software diantaranya DEA(di linux), Libre Office Draw,
Microsoft Visio 2003 atau software yang lain, tapi dalam buku ini yang akan kita bahas adalah
menggunakan microsoft Visio 2003. Microsoft Visio sendiri adalah produk berbayar yang dikeluarkan
oleh microsoft, dan biasanya merupakan paket terpisah dari produk office yang lainnya(Word, Excel, dll),
untuk mendapatkannya anda bisa beli secara online di official webpagenya microsoft atau membeli di
toko software atau toko komputer. Perancangan sistem sendiri terdiri dari beberapa tahap, dimulai dari
perancangan basis data, relasi antar tabel, pembuatan kamus data tabel, pembuatan data flow
diagram(DFD), flow chart system, flow chart program(tidak dibahas dalam buku ini, berkaitan dengan
logika program).
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 12
Windiarto Nugroho, Dewi Ekawati
a. Rancangan Basis Data.
Dalam perancangan basis data terdiri dari beberapa tahap. Yang pertama adalah identifikasikan
bentuk tidak normal(unnormalized form), kemudian dilanjutkan ke normalisasi data sampai
didapat bentuk yang benar-benar normal dan sesuai kebutuhan pengembangan. Normalisasi
sendiri bisa saja berhenti sampai di bentuk normal pertama(first normal form), di bentuk normal
ke dua(second normal form), di bentuk normal ke tiga(third normal form), di bentuk normal
boyce(boyce normal form), di bentuk normal ke empat(fourth normal form) atau di bentuk
normal ke lima(fifth normal form). Dalam buku ini, dari contoh kasus yang ada hanya sampai ke
bentuk normal ke dua dikarenakan yang dibahas hanya seputar klinik rawat jalan sehingga data
yang didapat dalam observasi masih sangat sederhana. Berikut adalah contohnya :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 13
Windiarto Nugroho, Dewi Ekawati
Gambar Bentuk Tidak Normal
a. Jalankan Visio, pilih menu File, pilih New, pilih New Drawing
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 14
Windiarto Nugroho, Dewi Ekawati
Gambar Menu New Drawing
c. Pilih Shapes View di sebelah kiri dengan mengekliknya, tarik ke dalam lembar draw
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 15
Windiarto Nugroho, Dewi Ekawati
Gambar Pembuatan Bentuk Normal 1
Untuk mengganti tulisan View menjadi nama tabel, terlebih dahulu klik pada
Text Tool, baru kemudian klik pada View untuk mengganti tulisaan yang ada. Untuk
mengisikan field-fieldnya langsung klik di kotak bawah view. Besar huruf maupun jenis
huruf yang dipakai bisa diubah seperti pada Microsoft word. Bisa juga diatur keerataan
tulisan seperti rata kanan, rata tengah atau rata kanan kiri dll. Pembaca bisa
mengeksplorasi sendiri menu-menu yang ada agar semakin akrab. Dibawah ini hasil
pemecahan ke dalam Bentuk Normal 1 yang didesain dalam Visio :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 16
Windiarto Nugroho, Dewi Ekawati
Gambar Bentuk Normal 1 di Visio
d. Untuk selanjutnya, bisa dieksport ke dalam bentuk JPEG, PNG dll dengan memilih menu
File, pilih Save As, Pilih Save As Type sesuai dengan kebutuhan.
Pada normalisasi bentuk pertama dilakukan lagi pemecahan terhadap tabel yang
dirasa masih bermasalah. Pemecahan tabel tersebut bertujuan untuk mengurangi kerangkapan
data, mengoptimalkan redundansi yang tidak bisa dihilangkan sama sekali karena berguna
untuk integritas referensial(seperangkat aturan yang mengatur hubungan antara kunci
primer dengan kunci tamu milik tabel-tabel yang berada dalam suatu basis data relasional
untuk menjaga konsistensi data), mengurangi masalah-masalah yang timbul dalam
pembuatan tabel yang disebut dengan anomaly (proses pada basis data yang mempunyai efek
samping yang tidak diharapkan), anomali tersebut yaitu : anomali peremajaan, anomaly
penyisipan, anomali penghapusan. Fungsi yang lainnya adalah meminimalkan ukuran
penyimpanan yang diperlukan untuk menyimpan data dan mempercepat proses permintaan
data.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 17
Windiarto Nugroho, Dewi Ekawati
Pemecahan tabel tersebut :
Dari pemecahan tabel diatas didapatkan bentuk normal baru, dalam normalisasi ke
bentuk dua ini ternyata table yang didapat sudah normal dan bisa direlasikan. Bentuk normal
kedua seperti gambar :
Sama seperti Bentuk Normal 1, Bentuk Normal 2 ini juga dibuat di Visio. Karena
dirasa sudah normal maka langsung diberikan kunci primer dan diidentifikasikan foreign
key yang dipakai. Silahkan pelajari lagi di Pembahasan I tentang normalisasi data. Sudah
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 18
Windiarto Nugroho, Dewi Ekawati
ada pembahasan disana tentang apa itu kunci utama/primary key/kunci primer begitu juga
dengan foreign key.
Keterangan :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 19
Windiarto Nugroho, Dewi Ekawati
Gambar diatas dibuat dengan Visio. Untuk membuatnya, Bentuk Normal 2 ditata terlebih
dahulu kemudian dihubungkan dengan Connector Tool yang terletak disebelah kiri Text Tool.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 20
Windiarto Nugroho, Dewi Ekawati
c. Kamus Data Tabel
Setelah didapat bentuk relasi tabel langkah selanjutnya adalah membuat kamus data tabel,
yaitu tabel-tabel yang dibutuhkan dalam pembuatan aplikasi, kamus data tabel ini nantinya
diimplemantasikan ke dalam database MySQL. Untuk pengertian kamus data tabel silahkan baca
kembali di Pembahasan I.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 21
Windiarto Nugroho, Dewi Ekawati
Tabel Kamus Data Tabel Pasien
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 22
Windiarto Nugroho, Dewi Ekawati
3 Jk Enum L, P Jenis Kelamin
4 tmp_lahir Varchar 15 Tempat Lahir
5 tgl_lahir Date 10 Tanggal Lahir
6 Alamat Varchar 60 Alamat
7 Password Varchar 200 Password Login
Petugas
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 23
Windiarto Nugroho, Dewi Ekawati
Tabel Kamus Data Tabel Rawat Jalan
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 24
Windiarto Nugroho, Dewi Ekawati
1) Identifikasikan semua kesatuan luar (external entities) yang terlibat dalam sistem. Kesatuan
luar yang digunakan dalam sistem ini yaitu : Petugas, Dokter, Admin, Pasien
2) Identifikasikan semua input dan output yang terlibat dengan kesatuan luar.
e. Diagram Konteks
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 25
Windiarto Nugroho, Dewi Ekawati
Gambar Diagram Konteks
Fungsi dari diagram konteks adalah untuk memperlihatkan interaksi sistem informasi
dengan lingkungan dimana sistem tersebut ditempatkan. Dalam diagram konteks hanya ada satu
proses. Tidak boleh ada store dalam diagram konteks. Diagram konteks berisi gambaran umum
(secara garis besar) sistem yang akan dibuat. Secara kalimat, dapat dikatakan bahwa diagram
konteks ini berisi “siapa saja yang memberi data (dan data apa saja) ke sistem, serta kepada siapa
saja informasi (dan informasi apa saja) yang harus dihasilkan sistem.” Jadi, yang dibutuhkan
adalah :
Dari diagram diatas menjelaskan bahwa terdapat admin, dokter dan petugas yang
memberikan data ke dalam sistem. Data yang diberikan admin kepada sistem berupa : Input Data
Pasien, Input Data Petugas, Input Data Dokter, Input Data Admin, Input Data Obat, Input Data
Tarif Tindakan, Input Data Registrasi, Input Data Pemberian Obat, Input Data Tindakan Dokter.
Data yang diberikan dokter kepada sistem berupa : Input Data Pemberian Obat, Input Data
Tindakan Dokter. Data yang diberikan petugas kepada sistem berupa : Input Data Registrasi,
Input Data Obat, Input Data Tindakan, Input Data Pasien.
Dari diagram diatas, juga menjelaskan bahwa sistem memberikan laporan kepada dokter
dan petugas, admin serta pasien. Sistem memberikan informasi kepada dokter berupa : Laporan
Data Pemberian Obat, Laporan Data Tindakan Dokter. Sistem memberikan laporan kepada
petugas berupa : Laporan Data Registrasi, Laporan Data Pasien, Laporan Data Obat, Laporan
Data Tindakan. Sistem memberikan laporan kepada Admin berupa : Laporan Data Pasien,
Laporan Data Petugas, Laporan Data Dokter, Laporan Data Admin, Laporan Data Obat,
Laporan Data Tarif Tindakan, Laporan Data Registrasi, Laporan Data Pemberian Obat,
Laporan Data Tindakan Dokter. Sistem memberikan laporan kepada pasien berupa :
Laporan/Nota Pembayaran.
Untuk membuat desain diagram konteks di atas, pada shapes visio silahkan pilih
Miscellaneous Flowchart Shapes. Untuk pembuatannya tidak jauh beda dengan pembuatan relasi
tabel, Cuma object-objectnya saja yang berbeda, untuk memahami diagramnya silahkan pelajari
di Pembahasan I lagi.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 26
Windiarto Nugroho, Dewi Ekawati
f. Diagram Berjenjang
Diagram berjenjang di atas menjelaskan dalam proses sistem informasi rekam medis
terdapat sepuluh subsistem proses yaitu : proses data admin, proses data obat, proses data
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 27
Windiarto Nugroho, Dewi Ekawati
tindakan, proses data dokter, proses data petugas, proses data pasien, proses registrasi, proses
beri obat, proses tindakan dokter, proses pembayaran.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 28
Windiarto Nugroho, Dewi Ekawati
Gambar Diagram Level 0
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 29
Windiarto Nugroho, Dewi Ekawati
Diagram Level 0 diatas menjelaskan bahwa dalam Sistem Informasi Rekam Data Medis
yang dibuat terdapat sepuluh subsistem proses yaitu : proses data admin, proses data obat, proses
data tindakan, proses data dokter, proses data petugas, proses data pasien, proses registrasi,
proses beri obat, proses tindakan dokter, proses pembayaran.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 30
Windiarto Nugroho, Dewi Ekawati
prosedur-prosedur yang terkombinasi yang membentuk suatu sistem. Flowchart Sistem terdiri dari
data yang mengalir melalui sistem dan proses yang mentransformasikan data itu.
Gambar flowchart sistem diatas menjelaskan bahwa dalam sistem informasi rekam medis
yang dibuat oleh penulis terdapat terdapat sepuluh manual input, yaitu : admin, obat, tindakan,
dokter, petugas, pasien, registrasi, pemberian obat, tindakan dokter, pembayaran. Masing-masing
dari manual input diproses dan disimpan ke dalam hardisk atau media penyimpanan dalam
komputer. Dari data yang telah disimpan ke dalam media penyimpanan, diolah lagi untuk
menghasilkan laporan melalui sebuah proses pembuatan laporan.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 31
Windiarto Nugroho, Dewi Ekawati
PEMBAHASAN III
MEMBUAT DESAIN VISUAL APLIKASI
A. Rancangan Tampilan Menu Utama
Dalam pembuatan menu utama, seorang pembuat aplikasi rekam medis boleh-boleh saja
membuat tampilan menu dengan berbagai bentuk, misalnya seperti menu ribbon pada aplikasi
Microsoft Office Tahun 2007 ke atas, atau menu pada umumnya seperti yang ada di Microsoft Office
2003 dan juga aplikasi Libre Office , atau bisa juga berupa drop down menu seperti yang ada di
Microsoft Acces 2007 ke atas. Boleh berbasis icon, boleh juga berbasis teks atau gabungan icon teks,
yang penting memudahkan pengguna aplikasi saat memakai software yang nanti akan dibuat.
Misalnya contoh menu berikut ini :
Menu di atas didesain dengan menggunakan Microsoft Visio 2003. Kami menggunakan
Visio 2003 dikarenakan fasilitasnya yang lumayan lengkap dan juga mudah digunakan. Rancangan
tampilan menu utama menggambarkan keseluruhan menu yang ada dalam program. Menu utama
terdiri dari menu Data Admin. Data Obat, Data Tindakan, Data Dokter, Data Petugas, dan Data
Pasien, Registrasi, Beri Obat, Tindakan Dokter dan Pembayaran
Untuk mendesain tampilan di atas, pada Toolbar Shapes bisa kita pilih Software, ada
beberapa pilihan yang bisa digunakan diantaranya : Common Controls, Windows and Dialogs.
Gunakan drop down atau panah ke bawah jika terlalu banyak menu shapes yang tampil. Masukkan
Blank Form dari shapes Windows and Dialogs kedalam lembar draw, kemudian susun atau
masukkan command Button dari shapes Comon Controls, untuk membuat latar warna/background
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 32
Windiarto Nugroho, Dewi Ekawati
bisa dengan menambahkannya melalui Rectangle Tool pada toolbar menu yang kemudian diberi
warna melalui Toolbar Fill Color. Berikut ini adalah tampilan ilustrasi saat dibuat :
Model menu di atas hanya contoh saja, pembaca bisa mendesain sendiri tampilan menu
aplikasinya sesuai dengan kebutuhan, yang penting nyaman digunakan oleh pengguna software
nantinya. Untuk desain interface tampilan setiap form yang akan dibuat caranya sama saja dengan
desain menu di atas, mungkin hanya beda dari sisi object-object yang dipakai. Silahkan eksplorasi
sendiri agar menjadikan pembaca semakin mahir menggunakan software visio ini.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 33
Windiarto Nugroho, Dewi Ekawati
B. Desain Interface.
a. Desain Input
a) Desain Input Data Admin
Form ini digunakan untuk menampilkan tabel admin pada database sip dengan perintah
sql :” select * from admin”. Keterangan :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 34
Windiarto Nugroho, Dewi Ekawati
a4 : Untuk mengedit data admin yang dipilih.
Form ini digunakan untuk menampilkan tabel obat pada database sip dengan perintah
sql :”select * from obat order by kode_obat”. Keterangan :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 35
Windiarto Nugroho, Dewi Ekawati
a5 : Untuk keluar dari form data obat.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 36
Windiarto Nugroho, Dewi Ekawati
a5 : Untuk keluar dari form data tindakan.
Form ini digunakan untuk menampilkan tabel dokter pada database sip dengan perintah
sql :” select dokter.kd_dokter , dokter.nm_dokter , dokter.jk , dokter.tmp_lahir,
dokter.tgl_lahir, dokter.no_ijn_praktek , dokter.alamat , dokter.password from dokter”.
Keterangan :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 37
Windiarto Nugroho, Dewi Ekawati
a3 : Untuk menghapus data dokter yang dipilih.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 38
Windiarto Nugroho, Dewi Ekawati
a2 : Untuk mengosongkan semua field.
PEMBAHASAN IV
INSTALASI SOFTWARE YANG DIBUTUHKAN
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 39
Windiarto Nugroho, Dewi Ekawati
Klik OK.
d. Pada halaman Selamat Datang dari wizard instalasi, klik Next.
e. Pada halaman Perjanjian Lisensi, meninjau perjanjian lisensi, klik kotak centang
penerimaan / Accept, dan klik Next.
f. Pada halaman License Agreement JUnit, memutuskan apakah Anda ingin menginstal
JUnit dan klik opsi yang sesuai, klik Next.
g. Pada halaman instalasi NetBeans IDE, lakukan hal berikut:
Terima direktori default instalasi untuk NetBeans IDE atau menentukan
direktori lain.
Catatan : The direktori instalasi harus kosong dan profil pengguna yang
Anda gunakan untuk menjalankan installer harus memiliki hak akses folder
membaca / menulis izin untuk direktori ini.
Pilih Accept atau terima instalasi JDK default untuk digunakan dengan
IDE NetBeans atau pilih instalasi yang berbeda dari daftar drop-down. Jika wizard
instalasi tidak menemukan instalasi JDK yang kompatibel untuk digunakan
dengan NetBeans IDE, maka instlasi tidak bisa dilanjutkan. Setelah menginstal
versi JDK yang diperlukan Anda dapat me-restart instalasi.
h. Pada halaman Ringkasan, pastikan bahwa daftar komponen yang akan diinstal adalah
benar dan bahwa Anda memiliki ruang yang cukup pada sistem Anda untuk instalasi.
i. Klik Install untuk memulai instalasi.
j. Pada halaman Pengaturan Lengkap, menyediakan data penggunaan anonim jika
diinginkan, dan klik Finish.
Setelah kita berhasil menginstal nya, akan terlihat ada tambahan program baru di daftar
menu program komputer atau laptop kita. Seperti ini :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 40
Windiarto Nugroho, Dewi Ekawati
Gambar Netbeans DI Startup Windows
Itu artinya kita telah berhasil menginstal program Netbeans di laptop atau
komputer kita. Dan siap digunakan.
Pada pemrograman Visual, pengembangan aplikasi dimulai dengan
pembentukkan user interface, kemudian mengatur properti dari objek-objek yang
digunakan dalam user interface, dan baru dilakukan penulisan kode program
untuk menangani kejadian-kejadian (event).
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 41
Windiarto Nugroho, Dewi Ekawati
Gambar Lingkungan IDE
1. MenuBar
Fungsinya memilih tugas tertentu seperti: memulai, memilih, atau
mengakhiri suatu aplikasi.
Gambar ToolBar/SpeedBar
3. Jendela Palette
Palette berisi kumpulan komponen yang akan ditempelkan atau diletakkan dalam
form dan digunakan untuk mendesain form agar membentuk user interface. Palette
Standard mempunyai banyak pilihan komponen diantaranya : JLabel, JComboBox,
JTextField, JCheckBox, JButton, JListBox, JImage, Jpanel dan masih banyak lagi
dengan kegunaannya masing-masing.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 42
Windiarto Nugroho, Dewi Ekawati
Gambar Jendela ToolBox Standard
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 43
Windiarto Nugroho, Dewi Ekawati
Gambar Jendela Kode Editor
6. Jendela Project
Jendela Project digunakan untuk melihat kontrol yang berada didalam form
secara hieraki seperti windows Expoler.
7. Jendela Properties
Jendela properties digunakan untuk memanipulasi kontrol yang sudah ada dalam
form.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 44
Windiarto Nugroho, Dewi Ekawati
Gambar Jendela Properties
1. NetBeans GUI Builder gratis dengan banyak Plug In yang bisa kita download langsung di
website resminya, maupun dari pihak ketiga
2. NetBeans GUI Builder sangat kompetebel dengan Swing karena memang langsung
dikembangkan oleh Sun yang notabenenya sebagai pengembang Swing sebelum akhirnya
dilanjutkan oleh oracle.
3. Netbeans tidak hanya dapat digunakan untuk java saja, karena Netbeans dapat di gunakan
untuk bahasa pemograman lain seperti C/C++, Ruby, dan PHP.
4. NetBeans GUI Builder sangat cocok untuk digunakan dalam pengembangan sistem berskala
Enterprise.
5. Pada paket tertentu, Netbeans juga menyertakan GlassFish dan Apache Tomcat sebagai
Aplikasi Server semacam wamp/xamp dengan database derby sebagai default
1. NetBeans hanya mensupport satu pengembangan Java GUI, yaitu Swing, padahal ada Java
GUI yang dikembangkan oleh eclipse yang bernama SWT dan JFace yang sudah cukup
populer.
2. NetBeans mempatenkan source untuk Java GUI yang sedang dikerjakan dalam sebuah
Generated Code, sehingga programmer tak dapat mengeditnya secara manual.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 45
Windiarto Nugroho, Dewi Ekawati
3. Dari segi sumber daya, Netbeans memerlukan sumber daya yang besar, seperti Memory dan
ruang hard disk.
4. Netbeans memerlukan dukungan prosesor yang cukup handal untuk mendapatkan performa
maksimalnya.
c. Silahkan piliah I Accept the Agreement sebagai tanda anda setuju. Teruskan dengan
klik tombol Next kembali.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 46
Windiarto Nugroho, Dewi Ekawati
Gambar Persetujuan
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 47
Windiarto Nugroho, Dewi Ekawati
Gambar Buat Icon di Desktop
f. Klik tombol Install. Silahkan tunggu beberapa saat sampai proses instalasi selesai.
Gambar Install
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 48
Windiarto Nugroho, Dewi Ekawati
Gambar Selesai Instalasi
MySQL mempunyai kekurangan diantaranya adalah : Database ini tidak portable sebagaimana
database Acces yang langsung bisa dipindah-pindah. Untuk memindahkan data pada mysql harus
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 49
Windiarto Nugroho, Dewi Ekawati
dilakukan eksport terlebih dulu baru kemudian di import ketempat atau komputer baru sehingga
terkesan agak ribet
PEMBAHASAN V
MEMBUAT PROJECT APLIKASI
A. Cara Membuat Database Di PHP MyAdmin Wamp Server
Setelah membuat kamus data tabel di pembahasan sebelumnya dan juga menginstall
wamp server, di pembahasan ini kita akan mencoba mengimplementasikannya. Kita buat terlebih
dulu databasenya dengan membuka browser yang ada, bisa menggunakan chrome, firefox, opera
atau yang lain, kemudian ketikkan di address barnya localhost/phpmyadmin/ kemudian enter
dengan tampilan sebagai berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 50
Windiarto Nugroho, Dewi Ekawati
Gambar Proses awal pembuatan database
b. Jika database berhasil dibuat maka tampilannya sebagai berikut:
c. Setelah berhasil membuat database nya, dilanjutkan dengan membuat tabel-tabel nya.
1. Tabel admin.
Ketikkan admin pada kolom Name dan ketikkan angka 2 pada kolom Number of field di
bawah tulisan Create new table on database sip karena di dalam tabel admin terdapat 2
field, kemudian klik tombol Go.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 51
Windiarto Nugroho, Dewi Ekawati
Gambar Proses awal pembuatan tabel admin
Setelah tabel admin berhasil dibuat. Isikankan data-data tabel admin yang ada pada
tabel berikut :
Karena pada tabel admin tidak ada primary key dan relasi maka tidak menekan tombol
primary key dan index. Setelah diisikan semuanya klik tombol Save, sehingga hasilnya
sebagai berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 52
Windiarto Nugroho, Dewi Ekawati
Gambar Hasil Pembuatan Tabel admin
2. Tabel dokter.
Ketikkan dokter pada kolom Name dan ketikkan angka 8 pada kolom Number of field di
bawah tulisan Create new table on database sip karena di dalam tabel dokter terdapat 8
field, kemudian klik tombol Go.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 53
Windiarto Nugroho, Dewi Ekawati
password varchar 200 Not null - -
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 54
Windiarto Nugroho, Dewi Ekawati
Gambar hasil insert dan pembuatan tabel dokter
3. Tabel obat.
Ketikkan obat pada kolom Name dan ketikkan angka 3 pada kolom Number of field di
bawah tulisan Create new table on database sip karena di dalam tabel obat terdapat 3
field, kemudian klik tombol Go.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 55
Windiarto Nugroho, Dewi Ekawati
Tabel Rancangan untuk tabel obat
Seperti pada gambar berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 56
Windiarto Nugroho, Dewi Ekawati
Ketikkan pasien pada kolom Name dan ketikkan angka 17 pada kolom Number of field
di bawah tulisan Create new table on database sip karena di dalam tabel pasien
terdapat 17 field, kemudian klik tombol Go.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 57
Windiarto Nugroho, Dewi Ekawati
Umur varchar 20 Null - -
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 58
Windiarto Nugroho, Dewi Ekawati
Gambar Pembuatan Tabel pasien
Karena pada tabel pasien ada primary key maka harus menekan tombol primary key pada
baris no_rkm_medis.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 59
Windiarto Nugroho, Dewi Ekawati
Gambar Hasil pembuatan tabel pasien
5. Tabel petugas.
Ketikkan petugas pada kolom Name dan ketikkan angka 7 pada kolom Number of field
di bawah tulisan Create new table on database sip karena di dalam tabel petugas
terdapat 7 field, kemudian klik tombol Go.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 61
Windiarto Nugroho, Dewi Ekawati
Setelah diisikan semuanya dan menekan tombol primary key kemudian klik tombol Save,
sehingga hasilnya sebagai berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 62
Windiarto Nugroho, Dewi Ekawati
jam_reg time Null - -
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 63
Windiarto Nugroho, Dewi Ekawati
Gambar hasil pembuatan tabel reg_periksa
Pada tabel reg_periksa ini ada index yang digunakan untuk relasi,maka harus ada proses
perelasian dengan cara klik Relation view seperti yang dilingkari pada gambar di atas.
Buatlah dan isikan pada kolom kd_dokter dengan klik anak panah ke bawah dan pilihlah
dokter->kd_dokter, no_rkm_medis diisi pasien->no_rkm_medis dan nip diisi petugas-
>nip karena di tabel reg_periksa berelasi dan membutuhkan tabel dokter, pasien dan petugas.
Kemudian setelah selesai merelasi pada kolom ON UPDATE diisi atau pilih CASCADE
yang berfungsi untuk membuat relasi baris, baris dalam tabel anak akan di update ketika
baris yang berkaitan/berelasi juga akan di update. Dalam kondisi ini ON DELETE tidak di
aktifkan CASCADE nya karena agar jika baris dalam tabel anak akan dihapus ketika baris
yang berkaitan/berelasi tidak akan terhapus.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 64
Windiarto Nugroho, Dewi Ekawati
Gambar pembuatan relasi di tabel reg_periksa
Jika sudah terisi seperti yang diinginkan seperti gambar di atas kemudian klik Save untuk
menyimpan proses relasi tersebut.
7. Tabel tarif_tindakan.
Ketikkan tarif_tindakan pada kolom Name dan ketikkan angka 3 pada kolom Number of
field di bawah tulisan Create new table on database sip karena di dalam tabel
tarif_tindakan terdapat 3 field, kemudian klik tombol Go.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 65
Windiarto Nugroho, Dewi Ekawati
Tabel Rancangan untuk tabel tarif_tindakan
Seperti pada gambar berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 66
Windiarto Nugroho, Dewi Ekawati
Gambar Proses awal pembuatan tabel pemberian obat
Setelah tabel pemberian_obat berhasil dibuat. Isikankan data-data tabel
pemberian_obat yang ada pada tabel berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 67
Windiarto Nugroho, Dewi Ekawati
Karena pada tabel pemberian_obat ada primary key dan index yang digunakan untuk
relasi maka harus menekan tombol button primary key pada baris no_rawat dan
kode_obat.
Pada tabel pemberian_obat ini ada index yang digunakan untuk relasi,maka harus ada proses
perelasian dengan cara klik Relation view. Buatlah dan isikan pada kolom kode_obat dengan
klik anak panah ke bawah dan pilihlah obat->kode_obat, karena di tabel pemberian_obat
berelasi dan membutuhkan tabel obat. Kemudian setelah selesai merelasi pada kolom ON
UPDATE diisi atau pilih CASCADE yang berfungsi untuk membuat relasi baris, baris
dalam tabel anak akan di update ketika baris yang berkaitan/berelasi juga akan di update.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 68
Windiarto Nugroho, Dewi Ekawati
Gambar Pembuatan relasi di tabel pemberian_obat
Jika sudah terisi seperti yang diinginkan seperti gambar di atas kemudian klik Save untuk
menyimpan proses relasi tersebut.
9. Tabel rawat_jalan.
Ketikkan rawat_jalan pada kolom Name dan ketikkan angka 10 pada kolom Number of
field di bawah tulisan Create new table on database sip karena di dalam tabel
rawat_jalan terdapat 10 field, kemudian klik tombol Go.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 69
Windiarto Nugroho, Dewi Ekawati
biaya_rawat double null - -
Karena pada tabel rawat_jalan ada primary key yang digunakan untuk relasi maka harus
menekan tombol button primary key pada baris no_rawat, diagnosa, kd_tindakan, dan
kd_dokter.
Setelah semuanya diisikan dan menekan tombol primary key kemudian klik tombol Save,
sehingga hasilnya sebagai berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 70
Windiarto Nugroho, Dewi Ekawati
Gambar hasil pembuatan tabel rawat_jalan
Pada tabel rawat_jalan ini ada index yang digunakan untuk relasi,maka harus ada proses
perelasian dengan cara klik Relation view. Buatlah dan isikan pada kolom no_rawat dengan
klik anak panah ke bawah dan pilihlah pemberian_obat->no_rawat, tarif_tindakan diisi
tariff_tindakan->kd_tindakan dan kd_dokter diisi dokter->kd_dokter karena di tabel
rawat_jalan berelasi dan membutuhkan tabel pemberian_obat, tarif_tindakan dan dokter.
Kemudian setelah selesai merelasi pada kolom ON UPDATE diisi atau pilih CASCADE
yang berfungsi untuk membuat relasi baris, baris dalam tabel anak akan di update ketika
baris yang berkaitan/berelasi juga akan di update.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 71
Windiarto Nugroho, Dewi Ekawati
Setelah tabel pembayaran berhasil dibuat. Isikankan data-data tabel pembayaran yang ada
pada tabel berikut :
No varchar 50 Null - -
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 72
Windiarto Nugroho, Dewi Ekawati
Gambar Pembuatan Tabel pembayaran
Karena pada tabel pembayaran ada primary key yang digunakan untuk relasi maka
harus menekan tombol button primary key pada baris no_index dan klik button index
dada baris no_rawat.
Setelah semuanya diisikan dan menekan tombol primary key dan index kemudian klik
tombol Save, sehingga hasilnya sebagai berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 73
Windiarto Nugroho, Dewi Ekawati
Gambar Hasil pembuatan tabel pembayaran
Pada tabel pembayaran ini ada index yang digunakan untuk relasi,maka harus ada proses
perelasian dengan cara klik Relation view. Buatlah dan isikan pada kolom no_rawat dengan
klik anak panah ke bawah dan pilihlah rawat_jalan->no_rawat, karena di tabel
pembayaran berelasi dan membutuhkan rawat_jalan. Kemudian setelah selesai merelasi pada
kolom ON UPDATE diisi atau pilih CASCADE yang berfungsi untuk membuat relasi baris,
baris dalam tabel anak akan di update ketika baris yang berkaitan/berelasi juga akan di
update.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 74
Windiarto Nugroho, Dewi Ekawati
Jika sudah terisi seperti yang diinginkan seperti gambar di atas kemudian klik Save untuk
menyimpan proses relasi tersebut.
d. Setelah semua langkah-langkah selesai dikerjakan database SIP telah selesai dibuat dan
siap digunakan untuk pembuatan software berikutnya.
Perhatikan setiap fieldnya, baik type data maupun panjang datanya karena dalam
MySQL terdapat beberapa type data yang berbeda-beda sesuai dengan kebutuhan
penggunaannya.
MySQL menggunakan banyak jenis data yang berbeda, yang dipecah menjadi tiga
kategori: numerik, tanggal dan waktu, dan tipe string.
1. Tipe Data Numerik : MySQL menggunakan semua standar ANSI SQL tipe data numerik,
jadi jika Anda datang ke MySQL dari sistem database yang berbeda, definisi ini akan
tampak akrab bagi Anda. Daftar berikut menunjukkan jenis umum numerik data dan
deskripsi mereka.
INT – Sebuah bilangan bulat berukuran normal yang dapat ditandatangani atau
unsigned. Jika ditandatangani, rentang yang diijinkan adalah dari -2147483648 sampai
2147483647. Jika unsigned, rentang yang diijinkan adalah 0-4294967295. Anda dapat
menentukan lebar sampai dengan 11 digit.
TINYINT – Sebuah bilangan yang sangat kecil yang dapat ditandatangani atau
unsigned. Jika ditandatangani, rentang yang diijinkan adalah dari -128 sampai 127. Jika
unsigned, rentang yang diijinkan adalah dari 0 sampai 255. Anda dapat menentukan lebar
sampai dengan 4 digit.
SMALLINT – Sebuah integer kecil yang dapat ditandatangani atau unsigned. Jika
ditandatangani, rentang yang diijinkan adalah dari -32.768 ke 32767. Jika unsigned,
rentang yang diijinkan adalah dari 0 sampai 65535. Anda dapat menentukan lebar sampai
dengan 5 digit.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 75
Windiarto Nugroho, Dewi Ekawati
MEDIUMINT – Sebuah bilangan menengah yang dapat ditandatangani atau
unsigned. Jika ditandatangani, rentang yang diijinkan adalah dari -8388608 ke 8.388.607.
Jika unsigned, rentang yang diijinkan adalah 0-16777215. Anda dapat menentukan lebar
sampai dengan 9 digit.
BIGINT – Sebuah integer besar yang dapat ditandatangani atau unsigned. Jika
ditandatangani, rentang yang diijinkan adalah dari -9223372036854775808 ke
9223372036854775807. Jika unsigned, rentang yang diijinkan adalah 0-
18446744073709551615. Anda dapat menentukan lebar sampai dengan 11 digit.
Float (M, D) – Sebuah angka floating-point yang tidak dapat unsigned. Anda dapat
menentukan panjang tampilan (M) dan jumlah desimal (D). Ini tidak diperlukan dan akan
default ke 10,2, di mana 2 adalah jumlah desimal dan 10 adalah jumlah total digit
(termasuk desimal). Desimal presisi bisa pergi ke 24 tempat untuk sebuah Float.
DOUBLE (M, D) – Sebuah presisi angka floating-point ganda yang tidak dapat
unsigned. Anda dapat menentukan panjang tampilan (M) dan jumlah desimal (D). Ini tidak
diperlukan dan akan default ke 16,4, dimana 4 adalah jumlah desimal. Desimal presisi bisa
pergi ke 53 tempat untuk sebuah DOUBLE. REAL adalah sinonim untuk DOUBLE.
DECIMAL (M, D) – Sebuah angka floating-point membongkar yang tidak dapat
unsigned. Dalam membongkar desimal, desimal masing-masing sesuai dengan satu byte.
Mendefinisikan panjang tampilan (M) dan jumlah desimal (D) diperlukan. NUMERIC
adalah sinonim untuk DECIMAL.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 76
Windiarto Nugroho, Dewi Ekawati
Meskipun tipe numerik dan tanggal yang menyenangkan, sebagian besar data Anda
akan menyimpan akan dalam format string. Daftar ini menggambarkan tipe data string
yang umum di MySQL.
CHAR (M) – Sebuah string yang tetap-panjang antara 1 dan 255 karakter
(misalnya CHAR (5)), kanan diisi dengan spasi dengan panjang tertentu bila disimpan.
Mendefinisikan panjang tidak diperlukan, tetapi defaultnya adalah 1.
VARCHAR (M) – Variabel string panjang antara 1 dan 255 karakter, misalnya
VARCHAR (25). Anda harus menentukan panjang saat membuat bidang VARCHAR.
BLOB atau TEXT – Field dengan panjang maksimum 65535 karakter. Gumpalan
adalah “Objects Besar Biner” dan digunakan untuk menyimpan sejumlah besar data biner,
seperti gambar atau jenis file lainnya. Fields didefinisikan sebagai TEKS juga memegang
sejumlah besar data, perbedaan antara keduanya adalah bahwa macam dan perbandingan
pada data yang tersimpan bersifat case sensitif pada gumpalan dan tidak case sensitif di
bidang TEKS. Anda tidak menentukan panjang dengan BLOB atau TEXT.
TINYBLOB atau TINYTEXT – Sebuah BLOB atau TEXT kolom dengan panjang
maksimum 255 karakter. Anda tidak menentukan panjang dengan TINYBLOB atau
TINYTEXT.
MEDIUMBLOB atau MEDIUMTEXT – Sebuah BLOB atau TEXT dengan kolom
panjang maksimum 16777215 karakter. Anda tidak menentukan panjang dengan
MEDIUMBLOB atau MEDIUMTEXT.
LONGBLOB atau LONGTEXT – Sebuah BLOB atau TEXT dengan kolom
panjang maksimum 4294967295 karakter. Anda tidak menentukan panjang dengan
LONGBLOB atau LONGTEXT.
ENUM – Sebuah enumerasi, yang merupakan istilah keren untuk daftar. Ketika
mendefinisikan sebuah ENUM, Anda membuat daftar item dari nilai yang harus dipilih
(atau dapat menjadi NULL). Sebagai contoh, jika Anda ingin untuk memuat bidang “A”
atau “B” atau “C”, Anda akan mendefinisikan Anda sebagai ENUM ENUM (‘A’, ‘B’, ‘C’)
dan hanya nilai-nilai (atau NULL) pernah bisa mengisi bidang tersebut.
Bagi anda yang ingin memperdalam penggunaan database mysql ini bisa mengunjungi
situs http://www.mysql.com/. Di dalam situs tersebut terdapat lengkap sekali penggunaan
database mysql, perintah-perintah sql yang bisa digunakan, kemampuan dasar mysql sampai
pembahasan mengenai penerapan database dalam berbagai bahasa pemrograman. Setelah
selesai pembuatan seluruh tabel maka langkah selanjutnya adalah langkah pembuatan
aplikasinya.
Setelah membuat database, langkah selanjutnya adalah membuat program
menggunakan java netbeans. Langkah-langkahnya adalah sebagai berikut :
1. Kita buka dulu program netbeans dari komputer. Caranya klik Start, kemudian pilih
Netbeans IDE
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 77
Windiarto Nugroho, Dewi Ekawati
Gambar Pemanggilan Software Netbeans
2. Setelah terbuka, akan tampil kurang lebih sebagai
berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 78
Windiarto Nugroho, Dewi Ekawati
Gambar Saat Netbeans Terbuka Pertama Kali
3. Klik File kemudian pilih New Project, kemudian klik Java pilih Java Application.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 79
Windiarto Nugroho, Dewi Ekawati
4. Klik Next, sehingga muncul tampilan berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 81
Windiarto Nugroho, Dewi Ekawati
Gambar Tampilan pembuatan folder baru.
6. Setelah muncul Folder Name, beri nama foldernya dengan setting kemudian klik Finish.
Di dalam folder setting ini nanti file database.xml akan diletakkan.
7. Setelah berhasil membuat folder setting, langkah selanjutnya pada folder setting klik
kanan pilih New, pilih Other. Kemudian klik XML, pilih XML Document, klik Next.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 82
Windiarto Nugroho, Dewi Ekawati
Gambar Tampilan pembuatan database.xml.
8. Setelah klik Next, akan muncul tampilan menu dan tentukan nama XML nya dengan
nama database lalu klik Next.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 83
Windiarto Nugroho, Dewi Ekawati
Tampilan penentuan nama dan lokasi XML.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 85
Windiarto Nugroho, Dewi Ekawati
12. Beri nama class/Class Name dengan nama koneksiDB lalu klik Finish. Class ini nanti
digunakan untuk membaca isi dari file database.xml yang sebelumnya sudah dibuat.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 86
Windiarto Nugroho, Dewi Ekawati
}
Setelah diketikkan kode program di atas, bukan berarti langsung selesai, karena
masih ada yang error disebabkan belum diimportnya library yang dibutuhkan. Untuk
mengimport library, silahkan klik tanda lampu kuning di sebelah kiri seperti pada
gambar berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 87
Windiarto Nugroho, Dewi Ekawati
Gambar Tampilan Kode Program koneksiDB.java
A. Membuat form dan tampilan tiap tabel.
1. Form Utama
Langkah-langkah membuat form utama.
a. Klik kanan pada javasip kemudian pilih New pilih JFrameForm.
b. Tentukan nama dan lokasinya, beri nama frmUtama lalu klik Finish.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 88
Windiarto Nugroho, Dewi Ekawati
Gambar Tampilan Perancangan Menu
Untuk membuat menu seperti di atas, yang harus dilakukan adalah dengan
memilih component yang ada di palete di sebelah kanan form netbeans dan
memasukkannya ke dalam frmUtama yang telah dibuat. Untuk memasukkan
menu, kita pilih pada group Swing Menus, kita pilih Menu Bar, klik kemudian
tarik ke dalam frmUtama.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 89
Windiarto Nugroho, Dewi Ekawati
Untuk mengedit menu yang ada, silahkan klik pada menu misalnya file, klik
kanan pilih Edit Teks, Kemudian Ganti dengan login. Silahkan sesuaikan dengan
desain menu yang ada. Jika ingin menambah menu, klik dulu MenuBar yang tadi
dimasukkan, klik kanan pilih Add Menu
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 90
Windiarto Nugroho, Dewi Ekawati
Panel Propertis, pilih icon, klik elips di sebelah kanan combobox Icon, pilih
Eksternal Image.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 91
Windiarto Nugroho, Dewi Ekawati
Pembuatan frmAdmin.
c. Buat tampilan frmAdmin seperti gambar berikut
Design frmAdmin.
Untuk title component yang digunakan adalah JLabel, Untuk inputan data
yang digunakan adalah JTextField, Untuk tabel yang digunakan adalah JTable,
caranya sama seperti sebelumnya tinggal memilih compenent yang ada di Swing
Control.
d. Ulangi dari langkah a-c untuk membuat form-form yang lain, berikut tampilan
dari form-form yang sudah dibuat :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 92
Windiarto Nugroho, Dewi Ekawati
Design frmDokter.
Design frmObat
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 93
Windiarto Nugroho, Dewi Ekawati
Gambar 2.7. Design frmPasien
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 94
Windiarto Nugroho, Dewi Ekawati
Gambar 2.9. Design frmTarifTindakan
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 95
Windiarto Nugroho, Dewi Ekawati
Gambar 2.11. Design frmRawatJalan
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 96
Windiarto Nugroho, Dewi Ekawati
Gambar 2.13. Design frmPembayaran
B. Pengkodingan untuk Pemanggilan Form, tombol Simpan, Ganti, Hapus, Baru, Keluar,
Keyword, Cari, dan View Tabel beserta Mouse Clicked.
Sebelum pengkodingan pada tombol-tombol lakukan pengkodingan untuk koneksi
penyimpanan, edit dan hapus. Berikut langkah-langkahnya :
- Kembali ke source koneksiDB, kemudian ketikkan source program berikut untuk
koneksi simpan, ganti dan hapus data ke database :
public static void insertData(String table,String nilai){
try {
koneksiDB.condb().createStatement().executeUpdate(
"insert into "+table+" values ("+nilai+")");
} catch (SQLException ex) {
System.out.println(""+ex);
}
}
public static void hapusData(String table,String nilai){
try {
koneksiDB.condb().createStatement().executeUpdate(
"delete from "+table+" "+nilai+"");
} catch (SQLException ex) {
System.out.println(""+ex);
}
}
public static void editData(String table,String nilai){
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 97
Windiarto Nugroho, Dewi Ekawati
try {
koneksiDB.condb().createStatement().executeUpdate(
"update "+table+" "+nilai+"");
} catch (SQLException ex) {
System.out.println(""+ex);
}
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 98
Windiarto Nugroho, Dewi Ekawati
Gambar 3.2. Tampilan source pemanggilan frmUtama
2. Form Admin (coding tombol Simpan, Ganti, Hapus, Baru, Keluar, View Tabel
beserta Mouse Clicked dan pemanggilan dari form utama)
a. Buka frmAdmin, kemudian klik kanan pada tombol Simpan, pilih Event, pilih
Action, pilih Action Performed. Ketikkan source program berikut :
koneksiDB.insertData("admin","'"+TxtUser.getText()+"','"+
TxtPass.getText()+"'");
b. Klik kanan pada tombol Ganti, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.editData("admin"," set pass='"+TxtPass.getText()+"' where
user='"+
TxtUser.getText()+"'");
c. Klik kanan pada tombol Hapus, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.hapusData("admin"," where user='"+TxtUser.getText()+"'");
d. Klik kanan pada tombol Baru, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
TxtUser.setText("");
TxtPass.setText("");
e. Klik kanan pada tombol Keluar, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
dispose();
f. Untuk view tabel kembali ke source frmAdmin bagian atas, ketikkan source
program DefaultTableModel tabmode; di bawah source program public class
frmAdmin extends javax.swing.JDialog { .
Kemudian di bawah source program public frmAdmin(java.awt.Frame parent,
boolean modal) {
super(parent, modal);
ketikkan source program berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 99
Windiarto Nugroho, Dewi Ekawati
String[] judul={"Id Admin","Password"};
tabmode=new DefaultTableModel(judul,0);
jTableAdmin.setModel(tabmode);
tampil();
g. Di samping source tampil(); pasti ada icon error, icon error berwarna kuning dan
merah, kita klik kemudian pilih Create Method Tampil() in javasip.frmAdmin.
Sehingga tampilan seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 100
Windiarto Nugroho, Dewi Ekawati
j. Kembali ke design frmAdmin untuk mengaktifkan mouse clicked pada tabel.
Kemudian klik kanan pada tabel, pilih Event, pilih Mouse, pilih MouseClicked.
Setelah itu, ketikkan source program berikut :
int i=jTableAdmin.getSelectedRow();
if (i>-1){
TxtUser.setText(tabmode.getValueAt(i, 0). toString());
TxtPass.setText(tabmode.getValueAt(i, 1). toString());
}
k. Panggil frmAdmin pada frmUtama dengan klik kanan pada tombol Data Admin,
pilih Event, pilih Action, pilih Action Performed lalu ketikkan source program
berikut :
frmAdmin admin=new frmAdmin(this,false);
admin.setLocationRelativeTo(null);
admin.setVisible(true);
l. Coba jalankan programnya dengan menekan tombol F6. Sehingga hasil
programnya sebagai berikut :
Keterangan :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 101
Windiarto Nugroho, Dewi Ekawati
- Setiap mengetikkan tiap kata source program gunakan Ctrl-Space supaya
tidak terjadi kesalahan dalam penulisan.
- Sesuaikan nama variable textfield masing-masing.
- Sesuaikan SQL dengan databasenya.
- Sesuaikan judul field tabel masing-masing.
- Jika pengkodingannya menggunakan copy-paste gunakan Ctrl-Space untuk
mengatasi error yang terjadi di setiap kata yang mengalami error.
3. Form Dokter (coding tombol Simpan, Ganti, Hapus, Baru, Keluar, Keyword, View
Tabel beserta Mouse Clicked dan pemanggilan dari form utama)
a. Buka frmDokter, kemudian klik kanan pada tombol Simpan, pilih Event, pilih
Action, pilih Action Performed. Ketikkan source program berikut :
koneksiDB.insertData("dokter","'"+jTextDokter.getText()+"','"+
jTextNama.getText()+"','"+
jComboBox1.getSelectedItem()+"','"+
jTextTmpLahir.getText()+"','"+
jTextTglLhr.getText()+"','"+
jTextNoIjinPraktek.getText()+"','"+
jTextAlm.getText()+"','"+
jTextPass.getText()+"'");
b. Klik kanan pada tombol Ganti, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.editData("dokter"," set
nm_dokter='"+jTextNama.getText()+"' ,jk='"+
jComboBox1.getSelectedItem()+"' ,tmp_lahir='"+
jTextTmpLahir.getText()+"' ,no_ijin_praktek='"+
jTextNoIjinPraktek.getText()+"' ,alamat='"+
jTextAlm.getText()+"' ,password='"+
jTextPass.getText()+"' where kd_dokter='"+
jTextDokter.getText()+"'");
c. Klik kanan pada tombol Hapus, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.hapusData("dokter"," where
kd_dokter='"+jTextDokter.getText()+"'");
d. Klik kanan pada tombol Baru, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
jTextDokter.setText("");
jTextNama.setText("");
jTextTmpLahir.setText("");
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 102
Windiarto Nugroho, Dewi Ekawati
jTextTglLhr.setText("");
jTextNoIjinPraktek.setText("");
jTextAlm.setText("");
jTextPass.setText("");
e. Klik kanan pada tombol Keluar, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
dispose();
f. Untuk view tabel kembali ke source frmDokter bagian atas, ketikkan source
program DefaultTableModel tabmode; di bawah source program public class
frmDokter extends javax.swing.JDialog { .
Kemudian di bawah source program public frmDokter(java.awt.Frame parent,
boolean modal) {
super(parent, modal);
ketikkan source program berikut :
String[] judul={"Kd Dokter","Nama Dokter","Jenis Kelamin","Tempat
Lahir","Tanggal Lahir","N.I.P","Alamat","Password"};
tabmode=new DefaultTableModel(judul,0);
jTableDokter.setModel(tabmode);
tampil();
g. Di samping source tampil(); pasti ada icon error, icon error berwarna kuning dan
merah, kita klik kemudian pilih Create Method Tampil() in javasip.frmDokter.
Sehingga tampilan seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 103
Windiarto Nugroho, Dewi Ekawati
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmDokter.class.getName()).log(Level.SEVERE,
null, ex);
}
}
public JTable getdata(){
return jTableDokter;
}
public DefaultTableModel getMode() {
return tabmode;
}
i. Ketikkan method tampil(); di bawah source program simpan, ganti, dan hapus.
j. Kembali ke design frmDokter untuk mengaktifkan mouse clicked pada tabel.
Kemudian klik kanan pada tabel, pilih Event, pilih Mouse, pilih MouseClicked.
Setelah itu, ketikkan source program berikut :
int i=jTableDokter.getSelectedRow();
if (i>-1){
jTextDokter.setText(tabmode.getValueAt(i, 0). toString());
jTextNama.setText(tabmode.getValueAt(i, 1). toString());
jComboBox1.setSelectedItem(tabmode.getValueAt(i, 2). toString());
jTextTmpLahir.setText(tabmode.getValueAt(i, 3). toString());
jTextTglLhr.setText(tabmode.getValueAt(i, 4). toString());
jTextNoIjinPraktek.setText(tabmode.getValueAt(i, 5). toString());
jTextAlm.setText(tabmode.getValueAt(i, 6). toString());
jTextPass.setText(tabmode.getValueAt(i, 7). toString());
}
k. Kembali ke design frmDokter untuk mengaktifkan tombol keyword. Kemudian
klik kanan pada tombol , pilih Event, pilih Action, pilih ActionPerformed lalu
ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 104
Windiarto Nugroho, Dewi Ekawati
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select * from
dokter where kd_dokter like '%"+
jTextKeyword.getText()+"%' or nm_dokter like '%"+
jTextKeyword.getText()+"%' or jk like '%"+
jTextKeyword.getText()+"%' or tmp_lahir like '%"+
jTextKeyword.getText()+"%' or tgl_lahir like '%"+
jTextKeyword.getText()+"%' or no_ijin_praktek like '%"+
jTextKeyword.getText()+"%' or alamat like '%"+
jTextKeyword.getText()+"%' or password like '%"+
jTextKeyword.getText()+"%'");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmObat.class.getName()).log(Level.SEVERE, null,
ex);
}
l. Kembali ke design frmDokter untuk mengaktifkan tombol keyword. Kemudian
klik kanan pada tombol , pilih Event, pilih Action, pilih ActionPerformed lalu
ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select * from
dokter");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 105
Windiarto Nugroho, Dewi Ekawati
Logger.getLogger(frmObat.class.getName()).log(Level.SEVERE, null,
ex);
}
m. Panggil frmDokter pada frmUtama dengan klik kanan pada tombol Data Dokter,
pilih Event, pilih Action, pilih Action Performed lalu ketikkan source program
berikut :
frmDokter dokter=new frmDokter(this,false);
dokter.setLocationRelativeTo(null);
dokter.setVisible(true);
n. Coba jalankan programnya dengan menekan tombol F6. Sehingga hasil
programnya sebagai berikut :
Keterangan :
- Setiap mengetikkan tiap kata source program gunakan Ctrl-Space supaya
tidak terjadi kesalahan dalam penulisan.
- Sesuaikan nama variable textfield masing-masing.
- Sesuaikan SQL dengan databasenya.
- Sesuaikan judul field tabel masing-masing.
- Jika pengkodingannya menggunakan copy-paste gunakan Ctrl-Space untuk
mengatasi error yang terjadi di setiap kata yang mengalami error.
4. Form Obat (coding tombol Simpan, Ganti, Hapus, Baru, Keluar, Keyword, View
Tabel beserta Mouse Clicked dan pemanggilan dari form utama)
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 106
Windiarto Nugroho, Dewi Ekawati
a. Buka frmObat, kemudian klik kanan pada tombol Simpan, pilih Event, pilih
Action, pilih Action Performed. Ketikkan source program berikut :
koneksiDB.insertData("obat","'"+jTextKodeObat.getText()+"','"+
jTextNamaObat.getText()+"','"+
jTextHarga.getText()+"'");
b. Klik kanan pada tombol Ganti, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.editData("obat"," set
nama_obat='"+jTextNamaObat.getText()+"' ,harga='"+
jTextHarga.getText()+"' where kode_obat='"+
jTextKodeObat.getText()+"'");
c. Klik kanan pada tombol Hapus, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.hapusData("obat"," where
kode_obat='"+jTextKodeObat.getText()+"'");
d. Klik kanan pada tombol Baru, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
jTextKodeObat.setText("");
jTextNamaObat.setText("");
jTextHarga.setText("");
e. Klik kanan pada tombol Keluar, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
dispose();
f. Untuk view tabel kembali ke source frmObat bagian atas, ketikkan source
program DefaultTableModel tabmode; di bawah source program public class
frmObat extends javax.swing.JDialog { .
Kemudian di bawah source program public frmObat(java.awt.Frame parent,
boolean modal) {
super(parent, modal);
ketikkan source program berikut :
String[] judul={"Kd Obat","Nama Obat","Harga"};
tabmode=new DefaultTableModel(judul,0);
jTableObat.setModel(tabmode);
tampil();
g. Di samping source tampil(); pasti ada icon error, icon error berwarna kuning dan
merah, kita klik kemudian pilih Create Method Tampil() in javasip.frmObat.
Sehingga tampilan seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 107
Windiarto Nugroho, Dewi Ekawati
Gambar 3.7. Tampilan buat method tampil
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 108
Windiarto Nugroho, Dewi Ekawati
k. Kembali ke design frmObat untuk mengaktifkan tombol keyword. Kemudian klik
kanan pada tombol , pilih Event, pilih Action, pilih ActionPerformed lalu
ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select * from obat
where kode_obat like '%"+
jTextKeyword.getText()+"%' or nama_obat like '%"+
jTextKeyword.getText()+"%' or harga like '%"+
jTextKeyword.getText()+"%'");
while(rs.next()){
String[] data={rs.getString(1),rs.getString(2),rs.getString(3)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmObat.class.getName()).log(Level.SEVERE, null,
ex);
}
}
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 110
Windiarto Nugroho, Dewi Ekawati
Gambar 3.8. Tampilan hasil program frmObat
Keterangan :
- Setiap mengetikkan tiap kata source program gunakan Ctrl-Space supaya
tidak terjadi kesalahan dalam penulisan.
- Sesuaikan nama variable textfield masing-masing.
- Sesuaikan SQL dengan databasenya.
- Sesuaikan judul field tabel masing-masing.
- Jika pengkodingannya menggunakan copy-paste gunakan Ctrl-Space untuk
mengatasi error yang terjadi di setiap kata yang mengalami error.
5. Form Pasien (coding tombol Simpan, Ganti, Hapus, Baru, Keluar, Keyword, View
Tabel beserta Mouse Clicked dan pemanggilan dari form utama)
a. Buka frmPasien, kemudian klik kanan pada tombol Simpan, pilih Event, pilih
Action, pilih Action Performed. Ketikkan source program berikut :
koneksiDB.insertData("pasien","'"+jTextNoRekamMedis.getText()+"','"+
jTextNamaPasien.getText()+"','"+
jTextNoKTP.getText()+"','"+
jCombojk.getSelectedItem()+"','"+
jTextTmpLhr.getText()+"','"+
jTextTglLhr.getText()+"','"+
jTextAlm.getText()+"','"+
jComboGol.getSelectedItem()+"','"+
jTextPekerjaan.getText()+"','"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 111
Windiarto Nugroho, Dewi Ekawati
jCombostatus.getSelectedItem()+"','"+
jTextAgama.getText()+"','"+
jTextTglDaftar.getText()+"','"+
jTextNoTelp.getText()+"','"+
jTextUmur.getText()+"','"+
jComboPnd.getSelectedItem()+"','"+
jComboKel.getSelectedItem()+"','"+
jTextNamaKeluarga.getText()+"'");
b. Klik kanan pada tombol Ganti, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.editData("pasien"," set
nm_pasien='"+jTextNamaPasien.getText()+"' ,no_ktp='"+
jTextNoKTP.getText()+"' ,jk='"+
jCombojk.getSelectedItem()+"' ,tmp_lahir='"+
jTextTmpLhr.getText()+"' ,tgl_lahir='"+
jTextTglLhr.getText()+"' ,alamat='"+
jTextAlm.getText()+"' ,gol_darah='"+
jComboGol.getSelectedItem()+"' ,pekerjaan='"+
jTextPekerjaan.getText()+"' ,stts_nikah='"+
jCombostatus.getSelectedItem()+"' ,agama='"+
jTextAgama.getText()+"' ,tgl_daftar='"+
jTextTglDaftar.getText()+"' ,no_tlp='"+
jTextNoTelp.getText()+"' ,umur='"+
jTextUmur.getText()+"' ,pnd='"+
jComboPnd.getSelectedItem()+"' ,keluarga='"+
jComboKel.getSelectedItem()+"' ,namakeluarga='"+
jTextNamaKeluarga.getText()+"' where no_rkm_medis='"+
jTextNoRekamMedis.getText()+"'");
c. Klik kanan pada tombol Hapus, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.hapusData("pasien"," where
no_rkm_medis='"+jTextNoRekamMedis.getText()+"'");
d. Klik kanan pada tombol Baru, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
jTextNoRekamMedis.setText("");
jTextNamaPasien.setText("");
jTextNoKTP.setText("");
jTextTmpLhr.setText("");
jTextTglLhr.setText("");
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 112
Windiarto Nugroho, Dewi Ekawati
jTextAlm.setText("");
jTextPekerjaan.setText("");
jTextAgama.setText("");
jTextTglDaftar.setText("");
jTextNoTelp.setText("");
jTextUmur.setText("");
jTextNamaKeluarga.setText("");
e. Klik kanan pada tombol Keluar, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
dispose();
f. Untuk view tabel kembali ke source frmPasien bagian atas, ketikkan source
program DefaultTableModel tabmode; di bawah source program public class
frmPasien extends javax.swing.JDialog { .
Kemudian di bawah source program public frmPasien(java.awt.Frame parent,
boolean modal) {
super(parent, modal);
ketikkan source program berikut :
String[] judul={"No.R.Medis","Nama
Pasien","No.KTP","J.Kelamin","Tempat Lahir","Tgl
Lahir","Alamat","Gol.Darah","pekerjaan","Status Nikah","Agama","Tgl
Daftar","No.Telp","Umur","Pendidikan","Keluarga","Nama Kel"};
tabmode=new DefaultTableModel(judul,0);
jTablePasien.setModel(tabmode);
tampil();
g. Di samping source tampil(); pasti ada icon error, icon error berwarna kuning dan
merah, kita klik kemudian pilih Create Method Tampil() in javasip.frmPasien.
Sehingga tampilan seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 113
Windiarto Nugroho, Dewi Ekawati
ResultSet rs=koneksiDB.condb().createStatement().executeQuery(
"select * from pasien");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getStrin
g(10),rs.getString(11),rs.getString(12),rs.getString(13),rs.getString(14),rs.get
String(15),rs.getString(16),rs.getString(17)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmPasien.class.getName()).log(Level.SEVERE,
null, ex);
}
}
public JTable getdata(){
return jTablePasien;
}
public DefaultTableModel getMode() {
return tabmode;
}
i. Ketikkan method tampil(); di bawah source program simpan, ganti, dan hapus.
j. Kembali ke design frmPasien untuk mengaktifkan mouse clicked pada tabel.
Kemudian klik kanan pada tabel, pilih Event, pilih Mouse, pilih MouseClicked.
Setelah itu, ketikkan source program berikut :
int i=jTablePasien.getSelectedRow();
if (i>-1){
jTextNoRekamMedis.setText(tabmode.getValueAt(i, 0). toString());
jTextNamaPasien.setText(tabmode.getValueAt(i, 1). toString());
jTextNoKTP.setText(tabmode.getValueAt(i, 2). toString());
jCombojk.setSelectedItem(tabmode.getValueAt(i, 3). toString());
jTextTmpLhr.setText(tabmode.getValueAt(i, 4). toString());
jTextTglLhr.setText(tabmode.getValueAt(i, 5). toString());
jTextAlm.setText(tabmode.getValueAt(i, 6). toString());
jComboGol.setSelectedItem(tabmode.getValueAt(i, 7). toString());
jTextPekerjaan.setText(tabmode.getValueAt(i, 8). toString());
jCombostatus.setSelectedItem(tabmode.getValueAt(i, 9). toString());
jTextAgama.setText(tabmode.getValueAt(i, 10). toString());
jTextTglDaftar.setText(tabmode.getValueAt(i, 11). toString());
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 114
Windiarto Nugroho, Dewi Ekawati
jTextNoTelp.setText(tabmode.getValueAt(i, 12). toString());
jTextUmur.setText(tabmode.getValueAt(i, 13). toString());
jComboPnd.setSelectedItem(tabmode.getValueAt(i, 14). toString());
jComboKel.setSelectedItem(tabmode.getValueAt(i, 15). toString());
jTextNamaKeluarga.setText(tabmode.getValueAt(i, 16). toString());
}
k. Kembali ke design frmPasien untuk mengaktifkan tombol keyword. Kemudian
klik kanan pada tombol , pilih Event, pilih Action, pilih ActionPerformed lalu
ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select * from pasien
where no_rkm_medis like '%"+
jTextKeyword.getText()+"%' or nm_pasien like '%"+
jTextKeyword.getText()+"%' or no_ktp like '%"+
jTextKeyword.getText()+"%' or jk like '%"+
jTextKeyword.getText()+"%' or tmp_lahir like '%"+
jTextKeyword.getText()+"%' or tgl_lahir like '%"+
jTextKeyword.getText()+"%' or alamat like '%"+
jTextKeyword.getText()+"%' or gol_darah like '%"+
jTextKeyword.getText()+"%' or pekerjaan like '%"+
jTextKeyword.getText()+"%' or stts_nikah like '%"+
jTextKeyword.getText()+"%' or agama like '%"+
jTextKeyword.getText()+"%' or tgl_daftar like '%"+
jTextKeyword.getText()+"%' or no_tlp like '%"+
jTextKeyword.getText()+"%' or umur like '%"+
jTextKeyword.getText()+"%' or pnd like '%"+
jTextKeyword.getText()+"%' or keluarga like '%"+
jTextKeyword.getText()+"%' or namakeluarga like '%"+
jTextKeyword.getText()+"%'");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getStrin
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 115
Windiarto Nugroho, Dewi Ekawati
g(10),rs.getString(11),rs.getString(12),rs.getString(13),rs.getString(14),rs.get
String(15),rs.getString(16),rs.getString(17)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmObat.class.getName()).log(Level.SEVERE, null,
ex);
}
l. Kembali ke design frmpPasien untuk mengaktifkan tombol keyword. Kemudian
klik kanan pada tombol , pilih Event, pilih Action, pilih ActionPerformed lalu
ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select * from
pasien");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getStrin
g(10),rs.getString(11),rs.getString(12),rs.getString(13),rs.getString(14),rs.get
String(15),rs.getString(16),rs.getString(17)}; tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmObat.class.getName()).log(Level.SEVERE, null,
ex);
}
m. Panggil frmPasien pada frmUtama dengan klik kanan pada tombol Data Pasien,
pilih Event, pilih Action, pilih Action Performed lalu ketikkan source program
berikut :
frmPasien pasien=new frmPasien(this,false);
pasien.setLocationRelativeTo(null);
pasien.setVisible(true);
n. Coba jalankan programnya dengan menekan tombol F6. Sehingga hasil
programnya sebagai berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 116
Windiarto Nugroho, Dewi Ekawati
Gambar 3.10. Tampilan hasil program frmPasien
Keterangan :
- Setiap mengetikkan tiap kata source program gunakan Ctrl-Space supaya
tidak terjadi kesalahan dalam penulisan.
- Sesuaikan nama variable textfield masing-masing.
- Sesuaikan SQL dengan databasenya.
- Sesuaikan judul field tabel masing-masing.
- Jika pengkodingannya menggunakan copy-paste gunakan Ctrl-Space untuk
mengatasi error yang terjadi di setiap kata yang mengalami error.
6. Form Petugas (coding tombol Simpan, Ganti, Hapus, Baru, Keluar, Keyword, View
Tabel beserta Mouse Clicked dan pemanggilan dari form utama)
a. Buka frmPetugas, kemudian klik kanan pada tombol Simpan, pilih Event, pilih
Action, pilih Action Performed. Ketikkan source program berikut :
koneksiDB.insertData("petugas","'"+TxtNip.getText()+"','"+
jTextNama.getText()+"','"+
jComboJk.getSelectedItem()+"','"+
jTextTmpLhr.getText()+"','"+
jTextTglLhr.getText()+"','"+
jTextAlm.getText()+"','"+
jTextPass.getText()+"'");
b. Klik kanan pada tombol Ganti, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.editData("petugas"," set
nama='"+jTextNama.getText()+"' ,jk='"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 117
Windiarto Nugroho, Dewi Ekawati
jComboJk.getSelectedItem()+"' ,tmp_lahir='"+
jTextTmpLhr.getText()+"' ,tgl_lahir='"+
jTextTglLhr.getText()+"' ,alamat='"+
jTextAlm.getText()+"' ,password='"+
jTextPass.getText()+"' where nip='"+
TxtNip.getText()+"'");
c. Klik kanan pada tombol Hapus, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.hapusData("petugas"," where nip='"+TxtNip.getText()+"'");
tampil();
d. Klik kanan pada tombol Baru, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
TxtNip.setText("");
jTextNama.setText("");
jTextTmpLhr.setText("");
jTextTglLhr.setText("");
jTextAlm.setText("");
jTextPass.setText("");
e. Klik kanan pada tombol Keluar, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
dispose();
f. Untuk view tabel kembali ke source frmPetugas bagian atas, ketikkan source
program DefaultTableModel tabmode; di bawah source program public class
frmPetugas extends javax.swing.JDialog { .
Kemudian di bawah source program public frmPetugas(java.awt.Frame parent,
boolean modal) {
super(parent, modal);
ketikkan source program berikut :
String[] judul={"N.I.P","Nama Petugas","Jenis Kelamin","Tempat
Lahir","Tanggal Lahir","Alamat","Password"};
tabmode=new DefaultTableModel(judul,0);
jTablePetugas.setModel(tabmode);
tampil();
g. Di samping source tampil(); pasti ada icon error, icon error berwarna kuning dan
merah, kita klik kemudian pilih Create Method Tampil() in javasip.frmPetugas.
Sehingga tampilan seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 118
Windiarto Nugroho, Dewi Ekawati
Gambar 3.11. Tampilan buat method tampil
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 119
Windiarto Nugroho, Dewi Ekawati
jTextAlm.setText(tabmode.getValueAt(i, 5). toString());
jTextPass.setText(tabmode.getValueAt(i, 6). toString());
}
k. Kembali ke design frmPetugas untuk mengaktifkan tombol keyword. Kemudian
klik kanan pada tombol , pilih Event, pilih Action, pilih ActionPerformed lalu
ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select * from
petugas where nip like '%"+
jTextKeyword.getText()+"%' or nama like '%"+
jTextKeyword.getText()+"%' or jk like '%"+
jTextKeyword.getText()+"%' or tmp_lahir like '%"+
jTextKeyword.getText()+"%' or tgl_lahir like '%"+
jTextKeyword.getText()+"%' or alamat like '%"+
jTextKeyword.getText()+"%' or password like '%"+
jTextKeyword.getText()+"%'");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmObat.class.getName()).log(Level.SEVERE, null,
ex);
}
l. Kembali ke design frmPetugas untuk mengaktifkan tombol keyword. Kemudian
klik kanan pada tombol , pilih Event, pilih Action, pilih ActionPerformed lalu
ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 120
Windiarto Nugroho, Dewi Ekawati
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select * from
petugas");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmObat.class.getName()).log(Level.SEVERE, null,
ex);
}
m. Panggil frmPetugas pada frmUtama dengan klik kanan pada tombol Data Petugas,
pilih Event, pilih Action, pilih Action Performed lalu ketikkan source program
berikut :
frmPetugas petugas=new frmPetugas(this,false);
petugas.setLocationRelativeTo(null);
petugas.setVisible(true);
n. Coba jalankan programnya dengan menekan tombol F6. Sehingga hasil
programnya sebagai berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 121
Windiarto Nugroho, Dewi Ekawati
Keterangan :
- Setiap mengetikkan tiap kata source program gunakan Ctrl-Space supaya
tidak terjadi kesalahan dalam penulisan.
- Sesuaikan nama variable textfield masing-masing.
- Sesuaikan SQL dengan databasenya.
- Sesuaikan judul field tabel masing-masing.
- Jika pengkodingannya menggunakan copy-paste gunakan Ctrl-Space untuk
mengatasi error yang terjadi di setiap kata yang mengalami error.
7. Form TarifTindakan (coding tombol Simpan, Ganti, Hapus, Baru, Keluar, Keyword,
View Tabel beserta Mouse Clicked dan pemanggilan dari form utama)
a. Buka frmTarifTindakan, kemudian klik kanan pada tombol Simpan, pilih Event,
pilih Action, pilih Action Performed. Ketikkan source program berikut :
koneksiDB.insertData("tarif_tindakan","'"+jTextKodeTindakan.getText()+
"','"+
jTextNamaTindakan.getText()+"','"+
jTextTarifTindakan.getText()+"'");
b. Klik kanan pada tombol Ganti, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.editData("tarif_tindakan"," set
nm_tindakan='"+jTextNamaTindakan.getText()+"' ,tarif='"+
jTextTarifTindakan.getText()+"' where kd_tindakan='"+
jTextKodeTindakan.getText()+"'");
c. Klik kanan pada tombol Hapus, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.hapusData("tarif_tindakan"," where
kd_tindakan='"+jTextKodeTindakan.getText()+"'");
d. Klik kanan pada tombol Baru, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
jTextKodeTindakan.setText("");
jTextNamaTindakan.setText("");
jTextTarifTindakan.setText("");
e. Klik kanan pada tombol Keluar, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
dispose();
f. Untuk view tabel kembali ke source frmTarifTindakan bagian atas, ketikkan
source program DefaultTableModel tabmode; di bawah source program public
class frmTarifTindakan extends javax.swing.JDialog { .
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 122
Windiarto Nugroho, Dewi Ekawati
Kemudian di bawah source program public frmTarifTindakan(java.awt.Frame
parent, boolean modal) {
super(parent, modal);
ketikkan source program berikut :
String[] judul={"Kd Tindakan","Nama Tindakan","Tarif Tindakan"};
tabmode=new DefaultTableModel(judul,0);
jTableTarifTindakan.setModel(tabmode);
tampil();
g. Di samping source tampil(); pasti ada icon error, icon error berwarna kuning dan
merah, kita klik kemudian pilih Create Method Tampil() in
javasip.frmTarifTndakan. Sehingga tampilan seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 123
Windiarto Nugroho, Dewi Ekawati
}
i. Ketikkan method tampil(); di bawah source program simpan, ganti, dan hapus.
j. Kembali ke design frmTarifTindakan untuk mengaktifkan mouse clicked pada
tabel. Kemudian klik kanan pada tabel, pilih Event, pilih Mouse, pilih
MouseClicked. Setelah itu, ketikkan source program berikut :
int i=jTableTarifTindakan.getSelectedRow();
if (i>-1){
jTextKodeTindakan.setText(tabmode.getValueAt(i, 0). toString());
jTextNamaTindakan.setText(tabmode.getValueAt(i, 1). toString());
jTextTarifTindakan.setText(tabmode.getValueAt(i, 2). toString());
}
k. Kembali ke design frmTarifTindakan untuk mengaktifkan tombol keyword.
Kemudian klik kanan pada tombol , pilih Event, pilih Action, pilih
ActionPerformed lalu ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select * from
tarif_tindakan where kd_tindakan like '%"+
jTextKeyword.getText()+"%' or nm_tindakan like '%"+
jTextKeyword.getText()+"%' or tarif like '%"+
jTextKeyword.getText()+"%'");
while(rs.next()){
String[] data={rs.getString(1),rs.getString(2),rs.getString(3)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmObat.class.getName()).log(Level.SEVERE, null,
ex);
}
l. Kembali ke design frmTarifTindakan untuk mengaktifkan tombol keyword.
Kemudian klik kanan pada tombol , pilih Event, pilih Action, pilih
ActionPerformed lalu ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 124
Windiarto Nugroho, Dewi Ekawati
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select * from
tarif_tindakan");
while(rs.next()){
String[] data={rs.getString(1),rs.getString(2),rs.getString(3)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmObat.class.getName()).log(Level.SEVERE, null,
ex);
}
m. Panggil frmTarifTindakan pada frmUtama dengan klik kanan pada tombol Data
Obat, pilih Event, pilih Action, pilih Action Performed lalu ketikkan source
program berikut :
frmTarifTindakan tindakan=new frmTarifTindakan(this,false);
tindakan.setLocationRelativeTo(null);
tindakan.setVisible(true);
n. Coba jalankan programnya dengan menekan tombol F6. Sehingga hasil
programnya sebagai berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 125
Windiarto Nugroho, Dewi Ekawati
Gambar 3.14. Tampilan hasil program frmTarifTindakan
Keterangan :
- Setiap mengetikkan tiap kata source program gunakan Ctrl-Space supaya
tidak terjadi kesalahan dalam penulisan.
- Sesuaikan nama variable textfield masing-masing.
- Sesuaikan SQL dengan databasenya.
- Sesuaikan judul field tabel masing-masing.
- Jika pengkodingannya menggunakan copy-paste gunakan Ctrl-Space untuk
mengatasi error yang terjadi di setiap kata yang mengalami error.
8. Form Registrasi (coding tombol Simpan, Ganti, Hapus, Baru, Keluar, Keyword, Cari,
View Tabel beserta Mouse Clicked dan pemanggilan dari form utama)
a. Buka frmRegPeriksa, kemudian klik kanan pada tombol Simpan, pilih Event,
pilih Action, pilih Action Performed. Ketikkan source program berikut :
koneksiDB.insertData("reg_periksa","'"+TxtNoRawat.getText()+"','"+
jTextTglReg.getText()+"','"+
jTextJamReg.getText()+"','"+
jTextKdDokter.getText()+"','"+
jTextNoRkmMedis.getText()+"','"+
jTextNIP.getText()+"','"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 126
Windiarto Nugroho, Dewi Ekawati
jTextBiayaReg.getText()+"'");
b. Klik kanan pada tombol Ganti, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.editData("reg_periksa"," set
tgl_registrasi='"+jTextTglReg.getText()+"' ,jam_reg='"+
jTextJamReg.getText()+"' ,kd_dokter='"+
jTextKdDokter.getText()+"' ,no_rkm_medis='"+
jTextNoRkmMedis.getText()+"' ,nip='"+
jTextNIP.getText()+"' ,biaya_reg='"+
jTextBiayaReg.getText()+"' where no_rawat='"+
TxtNoRawat.getText()+"'");
c. Klik kanan pada tombol Hapus, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.hapusData("reg_periksa"," where
no_rawat='"+TxtNoRawat.getText()+"'");
tampil();
d. Klik kanan pada tombol Baru, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
TxtNip.setText("");
jTextNama.setText("");
jTextTmpLhr.setText("");
jTextTglLhr.setText("");
jTextAlm.setText("");
jTextPass.setText("");
e. Klik kanan pada tombol Keluar, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
dispose();
f. Untuk view tabel kembali ke source frmRegPeriksa bagian atas, ketikkan source
program DefaultTableModel tabmode;
private frmDokter dokter=new frmDokter(null, false);
private frmPasien pasien=new frmPasien(null, false);
private frmPetugas petugas=new frmPetugas(null, false);
di bawah source program public class frmRegPeriksa extends
javax.swing.JDialog { .
Kemudian di bawah source program public frmRegPeriksa(java.awt.Frame
parent, boolean modal) {
super(parent, modal);
ketikkan source program dan buat seperti pada source program berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 127
Windiarto Nugroho, Dewi Ekawati
String[] judul={"No.Rawat","Tgl Registrasi","Jam Reg.","Dokter
dituju","Nama Pasien","Petugas","Biaya Reg."};
tabmode=new DefaultTableModel(judul,0);
jTableRegPeriksa.setModel(tabmode);
tampil();
dokter.getdata().addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (dokter.getdata().getRowCount()!=-1){
jTextKdDokter.setText(dokter.getMode().getValueAt(
dokter.getdata().getSelectedRow(),0).toString());
jTextCariKdDokter2.setText(dokter.getMode().getValueAt(
dokter.getdata().getSelectedRow(),1).toString());
}
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
pasien.getdata().addMouseListener(new MouseInputListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (dokter.getdata().getRowCount()!=-1){
jTextNoRkmMedis.setText(pasien.getMode().getValueAt(
pasien.getdata().getSelectedRow(),0).toString());
jTextCariNRM.setText(pasien.getMode().getValueAt(
pasien.getdata().getSelectedRow(),1).toString());
}
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 128
Windiarto Nugroho, Dewi Ekawati
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
@Override
public void mouseDragged(MouseEvent e) {}
@Override
public void mouseMoved(MouseEvent e) {}
});
petugas.getdata().addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (petugas.getdata().getRowCount()!=-1){
jTextNIP.setText(petugas.getMode().getValueAt(
petugas.getdata().getSelectedRow(),0).toString());
jTextCariNip.setText(petugas.getMode().getValueAt(
petugas.getdata().getSelectedRow(),1).toString());
}
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
g. Di samping source tampil(); pasti ada icon error, icon error berwarna kuning dan
merah, kita klik kemudian pilih Create Method Tampil() in
javasip.frmRegPeriksa. Sehingga tampilan seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 129
Windiarto Nugroho, Dewi Ekawati
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
try {
ResultSet rs=koneksiDB.condb().createStatement().executeQuery(
"select reg_periksa.no_rawat, reg_periksa.tgl_registrasi,
reg_periksa.jam_reg, dokter.nm_dokter, pasien.nm_pasien, petugas.nama,
reg_periksa.biaya_reg "+
"from reg_periksa inner join dokter on
reg_periksa.kd_dokter = dokter.kd_dokter inner join pasien on
reg_periksa.no_rkm_medis = pasien.no_rkm_medis inner join petugas on
reg_periksa.nip = petugas.nip");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
System.out.println(ex);
}
}
public JTable getdata(){
return jTableRegPeriksa;
}
public DefaultTableModel getMode() {
return tabmode;
}
i. Ketikkan method tampil(); di bawah source program simpan, ganti, dan hapus.
j. Kembali ke design frmRegPeriksa untuk mengaktifkan mouse clicked pada tabel.
Kemudian klik kanan pada tabel, pilih Event, pilih Mouse, pilih MouseClicked.
Setelah itu, ketikkan source program berikut :
int i=jTableRegPeriksa.getSelectedRow();
if (i>-1){
TxtNoRawat.setText(tabmode.getValueAt(i, 0). toString());
jTextTglReg.setText(tabmode.getValueAt(i, 1). toString());
jTextJamReg.setText(tabmode.getValueAt(i, 2). toString());
jTextCariKdDokter2.setText(tabmode.getValueAt(i, 3). toString());
jTextCariNRM.setText(tabmode.getValueAt(i, 4). toString());
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 130
Windiarto Nugroho, Dewi Ekawati
jTextCariNip.setText(tabmode.getValueAt(i, 5). toString());
jTextBiayaReg.setText(tabmode.getValueAt(i, 6). toString());
}
k. Kembali ke design frmRegPeriksa untuk mengaktifkan tombol keyword.
Kemudian klik kanan pada tombol , pilih Event, pilih Action, pilih
ActionPerformed lalu ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select
reg_periksa.no_rawat, reg_periksa.tgl_registrasi, reg_periksa.jam_reg,
dokter.nm_dokter, pasien.nm_pasien, petugas.nama, reg_periksa.biaya_reg
from reg_periksa inner join dokter on reg_periksa.kd_dokter =
dokter.kd_dokter inner join pasien on reg_periksa.no_rkm_medis =
pasien.no_rkm_medis inner join petugas on reg_periksa.nip = petugas.nip
where no_rawat like '%"+
jTextKeyword.getText()+"%' or reg_periksa.tgl_registrasi like
'%"+
jTextKeyword.getText()+"%' or reg_periksa.jam_reg like '%"+
jTextKeyword.getText()+"%' or dokter.nm_dokter like '%"+
jTextKeyword.getText()+"%' or pasien.nm_pasien like '%"+
jTextKeyword.getText()+"%' or petugas.nama like '%"+
jTextKeyword.getText()+"%' or biaya_reg like '%"+
jTextKeyword.getText()+"%'");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmRegPeriksa.class.getName()).log(Level.SEVERE, null,
ex);
}
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 131
Windiarto Nugroho, Dewi Ekawati
l. Kembali ke design frmRegPeriksa untuk mengaktifkan tombol keyword.
Kemudian klik kanan pada tombol , pilih Event, pilih Action, pilih
ActionPerformed lalu ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select
reg_periksa.no_rawat, reg_periksa.tgl_registrasi, reg_periksa.jam_reg,
dokter.nm_dokter, pasien.nm_pasien, petugas.nama, reg_periksa.biaya_reg
"+
"from reg_periksa inner join dokter on
reg_periksa.kd_dokter = dokter.kd_dokter inner join pasien on
reg_periksa.no_rkm_medis = pasien.no_rkm_medis inner join petugas on
reg_periksa.nip = petugas.nip");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmRegPeriksa.class.getName()).log(Level.SEVERE, null,
ex);
}
m. Membuat tombol cari pada relasi, yaitu berrelasi dengan tabel dokter, pasien dan
petugas.
- Klik kanan pada tombol di samping nama field dr Dituju, pilih Event,
pilih Action, pilih ActionPerformed lalu ketikkan source program berikut
untuk menampilkan form yang berelasi:
dokter.setLocationRelativeTo(null);
dokter.setVisible(true);
- Klik kanan pada tombol di samping nama field Pasien, pilih Event,
pilih Action, pilih ActionPerformed lalu ketikkan source program berikut
untuk menampilkan form yang berelasi:
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 132
Windiarto Nugroho, Dewi Ekawati
pasien.setLocationRelativeTo(null);
pasien.setVisible(true);
- Klik kanan pada tombol di samping nama field Petugas, pilih Event,
pilih Action, pilih ActionPerformed lalu ketikkan source program berikut
untuk menampilkan form yang berelasi:
petugas.setLocationRelativeTo(null);
petugas.setVisible(true);
n. Panggil frmRegPeriksa pada frmUtama dengan klik kanan pada tombol Data
Petugas, pilih Event, pilih Action, pilih Action Performed lalu ketikkan source
program berikut :
frmRegPeriksa periksa=new frmRegPeriksa(this,false);
periksa.setLocationRelativeTo(null);
periksa.setVisible(true);
o. Coba jalankan programnya dengan menekan tombol F6. Sehingga hasil
programnya sebagai berikut :
Keterangan :
- Setiap mengetikkan tiap kata source program gunakan Ctrl-Space supaya
tidak terjadi kesalahan dalam penulisan.
- Sesuaikan nama variable textfield masing-masing.
- Sesuaikan SQL dengan databasenya.
- Sesuaikan judul field tabel masing-masing.
- Jika pengkodingannya menggunakan copy-paste gunakan Ctrl-Space untuk
mengatasi error yang terjadi di setiap kata yang mengalami error.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 133
Windiarto Nugroho, Dewi Ekawati
9. Form Rawat Jalan (coding tombol Simpan, Ganti, Hapus, Baru, Keluar, Keyword,
Cari, View Tabel beserta Mouse Clicked dan pemanggilan dari form utama)
a. Buka frmTarifTimdakan, kemudian klik kanan pada tombol Simpan, pilih Event,
pilih Action, pilih Action Performed. Ketikkan source program berikut :
koneksiDB.insertData("rawat_jalan","'"+jTextNoRawat.getText()+"','"+
jTextDiagnosa.getText()+"','"+
jTextKdTindakan.getText()+"','"+
jTextKdDokter.getText()+"','"+
jTextSuhuTubuh.getText()+"','"+
jTextTensi.getText()+"','"+
jTextKeterangan.getText()+"','"+
jTextBiayaRawat.getText()+"'");
b. Klik kanan pada tombol Ganti, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.editData("rawat_jalan"," set
diagnosa='"+jTextDiagnosa.getText()+"' ,kd_tindakan='"+
jTextKdTindakan.getText()+"' ,kd_dokter='"+
jTextKdDokter.getText()+"' ,suhu_tubuh='"+
jTextSuhuTubuh.getText()+"' ,tensi='"+
jTextTensi.getText()+"' ,keterangan='"+
jTextKeterangan.getText()+"' ,biaya_rawat='"+
jTextBiayaRawat.getText()+"' where no_rawat='"+
jTextNoRawat.getText()+"'");
c. Klik kanan pada tombol Hapus, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.hapusData("rawat_jalan"," where
no_rawat='"+jTextNoRawat.getText()+"'");
d. Klik kanan pada tombol Baru, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
jTextNoRawat.setText("");
jTextCariRawat1.setText("");
jTextCariRawat2.setText("");
jTextDiagnosa.setText("");
jTextKdTindakan.setText("");
jTextTindakan.setText("");
jTextKdDokter.setText("");
jTextCariDokter.setText("");
jTextSuhuTubuh.setText("");
jTextTensi.setText("");
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 134
Windiarto Nugroho, Dewi Ekawati
jTextKeterangan.setText("");
jTextBiayaRawat.setText("");
e. Klik kanan pada tombol Keluar, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
dispose();
f. Untuk view tabel kembali ke source frmRawatJalan bagian atas, ketikkan source
program DefaultTableModel tabmode;
private frmRegPeriksa regperiksa=new frmRegPeriksa(null, false);
private frmTarifTindakan tindakan=new frmTarifTindakan(null, false);
private frmDokter dokter=new frmDokter(null, false);
di bawah source program public class frmRawatJalan extends
javax.swing.JDialog { .
Kemudian di bawah source program public frmRawatJalan(java.awt.Frame
parent, boolean modal) {
super(parent, modal);
ketikkan source program dan buat seperti pada source program berikut :
regperiksa.getdata().addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (regperiksa.getdata().getRowCount()!=-1){
jTextNoRawat.setText(regperiksa.getMode().getValueAt(
regperiksa.getdata().getSelectedRow(),0).toString());
jTextCariRawat1.setText(regperiksa.getMode().getValueAt(
regperiksa.getdata().getSelectedRow(),1).toString());
jTextCariRawat2.setText(regperiksa.getMode().getValueAt(
regperiksa.getdata().getSelectedRow(),5).toString());
}
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
tindakan.getdata().addMouseListener(new MouseListener() {
@Override
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 135
Windiarto Nugroho, Dewi Ekawati
public void mouseClicked(MouseEvent e) {
if (tindakan.getdata().getRowCount()!=-1){
jTextKdTindakan.setText(tindakan.getMode().getValueAt(
tindakan.getdata().getSelectedRow(),0).toString());
jTextTindakan.setText(tindakan.getMode().getValueAt(
tindakan.getdata().getSelectedRow(),1).toString());
}
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
dokter.getdata().addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (dokter.getdata().getRowCount()!=-1){
jTextKdDokter.setText(dokter.getMode().getValueAt(
dokter.getdata().getSelectedRow(),0).toString());
jTextCariDokter .setText(dokter.getMode().getValueAt(
dokter.getdata().getSelectedRow(),1).toString());
}
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
g. Di samping source tampil(); pasti ada icon error, icon error berwarna kuning dan
merah, kita klik kemudian pilih Create Method Tampil() in
javasip.frmRawatJalan. Sehingga tampilan seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 136
Windiarto Nugroho, Dewi Ekawati
Gambar 3.17. Tampilan buat method tampil
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 137
Windiarto Nugroho, Dewi Ekawati
return tabmode;
}
i. Ketikkan method tampil(); di bawah source program simpan, ganti, dan hapus.
j. Kembali ke design frmRawatJalan untuk mengaktifkan mouse clicked pada tabel.
Kemudian klik kanan pada tabel, pilih Event, pilih Mouse, pilih MouseClicked.
Setelah itu, ketikkan source program berikut :
int i=jTableRawatJalan.getSelectedRow();
if (i>-1){
jTextNoRawat.setText(tabmode.getValueAt(i, 0). toString());
jTextCariRawat1.setText(tabmode.getValueAt(i, 1). toString());
jTextCariRawat2.setText(tabmode.getValueAt(i, 2). toString());
jTextDiagnosa.setText(tabmode.getValueAt(i, 3). toString());
jTextKdTindakan.setText(tabmode.getValueAt(i, 4). toString());
jTextTindakan.setText(tabmode.getValueAt(i, 5). toString());
jTextKdDokter.setText(tabmode.getValueAt(i, 6). toString());
jTextCariDokter.setText(tabmode.getValueAt(i, 7). toString());
jTextSuhuTubuh.setText(tabmode.getValueAt(i, 8). toString());
jTextTensi.setText(tabmode.getValueAt(i, 9). toString());
jTextKeterangan.setText(tabmode.getValueAt(i, 10). toString());
jTextBiayaRawat.setText(tabmode.getValueAt(i, 11). toString());
}
k. Kembali ke design frmRawatJalan untuk mengaktifkan tombol keyword.
Kemudian klik kanan pada tombol , pilih Event, pilih Action, pilih
ActionPerformed lalu ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select
reg_periksa.no_rawat, reg_periksa.tgl_registrasi, pasien.nm_pasien,
rawat_jalan.diagnosa, tarif_tindakan.kd_tindakan,
tarif_tindakan.nm_tindakan, dokter.kd_dokter, dokter.nm_dokter,
rawat_jalan.suhu_tubuh, rawat_jalan.tensi, rawat_jalan.keterangan,
rawat_jalan.biaya_rawat from rawat_jalan inner join reg_periksa on
reg_periksa.no_rawat = rawat_jalan.no_rawat inner join tarif_tindakan on
tarif_tindakan.kd_tindakan = rawat_jalan.kd_tindakan inner join dokter on
dokter.kd_dokter = rawat_jalan.kd_dokter inner join pasien on
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 138
Windiarto Nugroho, Dewi Ekawati
pasien.no_rkm_medis = reg_periksa.no_rkm_medis where
reg_periksa.no_rawat like '%"+
jTextKeyword.getText()+"%' or reg_periksa.tgl_registrasi like
'%"+
jTextKeyword.getText()+"%' or pasien.nm_pasien like '%"+
jTextKeyword.getText()+"%' or rawat_jalan.diagnosa like '%"+
jTextKeyword.getText()+"%' or tarif_tindakan.kd_tindakan like
'%"+
jTextKeyword.getText()+"%' or tarif_tindakan.nm_tindakan
like '%"+
jTextKeyword.getText()+"%' or dokter.kd_dokter like '%"+
jTextKeyword.getText()+"%' or dokter.nm_dokter like '%"+
jTextKeyword.getText()+"%' or rawat_jalan.suhu_tubuh like
'%"+
jTextKeyword.getText()+"%' or rawat_jalan.tensi like '%"+
jTextKeyword.getText()+"%' or rawat_jalan.keterangan like
'%"+
jTextKeyword.getText()+"%' or rawat_jalan.biaya_rawat like
'%"+
jTextKeyword.getText()+"%'");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getStrin
g(10),rs.getString(11),rs.getString(12)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmPemberianObat.class.getName()).log(Level.SEVERE,
null, ex);
}
l. Kembali ke design frmRawatJalan untuk mengaktifkan tombol keyword.
Kemudian klik kanan pada tombol , pilih Event, pilih Action, pilih
ActionPerformed lalu ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 139
Windiarto Nugroho, Dewi Ekawati
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select
reg_periksa.no_rawat, reg_periksa.tgl_registrasi, pasien.nm_pasien,
rawat_jalan.diagnosa, tarif_tindakan.kd_tindakan,
tarif_tindakan.nm_tindakan, dokter.kd_dokter, dokter.nm_dokter,
rawat_jalan.suhu_tubuh, rawat_jalan.tensi, rawat_jalan.keterangan,
rawat_jalan.biaya_rawat "+
"from rawat_jalan inner join reg_periksa on
reg_periksa.no_rawat = rawat_jalan.no_rawat inner join tarif_tindakan on
tarif_tindakan.kd_tindakan = rawat_jalan.kd_tindakan inner join dokter on
dokter.kd_dokter = rawat_jalan.kd_dokter inner join pasien on
pasien.no_rkm_medis = reg_periksa.no_rkm_medis");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getStrin
g(10),rs.getString(11),rs.getString(12)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmPemberianObat.class.getName()).log(Level.SEVERE,
null, ex);
}
m. Membuat tombol cari pada relasi, yaitu berrelasi dengan tabel registrasi periksa,
dokter, dan tindakan.
- Klik kanan pada tombol di samping nama field No Rawat, pilih Event,
pilih Action, pilih ActionPerformed lalu ketikkan source program berikut
untuk menampilkan form yang berelasi:
regperiksa.setLocationRelativeTo(null);
regperiksa.setVisible(true);
- Klik kanan pada tombol di samping nama field Dokter, pilih Event,
pilih Action, pilih ActionPerformed lalu ketikkan source program berikut
untuk menampilkan form yang berelasi:
dokter.setLocationRelativeTo(null);
dokter.setVisible(true);
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 140
Windiarto Nugroho, Dewi Ekawati
- Klik kanan pada tombol di samping nama field Tindakan Dokter, pilih
Event, pilih Action, pilih ActionPerformed lalu ketikkan source program
berikut untuk menampilkan form yang berelasi:
tindakan.setLocationRelativeTo(null);
tindakan.setVisible(true);
n. Panggil frmRawatJalan pada frmUtama dengan klik kanan pada tombol Data
Petugas, pilih Event, pilih Action, pilih Action Performed lalu ketikkan source
program berikut :
frmRawatJalan rawat=new frmRawatJalan(this,false);
rawat.setLocationRelativeTo(null);
rawat.setVisible(true);
o. Coba jalankan programnya dengan menekan tombol F6. Sehingga hasil
programnya sebagai berikut :
ogram
Keterangan :
- Setiap mengetikkan tiap kata source program gunakan Ctrl-Space supaya
tidak terjadi kesalahan dalam penulisan.
- Sesuaikan nama variable textfield masing-masing.
- Sesuaikan SQL dengan databasenya.
- Sesuaikan judul field tabel masing-masing.
- Jika pengkodingannya menggunakan copy-paste gunakan Ctrl-Space untuk
mengatasi error yang terjadi di setiap kata yang mengalami error.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 141
Windiarto Nugroho, Dewi Ekawati
10. Form Pemberian Obat (coding tombol Simpan, Ganti, Hapus, Baru, Keluar, Keyword,
Cari, View Tabel beserta Mouse Clicked dan pemanggilan dari form utama)
a. Buka frmPemberianObat, kemudian klik kanan pada tombol Simpan, pilih Event,
pilih Action, pilih Action Performed. Ketikkan source program berikut :
koneksiDB.insertData("pemberian_obat","'"+jTextNoRawat.getText()+"','"
+
jTextDiagnosa.getText()+"','"+
jTextKdObat.getText()+"','"+
jTextBiayaObat.getText()+"','"+
jTextJumlah.getText()+"','"+
jTextTambahan.getText()+"','"+
jTextTotal.getText()+"'");
b. Klik kanan pada tombol Ganti, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.editData("pemberian_obat"," set
kode_obat='"+jTextKdObat.getText()+"' ,diagnosa='"+
jTextDiagnosa.getText()+"' ,biaya_obat='"+
jTextBiayaObat.getText()+"' ,jml='"+
jTextJumlah.getText()+"' ,tambahan='"+
jTextTambahan.getText()+"' ,total='"+
jTextTotal.getText()+"' where no_rawat='"+
jTextNoRawat.getText()+"'");
c. Klik kanan pada tombol Hapus, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.hapusData("pemberian_obat"," where
pemberian_obat.no_rawat='"+jTextNoRawat+"' and
pemberian_obat.kode_obat='"+jTextKdObat+"'");
d. Klik kanan pada tombol Baru, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
jTextNoRawat.setText("");
jTextCariRawat1.setText("");
jTextCariRawat2.setText("");
jTextDiagnosa.setText("");
jTextKdObat.setText("");
jTextCariObat.setText("");
jTextBiayaObat.setText("");
jTextJumlah.setText("");
jTextTambahan.setText("");
jTextTotal.setText("");
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 142
Windiarto Nugroho, Dewi Ekawati
e. Klik kanan pada tombol Keluar, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
dispose();
f. Untuk view tabel kembali ke source frmPemberianObat bagian atas, ketikkan
source program DefaultTableModel tabmode;
private frmRegPeriksa regperiksa=new frmRegPeriksa(null, false);
private frmObat obat=new frmObat(null, false);
di bawah source program public class frmPemberianObat extends
javax.swing.JDialog { .
Kemudian di bawah source program public
frmPemberianObat(java.awt.Frame parent, boolean modal) {
super(parent, modal);
ketikkan source program dan buat seperti pada source program berikut :
regperiksa.getdata().addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (regperiksa.getdata().getRowCount()!=-1){
jTextNoRawat.setText(regperiksa.getMode().getValueAt(
regperiksa.getdata().getSelectedRow(),0).toString());
jTextCariRawat1.setText(regperiksa.getMode().getValueAt(
regperiksa.getdata().getSelectedRow(),1).toString());
jTextCariRawat2.setText(regperiksa.getMode().getValueAt(
regperiksa.getdata().getSelectedRow(),5).toString());
}
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
obat.getdata().addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (obat.getdata().getRowCount()!=-1){
jTextKdObat.setText(obat.getMode().getValueAt(
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 143
Windiarto Nugroho, Dewi Ekawati
obat.getdata().getSelectedRow(),0).toString());
jTextCariObat.setText(obat.getMode().getValueAt(
obat.getdata().getSelectedRow(),1).toString());
jTextBiayaObat.setText(obat.getMode().getValueAt(
obat.getdata().getSelectedRow(),2).toString());
}
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
g. Di samping source tampil(); pasti ada icon error, icon error berwarna kuning dan
merah, kita klik kemudian pilih Create Method Tampil() in
javasip.frmPemberianObat. Sehingga tampilan seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 144
Windiarto Nugroho, Dewi Ekawati
obat.kode_obat = pemberian_obat.kode_obat inner join pasien on
pasien.no_rkm_medis = reg_periksa.no_rkm_medis");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getStrin
g(10)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
System.out.println(ex);
}
}
public JTable getdata(){
return jTableBeriObat;
}
public DefaultTableModel getMode() {
return tabmode;
}
i. Ketikkan method tampil(); di bawah source program simpan, ganti, dan hapus.
j. Kembali ke design frmPemberianObat untuk mengaktifkan mouse clicked pada
tabel. Kemudian klik kanan pada tabel, pilih Event, pilih Mouse, pilih
MouseClicked. Setelah itu, ketikkan source program berikut :
int i=jTableBeriObat.getSelectedRow();
if (i>-1){
jTextCariRawat1.setText(tabmode.getValueAt(i, 0). toString());
jTextNoRawat.setText(tabmode.getValueAt(i, 1). toString());
jTextCariRawat2.setText(tabmode.getValueAt(i, 2). toString());
jTextDiagnosa.setText(tabmode.getValueAt(i, 3). toString());
jTextKdObat.setText(tabmode.getValueAt(i, 4). toString());
jTextCariObat.setText(tabmode.getValueAt(i, 5). toString());
jTextBiayaObat.setText(tabmode.getValueAt(i, 6). toString());
jTextJumlah.setText(tabmode.getValueAt(i, 7). toString());
jTextTambahan.setText(tabmode.getValueAt(i, 8). toString());
jTextTotal.setText(tabmode.getValueAt(i, 9). toString());
}
k. Kembali ke design frmPemberianObat untuk mengaktifkan tombol keyword.
Kemudian klik kanan pada tombol , pilih Event, pilih Action, pilih
ActionPerformed lalu ketikkan source program berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 145
Windiarto Nugroho, Dewi Ekawati
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select
reg_periksa.tgl_registrasi, pemberian_obat.no_rawat, pasien.nm_pasien,
pemberian_obat.diagnosa, pemberian_obat.kode_obat, obat.nama_obat,
pemberian_obat.biaya_obat, pemberian_obat.jml,
pemberian_obat.tambahan, pemberian_obat.total from pemberian_obat
inner join reg_periksa on reg_periksa.no_rawat = pemberian_obat.no_rawat
inner join obat on obat.kode_obat = pemberian_obat.kode_obat inner join
pasien on pasien.no_rkm_medis = reg_periksa.no_rkm_medis where
reg_periksa.tgl_registrasi like '%"+
jTextKeyword.getText()+"%' or pemberian_obat.no_rawat like
'%"+
jTextKeyword.getText()+"%' or pasien.nm_pasien like '%"+
jTextKeyword.getText()+"%' or pemberian_obat.diagnosa like
'%"+
jTextKeyword.getText()+"%' or obat.nama_obat like '%"+
jTextKeyword.getText()+"%' or pemberian_obat.biaya_obat like
'%"+
jTextKeyword.getText()+"%' or pemberian_obat.jml like '%"+
jTextKeyword.getText()+"%' or pemberian_obat.tambahan like
'%"+
jTextKeyword.getText()+"%' or pemberian_obat.total like '%"+
jTextKeyword.getText()+"%'");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getStrin
g(10)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmPemberianObat.class.getName()).log(Level.SEVERE,
null, ex);
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 146
Windiarto Nugroho, Dewi Ekawati
}
l. Kembali ke design frmPemberianObat untuk mengaktifkan tombol keyword.
Kemudian klik kanan pada tombol , pilih Event, pilih Action, pilih
ActionPerformed lalu ketikkan source program berikut :
try {
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select
reg_periksa.tgl_registrasi, pemberian_obat.no_rawat, pasien.nm_pasien,
pemberian_obat.diagnosa, pemberian_obat.kode_obat, obat.nama_obat,
pemberian_obat.biaya_obat, pemberian_obat.jml,
pemberian_obat.tambahan, pemberian_obat.total "+
"from pemberian_obat inner join reg_periksa on
reg_periksa.no_rawat = pemberian_obat.no_rawat inner join obat on
obat.kode_obat = pemberian_obat.kode_obat inner join pasien on
pasien.no_rkm_medis = reg_periksa.no_rkm_medis");
while(rs.next()){
String[]
data={rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getStri
ng(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getStrin
g(10)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmPemberianObat.class.getName()).log(Level.SEVERE,
null, ex);
}
m. Membuat tombol cari pada relasi, yaitu berrelasi dengan tabel registrasi periksa
dan Obat.
- Klik kanan pada tombol di samping nama field No Rawat, pilih Event,
pilih Action, pilih ActionPerformed lalu ketikkan source program berikut
untuk menampilkan form yang berelasi:
regperiksa.setLocationRelativeTo(null);
regperiksa.setVisible(true);
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 147
Windiarto Nugroho, Dewi Ekawati
- Klik kanan pada tombol di samping nama field Obat, pilih Event, pilih
Action, pilih ActionPerformed lalu ketikkan source program berikut untuk
menampilkan form yang berelasi:
obat.setLocationRelativeTo(null);
obat.setVisible(true);
n. Panggil frmPemberianObat pada frmUtama dengan klik kanan pada tombol Data
Petugas, pilih Event, pilih Action, pilih Action Performed lalu ketikkan source
program berikut :
frmPemberianObat rawat=new frmPemberianObat(this,false);
rawat.setLocationRelativeTo(null);
rawat.setVisible(true);
o. Coba jalankan programnya dengan menekan tombol F6. Sehingga hasil
programnya sebagai berikut :
Keterangan :
- Setiap mengetikkan tiap kata source program gunakan Ctrl-Space supaya
tidak terjadi kesalahan dalam penulisan.
- Sesuaikan nama variable textfield masing-masing.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 148
Windiarto Nugroho, Dewi Ekawati
- Sesuaikan SQL dengan databasenya.
- Sesuaikan judul field tabel masing-masing.
- Jika pengkodingannya menggunakan copy-paste gunakan Ctrl-Space untuk
mengatasi error yang terjadi di setiap kata yang mengalami error.
11. Form Pembayaran (coding tombol Simpan, Ganti, Hapus, Baru, Keluar, Keyword,
Cari, View Tabel beserta Mouse Clicked dan pemanggilan dari form utama)
a. Buka frmPembayaran, kemudian klik kanan pada tombol Simpan, pilih Event,
pilih Action, pilih Action Performed. Ketikkan source program berikut :
koneksiDB.insertData("pembayaran","'"+jTextNoIndex.getText()+"','"+
jTextNoRawat.getText()+"','"+
jTextTglBayar.getText()+"','"+
jTextNomor.getText()+"','"+
jTextNamaBayar.getText()+"','"+
jTextPemisah.getText()+"','"+
jTextBiaya.getText()+"','"+
jTextJml.getText()+"','"+
jTextTambahan.getText()+"','"+
jTextTotalBiaya.getText()+"','"+
jComboStatus.getSelectedItem()+"'");
b. Klik kanan pada tombol Ganti, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.editData("pembayaran"," set
no_rawat='"+jTextNoRawat.getText()+"' ,tgl_bayar='"+
jTextTglBayar.getText()+"' ,no='"+
jTextNomor.getText()+"' ,nm_bayar='"+
jTextNamaBayar.getText()+"' ,pemisah='"+
jTextPemisah.getText()+"' ,biaya='"+
jTextBiaya.getText()+"' ,jumlah='"+
jTextJml.getText()+"' ,tambahan='"+
jTextTambahan.getText()+"' ,totalbiaya='"+
jTextTotalBiaya.getText()+"' ,status='"+
jComboStatus.getSelectedItem()+"' where no_index='"+
jTextNoIndex.getText()+"'");
c. Klik kanan pada tombol Hapus, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
koneksiDB.hapusData("pembayaran"," where
no_index='"+jTextNoIndex.getText()+"'");
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 149
Windiarto Nugroho, Dewi Ekawati
d. Klik kanan pada tombol Baru, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
jTextNoIndex.setText("");
jTextNoRawat.setText("");
jTextCariRawat1.setText("");
jTextCariRawat2.setText("");
jTextTglBayar.setText("");
jTextNomor.setText("");
jTextNamaBayar.setText("");
jTextPemisah.setText("");
jTextBiaya.setText("");
jTextJml.setText("");
jTextTambahan.setText("");
jTextTotalBiaya.setText("");
e. Klik kanan pada tombol Keluar, pilih Event, pilih Action, pilih Action Performed.
Ketikkan source program berikut :
dispose();
f. Untuk view tabel kembali ke source frmPembayaran bagian atas, ketikkan source
program DefaultTableModel tabmode;
private frmRegPeriksa regperiksa=new frmRegPeriksa(null, false);di bawah
source program public class frmPembayaran extends javax.swing.JDialog { .
Kemudian di bawah source program public frmPembayaran(java.awt.Frame
parent, boolean modal) {
super(parent, modal);
ketikkan source program dan buat seperti pada source program berikut :
regperiksa.getdata().addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (regperiksa.getdata().getRowCount()!=-1){
jTextNoRawat.setText(regperiksa.getMode().getValueAt(
regperiksa.getdata().getSelectedRow(),0).toString());
jTextCariRawat1.setText(regperiksa.getMode().getValueAt(
regperiksa.getdata().getSelectedRow(),1).toString());
jTextCariRawat2.setText(regperiksa.getMode().getValueAt(
regperiksa.getdata().getSelectedRow(),5).toString());
}
}
@Override
public void mousePressed(MouseEvent e) {}
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 150
Windiarto Nugroho, Dewi Ekawati
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
g. Di samping source tampil(); pasti ada icon error, icon error berwarna kuning dan
merah, kita klik kemudian pilih Create Method Tampil() in
javasip.frmPembayaran. Sehingga tampilan seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 151
Windiarto Nugroho, Dewi Ekawati
} catch (SQLException ex) {
System.out.println(ex);
}
}
public JTable getdata(){
return jTableBayar;
}
public DefaultTableModel getMode() {
return tabmode;
}
i. Ketikkan method tampil(); di bawah source program simpan, ganti, dan hapus.
j. Kembali ke design frmPembayaran untuk mengaktifkan mouse clicked pada tabel.
Kemudian klik kanan pada tabel, pilih Event, pilih Mouse, pilih MouseClicked.
Setelah itu, ketikkan source program berikut :
int i=jTableBayar.getSelectedRow();
if (i>-1){
jTextNoIndex.setText(tabmode.getValueAt(i, 0). toString());
jTextNoRawat.setText(tabmode.getValueAt(i, 1). toString());
jTextCariRawat1.setText(tabmode.getValueAt(i, 2). toString());
jTextCariRawat2.setText(tabmode.getValueAt(i, 3). toString());
jTextTglBayar.setText(tabmode.getValueAt(i, 4). toString());
jTextNomor.setText(tabmode.getValueAt(i, 5). toString());
jTextNamaBayar.setText(tabmode.getValueAt(i, 6). toString());
jTextPemisah.setText(tabmode.getValueAt(i, 7). toString());
jTextBiaya.setText(tabmode.getValueAt(i, 8). toString());
jTextJml.setText(tabmode.getValueAt(i, 9). toString());
jTextTambahan.setText(tabmode.getValueAt(i, 10). toString());
jTextTotalBiaya.setText(tabmode.getValueAt(i, 11). toString());
jComboStatus.setSelectedItem(tabmode.getValueAt(i, 12). toString());
}
k. Membuat tombol cari pada relasi, yaitu berrelasi dengan tabel registrasi periksa.
- Klik kanan pada tombol di samping nama field No Rawat, pilih Event,
pilih Action, pilih ActionPerformed lalu ketikkan source program berikut
untuk menampilkan form yang berelasi:
regperiksa.setLocationRelativeTo(null);
regperiksa.setVisible(true);
l. Panggil frmPembayaran pada frmUtama dengan klik kanan pada tombol Data
Petugas, pilih Event, pilih Action, pilih Action Performed lalu ketikkan source
program berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 152
Windiarto Nugroho, Dewi Ekawati
frmPembayaran rawat=new frmPembayaran(this,false);
rawat.setLocationRelativeTo(null);
rawat.setVisible(true);
m. Coba jalankan programnya dengan menekan tombol F6. Sehingga hasil
programnya sebagai berikut :
Keterangan :
- Setiap mengetikkan tiap kata source program gunakan Ctrl-Space supaya
tidak terjadi kesalahan dalam penulisan.
- Sesuaikan nama variable textfield masing-masing.
- Sesuaikan SQL dengan databasenya.
- Sesuaikan judul field tabel masing-masing.
- Jika pengkodingannya menggunakan copy-paste gunakan Ctrl-Space untuk
mengatasi error yang terjadi di setiap kata yang mengalami error.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 153
Windiarto Nugroho, Dewi Ekawati
Gambar 4.1
Gambar 4.2
Kemudian kita pilih Download – klik Add Plugins, ambil atau download software
iReport nya,
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 154
Windiarto Nugroho, Dewi Ekawati
Gambar 4.3
Klik install dan ikuti proses instalnya dengan klik Next sampai Finish. Sebelum
melanjutkan membuat form Laporannya baiknyakita restart dahulu.
1. Untuk memulai membuat Laporannya, kita buka salah satu form dahulu. Misalnya di sini
kita akan membuat laporan pada from Dokter.
- Klik File – klik kanan Report - pilih New – pilih Other sehingga muncul tampilan
sebagai berikut :
Gambar 4.5
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 155
Windiarto Nugroho, Dewi Ekawati
Gambar 4.6
Klik Next
Gambar 4.7
Klik Next
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 156
Windiarto Nugroho, Dewi Ekawati
Gambar 4.8
Klik New
Gambar 4.9
Pilih Database JDBC connection – klik Next – isi field Name, Server Address,
Database dan Username nya seperti tampilan di bawah.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 157
Windiarto Nugroho, Dewi Ekawati
Gambar 4.10
Klik Wizard – klik Test – klik Ok – klik Ok - klik Save, pada kolom Query (SQL)
ketikkan select * from doter.
Gambar 4.11
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 158
Windiarto Nugroho, Dewi Ekawati
Klik Next – klik Back – klik Next – Klik Ok – klik Next sehingga muncul tampilan
berikut :
Gambar 4.12
Klik icon >> - klik Next
Gambar 4.13
Klik Next – Pilih Button ke-2
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 159
Windiarto Nugroho, Dewi Ekawati
Gambar 4.14
Klik Finish, sehingga akan muncul tampilan berikut :
Gambar 4.15
Klik Preview untuk melihat hasil laporannya, sehingga akanmuncul tampilan :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 160
Windiarto Nugroho, Dewi Ekawati
Gambar 4.16
2. Buka form Dokter atau form yang akan kita aktifkan tombol cetaknya. Kemudian
klik kanan – pilih Events – pilih actionPerformed. Ketikkan :
try {
Connection
koneksi=DriverManager.getConnection("jdbc:mysql://localhost:3306/medica
","root","");
JasperReport
Jrpt=JasperCompileManager.compileReport("./report/ReportDokter.jrxml")
;
JasperPrint jsp=JasperFillManager.fillReport(Jrpt, new
HashMap<Object, Object>(),koneksi);
JasperViewer view=new JasperViewer(jsp,false);
view.setFitPageZoomRatio();
view.setVisible(true);
} catch (JRException ex) {
Logger.getLogger(frmDokter.class.getName()).log(Level.SEVERE,
null, ex);
} catch (SQLException ex) {
Logger.getLogger(frmDokter.class.getName()).log(Level.SEVERE,
null, ex);
}
Sehingga tampilan sorce program seperti berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 161
Windiarto Nugroho, Dewi Ekawati
Gambar 4.17
Lakukan dengan cara yang sama untuk membuat semua laporan yang akan dibuat dan
coba jalankan dengan menekan tombol F9.
PENUTUP
Demikian yang dapat kami berikan mengenai pembuatan Modul Pembuatan Aplikasi
Rekam Medis Dengan Bahasa Pemrograman Java ini, tentunya masih banyak kekurangan dan
kelemahannya, kerena terbatasnya pengetahuan dan kurangnya rujukan atau referensi yang ada.
Kami banyak berharap para pembaca yang budiman sudi memberikan kritik dan saran
yang membangun kepada kami demi sempurnanya Modul Ini sehingga bisa digunakan sebagai
landasan/panduan bagi teman-teman di jurusan Rekam Medis atau Sistem Informasi Kesehatan.
Karena kami melihat begitu minimnya modul/buku yang kami jumpai dikarenakan jurusan ini
masih tergolong baru di perguruan-perguruan tinggi
Penyusun
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 162
Windiarto Nugroho, Dewi Ekawati
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 163
Windiarto Nugroho, Dewi Ekawati
DAFTAR PUSTAKA
Hartono, Jogiyanto, MBA, Ph.D. Analisa Dan Desain Sistem Informasi: Pendekatan Terstruktur
Praktek Aplikasi Bisnis. Yogyakarta: Andi Offset, 1990.
Ir. Fathansyah, Basis Data. Bandung : Informatiika Bandung : 2004.
Kristanto, Andri. Perancangan Sistem Informasi dan Aplikasinya. Yogyakarta: Gava Media,
2003.
Nugroho, Bunafit. Databases Relasional dengan MySQL, Yogyakarta : Andi Offset : 2005.
Sanjaya, Ridwan, SE.,S.Kom. Pengolahan Database MySQL 5 dengan Java 2. Yogyakarta : Andi
Offset : 2005.
http://septilia.wordpress.com/2009/03/12/pengantar-sistem-informasi/
Rustiyanto, Ery. Sistem Informasi Manajemen Rumah Sakit yang Terintegrasi, Yogyakarta :
Gosyen Publising : 2010.
Direktorat Jenderal Bina Pelayanan Medik. Pedoman Penyelenggaraan dan Pengelolaan Rekam
Medis Rumah sakit Revisi II. Departemen Kesehatan RI : 2006.
http://www.master.web.id/mwmag/issue/04/content/tutorial-java-1/tutorial-java-1.html
http://dedenwahyudin.files.wordpress.com/2012/07/laporantugas2java.pdf
http://dev.mysql.com/doc/refman/5.0/en
https://netbeans.org/
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Fita PS, 134
Irnawati, Rini H
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Fita PS, 134
Irnawati, Rini H
LAMPIRAN
Profil Pembuat Buku Ini
Dewi Ekawati, S.Km
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan |Oleh : Fita PS, 167
Irnawati dan Rini H.