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
DAFTAR ISI
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Dewi Ekawati, iii
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).
Informasi tersebut mempunyai manfaat untuk pemakaiannya.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 5
Windiarto Nugroho, Dewi Ekawati
d) Konsep Dasar Sistem Informasi
(1) Pengertian Sistem Informasi
Menurut Robert A. Leitch dan K. Roscoe Davis Sistem Informasi dapat di
definisikan sebagai berikut :
”Sistem informasi adalah suatu sistem di dalam suatu organisasi yang
mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi,
bersifat managerial dan kegiatan strategis dari suatu organisasi dan menyediakan
pihak luar tertentu dalam laporan-laporan yang di perlukan”.(
http://septilia.wordpress.com/2009/03/12/pengantar-sistem-informasi/).
(2) Komponen Sistem Informasi
John Burch dan Gary Grugnitski mengemukakan bahwa sistem informasi
terdiri dari komponen-komponen yang di sebut dengan istilah blok bangunan
(building block), yaitu blok masukan (input block), blok model (model block),
blok keluaran (output block), blok teknologi (technology block), blok basis data
(database block), blok kendali (control block).
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 6
Windiarto Nugroho, Dewi Ekawati
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
Beberapa istilah yang digunakan dalam normalisasi adalah sebagai berikut :
(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)
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)
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 8
Windiarto Nugroho, Dewi Ekawati
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.
Entitas 1 Entitas 2
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 9
Windiarto Nugroho, Dewi Ekawati
(b) One to Many Relationship
Hubungan antara file pertama dengan file kedua adalah satu berbanding banyak.
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
(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
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
1) Bentuk Tidak Normal
Bentuk tidak normal merupakan kumpulan field yang digunakan atau yang diperoleh
dari beberapa pengumpulan data, tidak ada keharusan mengikuti suatu format tertentu, bisa
tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan kedatangannya.
Bisa saja field-field yang ada didapat dari form-form yang dipakai di klinik seperti lembar
registrasi pasien, lembar rekam medis pasien, kertas resep dokter, jadwal praktek dokter, bisa
juga dari file-file excel dan microsoft acces yang selama ini dipakai untuk pengolahan data,
atau bisa saja kita simpulkan dari hasil wawancara dengan nara sumber yang ada yang
kemudian dituangkan ke dalam bentuk tidak normal ini, semua yang kira-kira dibutuhkan
ditampung terlebih dahulu baru kemudian nanti dipisah-pisah lagi di bentuk normal yang
akan dibuat. Berikut ini adalah contoh dari bentuk tidak normal yang misalnya didapat dari
observasi dilapangan. :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 13
Windiarto Nugroho, Dewi Ekawati
2) Proses Normalisasi Bentuk Normal Pertama
Suatu tabel dikatakan dalam bentuk normal pertama (1NF) bila setiap kolom bernilai
tunggal untuk setiap baris. Ini berarti bahwa nama kolom yang berulang cukup diwakili oleh
sebuah nama kolom (tidak perlu ada indeks dalam memberi nama kolom), tidak memiliki
atribut bernilai banyak (multivalued attribute), setiap atribut dalam tabel tersebut harus
bernilai atomic (tidak dapat dibagi-bagi lagi). Adanya field baru mengacu pada kumpulan
field-field Tidak Normal sebelumnya. Dari normalisasi yang dilakukan didapat :
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
b. Klik pada Toolbar Shapes, pilih Database, pilih Entity Relationship
c. Pilih Shapes View di sebelah kiri dengan mengekliknya, tarik ke dalam lembar draw
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, 15
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, 16
Windiarto Nugroho, Dewi Ekawati
Pemecahan tabel tersebut :
a) Pemecahan terhadap tabel rawat_jalan menjadi tiga yaitu : Tabel reg_periksa (no_rawat,
tgl_registrasi, jam_reg, kd_dokter, no_rkm_medis, nip, biaya_reg) dengan no_rawat
sebagai kunci utama, Tabel tarif_tindakan (kd_tindakan, nm_tindakan, tarif) dengan
kd_tindakan sebagai kunci primer, Tabel rawat_jalan (no_rawat, diagnosa, kd_tindakan,
kd_dokter, suhu_tubuh, tensi, keterangan, biaya_rawat) dengan no_rawat, diagnosa,
kd_tindakan, kd_dokter sebagai gabungan kunci utama dan kd_tindakan, dan no_rawat
serta kd_dokter sebagai kunci tamu.
b) Pemecahan terhadap tabel pemberisn_obat menjadi dua yaitu : Tabel obat (kode_obat,
nama_obat, harga) dengan kode_obat sebagai kunci utama, Tabel pemberian_obat
(no_rawat, diagnosa, kode_obat, biaya_obat, jml, tambahan, total) dengan no_rawat dan
kode_obat sebagai gabungan kunci utama dan no_rawat serta kode_obat sebagai kunci
tamu.
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
ada pembahasan disana tentang apa itu kunci utama/primary key/kunci primer begitu juga
dengan foreign key.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 17
Windiarto Nugroho, Dewi Ekawati
b.Relasi Antar Tabel
Berikut adalah bentuk gambar Entity Relationship/relasi antar tabel dari normalisasi yang
didapat sebelumnya. Untuk pengertian tentang relasi antar tabel bisa dibaca lagi di Pembahasan I.
Keterangan :
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, 18
Windiarto Nugroho, Dewi Ekawati
Gambar Pembuatan Relasi Antar Tabel
Bagi yang pertama kali mencoba membuat desain relasi mungkin paling bingung saat
mencoba mengarahkan dan membuat garis melengkung, di atas sudah ada ilustrasi caranya.
Jangan lupa untuk mengeklik Pointer Tool saat mau memilih object yang ada seperti garis atau
tabel. Maaf jika pembahasan mengenai desain di visio ini tidak mendalam, yang kami coba
berikan disini hanya secara teknis saja sesuai dengan kebutuhan perancangan. Pembaca bisa
mempelajarinya secara otodidak dan mengeksplorasi menu-menu yang ada. Jangan lupa
mencoba searching di internet, sudah banyak tutorial yang membahas tentang penggunaan
software visio ini.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 19
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, 20
Windiarto Nugroho, Dewi Ekawati
2 nm_pasien Varchar 40 Nama Pasien
3 no_ktp Varchar 20 Nomer KTP
4 Jk Enum L,P Jenis Kelamin
5 tmp_lahir Varchar 15 Tempat Lahir
6 tgl_lahir Date Tanggal Lahir
7 Alamat Varchar 200 Alamat Pasien
8 gol_darah Enum A, B, AB, O, Golongan Darah
-
9 pekerjaan Varchar 15 Pekerjaan
10 stts_nikah Enum SINGLE, Setatus Nikah
MENIKAH,
JANDA,
DUDHA
11 Agama Varchar 12 Agama Pasien
12 tgl_daftar Date Tanggal Daftar Periksa
Pertama Kali
13 no_tlp Varchar 13 Nomer Telephone
14 Umur Varchar 20 Umur
15 pnd Enum TS, TK, SD, Pendidikan Pasien
SMP, SMA,
D1, D2, D3,
16 Keluarga Enum AYAH, IBU, Keluarga Pasien
ISTRI,
SUAMI,
SAUDARA
17 Namakeluarga Varchar 50 Nama Keluarga Pasien
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 21
Windiarto Nugroho, Dewi Ekawati
6 Alamat Varchar 60 Alamat
7 Password Varchar 200 Password Login
Petugas
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 22
Windiarto Nugroho, Dewi Ekawati
2 diagnosa varchar 50 Diagnosa Penyakit
3 kd_tindakan Varchar 8 Tindakan
pemeriksaan yang
diberikan pada
Pasien
4 kd_dokter Varchar 8 Tindakan Dokter
5 suhu_tubuh Char 5 Suhu tubuh Pasien
6 tensi Char 7 Tekanan darah
Pasien
7 Keterangan Varchar 100 Keterangan
pemeriksaan
8 biaya_rawat double 12 Biaya perawatan
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.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 23
Windiarto Nugroho, Dewi Ekawati
Tabel Hubungan Eksternal Luar dengan I/O
e. Diagram Konteks
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 24
Windiarto Nugroho, Dewi Ekawati
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, 25
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
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, 26
Windiarto Nugroho, Dewi Ekawati
g. Diagram Level 0 Sistem Informasi Rekam Medis
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 27
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.
Flowchart Sistem merupakan bagan yang menunjukkan alur kerja atau apa yang sedang
dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur yang
ada di dalam sistem. Dengan kata lain, flowchart ini merupakan deskripsi secara grafik dari urutan
prosedur-prosedur yang terkombinasi yang membentuk suatu sistem. Flowchart Sistem terdiri dari
data yang mengalir melalui sistem dan proses yang mentransformasikan data itu.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 28
Windiarto Nugroho, Dewi Ekawati
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, 29
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
bisa dengan menambahkannya melalui Rectangle Tool pada toolbar menu yang kemudian diberi
warna melalui Toolbar Fill Color. Berikut ini adalah tampilan ilustrasi saat dibuat :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 30
Windiarto Nugroho, Dewi Ekawati
Gambar Mendesain Menu
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, 31
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, 32
Windiarto Nugroho, Dewi Ekawati
b. Desain Input Data Obat
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, 33
Windiarto Nugroho, Dewi Ekawati
c. Desain Input Data Tindakan
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 34
Windiarto Nugroho, Dewi Ekawati
d. Desain Input Data Dokter
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, 35
Windiarto Nugroho, Dewi Ekawati
e. Desain Input Data Petugas
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 36
Windiarto Nugroho, Dewi Ekawati
PEMBAHASAN IV
INSTALASI SOFTWARE YANG DIBUTUHKAN
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 37
Windiarto Nugroho, Dewi Ekawati
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 :
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, 38
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,
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 39
Windiarto Nugroho, Dewi Ekawati
JTextField, JCheckBox, JButton, JListBox, JImage, Jpanel dan masih banyak lagi
dengan kegunaannya masing-masing.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 40
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, 41
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.
3. Dari segi sumber daya, Netbeans memerlukan sumber daya yang besar, seperti Memory dan
ruang hard disk.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 42
Windiarto Nugroho, Dewi Ekawati
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, 43
Windiarto Nugroho, Dewi Ekawati
Gambar Persetujuan
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 44
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, 45
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
dilakukan eksport terlebih dulu baru kemudian di import ketempat atau komputer baru sehingga
terkesan agak ribet
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 46
Windiarto Nugroho, Dewi Ekawati
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 :
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, 48
Windiarto Nugroho, Dewi Ekawati
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 :
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, 49
Windiarto Nugroho, Dewi Ekawati
Gambar Proses awal pembuatan tabel dokter
Setelah tabel dokter berhasil dibuat. Isikankan data-data tabel dokter yang ada pada
tabel berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 50
Windiarto Nugroho, Dewi Ekawati
Karena pada tabel dokter ada primary key maka harus menekan tombol primary key pada
baris kd_dokter.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 51
Windiarto Nugroho, Dewi Ekawati
Gambar Proses awal pembuatan tabel obat
Setelah tabel obat berhasil dibuat. Isikankan data-data tabel obat yang ada pada tabel
berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 52
Windiarto Nugroho, Dewi Ekawati
Gambar Hasil Pembuatan tabel obat
4. Tabel pasien.
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, 53
Windiarto Nugroho, Dewi Ekawati
tmp_lahir varchar 15 Null - -
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 54
Windiarto Nugroho, Dewi Ekawati
Seperti pada gambar berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 55
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, 56
Windiarto Nugroho, Dewi Ekawati
Setelah tabel petugas berhasil dibuat. Isikankan data-data tabel petugas yang ada pada
tabel berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 57
Windiarto Nugroho, Dewi Ekawati
Gambar Hasil pembuatan tabel petugas
6. Tabel reg_periksa.
Ketikkan reg_periksa 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
reg_periksa terdapat 7 field, kemudian klik tombol Go.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 58
Windiarto Nugroho, Dewi Ekawati
no_rkm_medis varchar 10 Null - √
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 59
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, 60
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, 62
Windiarto Nugroho, Dewi Ekawati
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, 63
Windiarto Nugroho, Dewi Ekawati
Gambar Pembeerian primary key dan index di tabel pemberian_obat
Setelah semuanya diisikan dan menekan tombol primary key kemudian klik tombol Save,
sehingga hasilnya sebagai berikut :
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, 64
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, 65
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, 66
Windiarto Nugroho, Dewi Ekawati
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, 67
Windiarto Nugroho, Dewi Ekawati
Field Type Length/values Null Primary key Index
No varchar 50 Null - -
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 68
Windiarto Nugroho, Dewi Ekawati
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, 69
Windiarto Nugroho, Dewi Ekawati
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, 70
Windiarto Nugroho, Dewi Ekawati
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.
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.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 71
Windiarto Nugroho, Dewi Ekawati
Mendefinisikan panjang tampilan (M) dan jumlah desimal (D) diperlukan. NUMERIC
adalah sinonim untuk DECIMAL.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 72
Windiarto Nugroho, Dewi Ekawati
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, 73
Windiarto Nugroho, Dewi Ekawati
2. Setelah terbuka, akan tampil kurang lebih sebagai berikut :
3. Klik File kemudian pilih New Project, kemudian klik Java pilih Java Application.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 74
Windiarto Nugroho, Dewi Ekawati
Gambar Tampilan awal pembuatan project
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 75
Windiarto Nugroho, Dewi Ekawati
Gambar Project JavaSIP
5. Kita mulai terlebih dahulu dengan membuat koneksinya, yaitu koneksi ke database sip
yang sebelumnya sudah kita buat. Untuk koneksi database dari java ke sip di mysql ini
kita memanfaatkan JDBC(Java Data Base Conectivity). Agar koneksi aplikasi yang kita
buat ke server database bisa diubah-ubah alamat IPnya, atau bisa dibuat secara client
server maka kita simpan alamat IP/host, nama database, user ke dalam sebuah document
XML(kita beri nama database.xml) yang nanti isinya akan dibaca oleh aplikasi kita.
Caranya kita klik Tab Files pada samping kiri Project yang telah dibuat kemudian klik
kanan di JavaSIP pilih New, pilih Other. Setelah muncul tampilan menu other, klik Other
pilih Folder lalu klik Next.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 76
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.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 77
Windiarto Nugroho, Dewi Ekawati
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, 78
Windiarto Nugroho, Dewi Ekawati
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, 79
Windiarto Nugroho, Dewi Ekawati
10. Pada database.xml, hapus terlebih dulu semua isinya kemudian ketikkan coding program
berikut :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>JavaSIP</comment>
<entry key="HOST">localhost</entry>
<entry key="DATABASE">sip</entry>
<entry key="PORT">3306</entry>
<entry key="USER">root</entry>
<entry key="PAS"></entry>
</properties>
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 80
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, 82
Windiarto Nugroho, Dewi Ekawati
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, 85
Windiarto Nugroho, Dewi Ekawati
Silahkan buat semua menu yang ada seperti pada rancangan menu. Untuk
memasukkan judul silahkan pilih component label, tarik ke frmUtama, klik kanan,
pilih Edit Teks, Masukkan judul “Sistem Informasi Poliklinik”
2. Form Admin, Dokter, Pasien, Petugas, Obat, Tarif Tindakan, Registrasi Periksa,
Rawat Jalan, Pemberian Obat Dan Pembayaran.
Langkah-langkah membuat Form-form tersebut :
a. Klik kanan pada javasip, lalu pilih New, pilih JDialog Form.
b. Tentukan nama dan lokasinya, beri nama frmAdmin atau sesuai yang diinginkan
lalu klik Finish.
Pembuatan frmAdmin.
c. Buat tampilan frmAdmin seperti gambar berikut
Design frmAdmin.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 86
Windiarto Nugroho, Dewi Ekawati
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 :
Design frmDokter.
Design frmObat
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 87
Windiarto Nugroho, Dewi Ekawati
Gambar 2.7. Design frmPasien
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 88
Windiarto Nugroho, Dewi Ekawati
Gambar 2.9. Design frmTarifTindakan
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 89
Windiarto Nugroho, Dewi Ekawati
Gambar 2.11. Design frmRawatJalan
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 90
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){
try {
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 91
Windiarto Nugroho, Dewi Ekawati
koneksiDB.condb().createStatement().executeUpdate(
"update "+table+" "+nilai+"");
} catch (SQLException ex) {
System.out.println(""+ex);
}
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 92
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 :
String[] judul={"Id Admin","Password"};
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 93
Windiarto Nugroho, Dewi Ekawati
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, 94
Windiarto Nugroho, Dewi Ekawati
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 :
- 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.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 95
Windiarto Nugroho, Dewi Ekawati
- 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("");
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 :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 96
Windiarto Nugroho, Dewi Ekawati
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, 97
Windiarto Nugroho, Dewi Ekawati
}
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);
}
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 '%"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 98
Windiarto Nugroho, Dewi Ekawati
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) {
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);
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 99
Windiarto Nugroho, Dewi Ekawati
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)
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='"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 100
Windiarto Nugroho, Dewi Ekawati
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, 101
Windiarto Nugroho, Dewi Ekawati
ResultSet rs=koneksiDB.condb().createStatement().executeQuery(
"select * from obat");
while(rs.next()){
String[] data={rs.getString(1),rs.getString(2),rs.getString(3)};
tabmode.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(JavaSIP.class.getName()).log(Level.SEVERE, null,
ex);
}
}
public JTable getdata(){
return jTableObat;
}
public DefaultTableModel getMode() {
return tabmode;
}
i. Ketikkan method tampil(); di bawah source program simpan, ganti, dan hapus.
j. Kembali ke design frmObat 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=jTableObat.getSelectedRow();
if (i>-1){
jTextKodeObat.setText(tabmode.getValueAt(i, 0). toString());
jTextNamaObat.setText(tabmode.getValueAt(i, 1). toString());
jTextHarga.setText(tabmode.getValueAt(i, 2). toString());
}
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 '%"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 102
Windiarto Nugroho, Dewi Ekawati
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, 103
Windiarto Nugroho, Dewi Ekawati
ResultSet
rs=koneksiDB.condb().createStatement().executeQuery("select * from
obat");
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 frmObat pada frmUtama dengan klik kanan pada tombol Data Obat, pilih
Event, pilih Action, pilih Action Performed lalu ketikkan source program berikut :
frmObat obat=new frmObat(this,false);
obat.setLocationRelativeTo(null);
obat.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.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 104
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.
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()+"','"+
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='"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 105
Windiarto Nugroho, Dewi Ekawati
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("");
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);
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 106
Windiarto Nugroho, Dewi Ekawati
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, 107
Windiarto Nugroho, Dewi Ekawati
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());
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 '%"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 108
Windiarto Nugroho, Dewi Ekawati
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
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
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 109
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);
}
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 :
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, 110
Windiarto Nugroho, Dewi Ekawati
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='"+
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 { .
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 111
Windiarto Nugroho, Dewi Ekawati
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, 112
Windiarto Nugroho, Dewi Ekawati
public DefaultTableModel getMode() {
return tabmode;
}
i. Ketikkan method tampil(); di bawah source program simpan, ganti, dan hapus.
j. Kembali ke design frmPetugas 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=jTablePetugas.getSelectedRow();
if (i>-1){
TxtNip.setText(tabmode.getValueAt(i, 0). toString());
jTextNama.setText(tabmode.getValueAt(i, 1). toString());
jComboJk.setSelectedItem(tabmode.getValueAt(i, 2). toString());
jTextTmpLhr.setText(tabmode.getValueAt(i, 3). toString());
jTextTglLhr.setText(tabmode.getValueAt(i, 4). toString());
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)};
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 113
Windiarto Nugroho, Dewi Ekawati
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);
}
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, 114
Windiarto Nugroho, Dewi Ekawati
Gambar 3.12. Tampilan hasil program frmPetugas
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='"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 115
Windiarto Nugroho, Dewi Ekawati
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 { .
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, 116
Windiarto Nugroho, Dewi Ekawati
"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(JavaSIP.class.getName()).log(Level.SEVERE, null,
ex);
}
}
public JTable getdata(){
return jTableTarifTindakan;
}
public DefaultTableModel getMode() {
return tabmode;
}
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 '%"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 117
Windiarto Nugroho, Dewi Ekawati
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();
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, 118
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()+"','"+
jTextBiayaReg.getText()+"'");
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 119
Windiarto Nugroho, Dewi Ekawati
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 :
String[] judul={"No.Rawat","Tgl Registrasi","Jam Reg.","Dokter
dituju","Nama Pasien","Petugas","Biaya Reg."};
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 120
Windiarto Nugroho, Dewi Ekawati
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
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 121
Windiarto Nugroho, Dewi Ekawati
@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, 122
Windiarto Nugroho, Dewi Ekawati
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());
jTextCariNip.setText(tabmode.getValueAt(i, 5). toString());
jTextBiayaReg.setText(tabmode.getValueAt(i, 6). toString());
}
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 123
Windiarto Nugroho, Dewi Ekawati
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);
}
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 {
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 124
Windiarto Nugroho, Dewi Ekawati
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:
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:
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 125
Windiarto Nugroho, Dewi Ekawati
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.
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()+"','"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 126
Windiarto Nugroho, Dewi Ekawati
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("");
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);
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 127
Windiarto Nugroho, Dewi Ekawati
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
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
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 128
Windiarto Nugroho, Dewi Ekawati
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, 129
Windiarto Nugroho, Dewi Ekawati
tabmode.removeRow(0);
}
try {
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) {
System.out.println(ex);
}
}
public JTable getdata(){
return jTableRawatJalan;
}
public DefaultTableModel getMode() {
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());
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 130
Windiarto Nugroho, Dewi Ekawati
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
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 '%"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 131
Windiarto Nugroho, Dewi Ekawati
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);
}
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
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 132
Windiarto Nugroho, Dewi Ekawati
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);
- 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 :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 133
Windiarto Nugroho, Dewi Ekawati
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.
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 :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 134
Windiarto Nugroho, Dewi Ekawati
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("");
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
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 135
Windiarto Nugroho, Dewi Ekawati
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(
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) {}
});
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 136
Windiarto Nugroho, Dewi Ekawati
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, 137
Windiarto Nugroho, Dewi Ekawati
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 :
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
'%"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 138
Windiarto Nugroho, Dewi Ekawati
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);
}
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
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 139
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) {
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);
- 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 :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 140
Windiarto Nugroho, Dewi Ekawati
Gambar 3.20. Tampilan hasil program frmPemberianObat
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.
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()+"','"+
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 141
Windiarto Nugroho, Dewi Ekawati
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()+"'");
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 :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 142
Windiarto Nugroho, Dewi Ekawati
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) {}
@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, 143
Windiarto Nugroho, Dewi Ekawati
h. Mulai membuat method tampil dengan mengetikkan source program berikut di
bawah source private void tampil() { : (di tabel ini terdapat relasi perhatikan
perintah SQL nya, karena akan berpengaruh pada saat view tabel)
int row=tabmode.getRowCount();
for (int i=0;i<row;i++){
tabmode.removeRow(0);
}
try {
ResultSet rs=koneksiDB.condb().createStatement().executeQuery(
"select pembayaran.no_index, reg_periksa.no_rawat,
reg_periksa.tgl_registrasi, pasien.nm_pasien, pembayaran.tgl_bayar,
pembayaran.no, pembayaran.nm_bayar, pembayaran.pemisah,
pembayaran.biaya, pembayaran.jumlah, pembayaran.tambahan,
pembayaran.totalbiaya, pembayaran.status "+
"from pembayaran inner join reg_periksa on
reg_periksa.no_rawat = pembayaran.no_rawat 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),rs.getString(13)};
tabmode.addRow(data);
}
} 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){
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 144
Windiarto Nugroho, Dewi Ekawati
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 :
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 :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 145
Windiarto Nugroho, Dewi Ekawati
Gambar 3.22. Tampilan hasil Program frmPembayaran
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, 146
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, 147
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, 148
Windiarto Nugroho, Dewi Ekawati
Gambar 4.6
Klik Next
Gambar 4.7
Klik Next
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 149
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, 150
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
Klik Next – klik Back – klik Next – Klik Ok – klik Next sehingga muncul tampilan
berikut :
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 151
Windiarto Nugroho, Dewi Ekawati
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, 152
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, 153
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 :
Gambar 4.17
Lakukan dengan cara yang sama untuk membuat semua laporan yang akan dibuat dan
coba jalankan dengan menekan tombol F9.
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan | Oleh : Irnawati, 154
Windiarto Nugroho, Dewi Ekawati
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, 155
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
LAMPIRAN
Profil Pembuat Buku Ini
Dewi Ekawati, S.Km
Untuk Informatika Medis, Rekam Medis & Sistem Informasi Kesehatan |Oleh : Fita PS, Irnawati 158
dan Rini H.