BAB 3 PERANCANGAN SISTEM 3.1
Perancangan Perangkat Keras Secara umum, sistem ini tersusun seperti pada gambar 3.1 dibawah ini.
Gambar 3.1 Diagram blok sistem Diagram blok sistem bekerja dengan cara sebagai berikut : Ketika sistem aktif, sistem meminta pengguna untuk menekan push button pada sistem untuk memulai pengukuran. Setelah menekan push button, mikrokontroler akan
29
30
mengaktifkan relay untuk menutup valve dan menyalakan pompa. Pompa udara akan mengisi udara ke dalam cuff (bagian yang terbuat dari karet yang dilapisi oleh kain, dapat menggembung, dan diikatkan secara melingkar ke bagian lengan atas pengguna) yang sebelumnya telah dipasang pada lengan pengguna. Sistem menggunakan sensor tekanan yang terhubung ke cuff untuk mengukur tekanan udara yang ada di dalam cuff. Output dari sensor tekanan dibaca oleh ADC channel 3 dari mikrokontroler sehingga mikrokontroler dapat memonitor tekanan udara di dalam cuff yang sedang diisi udara secara real time. Setelah tekanan di dalam cuff mencapai 180 mmHg atau lebih besar 40 mmHg dari tekanan sistolik pengguna, mikrokontroler akan me-nonaktifkan relay yang terhubung dengan pompa udara, sehingga pompa udara berhenti memompa udara ke dalam cuff. Cuff akan mengempis secara perlahan-lahan dengan sendirinya karena terhubung dengan lubang kecil untuk mengeluarkan udara. Lubang ini cukup kecil agar saat cuff dipompa volume udara yang masuk lebih banyak daripada volume udara yang keluar. Pada tekanan 180 mmHg atau tekanan yang lebih besar 40 mmHg dari tekanan sistolik, pembuluh arteri menjadi menyempit karena tertekan oleh cuff, sehingga darah tidak dapat mengalir melalui pembuluh arteri. Ketika cuff mulai mengempis, rongga pembuluh arteri mulai melebar, sehingga darah dapat mengalir melaluinya. Darah yang dipompa oleh denyutan jantung menekan dinding pembuluh arteri dan menyebabkan pembuluh arter berdenyut juga. Denyutan ini dirasakan oleh sensor tekanan udara, karena denyutan pembuluh arteri ini menekan kulit dan ikut menekan cuff yang menghimpit lengan pengguna.
31
Denyutan ini merupakan hal yang penting dalam pencarian nilai sistolik dan diastolik pada metode oscillometric. Amplitudo dari denyutan ini berosilasi, di mana pada saat cuff baru mengempis denyutan bernilai kecil kemudian semakin lama semakin besar lalu mengecil lagi, sampai akhirnya osilasi berhenti dan nilai amplitudo setiap denyutan hampir tidak berubah ketika darah sudah mengalir dengan lancar di dalam pembuluh arteri. Tekanan sistolik didefinisikan sebagai tekanan udara di dalam cuff ketika terjadi kenaikan mendadak (sudden raise) pada osilasi denyutan sebelum osilasi mencapai puncaknya, sedangkan tekanan diastolik didefinisikan sebagai tekanan udara di dalam cuff saat denyutan terakhir sebelum osilasi berhenti. Sistem menggunakan modul filter dan penguat untuk mengambil sinyal berupa lonjakan tegangan dari denyutan tersebut. Filter berfungsi untuk memisahkan sinyal lonjakan tegangan dengan sinyal tekanan di dalam cuff dengan cara memblok sinyal tekanan cuff yang memiliki frekuensi rendah. Hal ini dilakukan agar sinyal lonjakan tegangan memiliki baseline yang tetap. Filter juga berfungsi untuk menghilangkan noise berfrekuensi tinggi yang berasal dari transducer sensor tekanan. Kemudian sinyal lonjakan tegangan diperkuat untuk mempermudah pembuatan algoritma dalam pencarian nilai amplitudo lonjakan, serta nilai tekanan sistolik dan diastolik.
32
Gambar 3.2 Sinyal tekanan cuff dan sinyal lonjakan tegangan
Gambar 3.3 Osilasi sinyal lonjakan tegangan yang telah di-filter dan diperkuat
Sinyal lonjakan tegangan yang telah di-filter dan diperkuat, dihubungkan ke ADC channel 4 mikrokontroler, sehingga mikrokontroler dapat mencari amplitudo dari setiap lonjakan tegangan melalui ADC channel 4 sekaligus mengetahui nilai tekanan udara di dalam cuff saat amplitudo terjadi melalui ADC channel 3. Setelah mendapatkan
33
60 buah nilai amplitudo atau tekanan udara di dalam cuff sudah lebih rendah dari 40 mmHg, mikrokontroler akan me-nonaktifkan relay yang terhubung dengan valve, sehingga cuff langsung mengempis, dan mikrokontroler segera memproses nilai-nilai amplitudo beserta tekanan udara untuk mencari nilai sistolik dan diastolik. Setelah nilai sistolik dan diastolik didapat, mikrokontroler menampilkan keduanya pada layar LCD. Lalu mikrokontroler menunggu apakah ada penekanan push button atau request dari PC untuk mengirimkan data sistolik dan diastolik. Bila ada penekanan push button, maka mikrokontroler akan melakukan pengukuran kembali tanpa mengirim data ke PC. Bila ada request data dari PC, maka mikrokontroler akan mengirimkan data berupa nilai tekanan sistolik dan diastolik menggunakan komunikasi serial melalui modul FTDI232. Program pada PC dapat digunakan oleh pengguna untuk menyimpan data diri berupa nama dan umur beserta nilai sistolik dan diastoliknya. Data yang sudah disimpan dapat dilihat kembali untuk mempermudah memantau kondisi tekanan darah pengguna secara berkala.
34
3.1.1
Skematik Rangkaian
Berikut adalah skematik dari rangkaian sistem secara keseluruhan: VCC
3 MPX5050DP 1
R1
R2
10K
10K VCC
GND 4
2
MCF51JM128
C1
C2
C3 12
ADC3 ADC4
100pF
33uF
33uF R3
11
GND
LCD 16x2
R10
BL1
150 POT1 10K
10K
Vo BL2 Gnd
PTD0 PTD1 PTD2 PTD3 PTD4 PTD5 PTD6 PTD7 PTF2 PTF1 PTF0
GND
R4 10K Rx2 Tx2
Tx PC Rx PC
PTF4 PTG3 PTG2
VCC
3 POT2 10K
VCC
6
C6
R11
5
10K
100nF
GND
R9 1K
VCC2 2 K1 1 3
K2 VCC
VCC
4
11
GND
VCC2
U1B LM324B 7
4
RS RW E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7
Vcc
U1D LM324B 14
13
GND R7
R8
2 1 3
10K
Res1 10K
VCC
4 GND 4
U1C LM324B 8
5 Relay
D2 1N4007
D1 1N4007
5 Relay
9 10
R6
R5 10K
10K C4 Q1 2N3904
R13
R12
560
560
Q2 2N3904
GND2
Pompa
3.3uF GND2
GND
11
Valve
GND C5
GND 3.3uF
Gambar 3.4 Skematik Rangkaian Keseluruhan
35
3.1.2
Modul MCF51JM128 Modul ini berfungsi sebagai pusat kontrol dari sistem. Mikrokontroler
mcf51m128 berfungsi untuk menyalakan/mematikan pompa udara serta membuka dan menutup valve melalui relay untuk mengontrol pengisian dan pengempisan udara ke dan dari dalam cuff. Mikrokontroler juga memonitor sinyal pulse yang yang telah diproses oleh modul filter dan penguat untuk mendapatkan nilai tekanan sistolik dan diastolik, kemudian menampilkannya pada LCD dan mengirimkannya ke PC melalui komunikasi serial.
Gambar 3.5 Modul MCF51JM128 dan LCD
36
3.1.3
Modul LCD Modul LCD sebagai modul penampil (display) yang berfungsi untuk
menampilkan hasil pengukuran yang berupa nilai tekanan darah sistolik, diastolik, dan menampilkan nilai tekanan udara didalam cuff . Modul LCD yang digunakan berukuran 16x2 yang berarti 16 karakter per baris dan memiliki 2 baris. Mode yang digunakan dalam modul LCD adalah mode 8 bit.
3.1.4
Modul FTDI232 Modul FTDI digunakan sebagai jembatan agar komunikasi serial asynchronous
antara sistem dan PC dapat terhubung menggunakan port usb pada PC. Agar sistem dapat berkomunikasi dengan PC, pin Tx dari mikrokontroler dihubungkan ke pin Rx pada FTDI232 dan pin Rx dari mikrokontroler dihubungkan ke pin Tx pada FTDI232. Bila sistem terhubung pada PC, maka sebuah virtual COM port akan muncul sebagai port yang menghubungkan PC dengan sistem.
37
Gambar 3.6 Skematik rangkaian FTDI232
3.1.5
Modul Sensor Tekanan Modul sensor tekanan berfungsi untuk mengukur tekanan udara yang ada pada
cuff dan diubah menjadi tegangan yang nantinya akan masuk ke ADC sehingga dapat diterima oleh mikrokontroler MCF51JM128. Jenis sensor yang dipakai oleh sistem adalah
MPX5050DP
yang
diproduksi
oleh Freescale
Semiconductor,
sensor
menggunakan metode diferensial untuk mengukur tekanan udara dan menggunakan
38
teknologi piezoresistive untuk mengubah tekanan udara menjadi sinyal listrik. Sensor ini bekerja pada tegangan 4,75 V sampai dengan maksimal 5,25 V dan dapat mengukur antara 0 – 50 kPa dengan sensitivitas sebesar 90 mV/kPa, di mana 1 Pa (Pascal) sama dengan 0,0075 mmHg sehingga memungkinkan pengukuran antara 0 – 375 mmHg dengan sensitivitas pengukuran sebesar 12 mV/mmHg.
Gambar 3.7 Skematik rangkaian sensor tekanan udara
3.1.6
Modul Band Pass Filter Modul ini berfungsi untuk mem-filter noise pada sinyal output berupa lonjakan
tegangan dari sensor tekanan. Modul ini merupakan gabungan dari dua buah rangkaian filter, yaitu HPF (High Pass Filter) dan LPF (Low Pass Filter). Rangkaian HPF memiliki frekuensi cutoff 0,48 Hz, berfungsi untuk memblok sinyal tekanan di dalam cuff dengan frekuensi rendah (sekitar 0,04 Hz) yang muncul ketika tekanan udara di dalam cuff menurun pada saat cuff mengempis. Sedangkan rangkaian LPF memiliki frekuensi cutoff 4,8 Hz, berfungsi untuk memblok sinyal noise berfrekuensi tinggi yang berasal dari transducer di dalam sensor tekanan.
39
Rangkaian filter pada modul ini dirancang menggunakan konfigurasi Sallen-Key Filter dengan pertimbangan kemudahan dalam perancangannya, karena nilai komponen yang digunakan sama.
Gambar 3.8 Skematik rangkaian HPF
Gambar 3.9 Skematik rangkaian LPF
40
3.1.7
Modul Penguat Non-Inverting Modul ini bertujuan untuk memperkuat sinyal output sensor tekanan yang telah
di-filter oleh modul Band Pass filter. Penguat yang digunakan adalah penguat noninverting agar tidak terjadi pembalikan fase pada sinyal. Rangkaian menggunakan potensiometer agar dapat mencari nilai penguatan yang sesuai untuk pencarian amplituo lonjakan tegangan.
Gambar 3.10 Skematik rangkaian penguat
41
3.2
Perancangan Piranti Lunak Perancangan piranti lunak sistem menggunakan bahasa C untuk pemrograman
mikrokontroler dan menggunakan compiler CodeWarrior for Microcontrollers V6.1. Program yang digunakan untuk komunikasi dan penyimpanan data pada PC adalah Visual Basic 6.0 dan Microsoft Access 2007.
42
3.2.1
Database pada PC Pada sistem ini database digunakan untuk menyimpan hasil pengukuran dari
sistem keseluruhan sehingga pengguna yang menggunakan alat ini dapat memantau perkembangan kesehatannya. Komunikasi yang digunakan untuk menghubungkan antara modul pengukuran dengan komputer adalah komunikasi secara serial. Penggunaan database memungkinkan penyimpanan riwayat kesehatan lebih dari 1 pengguna dan memudahkan pengguna memonitor pengukuran yang telah dilakukan menggunakan modul pengukuran sehingga bisa dilakukan pencegahan sebelum kesehatan pengguna menurun. Data yang disimpan pada database berupa nama, umur, tanggal dan waktu pengukuran, nilai tekanan sistolik, nilai tekanan diastolik, dan keterangan tekanan darah pengguna.
Gambar 3.11 Gambar tabel database pada Ms. Access
Gambar 3.12 Struktur tabel database pada Ms. Access
43
3.2.2
Algoritma Sistem Start
Tampilkan “Mulai Memompa” pada LCD
short amp1[60], amp2[60], delta[60] short stdval,a1,a2, b=0, c, e, n, sbp, dbp, map,map_loc Inisialisasi LCD, SCI & ADC
Pompa
Tampilkan “Tunggu sebentar” pada LCD
CariNilai stdval=0, c=180 e=0, n=0, map=0
A
Tampilkan nilai variabel sbp dan dbp pada LCD
Tampilkan “Tekan tombol” pada LCD tidak tidak
push button ditekan?
Ada request dari PC? Push button ditekan? ya
ya delay(700, 700)
Tampilkan “Tunggu sebentar” pada LCD
Tutup valve
e=data serial
e==11? ya Kirim nilai variabel sbp dan dbp ke PC
Kalibrasi Nilai
Gambar 3.13 Diagram Alir utama sistem
A
tidak
44
Algoritma sistem diawali dengan pendeklarasian variabel-variabel serta inisialisasi komponen-komponen yang akan digunakan, yaitu ADC, SCI, dan LCD. Kemudian program menunggu sampai pengguna menekan push button. Setelah pengguna menekan push button, program meng-clear nilai-nilai di dalam array ‘amp1’ , lalu menutup valve dan mengkalibrasi nilai variabel ‘stdval’ yang berfungsi sebagai acuan nilai tekanan udara terendah di dalam cuff. Kemudian program menyalakan pompa dan menjalankan rangkaian program Pompa untuk mengetahui nilai tekanan sistolik pengguna secara kasar agar dapat menghentikan pompa pada tekanan yang sesuai dengan pengguna. Bila nilai sistolik tidak didapatkan maka pompa akan berhenti bila tekanan pada cuff telah melebihi 180 mmHg. Kemudian rangkaian program CariNilai dijalankan untuk mencari nilai sistolik dan diastolik. Setelah mendapatkan nilai sistolik dan diastolik dan menampilkannya pada layar LCD, program menunggu apakah ada penekanan push button atau ada request dari PC untuk mengambil data sistolik dan diastolik. Bila push button ditekan, maka program akan kembali lagi ke awal dan langsung melakukan proses pengukuran tanpa menunggu pengguna menekan push button.
Bila request telah diterima maka program akan
mengirimkan data sistolik dan diastolik ke PC melalui komunikasi serial. Setelah keduanya terkirim, program kembali lagi ke awal, meng-clear semua nilai variabel, dan menunggu pengguna menekan push button.
45
tidak
stdval = stdval/60
Kalibrasi Nilai
Delay(short x,short y)
b=60
short a, b
a=0
b > 0? ya
a < x?
delta[b-1] = ADC3
ya a++
Return
stdval = stdval+delta[b-1] b--
tidak
b=0 tidak
b < y? ya
delay(200,200)
b++
Gambar 3.14 Diagram Alir KalibrasiNilai dan Delay
Return
46
Pompa
a1<100?
tidak
ya Nyalakan pompa tidak
e>0?
a1 = ADC4 a2 = ADC3
B
ya delta[b]=amp2[b+1]amp2[b] b++
a2=press(a 2,stdval)
tidak
n==0?
b>2 && delta[b1]<15 && delta[b2]<15 && delta[b3]>30?
tidak
ya amp1[e]=0
ya tidak
a1>133?
c=amp2[b-1]+40
ya n=0 e++
n=1 tidak
n==1?
B
ya
a2
ya
tidak
amp1[e]
tidak Matikan pompa
ya C
amp1[e]=a1 amp2[e]=a2
Return
Gambar 3.15 Diagram Alir Pompa
C
47
Press(short num, short std)
short x
x=(num-std)*1.221 x/=12
Return x
Gambar 3.16 Diagram Alir Fungsi Press Rangkaian program Pompa berfungsi untuk menyalakan pompa sekaligus mencari nilai sistolik pengguna agar pompa dapat dimatikan pada tekanan cuff yang sesuai dengan pengguna. Rangkaian program ini mengambil nilai ADC channel 3 dan 4, di mana nilai ADC 3 adalah nilai tekanan udara di dalam cuff, sedangkan nilai ADC 4 merupakan sinyal berupa lonjakan tegangan yang berasal dari denyutan pembuluh arteri pengguna. Secara garis besar, program akan mencari nilai amplitudo setiap lonjakan tegangan dari ADC 4 dan menyimpan nilai tekanan udara di dalam cuff pada saat lonjakan terjadi. Nilai tekanan yang memiliki selisih lebih besar dari 30 mmHg dari tekanan sebelumnya, lebih kecil dari 15 mmHg dari tekanan sesudahnya dan nilai tekanan sesudahnya dengan berikutnya lebih kecil dari 15 mmHg dinyatakan sebagai tekanan sistolik pengguna. Pompa akan dimatikan setelah tekanan udara di dalam cuff lebih besar 40 mmHg atau lebih dari tekanan sistolik pengguna, dan program kembali ke program utama. Pencarian ini dilakukan sampai nilai tekanan cuff mencapai 180 mmHg.
48
Bila nilai tekanan cuff sudah melebihi 180 mmHg dan nilai sistolik belum ditemukan maka program akan mematikan pompa dan kembali ke program utama. Algoritma program untuk mencari amplitudo lonjakan tegangan adalah mendeteksi datangnya sebuah lonjakan ketika nilai variabel ‘n’ sama dengan 0, dan mencari amplitudo lonjakan yang telah terdeteksi ketika ‘n’ bernilai 1. Untuk mendeteksi lonjakan ketika ‘n’ bernilai 0, program mengambil nilai ADC 4 dan menyimpannya di dalam variabel ‘a1’. Lalu program mengecek apakah nilai ‘a1’ lebih besar dari 133 atau tidak, bila ya, maka sebuah lonjakan telah terdeteksi dan program mengubah nilai ‘n’ menjadi 1. Bila tidak, maka program kembali mengambil nilai ADC 4 dan menyimpannya di dalam variabel ‘a1’ untuk dicek kembali. Ketika variabel ‘n’ bernilai 1, program mencari amplitudo dari lonjakan dengan cara mengambil nilai ADC 4 selama lonjakan berlangsung dan menyimpannya di variabel ‘a1’, kemudian nilai ‘a1’ tersebut dibandingkan dengan variabel array ‘amp1’, bila nilai ‘amp1’ lebih kecil maka nilai ‘a1’ disimpan ke dalam ‘amp1’ dan nilai ADC 3 disimpan ke variabel array ‘amp2’, bila nilai ‘amp1’ lebih besar, maka program akan mengecek apakah nilai ‘a1’ lebih kecil dari 100 atau tidak, bila ya, maka sebuah lonjakan dianggap telah selesai dan nilai ‘n’ diubah menjadi 0 untuk menjalankan proses pendeteksian lonjakan berikutnya. Bila sudah mendapat lebih dari 1 nilai amplitudo lonjakan, maka program akan mencari selisih tekanan udara dari 2 buah amplitudo yang saling bersebelahan, dan hasilnya disimpan di dalam variabel array ‘delta’. Setelah terkumpul lebih dari 2 buah array ‘delta’, program akan mencari array ‘delta’ yang bernilai kurang dari 15 serta memiliki nilai ‘delta’ sebelumnya bernilai lebih dari 30 dan nilai ‘delta’ sesudahnya
49
bernilai kurang dari 15. Bila ada nilai ‘delta’ yang memenuhi kondisi tersebut, maka nilai sistolik pengguna merupakan nilai dari variabel ‘amp2’ yang dikurangi pada proses perhitungan untuk mencari nilai ‘delta’ tersebut. Kemudian program mengubah batas tekanan udara maksimum pada cuff menjadi sebesar tekanan sistolik pengguna ditambah dengan 40 mmHg. Bila tidak ada nilai delta yang memenuhi kondisi tersebut sampai nilai tekanan udara pada cuff lebih besar dari 180 mmHg, maka program akan mematikan pompa dan kembali ke program utama untuk mencari amplitudo lonjakan tegangan ketika cuff mengempis.
50
CariNilai
n==1?
tidak
ya tidak
n=0 e=0
amp1[e]
D
a1 = ADC4 a2 = ADC3
amp1[e]=a1 amp2[e]=a2
a2=press(a 2,stdval)
a1<100?
tidak
ya n==0?
tidak
n=0 e++
ya amp1[e]=0 D a1>133?
ya
e<60 && a2>40?
tidak
tidak
ya E n=1
Gambar 3.17 Diagram Alir CariNilai
Rangkaian program CariNilai berfungsi untuk mencari nilai sistolik dan diastolik pengguna. Program mendeteksi lonjakan-lonjakan tegangan yang disebabkan oleh denyutan pada pembuluh arteri pada saat cuff mengempis, serta menyimpan nilai amplitudo lonjakan dan nilai tekanan udara di dalam cuff saat lonjakan terjadi. Data-data amplitudo serta nilai tekanan udara akan digunakan untuk mencari nilai sistolik dan diastolik pengguna. Algoritma yang digunakan untuk mencari nilai amplitudo lonjakan dan nilai tekanan udara di dalam cuff saat lonjakan terjadi sama seperti pada rangkaian program Pompa. Proses pencarian akan berlangsung sampai jumlah amplitudo yang didapat
51
mencapai 60 buah atau tekanan udara di dalam cuff sudah lebih rendah dari 40 mmHg. Setelah proses pencarian selesai, program berlanjut ke proses pencarian posisi MAP, selisih antar amplitudo yang bersebelahan, nilai sistolik dan nilai diastolik.
E
c<delta[b] && b<(map_loc-1)?
tidak
ya
b=2
c=delta[b] sbp=amp2[b+1]
tidak map
delta[b]=amp1[b]amp1[b+1]
map =amp1[b] map_loc=b
b++ tidak ya
b<e?
n<delta[b-1] && delta[b]<10? ya
tidak
n=delta[b-1] dbp=amp2[b-1]
b=0 b++ F
b<map_loc? ya
tidak b<(e-1)?
F
delta[b]=amp1[b+1]amp1[b] Return
Gambar 3.18 Diagram Alir pencarian nilai SBP dan DBP
Pencarian lokasi MAP dilakukan dengan cara mencari nilai amplitudo yang paling besar dan mencatat lokasinya. Program menggunakan variabel ‘map’ untuk
52
menyimpan nilai lonjakan MAP dan variabel ‘map_loc’ untuk menyimpan nilai yang menandakan lokasi MAP. Setelah lokasi MAP diketahui, program menghitung selisih nilai dari amplitudo-amplitudo yang bersebelahan dan nilai dari selisih tersebut dimasukkan ke array ‘delta’. Kemudian program mencari nilai sistolik dan diastolik. Algoritma yang digunakan untuk mencari nilai sistolik adalah mencari nilai ‘delta’ terbesar sebelum MAP, sedangkan algoritma untuk mencari nilai diastolik adalah mencari array ‘delta’ terbesar setelah MAP dan nilai ‘delta’ berikutnya kurang dari 10. Setelah nilai sistolik dan diastolik didapat, program akan menampilkan kedua nilai tersebut pada layar LCD dan menunggu request dari PC untuk mengambil data sistolik dan diastolik. Program akan menunggu data dari modul serial, bila program menerima data dengan nilai desimal 11, maka program akan mengirimkan nilai sistolik, kemudian program menunggu data dari serial lagi. Bila program menerima data dengan nilai desimal 12, maka program akan mengirimkan nilai diastolik, kemudian program kembali lagi ke awal dan menunggu push button ditekan oleh pengguna
53
3.2.2
Algoritma User Interface pada PC Start
Inisialisasi program Buka koneksi database
A Tampilkan form ‘Main’
Pilih ?
Setting serial
Simpan
Lihat Riwayat
Tutup Aplikasi
A
Gambar 3.19 Diagram alir form Main Algoritma interface pada PC diawali dengan melakukan inisialisasi yaitu membuka koneksi database. Setelah inisialisasi selesai dilakukan maka program akan menampilkan form ‘Main’ yang berisi menu-menu yang dapat dipilih oleh pengguna.
54
Setting Serial
Pilih ‘Setting serial’ dari menu atau tekan tombol ‘Setting serial’
Tampilkan form ‘Setting serial’
Pilih COM port
Klik tombol ‘Connect’
COM port sudah dipilih ?
Tidak
Messagebox “Pilih Port”
Buka koneksi serial
Return Gambar 3.20 Diagram alir form Setting Serial Setelah form ‘Main’ terbuka maka pengguna dapat melakukan setting serial terlebih dahulu dengan cara memilih ‘Setting Serial’ pada menu atau menekan tombol ‘Setting Serial’ yang telah disediakan pada user interface di PC. Setelah pengguna melakukan salah satu dari memilih menu ‘Setting Serial’ atau menekan tombol ‘Setting
55
Serial’ yang telah disediakan maka pengguna akan langsung melihat form ‘Setting Serial’ yang akan digunakan untuk melakukan koneksi dengan sistem melalui komunikasi serial. Setelah form ‘Setting Serial’ muncul maka pengguna diminta untuk memilih COM port yang akan digunakan untuk menghubungkan antara sistem dengan PC, setelah memilih COM port yang akan digunakan maka pengguna menekan tombol ‘Connect’ untuk membuka koneksi antara sistem dengan program. Setelah menekan tombol ‘Connect’ program akan mengecek apakah COM port sudah dipilih dari daftar COM port yang dapat digunakan, jika belum maka program akan mengeluarkan peringatan berupa messagebox dengan kalimat “Pilih Port”, akan tetapi jika port yang akan digunakan sudah dipilih maka program akan membuka koneksi serial antara sistem dengan PC.
56
Simpan
Pilih ‘Simpan’ dari menu atau tekan tombol ‘Simpan’
Tampilkan form ‘Simpan’
Messagebox “Serial belum terhubung”
Tombol apa yang ditekan ?
Messagebox “Lengkapi data”
Tidak
Klik tombol ‘Simpan’
Klik tombol ‘Ambil Data’
Apakah nama, umur, SBP, dan DBP terisi ?
Apakah serial terhubung ?
Tidak
Ya Ya
B
Ambil SBP dan DBP hasil pengukuran dari sistem
Tampilkan nilai SBP dan DBP hasil pengukuran sistem serta waktu pengukuran
Gambar 3.21 Diagram alir form Simpan Form ‘Simpan’ berguna untuk menyimpan data hasil pengukuran dari sistem ke database, form ini dapat dibuka dengan memilih ‘Simpan’ dari menu atau dengan menekan tombol ‘Simpan’. Setelah tampilan form ‘Simpan’ muncul pengguna dapat memilih untuk melakukan simpan hasil pengukuran atau mengambil hasil pengukuran yang telah dilakukan oleh sistem. Jika pengguna memilih untuk melakukan simpan data maka pengguna diharuskan terlebih dahulu mengambil hasil pengukuran yang telah dilakukan dengan menekan tombol ‘Ambil Data’ pada form ‘Simpan’, karena jika pengguna tidak terlebih dahulu mengambil hasil pengukuran maka pada saat pengguna
57
menekan tombol ‘Simpan’ program akan mengecek apakah data seperti hasil pengukuran, nama, dan umur sudah terisi, jika belum terisi maka akan muncul peringatan berupa messagebox untuk melengkapi data. Saat tombol ‘Ambil Data’ ditekan maka program akan mengecek apakah serial terhubung, jika tidak akan muncul peringatan berupa messagebox untuk menghubungkan koneksi serial terlebih dahulu. Setelah serial terhubung, program akan mengambil SBP dan DBP dari hasil pengukuran yang telah dilakukan dan akan ditampilkan pada form ‘Simpan’. Setelah data pengukuran dan waktu pengukuran lengkap, pengguna harus memasukkan nama dan umur untuk melanjutkan simpan data.
58
Gambar 3.22 Diagram alir algoritma penentuan variabel keterangan
59
Setelah menekan tombol ‘Simpan’ maka program akan mencari keterangan yang akan disimpan pada database, keterangan ini berisi kategori tekanan darah pada seseorang yang dapat membantu pengguna dalam memantau riwayat kesehatan mereka. Data yang akan disimpan sebelumnya dicek terlebih dahulu apakah umur pengguna telah mencapai 18 tahun, jika belum maka keterangan yang akan disimpan pada database adalah tidak ada. Jika umur pengguna telah mencapai 18 tahun atau lebih maka program akan mengecek apakah tekanan darah sistolik kurang dari 90, jika ya maka keterangan yang akan disimpan adalah hipotensi, jika tidak maka program akan melakukan pengecekan yang berikut nya. Bila tekanan darah tidak kurang dari 90 maka program akan mengecek apakah tekanan darah sistolik pengguna antara 90-119, jika ya maka keterangan yang akan disimpan adalah normal dan jika tidak maka program akan mengecek apakah tekanan darah sistolik antara 120-139. Jika tekanan darah sistolik pengguna berada diantara 120139 maka keterangan yang akan disimpan adalah prehipertensi, tetapi jika tidak maka program akan kembali melakukan pengecekan berikutnya. Jika pada pengecekan sebelumnya keterangan belum didapatkan maka program akan kembali mengecek apakah tekanan darah sistolik dari pengguna berada di antara 140-159, jika ya maka keterangan yang akan disimpan adalah hipertensi tingkat 1, jika tidak program akan melakukan pengecekan terakhir. Program akan mengecek apakah nilai tekanan darah sistolik lebih besar dari 159, jika ya maka keterangan yang akan disimpan adalah hipertensi tingkat 2. Jika keterangan tekanan darah belum didapatkan hingga pengecekan terakhir maka keterangan yang akan disimpan adalah tidak ada.
60
Setelah didapatkan keterangan hasil dari pengecekan yang telah dilakukan sebelumnya maka program akan berlanjut ke proses simpan data yang akan menyimpan data pada form ‘Simpan’ dan keterangan yang telah didapatkan sebelumnya ke database. Setelah proses penyimpanan data selesai maka semua data yang telah disimpan tersebut akan dikosongkan dari form ‘Simpan’.
61
C
Apakah data pengukuran lengkap ?
Tidak
E
Ya
Tampilkan form ‘Diagnosa’
Inisialisasi form diagnosa Me.Width = 323 Me.Height = 326 spcon.Panel2.Hide() spcon1.Panel1.Hide() spcon1.Panel2.Hide() ttpdiag.Hide()
Tombol apa yang ditekan ?
Batal
E
Lanjut
Umur >= 18 ?
Tidak
Messagebox “Diagnosa hanya untuk umur 18 tahun ke atas”
Ya
Tampilkan “hipotensi” pada textbox tkndrh dan menampilkan saran untuk penderita hipotensi pada richtextbox saran Tampilkan “normal” pada textbox tkndrh dan menampilkan saran untuk penderita hipotensi pada richtextbox saran
Ya
SBP < 90 ? Tidak
Ya
SBP >= 90 & SBP <= 119 ?
Cek
D
Gambar 3.23 Diagram alir form Diagnosa
E
62
D
Tampilkan hasil diagnosa Me.Height = 407 Me.Width = 959 spcon.Panel2.Show() spcon1.Panel1.Show() ttpdiag.Show()
Tombol ‘Tutup’ ditekan ? E
Tutup form ‘Diagnosa’
Return 3.24 Diagram alir tampil hasil diagnosa & tutup form Setelah data tersimpan ke database akan muncul form ‘Diagnosa’ yang akan membantu pengguna dengan diagnosa dari hasil pengukuran yang telah dilakukan. Sebelum form ‘Diagnosa’ muncul program akan mengecek terlebih dahulu apakah data yang sebelumnya telah diisi pada form ‘Simpan’ telah lengkap, jika telah lengkap maka program akan menampilkan form ‘Diagnosa’, saat form muncul maka akan dilakukan inisialisasi yang merubah ukuran dari form menjadi 323x326 pixels. Setelah merubah ukuran awal dari form maka program akan berlanjut dengan menyembunyikan
63
splitcontainer panel 2 dan splitcontainer ke 2 yang berisi panel 1 dan 2, setelah kedua splitcontainer tersebut disembunyikan maka berikutnya tombol ‘ttpdiag’ yang berfungsi untuk menutup form ‘Diagnosa’ juga disembunyikan sehingga pengguna hanya melihat tampilan awal untuk melakukan konfirmasi bahwa data yang muncul pada form ‘Diagnosa’ adalah data yang benar. Jika data yang ditampilkan benar maka pengguna dapat melanjutkan diagnosa dengan menekan tombol ‘Lanjut’ atau menekan tombol ‘Batal’ untuk keluar dari form. Jika pengguna menekan tombol ‘Lanjut’ maka program akan secara otomatis mengecek apakah umur dari pengguna lebih besar atau sama dengan 18 tahun, jika tidak maka program akan mengeluarkan peringatan bahwa program diagnosa hanya untuk umur minimal 18 tahun dan dengan otomatis form akan tertutup. Jika umur pengguna lebih dari 18 tahun maka program akan mengecek apakah tekanan darah sistolik dari pengguna kurang dari 90, jika ya maka program akan menampilkan “hipotensi” pada textbox ‘tkndrh’ dan menampilkan saran-saran yang dapat dibaca oleh pengguna agar tekanan darah pengguna dapat menjadi normal. Jika tekanan darah sistolik tidak kurang dari 90 maka program akan melakukan cek selanjutnya yaitu apakah tekanan darah sistolik pengguna berada di antara 90-119, jika ya maka program akan menampilkan “normal” pada textbox ‘tkndrh’ dan menampilkan saran-saran yang dapat dibaca oleh pengguna. Setelah pengecekan kedua apabila nilai tekanan darah sistolik pengguna tidak masuk kedalam salah satu kategori hipotensi atau normal maka program akan memanggil fungsi cek.
64
Gambar 3.25 Diagram alir fungsi cek Fungsi cek akan berjalan jika tekanan darah sistolik pengguna tidak termasuk kedalam kategori normal atau hipotensi, fungsi ini pertama kali akan mengecek apakah pengguna memiliki tekanan darah sistolik antara 120-139. Jika ya maka program akan menampilkan “prehipertensi” pada textbox ‘tkndrh’ dan menampilkan saran-saran yang dapat dibaca oleh pengguna agar tekanan darah pengguna dapat mencapai angka normal, jika tekanan darah sistolik pengguna lebih dari 139 maka program akan berjalan untuk pengecekan berikutnya yaitu apakah nilai tekanan darah sistolik dari pengguna berada di
65
antara 140-159. Jika tekanan darah sistolik pengguna berkisar antara 140 sampai dengan 159 maka program akan menampilkan “hipertensi tingkat 1” pada textbox ‘tkndrh’ dan menampilkan saran-saran yang dapat dibaca oleh pengguna, sedangkan jika tekanan darah sistolik pengguna melebihi 159 maka program akan menampilkan “hipertensi tingkat 2” pada textbox ‘tkndrh’ dan menampilkan saran-saran yang dapat dibaca oleh pengguna. Setelah didapatkan hasil dari diagnosa yang dilakukan program, maka program akan merubah ukuran dari form ‘Diagnosa’ menjadi 407x959 pixels dan menampilkan splitcontainer 1 dan 2 yang berisi panel-panel yang memuat hasil diagnosa yang sebelumnya telah dilakukan oleh program. Jika pengguna telah selesai melihat hasil diagnosa maka pengguna dapat menekan tombol ‘Tutup’ untuk menutup form diagnosa.
66
Gambar 3.26 Diagram alir form lihat riwayat Pengguna dapat memilih untuk melihat riwayat pengukuran yang sudah pernah dilakukan dengan cara memilih ‘Lihat Riwayat’ pada menu atau dengan menekan
67
tombol ‘Lihat Riwayat’ yang sudah disediakan pada user interface. Setelah pengguna memilih untuk melihat riwayat, program akan menampilkan form ‘Lihat Riwayat’. Agar dapat melihat hasil pengukuran yang pernah dilakukan maka pengguna harus memasukkan nama ke dalam textbox yang telah disediakan dan menekan tombol ‘Cari’ agar program dapat melakukan pencarian pada database. Pada saat pengguna menekan tombol ‘Cari’ maka program akan mengecek apakah textbox kosong, jika ya maka akan muncul peringatan yang berupa messagebox untuk mengingatkan pengguna agar mengisi textbox yang telah disediakan. Jika textbox tidak kosong maka program akan memulai proses pencarian pada database dengan mencocokkan input yang diberikan oleh pengguna melalui textboxt dengan field ‘nama’ pada database. Jika ditemukan kecocokan antara input dari textbox dengan field ‘nama’ pada database maka hasil pencarian tersebut akan ditampilkan pada tabel yang sudah disediakan pada form ‘Lihat Riwayat’. Tutup Aplikasi
Pilih ‘Tutup Aplikasi’ dari menu atau tekan tombol ‘Tutup Aplikasi’
Tutup koneksi serial Tutup koneksi database
Keluar dari aplikasi
Gambar 3.27 Diagram alir penutupan aplikasi
68
Jika pengguna ingin keluar dari program maka pengguna dapat memilih ‘Tutup Aplikasi’ dari menu atau dengan menekan tombol ‘Tutup Aplikasi’ yang telah disediakan. Ketika aplikasi akan ditutup maka program akan otomatis menutup koneksi serial dan koneksi database.
3.3
Rancang Bangun Sistem Sistem memiliki bentuk balok dengan panjang 23 cm, lebar sebesar 14 cm, dan
tinggi 8 cm. Case terbuat dari bahan acrylic dan pada sisi-sisi case terdapat beberapa lubang yang digunakan untuk keluar dan masuk dari kabel-kabel seperti untuk kabel catu daya, 2 buah kabel USB, dan juga lubang untuk menghubungkan sistem dengan cuff pada sisi samping kiri.
Gambar 3.28 Rancang bangun sistem tampak atas
69
14 cm
11 cm
2 cm
3,5 cm
Gambar 3.29 Rancang bangun sistem tampak samping kiri