Anda di halaman 1dari 12

RANCANG BANGUN ALAT PEREKAM FREKUENSI LISTRIK JANTUNG

PORTABLE MENGGUNAKAN GROVE CHEST STRAP HEART RATE SENSOR


DENGAN ARDUINO UNO

Nenny Anggraini
nenny_a@yahoo.com
Dosen Jurusan Teknik Informatika, UIN Syarif Hidayatullah Jakarta

ABSTRAK

Jantung merupakan pemompa berotot yang bekerja secara terus menerus dan tanpa berhenti untuk
memompa darah manusia yang dialirkan ke seluruh tubuh, jantung berkontraksi atau berdenyut
secara berirama akibat potensial aksi yang ditimbulkannya sendiri, potensial aksi ini dicetuskan oleh
nodus-nodus pacemaker yang terdapat di jantung dan dipengaruhi oleh beberapa jenis elektrolit
seperti K+, Na+, dan Ca++. EKG adalah rekaman mengenai aktivitas listrik di cairan tubuh yang
dirangsang oleh aliran listrik jantung yang mencapai permukaan tubuh, bagi sebagian orang yang
menderita penyakit jantung pemeriksaan EKG sangat dibutuhkan, pemeriksaan secara berkala
tentunya membutuhkan biaya serta memakan waktu karena harus bolak balik ke dokter atau rumah
sakit, Untuk mengatasi permasalahan tersebut maka dibutuhkan alat portable yang memiliki
kemudahan dalam pengoperasiannya dan dapat digunakan di rumah. Untuk itu Penulis mempunyai
ide untuk merancang dan membuat sebuah Alat perekam listrik jantung portable berbasis
Microcontroller menggunakan Sensor Grove Chest Strap Heart Rate yang mampu menangkap
sinyal listrik jantung. Dengan menggunakan pengantarmukaan paralel pada komunikasinya, akan
mengubah sinyal analog menjadi sinyal digital yang akan diteruskan ke komputer melalui perangkat
Arduino UNO. Komunikasi antara sensor dengan Arduino UNO menggunakan gelombang radio
AM (nirkabel) dengan menggunakan Bahasa pemrograman C yang digunakan untuk menampilkan
data perekam frekuensi listrik jantung dalam bentuk stream pada serial port, sedangkan software
processing dengan bahasa pemrograman Java untuk mengubah data serial tersebut menjadi grafik
dari frekuensi listrik jantung yang nantinya dapat dihitung tingginya frekuensi dari listrik jantung
tersebut dalam satuan bpm (beats per minute).

Kata Kunci: frekuensi listrik jantung, sensor grove chest strap heart rate, arduinouno

I. PENDAHULUAN oleh nodus-nodus pacemaker yang terdapat


Jantung adalah salah satu organ di jantung dan dipengaruhi oleh beberapa
manusia yang letaknya di dalam rongga jenis elektrolit seperti K+, Na+, dan Ca++.
dada sebelah kiri yang terdiri dari organ Gangguan terhadap kadar elektrolit tersebut
berupa otot, berbentuk kerucut, berongga di dalam tubuh dapat mengganggu
dan dengan basisnya di atas dan puncaknya mekanisme pembentukan dan penghantaran
di bawah. Jantung merupakan pemompa listrik jantung. Sumber listrik Jantung
berotot yang bekerja secara terus menerus adalah SANode (Nodus Sinoatrial). Arus
dan tanpa berhenti untuk memompa darah listrik yang dihasilkan oleh otot jantung
manusia yang dialirkan ke seluruh tubuh. menyebar ke jaringan di sekitar jantung dan
Sistem listrik jantung adalah Jantung yang dihantarkan melalui cairan-cairan tubuh.
berkontraksi atau berdenyut secara Sebagian kecil aktivitas listrik ini mencapai
berirama akibat potensial aksi yang permukaan tubuh dan dapat dideteksi
ditimbulkannya sendiri, hal ini disebabkan menggunakan alat khusus. Rekaman aliran
karena jantung memiliki mekanisme aliran listrik jantung disebut dengan
listrik yang dicetuskannya sendiri guna elektrokardiogram atau EKG. EKG adalah
berkontraksi atau memompa dan rekaman mengenai aktivitas listrik di cairan
berelaksasi. Potensial aksi ini dicetuskan tubuh yang dirangsang oleh aliran listrik
1
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
jantung yang mencapai permukaan tubuh. sistol (kontraksi dan pengosongan isi) dan
Jadi EKG bukanlah rekaman langsung juga periode diastol (relaksasi dan pengisian
aktivitas listrik jantung yang sebenarnya. jantung). Atrium dan ventrikel mengalami
Siklus jantung bekerja secara berselang siklus sistol dan diastol terpisah. Kontraksi
seling dalam hal kontraksi (memompa). terjadi akibat penyebaran eksitasi
Kerja jantung dalam berkontraksi untuk (mekanisme listrik jantung) ke seluruh
mengosongkan isi jantung dan juga jantung. Sedangkan relaksasi timbul setelah
berelaksasi dalam rangka mengisi darah repolarisasi atau tahapan relaksasi dari otot
kembali. Siklus jantung terdiri atas periode jantung.
Tes EKG itu dilakukan untuk pemrograman C yang digunakan untuk
beberapa keperluan antara lain: menampilkan data perekam frekuensi
 Memeriksa aktivitas listrik jantung listrik jantung dalam bentuk stream pada
 Menemukan penyebab nyeri dada,
