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
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:
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:
PROCESSING
PLAIN TEXT
(REPORT)
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:
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;
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:
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
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;
}
}
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);
}
12
JURNAL TEKNIK INFORMATIKA VOL. 8 NO. 2 BULAN OKTOBER 2015