serial port, sedangkan software processing
dengan bahasa pemrograman Java untuk
yang dapat disebabkan serangan
jantung, inflamasi kantung sekitar mengubah data serial tersebut menjadi
jantung (perikarditis). grafik dari frekuensi listrik jantung yang
 Menemukan penyebab gejala penyakit nantinya dapat dihitung tingginya
frekuensi dari listrik jantung tersebut
jantung, seperti detak jantung lebih
cepat atau tidak beraturan (Aritmia). dalam satuan bpm (beats per minute).
 Mengetahui apakah dinding ruang-ruang Permasalahan penelitian yang penulis
angkat adalah Bagaimana merancang dan
jantung terlalu tebal.
 Memeriksa seberapa baik kerja suatu
membuat sebuah alat portableyang mampu
merekam Frekuensi sinyal listrik jantung
obat dan apakah obat tersebut memiliki
efek samping terhadap jantung. dengan menggunakan Grove Chest Strap
 Memeriksa apakah suatu alat mekanis Heart Rate Sensor berbasis Microcontroller
yang dicangkok dalam jantung, Arduino Uno.
misalnya pacemaker, bekerja dengan Merancang dan membuat alat perekam
baik untuk mengendalikan denyut frekuensi listrik jantung portable dengan
jantung. hasil tampilan dalam bentuk angka dan
grafik di komputer atau laptop.
 Memeriksa kesehatan jantung pada
penderita penyakit atau kondisi II. METODOLOGI PENELITIAN
tertentu, seperti hipertensi, kolesterol
tinggi, diabetes, atau penyakit lainnya. 2.1 Metode Pengumpulan Data
2.1.1 Observasi
Bagi sebagian orang pemeriksaan EKG Pada metode ini, peneliti
secara berkala tentunya membutuhkan biaya mengumpulkan data dan informasi yaitu
serta memakan waktu karena harus bolak dengan cara meninjau dan melakukan
balik ke Dokter atau rumah sakit, Untuk pengamatan secara langsung ke lapangan
mengatasi permasalahan tersebut maka terhadap suatu kegiatan yang sedang
dibutuhkan alat portable yang dilakukan atau berjalan, untuk memperoleh
memiliki kemudahan dalam informasi mengenai kebutuhan sistem
pengoperasiannya dan dapat digunakan di (system requirements).
rumah. Untuk itu Penulis mempunyai ide Pada penelitian ini peneliti
untuk merancang dan membuat sebuah alat melakukan observasi pada alat-alat
perekam listrik jantung portable berbasis kedokteran yang mempunyai fungsi untuk
Microcontroller menggunakan Grove Chest menghitung frekuensi sinyal jantung seperti
Strap Heart Rate Sensor yang mampu EKG, Penulis juga membaca literatur
menangkap sinyal listrik jantung, Dengan tentang cara kerja dari EKG, sampai
menggunakan pengantarmukaan paralel pada akhirnya penulis mempunyai ide untuk
komunikasinya, akan mengubah sinyal membuat suatu alat yang bisa menghitung
analog menjadi sinyal digital yang akan frekuensi sinal jantung yang portable
diteruskan ke komputer melalui perangkat sehingga pengguna bisa menggunakan alat
Arduino UNO. Komunikasi antara sensor tersebut sendiri.
dengan Arduino UNO menggunakan
gelombang radio AM (nirkabel) dengan
menggunakan Bahasa

2
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
2.1.2 Studi Pustaka dan Literatur Sejenis Penelitian studi literatur yang
Peneliti mempelajari tiap konsep yang dilakukan pada hasil penulisan karya
berkaitan dengan topik bahasan penelitian ilmiah, yaitu menekankan pada kelebihan
dengan cara membaca buku-buku referensi, dan kekurangan yang dilihat dari sisi sistem
e-book, artikel, jurnal dan website. Adapun yang telah dirancang. Sebagai sumber
sumber-sumber tersebut dapat dilihat referensi dan bahan acuan terhadap sistem
selengkapnya pada daftar pustaka. yang akan dibuat. Studi literatur hasil dari
penelitian atau hasil penulisan karya ilmiah
di antaranya:

Tabel 1. Perbandingan Studi Literatur

No Nama peneliti Judul Penelitian Kelebihan Kekurangan


1 Wahab, Wahidin, Perancangan alat + Dapat - Masih menggunakan
Budiono, Mintardja detektor denyut menghitung Mikrokontroller 8031
Indra jantung berbasis denyut nadi per - Bahasa pemrograman
mikrokontroler 8031 menit yg digunakan hanya
Perpustakaan terbatas utk ruang
Universitas Indonesia lingkup mesin 8031
UI - Laporan Penelitian - Menggunakan sensor
Fotodioda utk
mendeteksi cahaya
lewat ujung jari
- Alat tidak portable dan
belum ada tampilan
grafik frekuensinya
2. SERTU EDY Rancang Bangun + Dapat - Masih menggunakan
SUSANTO ELKA Penghitung Detak menghitung Mikrokontroller
Nadi Menggunakan denyut nadi AT8951
http://lemjiantek.mil.id/ Sadapan Ujung Jari kurang dari satu - Bahasa pemrograman
article-110-rancang- dengan Tampilan menit yg digunakan hanya
bangun-alat-penghitung- LCD untuk Seleksi terbatas utk ruang
detak-nadi.html Penerimaan Calon +Alat ini lingkup mesin AT8951
Prajurit dimanfaatkan oleh - Menggunakan LED
satuan Kesehatan superbright dan sensor
militer dan dapat Fotodioda utk
diaplikasikan mendeteksi cahaya
untuk seleksi lewat ujung jari
penerimaan calon - Alat tidak portable dan
prajurit TNI AD. belum ada tampilan
grafik frekuensinya

3. Agung, I Gusti Agung Perencanaan Dan + Dapat - Masih menggunakan


Putu Raka, Realisasi Alat menghitung Mikrokontroller
Institusi Fakultas Penghitung Jumlah frekuensi detak AT89S52
Teknik Universitas Detak Jantung jantung per menit - Bahasa pemrograman
UdayanaTahun Berbasis yg digunakan hanya
Terbit2008 Mikrokontroler terbatas utk ruang
AT89S52 +Menggunakan lingkup mesin
sensor berupa AT89S52
elektrode, penguat - Alat tidak portable dan
dan filter serta belum ada tampilan
dilengkapi dengan grafik frekuensinya
RTC Ds12887
sebagai sumber
waktu konstan dan
bersifat real time.

perencanaan syarat-syarat, fase perancangan


2.2 Metode Pengembangan Sistem sistem (Workshop Design), fase
Pengembangan sistem yang implementasi. Model RAD digunakan
dilakukan menggunakan tiga tahap siklus karena melihat dari aplikasi yang
pengembangan model RAD (Rapid dikembangkan merupakan aplikasi yang
Application Development), yaitu fase sederhana dan tidak membutuhkan waktu

3
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
yang lama, metode RAD adalah metode komunikasinya, yang akan mengubah
yang diperuntukkan untuk jangka waktu sinyal analog menjadi sinyal digital
yang pendek sesuai dengan aplikasi yang yang selanjutnya diteruskan ke
akan dibuat. komputer melalui perangkat Arduino
Adapun dalam tahap UNO. Komunikasi antara sensor
pengembangan sistem RAD (Rapid dengan Arduino UNO menggunakan
Application Development) ini terdiri dari gelombang radio AM (nirkabel)
beberapa aktivitas yang tentunya sesuai dengan menggunakan Bahasa
dengan tahapan yang telah dijabarkan pada pemrograman C yang digunakan untuk
alur proses pengembangan sistem. Tahapan menampilkan data perekam frekuensi
tersebut yaitu (Kendall & Kendall, 2010): listrik jantung dalam bentuk stream
pada serial port, sedangkan software
2.2.1 Fase Perencanaan Syarat-syarat processing dengan bahasa
Dalam fase ini peneliti melakukan pemrograman Java untuk mengubah
beberapa kegiatan di antaranya: data serial tersebut menjadi grafik dari
1) Identifikasi masalah frekuensi listrik jantung yang nantinya
Bertujuan untuk menjelaskan masalah dapat dihitung tingginya frekuensi dari
yang ada, sehingga penelitian ini listrik jantung tersebut dalam satuan
dibuat. bpm (beats per minute).
2) Usulan Penyelesaian Masalah
Merupakan usulan penyelesaian dari 2.2.3 Fase Implementasi
masalah-masalah yang telah dijelaskan Pada tahap ini peneliti melakukan
pada poin 1 (Identifikasi masalah). beberapa tahap implementasi di antaranya:
3) Analisis Rancang Bangun Alat 1) Spesifikasi Software dan Hardware
Perekam Frekuensi Listrik Jantung Perangkat keras (hardware) dan
portable menggunakan grove chest perangkat lunak (software) yang
strap heart rate sensor dengan dibutuhkan untuk menjalankan
Arduino uno system perekam frekuensi jantung
Bertujuan untuk melakukan portable ini.
perancangan terhadap alat yang akan 2) Instalasi ke Software Arduino Pada
dibuat tahap ini, peneliti melakukan
instalasi Software Arduino, hal ini
2.2.2 Perancangan Sistem (Workshop dimaksudkan supaya computer
design) mengenali Alat perkan frekuensi
Pada tahap ini peneliti mendesain jantung.
perancangan Rancang Bangun Alat 3) Implementasi Rancang Bangun Alat
Perekam Frekuensi Listrik Jantung portable perekam frekuensi Jantung Portable
menggunakan grove chest strap heart rate Tahap ini merupakan
sensor dengan Arduino uno yang diusulkan impelementasi Rancang Bangun
agar dapat berjalan dengan lebih baik. Alat perekam frekuensi Jantung
Tahapan yang dilakukan antara lain: Portable yang akan diujikan
1) Perancangan Layout Rangkaian dengan memakaikan sensor ke
Lengkap Alat perekam frekuensi dada pengguna yang akan di rekam
jantung portable frekuensi jantungnya dan
2) Perancangan tampilan antarmuka selanjutnya akan terlihat di layar
(interface), Pada tahap ini penulis LCD berapa frekuensi jantung yang
mendesign tampilan dari Alat perekam dihasilkan dan akan terlihat grafik
frekuensi jantung portable, yang frekuensi dari pemeriksaan.
meliputi tampilan alat secara hardware 4) Implementasi antarmuka
dan tampilan interface pada hasil output Tahap ini merupakan desain
pada program yang dihasilkan. antarmuka (user interface) yang
3) Pengkodean digunakan dalam rancang bangun
Pada tahap ini dilakukan pembuatan alat perekam frekuensi jantung,
programdenganmenggunakan desain antarmuka ini meliputi
pengantarmukaanparalelpada desain secara perangkat keras dan
perangkat lunak

4
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
5) Pengujian mempersingkat waktu antara
Padatahapaninidilakukan perancangan dan penerapan sistem
pengujian terhadap Rancang informasi (Kendall dan Kendall, 2010).
bangun alat perekam frekuensi 2. Dengan menggunakan metode RAD akan
jantung yang sudah di desain pada dicapai suatu system fungsional yang
tahap sebelumnya. utuh dalam periode waktu yang sangat
pendek jika kebutuhan dapat dipahami
2.3 Alasan Menggunakan RAD dengan baik (Pressman, 2002)
Dari lima macam model-model 3. Kekurangan dalam pengembangan
perangkat lunak yang dikemukakan oleh metode formal antara lain banyak
Roger S.Pressman, dipilih model RAD memakan waktu dan mahal (Pressman,
sebagai metode pengembangan system 2002). Aplikasi ini sederhana dan tidak
dengan alasan sebagai berikut: memakan waktu dan biaya.
1. Aplikasi yang dirancang dan
dikembangkan merupakan aplikasi yang III. HASIL DAN PEMBAHASAN
sederhana dan tidak memerlukan waktu 3.1 Rancang Bangun Rangkaian
yang lama. Hal ini sesuai dengan tujuan Perekam Frekuensi Jantung Portable
dari model RAD yang dikemukakan oleh Rancang bangun yang akan
Kenneth E. Kendall dan Julie E. Kendall dikembangkan oleh peneliti, digambarkan
yaitu RAD digunakan untuk pada gambar di bawah ini:

ARDUINO UNO GROVE CHEST STRAP USER


HEART RATE SENSOR

PROCESSING

PLAIN TEXT
(REPORT)

Gambar 1. Rancang Bangun

Pada blok diagram rancang bangun pengantarmukaan paralel pada


di atas, proses perekaman frekuensi jantung komunikasinya, akan mengubah sinyal
dimulai dengan user yang akan diperiksa analog menjadi sinyal digital yang akan
akan memakai Grove Chest Strap Heart Rate diteruskan ke komputer melalui perangkat
Sensor yang akan dipakai pada dada user Arduino UNO. Komunikasi antara sensor
yang akan diperiksa, selanjutnya alat perekam dengan Arduino UNO menggunakan
frekuensi jantung yang dijembatani oleh gelombang radio AM (nirkabel) dengan
mesin Arduino akan menginisialisasi supaya menggunakan Bahasa pemrograman C
frekuensi jantung user bisa dideteksi dari yang digunakan untuk menampilkan data
sensor ke mesin arduino, kalo sudah perekam frekuensi listrik jantung dalam
terdeteksi maka hasil dari proses perekaman bentuk stream pada serial port, sedangkan
frekuensi jantung akan terlihat pada tampilan software processing dengan bahasa
berupa grafik dan report yang menunjukkan pemrograman Java untuk mengubah data
rekaman frekuensi jantung user tersebut, serial tersebut menjadi grafik dari frekuensi
secara teknis Alat perekam frekuensi listrik listrik jantung yang nantinya dapat dihitung
jantung portable berbasis Microcontroller tingginya frekuensi dari listrik jantung
menggunakan Grove Chest Strap Heart Rate tersebut dalam satuan bpm (beats per
Sensor akan menangkap sinyal listrik jantung, minute).
dengan menggunakan

5
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
3.2 Perancangan Skematik Alat Perekam ke ground analog pin pada arduino
Listrik Jantung uno.
 Pasang kabel merah pada Radio
Receiver AM dengan kabel jumper
ke pin 5v pada arduino uno.
 Pasang kabel kuning pada Radio
Receiver AM dengan kabel jumper
ke pin 2 digital pada arduino uno.
 Hubungkan 2 kabel pada buzzer
module ke pin ground analog pin
dan pin 9 digital pada arduino uno.
 Pasang 1 buah LED dengan posisi
kaki LED positif ke ground digital
pin dan kaki LED negatif ke 13
digital pin pada arduino uno.
Gambar 2. Skema Alat Perekam Listrik
Jantung 3.4 Pengkodean
3.3 Implementasi sistem Penulis melakukan pengkodean
Pada tahap ini penulis melakukan dengan menggunakan Bahasa
beberapa tahap implementasi di antaranya: pemrograman C yang digunakan untuk
Implementasi Rangkaian ini berdasarkan menampilkan data perekam frekuensi
pada skematik rangkaian yang sudah listrik jantung dalam bentuk stream pada
dilakukan sebelumnya, peralatan yang serial port, sedangkan software
dibutuhkan adalah: processing dengan bahasa pemrograman
Java untuk mengubah data serial tersebut
 Arduino UNO menjadi grafik dari frekuensi listrik
 Grove - Chest Strap Heart Rate Sensor jantung yang nantinya dapat dihitung
 Kabel tingginya frekuensi dari listrik jantung
 Kabel USB ( menghubungkan tersebut dalam satuan bpm (beats per
Arduino UNO dengan PC) minute). Setelah melewati proses
 Buzzer Module implementasi rangkaian, langkah
 LED selanjutnya adalah melakukan coding
sebagai berikut:
Adapun proses pembuatanya adalah Buat sketch pada program
melalui tahap-tahap sebagai berikut: Arduino dengan source code:

 Pasang kabel hitam pada Radio


Receiver AM dengan kabel jumper

unsigned int speakerPin = 9; //Serial.println(temp[counter]);


unsigned char LEDpin = 13; switch(counter)
unsigned char counter=0;
unsigned int heart_rate=0; {
unsigned long temp[21]; case(0):
unsigned long sub=0; sub=temp[counter]-temp[20];
volatile unsigned char state = LOW; Serial.println(sub);
bool data_effect=true; break;
const int max_heartpluse_duty=5000;//you can
change it follow your system's request.2000 meams 2 //Serial.println(counter,DEC);
seconds. System return error if the duty overtrip 5 default:
second. sub=temp[counter]-temp[counter-1];
Serial.println(sub);
void setup() beepon();
{ delay(10);
Serial.begin(9600); beepoff();
//Serial.println("Please ready your chest belt."); break;
//delay(1000); }

6
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
array_init(); if(sub>max_heartpluse_duty)//set 5 seconds as max
Serial.println("Heart rate test begin."); heart pluse duty
attachInterrupt(0, interrupt, RISING);//set interrupt {
0,digital port 2 data_effect=0;//sign bit
} counter=0;
//Serial.println("Heart rate measure error,test will
void loop() restart! or your dead" );
{ beepon();
} array_init();
}
void beepon(){ if (counter==20&&data_effect)
analogWrite(speakerPin, 150); {
digitalWrite(LEDpin, HIGH); counter=0;
delay(10000); sum();
} }
void beepoff(){ else if(counter!=20&&data_effect)
analogWrite(speakerPin, 0); counter++;
digitalWrite(LEDpin, LOW); else
} {
counter=0;
void sum()//calculate the heart rate data_effect=1;
{ }
if(data_effect) }
{
heart_rate=1200000/(temp[20]- void array_init()
temp[0]);//60*20*1000/20_total_time {
Serial.print("Your heart rate is: "); for(unsigned char i=0;i!=20;++i)
Serial.print(heart_rate); {
Serial.println(" bpm"); temp[i]=0;
} }
data_effect=1;//sign bit temp[20]=millis();
} }
void interrupt()
{
temp[counter]=millis();
state = !state;

Buat sketch Java pada program Processing


dengan Source Code:

import processing.serial.*; if (inputString != null) {


// trim off any whitespace:
/ Step 2: Declare PFont variable String inString = trim(inputString);
PFont f;
Serial myPort; // The serial port / Slide everything down in the array
float[] vals; for (int i = 0; i < vals.length-1; i++) {
PrintWriter output; vals[i] = vals[i+1];
String heartrate = "Calculating your heart rate"; }
/ get the ASCII string:
void setup() { String inputString =
size(400, 300); myPort.readStringUntil('\n');
f = createFont("Arial", 18, true);
frameRate(5);
/ List all the available serial ports output.println(inString);
println(Serial.list()); output.flush();
/ Open whatever port is the one you're using. / convert to an int and map to the
myPort = new Serial(this, Serial.list()[12], 9600); screen height:
/ don't generate a serialEvent() unless you get a newline int inByte = int(inString);
character: / Add a new value
myPort.bufferUntil('\n'); vals[vals.length-1] = 250 -
/ An array of initiate values (inByte/5); println(inByte);
vals = new float[width]; textFont(f, 18); // Step 4: Specify font
for (int i = 0; i < vals.length; i++) { to be used

7
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
vals[i] = 250; fill(255); // Step 5: Specify font color
} // Step 6: Display Text
int d = day(); // Values from 1 - 31 text (inByte, 5, 290);
int m = month(); // Values from 1 - 12 }
int y = year(); // 2003, 2004, 2005, etc. else {
int se = second(); // Values from 0 - 59 vals[vals.length-1] = 250;
int mi = minute(); // Values from 0 - 59 }
int h = hour(); // Values from 0 - 23 if (inputString != null) {
String s = String.valueOf(d) + String.valueOf(m) + if (inputString.charAt(0) == 'Y') {
String.valueOf(y) + String.valueOf(h) + String.valueOf(mi) + heartrate = inputString;
String.valueOf(se); }
output = createWriter("data" + s + ".txt"); }
}
void draw() { textFont(f, 18); // Step 4: Specify font to be
background(0); used
// Draw lines connecting all points fill(255); // Step 5: Specify font color
for (int i = 0; i < vals.length-1; i++) { // Step 6: Display Text
stroke(255, 123, 0); text (heartrate, 180, 290);
strokeWeight(1.5); }
line(i, vals[i], i+1, vals[i+1]);
}

8
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
3.5 Pengujian Alat  Save dan Upload source code tersebut.
 Dekatkan Radio Receiver AM dengan Jangan jalankan serial monitor yang sama
Grove - Chest Strap Heart Rate Sensor dengan COM port arduino karena akan
dengan jarak maksimum 30cm. terjadi bentrok. Jika berhasil maka akan
 Save dan Upload source code pada sketch tampil seperti gambar berikut:
program arduino. Lalu klik pojok kanan
atas pada Arduino untuk membuka Serial
Monitor. Jika berhasil maka akan tampil
seperti gambar berikut:

Gambar 3. Hasil Pengujian

 Ubah serial port list yang digunakan pada


source code sesuai dengan port dan baut-
rate yang digunakan oleh Arduino, pada
percobaan kali ini digunakan serial list
nomor 12 pada COM port 27 dan baut-rate Gambar 4. Tampilan Heart Rate Monitor
9600 (Serial.list()[12], 9600).

3.6 Pengujian Program


1. Sketch Program Arduino 1

Source Code Penjelasan


unsigned char counter=0; Menginisialisasi variabel counter,
unsigned int heart_rate=0; heart_rate, temp, sub, state,
unsigned long temp[21]; data_effect dan
unsigned long sub=0; max_heartpluse_duty. HeartPulse
volatile unsigned char state = LOW; 2000 berarti 2 detik, jika terjadi
bool data_effect=true; overtrip selama 2 detik, sustem
const int max_heartpluse_duty=2000; menampilkan error.
void setup()
{
pinMode(pin, OUTPUT);
Serial.begin(9600);
Serial.println("Please ready your chest belt."); Mempersiapkan program untuk
delay(1000);// menghitung detak jantung.
array_init();
Serial.println("Heart rate test begin.");
attachInterrupt(0, interrupt, RISING);//set interrupt 0,digital port 2
}
void loop() { }
void sum()//calculate the heart rate
{
if(data_effect) Menghitung jumlah detak jantung
{ dari array temp.
heart_rate=1200000/(temp[20]-temp[0]);//60*20*1000/20_total_time
Serial.print("Heart_rate_is:\t");

9
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
Serial.println(heart_rate);
}
data_effect=1;//sign bit
}
void interrupt()
{
temp[counter]=millis();
state = !state;
Serial.println(counter,DEC);
Serial.println(temp[counter]);
switch(counter)
{
case(0):
sub=temp[counter]-temp[20];
Serial.println(sub);
break;
default:
sub=temp[counter]-temp[counter-1];
Serial.println(sub);
break;
} Melakukan pengecekan secara
if(sub>max_heartpluse_duty)//set 2 seconds as max heart pluse duty
looping terus menerus terhadap
{
terjadinya interupsi atau jika
data_effect=0;//sign bit
terjadi overtrip.
counter=0;
Serial.println("Heart rate measure error,test will restart!" );
array_init();
}
if (counter==20&&data_effect)
{
counter=0;
sum();
}
else if(counter!=20&&data_effect)
counter++;
else
{
counter=0;
data_effect=1;
}
}
void array_init()
{
for(unsigned char i=0;i!=20;++i) Menginisialisasi nilai array temp
{
agar bernilai o.
temp[i]=0;
}
temp[20]=millis(); }
2. Sketch pada Program Processing

Source Code Penjelasan


import processing.serial.*;
Mengimpor library untuk melakukan
PFont f; hubungan data melalui serial dan
Serial myPort; menginisialisasi variabel font, serial, output
float[] vals; untuk menulis data ke dalam teks dan string
PrintWriter output; awal.
String heartrate = "Calculating your heart rate";
void setup() { Prosedur setup ini dijalankan satu kali oleh
size(400, 300);
program.
f = createFont("Arial", 18, true);

10
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
frameRate(5);  Program akan membuat jendela
// List all the available serial ports tampilan dengan lebar 400px dan tinggi
println(Serial.list()); 300px, kemudian menggunakan font
// Open whatever port is the one you're using. Arial berukuran 18 dengan frame Rate
myPort = new Serial(this, Serial.list()[12], 9600); tampilan sebanyak 5 fps.
// don't generate a serialEvent() unless you get a newline  Lalu program akan menmpilkan daftar
character: serial port yang terhubung dengan
myPort.bufferUntil('\n'); computer, ubah data Serial.list()[i]
// An array of initiate values sesuai dengan list serial port arduino,
vals = new float[width]; kali ini menggunakan 12 karena
for (int i = 0; i < vals.length; i++) { arduino terhubung pada COM port 27
vals[i] = 250; dan berada pada list 12.
}  myPort.buffer untuk membaca data
int d = day(); // Values from 1 - 31 yang didapatkan dari serial port diatas.
int m = month(); // Values from 1 - 12  Kemudian inisialisasi waktu sistem
int y = year(); // 2003, 2004, 2005, etc. untuk membuat file teks dengan format
int se = second(); // Values from 0 - 59 “data” + waktu sistem untuk
int mi = minute(); // Values from 0 - 59 menyimpan seluruh data yang diterima.
int h = hour(); // Values from 0 - 23
String s = String.valueOf(d) + String.valueOf(m) +
String.valueOf(y) + String.valueOf(h) +
String.valueOf(mi) + String.valueOf(se);
output = createWriter("data" + s + ".txt");
}
void draw() {
background(0);
/ Draw lines connecting all points for
(int i = 0; i < vals.length-1; i++) {
stroke(255, 123, 0);
strokeWeight(1.5);
line(i, vals[i], i+1, vals[i+1]);
}
/ Slide everything down in the array
for (int i = 0; i < vals.length-1; i++) { Prosedur draw ini dijalankan berulang kali
vals[i] = vals[i+1]; oleh program.
}  Program akan membuat garis untuk
// get the ASCII string: membuat grafik dari setiap titik point
String inputString = myPort.readStringUntil('\n');  pada kurva grafik.
if (inputString != null) { Program membaca data pada serial port
// trim off any whitespace: kemudian menghapus whitespace
String inString = trim(inputString); (spasi) dan konversi ke dalam integer.
output.println(inString); Data inilah yang digunakan sebagai
output.flush(); point (titik pada grafik), data ini juga
// convert to an int and map to the screen height: ditampilkan pada program secara
int inByte = int(inString); realtime. Data ini merupakan data
// Add a new value  kuatnya denyut jantung.
vals[vals.length-1] = 250 - (inByte/5); output.println(inString); dan
println(inByte); output.flush(); merupakan fungsi untuk
textFont(f, 18); // Step 4: Specify font to be used menulis data pada teks file pada
fill(255); // Step 5: Specify font color prosedur setup.
// Step 6: Display Text  Jika data pada serial port berisi data
text (inByte, 5, 290); rata-rata denyut jantung maka denyut
} jantung tersebut akan ditampilkan pada
else { bagian kanan bawah program.
vals[vals.length-1] = 250;
}
if (inputString != null) {
if (inputString.charAt(0) == 'Y') {
heartrate = inputString;
}
}

textFont(f, 18); // Step 4: Specify font to be used

11
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015
fill(255); // Step 5: Specify font color
/ Step 6: Display Text
text (heartrate, 180, 290);
}

V. KESIMPULAN DAN SARAN baru bisa menghitung frekuensi denyut jantung


saja, mungkin nantinya bisa dikembangkan
5.1 Kesimpulan untuk menghitung selain frekuensi jantung
Dari pembahasan yang sudah diuraikan, dapat sehingga bisa lebih bermanfaat.
disimpulkan bahwa perancangan dan pembuatan alat
portable perekam frekuensi jantung dilakukan dengan DAFTAR PUSTAKA
menghubungkan Arduino Uno Grove Chest Strap 1. Guyton, Hall. Medical physiologi, Eleventh
Heart Rate Sensor.Selanjutnya membuat program yang Edition, 2006.
berfungsi melakukan konversi data analog (dari sensor 2. Bräunl, Thomas. Embedded Robotics - Mobile
suhu) menjadi digital dengan kekuatan denyut jantung Robot Design and Applications with Embedded
dan frekuensi jantung dengan satuan BPM (beats per Systems, Second Edition.Springer, Jerman,Juni
minute) yang ditampilkan dengan grafik dan angka, 2006. [3]
dapat pula ditampilkan menggunakan serial monitor 3. Byte Craft Limited. First Steps with Embedded
pada komputer. Indikator frekuensi jantung Systems. Byte Craft Limited, Kanada,
ditunjukkan dengan Suara pada buzzer yang akan November 2012. [1]
berbunyi mengikuti mengikuti tempo frekuensi jantung 4. Wilmshurst, Tim. Designing Embedded Systems
yang terdeteksi, apabila frekuensi berhenti sekitar 5 with PIC Microcontrollers - Principles and
detik, maka buzzer akan menghasilkan bunyi yang Applications.Elsevier Ltd, Inggris, 2007. [2]
panjang, indikator ini juga bisa ditunjukkan dengan 5. Arduino. 2010. Beginning Arduino. [Online]
lampu LED yang akan menyala sesuai tempo frekuensi Tersedia:www.arduino.cc. [12 Desember 2011].
jantung, Hasil rekam denyut jantung akan tersimpan 6. Hariyanto, Bambang. 2004. Sistem Manajemen
datanya secara otomatis dengan formati teks ekstensi Basis Data: Pemodelan, Perancangan, dan
Terapannya. Bandung: Informatika.
.txt dengan format nama file “data” + waktu 7. Houde, Stephanie & Hill,Charles. 2004. What do
percobaan. Prototypes Prototype?. USA: Apple
Computer,Inc.
5.2 Saran 8. Jogianto, HM. 2005. Analisis dan Desain
Sistem Informasi: Pendekatan Terstruktur Teori
 Pembuatan alat sejenis ini dapat dibuat lebih dan Praktek Aplikasi Bisnis. Yogyakarta: Andi.
akurat dengan jarak jangkau penerimaan data 9. Kendall, Kenneth E. dan Kendall, Julie E. 2003.
frekuensi jantung yang lebih jauh. Analisis dan Perancangan Sistem. Jakarta:
 Source code aplikasi arduino yang digunakan Pearson Education Asia Pte. Ltd dan PT.
belum memiliki fungsi yang lengkap, sehingga Prenhallindo.

12
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015

Anda mungkin juga menyukai