54 Gelombang P : Garis bergerigi pada lead inferior dan gelombang P dengan kecepatan teratur pada V1. Interval PR
: Tidak terdapat suatu hubungan dalam keteraturan antara gelombang P dan R, sehingga Interval PR tidak dapat diukur.
Durasi QRS
: Durasinya kurang dari 0.12 detik (terdapat tiga satuan luas persegi berukuran kecil).
Pola QRS
: Berdasarkan morfologinya (ilmu yang mempelajari tentang berbagai bentuk) pola dia atas normal dan gelombang R mengalami perubahan ukuran ketika melintasi lead dada.
Segmen ST
: Secara keseluruhan berupa garis isoelektrik (garis maya).
Interval QT
: Intervalnya
adalah
10.5
satuan
luas
persegi,
maka
interval
QT = 10.5 * 0.04 = 420 ms. Interval QTc : Rate = 100 bpm, sehingga perhitungan interval QTnya sesuai dengan persyaratan yaitu 420 ms (interval R-R = 0.6 s). Gelombang T : Gelombang T menjadi tidak jelas karena adanya garis bergerigi atau dikarenakan aktivitas gelombang P yang cepat.
Kesimpulan dari analisis di atas adalah terdapatnya axis normal, atrial flutter, dan aktivitas gelombang P pada kecepatan 300/min (minute). Irama ventrikel di atas teratur dengan perbandingan 1:1 dan irama atrium juga teratur (gelombang P).
55
Gambar 2.24b EKG Atrial Flutter 2:1
(direkam dari seorang pria berumur 81 tahun) (Sumber: http://www.cardioweb.co.uk/ecg/ecgpage104.asp)
Analisis EKG di atas: Rate
: Di antara gelombang R terdapat 2 satuan luas persegi besar, maka Rate = 300/2 = 150 bpm.
Ritme
: Gelombang R terlihat dalam interval tidak teratur dengan garis bergerigi pada lead inferior dan gelombang P dengan kecepatan teratur pada V1.
Axis
: Lead I dan II positif, maka dapat dipastikan axis tersebut normal.
Gelombang P : Garis bergerigi pada lead inferior dan gelombang P dengan kecepatan teratur pada V1. Interval PR
: Tidak terdapat suatu hubungan dalam keteraturan antara gelombang P dan R, sehingga Interval PR tidak dapat diukur.
56 Durasi QRS
: Durasinya kurang dari 0.12 detik (terdapat tiga satuan luas persegi berukuran kecil).
Pola QRS
: Berdasarkan morfologinya (ilmu yang mempelajari tentang berbagai bentuk) pola dia atas normal dan gelombang R mengalami perubahan ukuran ketika melintasi lead dada.
Segmen ST
: Secara keseluruhan berupa garis isoelektrik (garis maya).
Interval QT
: Intervalnya
adalah
9
satuan
luas
persegi,
maka
interval
QT = 9 * 0.04 = 360ms. Interval QTc : Rate = 150 bpm, sehingga perhitungan interval QT yang sesuai dengan persyaratan yaitu QTc = 360/0.632 = 569 ms. Gelombang T : Gelombang T menjadi tidak jelas karena adanya garis bergerigi atau dikarenakan aktivitas gelombang P yang cepat.
Kesimpulan dari analisis di atas adalah terdapatnya axis normal, atrial flutter dengan perbandingan 2 : 1, aktivitas gelombang P pada kecepatan 300/min (minute), dan terdapatnya perpanjangan pada QTc.
2.6.7.7 Atrial Fibrillation
Atrial Fibrillation beriarama sangat kacau. Otot-otot atrium berkontraksi secara random. Impuls tersebut dibawa ke AV node secara random pula dan interval antara kompleks QRS selalu berubah. Atrium biasanya berdenyut antara 400-700 kali per menit. Karakteristik : -
Rata-rata denyut atrium biasanya antara 400-700 denyut per menit.
57 -
Rata-rata denyut ventrikel biasanya antara 160-180 denyut per menit.
-
Irama denyut ventrikel tidak teratur.
-
Tidak ada gelombang P. Aktivitas elektrikal yang kacau atau yang disebut gelombang “f” (gelombang F berukuran kecil) dapat terjadi.
-
Kompleks QRS normal.
Contoh:
Gambar 2.25 EKG Atrial Fibrillation
(direkam dari seorang insinyur berumur 83 tahun) (Sumber: http://www.cardioweb.co.uk/index.asp)
Analisis EKG di atas: Rate
: Di antara gelombang R hanya terdapat 3 satuan luas persegi besar, berdasarkan rata-rata dari detak jantung yang bervariasi, maka Rate = 300/3 = 93 bpm.
58 Ritme
: Gelombang R terlihat dalam interval yang tidak teratur, dengan pola pergerakan
yang
tidak
diketahui,
dan
tidak
terlihat
adanya
gelombang P. Axis
: Lead I dan II positif, maka dapat dipastikan axis tersebut normal.
Gelombang P : Garis dasarnya tidak teratur dan tidak terlihat jelas adanya aktivitas atrial. Interval PR
: Karena tidak ditemukannya gelombang P, maka interval PR tidak dapat diukur.
Durasi QRS
: Durasinya kurang dari 0.12 detik (terdapat tiga satuan luas persegi berukuran kecil).
Pola QRS
: Berdasarkan morfologinya (ilmu yang mempelajari tentang berbagai bentuk) pola dia atas normal dan gelombang R mengalami perubahan ukuran ketika melintasi lead dada.
Segmen ST
: Secara keseluruhan berupa garis isoelektrik (garis maya).
Interval QT
: Intervalnya
adalah
9
satuan
luas
persegi,
maka
interval
QT = 9 * 0.04 = 360 ms. Interval QTc : Rate = 93 bpm, sehingga interval QT yang seharusnya adalah 450 ms (interval R-R = 0.64 s). Gelombang T : Gelombang T tidak normal pada posisi negative di lead III dan aVF. Kesimpulan dari analisis di atas adalah terdapatnya axis normal, atrial fibrillation yang menunjukkan terdapatnya bukti-bukti kerusakan pada bagian inferior atau dikenal dengan istilah inferior ischaemia dan interval normal dengan perpanjangan pada QTc.
2.6.7.8 Premature Junctional Complexes (PJC)
PJC adalah impuls elektrikal yang berasal dari dekat AV node. Impuls ini terjadi sebelum denyut sinus yang seharusnya
59 Karakteristik : -
Irama jantung tidak teratur.
-
Denyut terjadi sebelum denyut sinus yang seharusnya.
-
Tidak ada gelombang P positif sebelum kompleks QRS.
-
Bila terdapat gelombang P, nilainya negatif, berada sebelum, bertabrakan, atau mengikuti kompleks QRS.
-
Bila gelombang P berada sebelum kompleks QRS, interval PR bisa normal, bisa juga lebih panjang.
-
Blok total dapat terjadi dengan tidak adanya kompleks QRS yang mengikuti gelombang P.
-
Kompleks QRS bisa normal, bisa juga lebih lebar.
2.6.7.9 Junctional Tachycardia
Bila terdapat 3 atau lebih PJC secara beruntun maka disebut junctional tachycardia Karakteristik : -
Terdapat 3 atau lebih PJC secara beruntun.
-
Rata-rata denyut atrium antara 160-240 denyut per menit.
-
Irama teratur, tetapi dengan denyut atrium diatas 200, AV blok dapat juga terjadi.
-
Gelombang P bernilai negatif dan dapat berada sebelum, bertabrakan, atau mengikuti kompleks QRS.
-
Interval PR bisa normal, bisa juga lebih panjang.
-
Kompleks QRS normal, bisa juga lebih lebar.
60 2.6.7.10 Premature Ventricular Complexes (PVC)
Karakteristik : -
Irama jantung tidak teratur.
-
Gelombang P biasanya.
-
Interval PR bisa normal, bisa juga lebih panjang.
-
Ada kompleks QRS yang muncul sebelum denyut sinus yang seharusnya.
-
Lebar kompleks QRS biasanya 0.12 detik atau lebih.
-
Bentuk kompleks QRS seringkali aneh.
-
Gelombang T biasanya berlawanan polaritas dengan QRS kompleks.
-
Irama sinus node biasanya terganggu.
2.6.7.11 Ventricular Tachycardia
Karakteristik : -
Terdapat tiga atau lebih PVC secara beruntun.
-
Rata-rata 100-220 denyut per menit.
-
Irama jantung biasanya teratur tetapi bisa juga tidak.
-
Gelombang P mungkin bisa dikenali. Biasanya tidak ada relasi yang tetap antara gelombang P dan kompleks QRS.
-
Bentuk kompleks QRS biasanya aneh. Kadang-kadang dapat juga terjadi kompleks QRS yang sempit.
61 2.6.7.12 Ventricular Fibrillation
Karakteristik : -
Denyut jantung sangat cepat, tetapi biasanya terlalu tidak teratur sehingga sulit untuk dihitung.
-
Irama jantung tidak teratur.
-
Bentuk gelombang eletrikal bervariasi dalam bentuk dan ukuran, tidak ada ciri khas gelombang P, QRS, maupun T.
2.6.7.13 Escapes
Kadang dapat terjadi pause dalam aktivitas elektrikal jantung. Denyut apapun yang muncul setelah pause disebut denyut escape. Denyut escape berasal dari tiga tempat yang berbeda : 1. Sinus Escape Karakteristik : - Ada Gelombang P positif sebelum escape. 2. Junctional Escape Karakteristik : - Tidak ada gelombang P positif sebelum escape, tetapi QRS normal. 3. Ventricular Escape Karakteristik : - Tidak ada gelombang P positif sebelum escape dan kompleks QRS berukuran lebar dan aberrant.
62 2.6.7.14 Ventricular Asytole
Ventricular asytole mewakili total absennya aktivitas eletrikal ventrikel. Karena tidak terjadi depolarisasi maka tidak ada kontraksi ventrikel. Ini dapat terjadi bila jantung berhenti atau dapat mengikuti terjadinya ventrikular fibrillation. Karakteristik : -
Benar-benar tidak ada aktivitas eletrikal ventrikel.
-
Kadang terdapat gelombang P.
2.6.7.15 AV Block
Delay pada AV node yang lebih lama dari 0,20 detik atau aktivitas atrium yang tidak disalurkan ke ventrikel disebut “heart block”. Ada tiga derajat “heart block”: 1. AV Block derajat satu Konduksi melalui node AV sedikit terlambat tetapi semua impuls dapat terkonsuksi. Walaupun semua gelombang P diikuti oleh kompleks QRS tetapi interval PR lebih panjang. Karakteristik : -
Ritme seperti biasa.
-
Setiap gelombang P diikuti gelombang QRS.
-
Interval PR sekitar 0,2 detik lebih panjang.
-
Kompleks QRS biasanya normal.
2. AV Block derajat dua tipe I Ini adalah pemblokiran sebagian dari node AV. Perlambatan di node AV selalu terjadi samapai semua impuls terblokir seluruhnya. Kejadian ini selalu berulang.
63 Karakteristik : -
Laju atrium tidak terpengaruh tetapi laju ventrikel lebih lambat karena adanya detak jantung yang terkonduksi.
-
Ritme Atrium normal. Ritme ventrikel tak normal.
-
Gelombang P normal.
-
Inteval PR meningkat terus-menerus sampai kompleks QRS terblokir.
-
Kompleks QRS normal.
3. AV Block derajat dua tipe II Bentuk lain dari AV Block. Kondisi konduksi normal untuk sebagian besar denyut tetapi sebagian impuls tidak terkonduksi sama sekali. Hal ini akan menyebabkan hilangnya gelombang QRS Karakteristik : -
Laju atrium tak terpengaruh tetapi laju ventrikel lebih lambat karena adanya detak jantung yang terkonduksi.
-
Ritme atrium normal. Ritme bentrikel tak normal.
-
Gelombang P normal.
-
Tidak setiap P diikuti oleh QRS.
-
Interval gelombang P dapat normal atau lebih panjang namun selalu konstan. Ada kemungkinan interval PR menjadi pendek setelah satu sela.
4. AV Block derajat tiga Ini adalah pemblokiran node AV secara penuh dan tak ada impuls yang melewatinya. Pada kasus ini salah satu dari kumpulan AV atau jaringan Purkinje yang akan menjadi pemacu denyut untuk ventrikel tetapi atrium
64 tetap dipacu oleh node sinus. Sehingga tidak ada hubungan antara gelombang P dan kompleks QRS pada EKG. Karakteristik : -
Laju atrium tak terpengaruh tetapi laju ventrikel lebih lambat daripada atrium.
-
Laju ventrikel sekitar 40-60 denyut per menit.
-
Ritmenya normal.
-
Gelombang P normal.
-
Tak ada hubungan antara gelombang dan kompleks QRS.
-
Kompleks QRS normal atau lebih lebar.
2.6.7.16 Bundle Branch Block
Ritme pada supraventrikular ada tetapi melalui cabang berkas diblokir atau terjadi penyimpangan. Kompleks QRS lebih lebar dan ada gelombang P sebelumnya. Gangguan gelombang atrium dan atrial fibrillation juga dapat berhubungan dengan penyakit ini. Dalam gangguan atrium, gelombang F dapat terlihat tetapi kompleks QRS lebih lebar dan dalam atrial fibrillation kompleks pola QRS tak teratur, sehingga dapat dibedakan dengan ventrikel tachycardia. Pada suatu saat bisa sulit untuk membedakan PVC atau ventrikular tachycardia dari bundle branch block. Masalah ini sangat rumit dan seringkali perbedaannya hampir tidak mungkin bahkan bagi pakar elektrokardiograf. Karakteristik : -
Kompleks QRS lebar.
-
Ada gelombang P atau F mendahului kompleks QRS.
65 Atau -
Kompleks QRS lebar.
-
Tidak ada gelombang P. Aktivitas listrik yang kacau atau gelombang f (gelombang F yang kecil) terlihat.
-
2.7
Ritmenya tidak normal.
Pemrosesan Sinyal Digital
Dalam pemrosesan sinyal digital terdapat beberapa gangguan eksternal di antaranya adalah noise atau pengaburan sinyal (sinyal menjadi lebih rumit). Agar dapat diperoleh hasil analisa yang akurat, maka noise harus dihilangkan. Noise dapat dihilangkan dengan menggunakan teknik filtering. Dari hasil analisa yang ada dapat dilakukan diagnosis untuk mengetahui tipe pola denyut jantung seseorang yang akan digunakan untuk diagnosis selanjutnya.
2.7.1
Representasi Domain Waktu dari Sinyal dan Filter
Untuk dapat mengetahui waktu dari suatu sinyal, maka terlebih dahulu sinyal tersebut dijadikan unit impuls. Dari pengukuran waktu dari unit impuls akan menghasilkan Discrete-time signal. Unit impuls ini dapat diukur dengan menggunakan rumus:
δ [n]={
1, if n = 0 0 , if n ≠ 0
(2-6)
dimana n adalah nilai unit impuls berbentuk integer dengan range − ∞≤ n ≤ + ∞ , yang akan dipresentasikan dalam bentuk gambar koordinat seperti di bawah:
66
Gambar 2.26 Sinyal Digital Memanggil Sinyal Unit Impuls
Filter adalah proses transformasi dari suatu sinyal menjadi sinyal yang lain. Dalam pemrosesan sinyal digital maka fungsi filter adalah mengubah suatu sinyal yang memiliki noise menjadi suatu sinyal yang siap dianalisis. y = H {x}
(2-7)
Gambar 2.27 Filter Digital H
di mana x adalah sinyal input, y adalah sinyal output dan H melambangkan filter. Respon terhadap unit impuls dari suatu filter bersifat linier untuk semua konstanta a dan b, dan semua sinyal x1 dan x 2 sehingga: H {ax1 + bx 2 } = aH {x1 } + bH {x 2 }
(2-8)
Filter harus mempunyai fase linier dalam passband-nya agar tidak mendistorsi sinyal. Discrete-time signal yang dilambangkan dengan x[n] adalah jumlah unit impuls yang dapat dihitung dengan menggunakan rumus: x[n] =
+∞
∑ x[k ]δ [n − k ]
k = −∞
(2-9)
67 Apabila filter linier H diterapkan pada x[n] maka y[n] = H {x[n]} =
+∞
∑ x[k ] H {δ [n − k ]}
(2-10)
k = −∞
Dari rumusan di atas diketahui bahwa efek dari filter linier H sepenuhnya bergantung pada Discrete-time signal. Dengan demikian maka output y[n] dapat dihitung untuk setiap input x[n] . Dan rumus efek linier H atau yang lebih dikenal dengan sebutan respon impuls filter H dapat dinyatakan dengan rumus: hk [n] = H {δ [n − k ]}
(2-11)
di mana hk [n] adalah fungsi respon impuls filter H dan k adalah posisi waktu dari sebuah impuls. Respon impuls dari sebuah filter linier adalah fungsi perbedaan waktu antara waktu input dan waktu respon impuls, dikenal dengan istilah linear time-invariant filter. Output dari discrete-time linear time-invariant filter dapat diukur dengan menggunakan rumus: y[n]=
+∞
∑ h[k ] x[n − k ]
(2-12)
k = −∞
Apabila respon impuls berdurasi terbatas (finite duration), maka filternya disebut Finite Impulse Response (FIR), dan apabila berdurasi tak terhingga (infinite duration), maka disebut Infinite Impulse Response (IIR).
68 2.7.2
Representasi Domain Frekuensi dari Sinyal dan Filter
Selain unit impuls, ada jenis sinyal lain yang sangat penting yaitu complex phasor yang mewakili nilai kompleksitas dari suatu sinyal. Phasor dinyatakan dalam fungsi: x[n]= e j ωn
(2-13)
Pergeseran pada variabel waktu mengakibatkan perkalian phasor dengan konstanta kompleks menghasilkan fungsi: x[n − k ] = e j ω (n − k ) = e j ωn − e j ωk = x[n]e − j ωk
(2-14)
di mana variabel frekuensi ( ω ) berada dalam periode − π ≤ ω ≤ π . Frekuensi digital tertinggi adalah π yang berkorespondensi dengan frekuensi sampling sinyal. Bila respon impulse sebuah linear time-invariant discrete-time filter adalah h[n] , maka apabila digabungkan dengan fungsi di atas, akan menghasilkan fungsi:
y[n] =
dimana
⎛ +∞ ⎞ ⎜ ∑ h[k ]e − j ωk ⎟ x[n] = H e j ω x[n] h [ k ] x [ n − k ] = ∑ ⎜ ⎟ k = −∞ ⎝ k = −∞ ⎠ +∞
( )
(2-15)
( )
H (e j ω ) disebut sebagai respon frekuensi filter, G (ω ) = H e j ω
yang
merupakan magnitudo dari fungsi ini disebut sebagai respon magnitude, dan
θ (ω ) = arg H (e j ω ) yang merupakan sudut fase disebut sebagai respon fase filter. Turunan dari sudut fase terhadap frekuensi mempunyai unit delay. Dan delay sinyal yang melalui filter ini dapat dinyatakan dengan fungsi frekuensi:
τ (ω ) = −
d θ (ω ) dω
(2-16)
dimana τ (ω ) merupakan delay waktu yang dialami komponen frekuensi sinyal ( ω ) saat melewati input menuju output filter.
69 2.7.3
Transformasi Fourier Diskrit
Suatu sinyal pada domain waktu dapat diubah menjadi sinyal pada domain frekuensi ataupun sebaliknya dengan menggunakan Discreet Fourier Transform. Oleh karena itu, hubungan domain waktu dengan domain frekuensi dapat diinterpretarsikan sebagai berikut: time domain
⎯DFT ⎯ ⎯→ ←⎯ ⎯⎯ iDFT
frequency domain
Gambar 2.28 Hubungan Domain Waktu Dan Domain Frekuensi
dimana DFT adalah Discreet Fourier Transform dan iDFT adalah inverse Discreet Fourier Transform.
Berikut adalah contoh Discreet Fourier Transform dalam pembuatan sebuah bandpass filter agar dapat merespon sinyal pada domain waktu dari sinyal pada domain frekuensi tertentu. Hal pertama yang dilakukan adalah membuat representasi sinyal pada domain frekuensi seperti gambar di bawah ini.
⎯iDFT ⎯ ⎯→
domain frekuensi
domain waktu
Gambar 2.29 Representasi Sinyal Pada Domain Frekuensi Ke Domain Waktu
Setelah representasi domain waktu atau respon impuls didapatkan, agar sinyal yang masuk ke dalam filter tidak mengalami peningkatan / penguatan maupun
70 penurunan / pelemahan maka nilai dari sinyal tersebut harus diolah kembali dengan menggunakan fungsi:
N −1
∑ x(i) = 1 . Kemudian nilai dari tiap respon impuls dimasukkan i =0
N −1
ke dalam d = ∑ x(i ) , dimana d adalah pembagi untuk nilai tiap respon impuls, N adalah i =0
order dari filter (jumlah sinyal dalam respon impuls), dan x adalah respon impuls. Selanjutnya, respon impuls yang telah dibagi dengan d diubah indexnya dari 0 s/d N-1 menjadi (− N + 1)
2
s/d N , sehingga bentuk dari respon impuls menjadi: 2
Gambar 2.30 Respon Impuls
Penggeseran index dilakukan agar delay ω menjadi nol atau tidak ada. Hal ini bertujuan agar sinyal yang datang tidak akan mengalami delay waktu saat melewati sinyal filter.
2.7.4
Perancangan Filter Digital
Komponen sinyal dari suatu gelombang QRS relatif lebar frekuensinya, berkisar antara 2-100 Hz dengan puncak pada 10-15 Hz. Output dari sebuah filter FIR fase linier dinyatakan sebagai fungsi: M
y[n] = ∑ h[k ] x[n − k ] k =0
(2-17)
71 dimana M adalah filter order. Order ke-90 (NF = 90) pada fase filter linier didesain menggunakan Hamming Window dengan rumusan: E1 [n] =
1
NF
∑ h[i] E [n + i ]
2 N F + 1 i= NF
0
(2-18)
dimana E 0 [n] adalah sinyal yang asli.
2.7.5
Scaling
Langkah selanjutnya setelah proses pemfilteran adalah scaling sinyal yang bertujuan agar amplitudo rata-rata sinyal sama dengan sepuluh, dengan fungsi sebagai berikut: E 2 [n] = 10
E1 [n] [E max − E min ]
(2-19)
dimana E max dan E min adalah nilai maksimum dan minimum dari E1 dalam interval waktu tertentu.
2.7.6
Squaring dan Moving Averaging
Setelah melewati tahap scaling maka nilai sinyal dikuadratkan untuk memperkirakan kekuatannya. Kemudian dihaluskan dengan moving window integrator. Lebar window integrator sama dengan lima (2 N 1 + 1 = 5, N 1 = 2 ) . N1 1 E3 [n] = ∑ (E2 [n + i]) 2 N 1 + 1 i = − N1
2
(2-20)
dimana sinyal E3[n] merepresentasikan perkiraan kekuatan jangka pendek EKG yang sudah difilter dengan perkiraan waktu n.
72 2.7.7
Dynamic Threshold
Walaupun telah melewati proses filter, terkadang masih terdapat noise ataupun gangguan lainnya yang menyebabkan terjadinya kesalahan dalam pendeteksian gelombang QRS. Oleh karena itu, sangatlah penting untuk merancang dynamic threshold khusus dengan algoritma sederhana untuk menghilangkan gangguan-gangguan pada gelombang yang belum teratasi pada saat filtering. Dynamic threshold dapat dimanfaatkan untuk pendeteksian onset dan offset pada gelombang QRS. Fungsi dari Dynamic threshold adalah: T [n + 1] = T [n] +
E3 [n + 1] − T [n ] +B K
(2-21)
dimana T [n + 1] dan T [n] adalah nilai T yang baru dan nilai T yang lama. E3 [n + 1] adalah sinyal EKG yang telah difilter dan diperhalus, dan B adalah nilai offset. Threshold dapat diadaptasikan dalam berbagai situasi tergantung dari faktor pembobot K, yang akan menghasilkan nilai kecil bila diberikan nilai yang besar. Dua peraturan dasar dalam pengaturan threshold: 1.
Apabila nilai data ≤ threshold sebelumnya, nilai threshold diubah dengan menggunakan rumus di atas. Dengan kata lain gelombang QRS tidak dideteksi.
2.
Apabila nilai data > threshold sebelumnya, nilai threshold tetap dan dari threshold yang ada dicari titik onset (is) yang menjadi kandidat gelombang QRS. Selanjutnya setiap data EKG yang masuk dibandingkan dengan nilai threshold yang ada hingga data bernilai lebih kecil. Setelah titik akhir (ie) ditentukan dan threshold diubah sesuai dengan aturan pertama.
73
Gambar 2.31 Periode Deteksi QRS
Periode [is, ie] dianggap sebagai alternatif periode gelombang QRS. Keputusan untuk menentukan apakah alternatif tersebut adalah periode gelombang QRS sesungguhnya harus dilakukan dengan menghitung area S (daerah arsiran pada Gambar 2.31) dengan menggunakan rumus: ie
S = ∑ (E3 [i ] − T [i ]) ≥ S T
(2-22)
i =is
Apabila S bernilai lebih besar daripada nilai ST pada area alternatif dalam interval [is, ie], maka alternatif tersebut adalah periode gelombang QRS sesungguhnya. ST adalah area threshold yang merupakan salah satu dari tiga parameter dalam
algoritma dynamic threshold. Dua parameter lainnya adalah B (nilai offset) dan K (faktor pembobot).
2.7.8
Lokasi Puncak QRS
Langkah terakhir dalam pengukuran waktu sinyal dan filter adalah mencari lokasi puncak QRS, yaitu dengan menggunakan dynamic threshold untuk mengetahui lokasi sinyal E 3 [n] maksimum dalam periode deteksi QRS.
74 2.8
Pendekatan Polinomial Chebyshev
Polinomial Chebyshev sangat berguna untuk menghilangkan noise dan
mendapatkan karakteristik dari gelombang yang ada. Untuk menghilangkan noise maka perlu diketahui fungsi kontinu x(t ) , posisi di mana gelombang saling berkelanjutan tanpa noise. Fungsi kontinu x(t ) dapat diperoleh dengan kombinasi linier dari fungsi polinomial y (t ) {φ k (t ) : k = 0, 1, K , n} , dengan rumusan: n
x(t ) = c0φ 0 (t ) + c1φ1 (t ) + K + c nφ n (t ) = ∑ c k φ k (t ) = y (t )
(2-23)
k =0
di mana c φ k (t ) adalah koefisien polinomial. Dan Polinomial φ yang dipilih adalah polinomial Chebyshev dengan rumusan:
φ k (t ) = cos(k cos −1 (t )),
−1 ≤ t ≤ 1
(2-24)
di mana k mewakili derajat fungsi polinomial. Hal penting yang harus diperhatikan adalah agar dapat diperoleh fungsi kontinu yang lebih akurat dari sebuah kurva maka diperlukan nilai koefisien {ck} yang optimal. Selain itu hal penting lainnya yang harus diperhatikan juga adalah fungsi polinomial Chebyshev harus tegak lurus terhadap fungsi pembobot w(t ) = (1 − t 2 )
−
1
∫ φ (t ) φ (t ) i
−1
j
1 1− t2
dt
⎧ ⎪ 0, ⎪ = ⎨π , ⎪π ⎪⎩ 2 ,
1 2
i≠ j i= j=0
(2-25)
i= j≠0
Apabila rumus x(t) dikalikan dengan φ k (t )w(t ) kemudian kedua ruas diintegralkan dengan interval [-1, 1], maka:
75 ⎧π ck , ⎪ ∫−1 x(t ) φk (t ) w(t ) dt = −∫1ck φk (t ) φk (t ) w(t ) dt = ⎨π ck , ⎪⎩ 2 1
1
k =0 k ≠0
(2-26)
Sehingga: ck =
⎧⎪ π , ( ) ( ) ( ) φ x t t w t dt = ⎨π , k α −∫1 ⎪⎩ 2 1
1
k =0 k≠0
(2-27)
Apabila rumus tersebut dihitung secara langsung maka akan menghasilkan error dalam jumlah yang sangat banyak. Hal ini dikarenakan w(t) menjadi tak terhingga pada t=-1 dan t=+1. Masalah ini dapat diatasi dengan mensubstitusi t = cos θ ke dalam rumus, sehingga menghasilkan rumusan: ck =
1
α
π
∫ x (cos(θ )) cos(kθ ) dθ
(2-28)
0
Apabila rumusan di atas dinyatakan sebagai jumlah integral dengan N interval diskrit maka akan diperoleh rumusan: ( m +1)π
ck =
1
α
N −1
N
m =0
m N
∑ ∫ x (cos(θ )) cos(kθ ) dθ π (2-29)
Apabila nilai N cukup besar, setiap integran dapat didekati secara linier melalui durasi interval π N , sehingga: ck =
1 ⎛ N −1 ⎞ ⎜ ∑ x( y1 (m )) y k (m )⎟ β ⎝ m =0 ⎠
(2-30)
dimana ⎧⎪ N ⎛ kmπ ⎞ , k >0 y k (m ) = cos⎜ ⎟, dan β = ⎨ 2 N ⎝ ⎠ ⎪⎩ N , k = 0
(2-31)
76 Dalam penerapannya, fungsi x diperoleh dari sampling x[0], x[1], ..., x[N-1] oleh karena itu untuk menghilangkan perbedaan yang ada, rumusan di atas dapat diganti menjadi: ck =
1 ⎛ N −1 ⎞ ⎜ ∑ x[im ] y (m )⎟ β ⎝ m =0 ⎠
(2-32)
dimana ⎛N ⎞ im = round ⎜ (1 − y1 (m ))⎟ ⎝2 ⎠ 2.9
(2-33)
Pengenalan Pola
Pemrosesan sinyal digital akan menghasilkan beberapa pola yang berbeda dari sumber-sumber yang berbeda. Pola yang dihasilkan dapat menunjukkan ada atau tidaknya kelainan pada jantung seseorang. Agar dapat mengetahui adanya kelainan atau tidak pada jantung seseorang maka diperlukan pengenalan pola dari pola yang telah dihasilkan. Pola yang dihasilkan dari pemrosesan sinyal digital dibagi menjadi dua:
Pola Konkret Pola konkret adalah pola yang dapat dilihat dan memiliki ukuran, seperti: gambar, simbol, benda tiga dimensi, sinyal elektrokardiogram, dll.
Pola Abstrak Pola abstrak adalah pola yang tidak dapat dilihat maupun diukur secara fisik, contohnya: ide atau konsep. Sehingga pola abstrak sering dikenal dengan istilah pengenalan konsep (conceptual recognition). Pengenalan pola tersebut termasuk didalam cabang artificial intelligence yang lain. Salah satu contohnya adalah pengenalan pola kalimat pada suatu perintah untuk kompiler mesin.
77 Recognition atau pengenalan adalah proses ketika seseroang mengenali sebuah
suara, nada lagu, arti sebuah kata, bau yang tidak sedap, dsb. Proses pengenalan tersebut terjadi ketika seseorang membanding apa yang dilihat atau didengarnya dengan informasi yang serupa dengan objek tersebut. Oleh karena itu, Recognition atau pengenalan juga dapat didefinisikan sebagai proses membandingkan objek dari suatu lingkungan (set) ke dalam suatu kelompok objek (subset) yang sama atau mirip dengan objek yang sudah diketahui sebelumnya. Pengenalan pola yang dimaksud dalam EKG memiliki proses yang sama dengan proses pengenalan pada umumnya. Tepatnya, pengenalan pola terjadi ketika sinyal yang diterima dibandingkan dengan sinyal sudah diketahui sebelumnya. Ruang lingkup pengenalan pola dibagi menjadi dua: 1.
Pengenalan pola secara alamiah oleh makhluk hidup. Pengenalan pola tersebut dipelajari secara khusus dalam ilmu biomedika.
2.
Pengenalan pola melalui penerapan teori dan teknik pengenalan pola dengan bantuan teknologi komputer, yang dirancang untuk fungsi tertentu. Maksudnya adalah teori dan teknik atau metode yang dikembangkan disesuaikan dengan tujuan tertentu, contoh: metode pengenalan pola sinyal EKG berbeda dengan metode pengenalan pola gelombang suara alat musik.
2.9.1
Proses Pengenalan Pola
Proses pengenalan pola dibagi menjadi tiga fase (E.R. Davies, 1990): 1. Data Acquisition Data Acquisition adalah pengumpulan data dari objek fisik dengan
menggunakan transducer. Data-data yang telah terkumpul kemudian
78 dikonversikan menjadi format digital, yang lebih mudah dipahami dan diolah oleh komputer. Apabila hasil dari transducer adalah photocells maka data berupa nilai dari intensitas cahaya. Dan apabila transducer adalah microphone maka data berupa nilai dari tinggi gelombang.
2. Data Preprocessing. Data Preprocessing adalah pengelompokkan data, yang telah diukur pada
tahap Data Acquisition, menurut ciri-ciri tertentu. Data-data yang memiliki karakteristik yang sama dijadikan set data karakteristik tertentu. 3. Data Classification Data Classification atau klasifikasi data adalah pemilihan set data
karakteristik yang sesuai dengan fungsi yang telah dideklarasikan. Set data karakteritik yang disesuaikan dengan set fungsi tertentu bermanfaat untuk mengetahui apakah objek yang memiliki data tersebut dikenali atau tidak.
Fase I variabel fisik
Data Acquisition
Fase II
x(r)
Data Preprocessing
Fase III
xN
Data Classification
class
Gambar 2.32 Proses Pengenalan Pola
Untuk dapat melalui ketiga tahapan tersebut, input berupa gelombang EKG harus dijadikan data digital yaitu dengan menggunakan interface card. Interface card berfungsi untuk menghasilkan file yang berisi angka biner dari tinggi gelombang setiap frekuensi. Hal tersebut dilakukan agar data yang diperoleh dapat diakuisisi dengan
79 menggunakan komputer. Data yang sudah diakusisi kemudian difilter dari sinyal yang mendistorsi untuk dikelompokkan menurut ciri-cirinya (Data Preprocessing). Selain itu data yang telah difilter juga dapat diekstrak untuk menghasilkan paramater-parameter yang berguna untuk menjadi set parameter yang deskriptif. Parameter yang dihasilkan dari tahap II ini, apabila dicontohkan dengan menggunakan pengenalan seorang manusia, dalam pengenalan pola, adalah tinggi, berat badan, warna kulit, warna rambut, dsb. Sedangkan, di dalam EKG parameter yang dimaksudkan adalah durasi gelombang, luas area, koefisien Chebyshev, dsb. Setelah melewati tahap-tahap tersebut maka data digital siap dijadikan input untuk tahap klasifikasi. Tahap klasifikasi bermanfaat untuk mengelompokkan objek ke dalam subset kelasnya. Dalam tahap klasifikasi yang menghasilkan prototipe ini digunakan berbagai metode dalam cabang artificial intelligence seperti neural networks, fuzzy logic, minimum distance classifier, knowledge based expert system, dsb. Namun
menurut penelitian yang ada diketahui bahwa metode-metode tersebut tidak menjamin dikenalinya suatu objek karena pada beberepa kasus pengenalan pola gelombang EKG, ciri paramater yang membedakan suatu subset tidaklah tetap dan beberapa objek akan cenderung mengalami kesalahan klasifikasi (misclassified).
2.9.2
Metode Pengenalan Pola
2.9.2.1 Fuzzy Logic
Logika fuzzy merupakan suatu cara yang tepat untuk memetakan suatu ruang input ke dalam suatu ruang output. Sebagai contoh terlihat pada Gambar 2.33. Misalkan akan dibuat himpunan tinggi badan orang. Kata TINGGI menunjukkan derajat seberapa besar orang dikatakan
80 tinggi. Dengan menggunakan himpunan crisp, misalkan seseorang dikatakan tinggi jika memiliki tinggi badan diatas 165 cm.
Gambar 2.33 Orang-orang dengan Tinggi Badan yang Berbeda
Gambar 2.34 Fungsi Keanggotaan TINGGI secara Tegas
Secara tegas dapat dikatakan bahwa orang yang memiliki tinggi badan diatas 165 cm dikatakan TINGGI dengan nilai keanggotaan (µ=1). Sebaliknya, apabila seseorang memiliki tinggi badan kurang dari atau sama dengan 165 cm, maka secara tegas dikatakan bahwa orang tersebut TIDAK TINGGI dengan µ=0 (Gambar 2.34). Hal ini menjadi tidak adil, karena untuk orang yang memiliki tinggi badan 165,1 cm dikatakan
81 TINGGI, sedangkan orang yang memiliki tinggi badan 165 cm dikatakan TIDAK TINGGI.
Gambar 2.35 Fungsi Keanggotaan TINGGI secara Kontinu
Dengan menggunakan himpunan fuzzy, maka dapat dibuat suatu fungsi keanggotaan yang bersifat kontinu. Orang yang memiliki tinggi badan 160 cm sudah mendekati tinggi, artinya dia dikatakan TINGGI dengan µ=0,75. Sedangkan orang yang memiliki tinggi badan 153 cm, dia memang kurang tinggi, artinya dia dikatakan TINGGI dengan µ=0,2 (Gambar 2.35). Contoh lain, untuk variabel umur terlihat pada Gambar 2.36. Gambar 2.36 menunjukkan himpinan crisp untuk SETENGAH BAYA, dimana orang yang berumur kurang dari 35 tahun atau lebih dari 55 tahun disebut bukan SETENGAH BAYA (nilai keanggotaan = 0). Sedangkan orang yang berumur antara 35 dan 55 tttahun disebut SETENGAH BAYA (nilai keanggotaan = 1).
82
Gambar 2.36 Himpunan Crisp SETENGAH BAYA
Gambar 2.37 Himpunan Fuzzy SETENGAH BAYA
Gambar 2.37 menunjukkan fuzzy set untuk setengah baya. Orang yang berumur 25 sampai 65 tahun dikatakan SETENGAH BAYA dengan nilai keanggotaan yang berbeda. Orang dikatakan benar-benar SETENGAH BAYA (nilai keanggotaan = 1) jika berumur 45 tahun.
Gambar 2.38 Himpunan Fuzzy: Kelompok Umur
83 Himpunan fuzzy yang dapat berhubungan dengan MUDA, SETENGAH BAYA, dan TUA, dapat didefinisikan secara bersama terlihat pada Gambar 2.38 Himpunanhimpunan tersebut kelihatan oveerlap. Umur 60 tahun termasuk SETENGAH BAYA dan TUA. Jika umur semakin bertambah, maka keanggotaan MUDA-nya semakin mendekati 0. Tiap-tiap himpunan fuzzy pada Gambar 2.38 dapat disebutkan sesuai dengan linguistik yang bersesuaian, dalam hal ini MUDA, SETENGAH BAYA, dan TUA. Sekarang telah diperoleh 2 variabel yang berbeda yang berhubungan dengan umur, yaitu: UmurDalamTahun
Variabel numeris (bernilai integer);
UmurGrup
Variabel linguistik (MUDA, SETENGAH BAYA, TUA)
Terkadang kemiripan antara keanggotaan fuzzy dengan probabilitas menimbulkan kerancuan. Keduanya memiliki nilai pada interval [0,1], namun interpretasi nilainya sangat berbeda anatara kedua kasus tersebut. Keanggotaan fuzzy memberikan suatu ukuran
terhadap
suatu
pendapat
atau
keputusan,
sedangkan
probabilitas
mengindikasikan proporsi terhadap keseringan suatu hasil bernilai benar dalam jangka panjang. Misalnya, jika nilai keanggotaan suatu himpunan fuzzy MUDA adalah 0,9; maka tidak perlu dipermasalahkan berapa seringnya nilai itu diulang secara individual untuk mengharapkan suatu hasil yang hampir pasti muda. Di lain pihak, nilai probabilitas 0,9 muda berarti 10% dari himpunan tersebut diharapkan tidak muda.
84 2.9.2.1.1
Operasi Himpunan Fuzzy
Seperti halnya himpunan konvensional, ada beberapa operasi yang didefinisikan secara khusus untuk mengkombinasi dan memodifikasi himpunan fuzzy. Berikut adalah beberapa operasi logika fuzzy konvensional yang didefinisikan oleh Zadeh: Interseksi
μ A∩ B = min( μ A [ x], μ B [ y ])
(2-34)
Union
μ A∪ B = max(μ A [ x], μ B [ y ])
(2-35)
Komplemen
μ A' = 1 − μ A [ x]
(2-36)
Karena himpunan fuzzy tidak dapat dibagi dengan tepatseperti halnya himpunan crisp, maka operasi-operasi ini diaplikasikan pada tingkat keanggotaan. Suatu elemen dikatakan menjadi anggota himpunan fuzzy jika: 1. Berada pada domain himpunan tersebut. 2. Nilai kebenaran keanggotaannya ≥ 0. 3. Berada di atas ambang α-cut yang berlaku.
2.9.2.1.1.1 Interseksi Himpunan Fuzzy
Pada sistem crisp, interseksi antara 2 himpunan berisi elemen-elemen yang ebrada pada kedua himpunan. Hal ini ekuivalen dengan operasi aritmatik atau logika AND. Apda logika konvensional, operator AND diperlihatkan dengan derajat keanggotaan minimum antar kedua himpunan. Tabel 2.3 menunjukkan nilai fuzzy AND untuk merepresentasikan keanggotaan x dan y.
85 Tabel 2.3 Tabel Kebenaran Operator ZADEH ‘AND’
Operator intersesksi seringkali digunakan sebagai batasan anteseden dalam suatu aturan fuzzy, seperti: IF x is A AND y is B THEN z is C
Kekuatan nilai keanggotaan antara konsekuen x dan daerah fuzzy C ditentukan oleh kuat tidaknya
premis
atau
anteseden.
Kebenaran
anteseden
ini
ditentukan
oleh
min(µ[x is A], µ[y is B]), Gambar 2.39 dan Gambar 2.40 menunjukkan fungsi karakteristik untuk himpunan fuzzy SETENGAH BAYA yang diberikan sebagai berikut:
μ SETENGAHBAYA [ x] = [umur ≥ 35] ∧ [umur ≤ 45] Sehingga, keanggotaan himpunan ini adalah semua individu yang berada di antara 35 dan 45 tahun.
Gambar 2.39 Operasi Himpunan Crisp
86
Gambar 2.40 Representasi Crisp: TINGGI
Fungsi karakteristik himpunan fuzzy TINGGI diberikan sebagai berikut:
μ TINGGI [ x] = [tinggibadan ≥ 150] yang berisi semua individu yang tinggi badannya lebih dari 150 cm.
Tabel 2.4 Profil Dosen Perguruan Tinggi A dalam Umur dan Tinggi
Jika ditanyakan: anggota-anggota suatu sampel populasi dosen Perguruan Tinggi A yang termasuk SETENGAH BAYA dan TINGGI, maka harus dipilih suatu sampel kecil seperti terlihat pada Tabel 2.4
87 Tabel 2.5 Vektor bit AND: SETENGAH BAYA dan TINGGI
Pada logika boolean, individu-individu yang termasuk SETENGAH BAYA dan TINGGI dapat dicari dengan menggunakan operator AND. Visualisasi proses ini merupakan peng-AND-an bit pada vektor boolean yang merepresentasikan kebenaran dari ekspresi himpunan karakteristik untuk tiap-tiap kategori seperti terlihat pada Tabel 2.5
Gambar 2.41 Repesentasi Fuzzy: SETENGAH BAYA
Pada Gambar 2.41 menunujukkan himpunan SETENGAH BAYA. Himpunan ini dimulai dari umur 25 tahun yang merupakan umur untuk SETENGAH BAYA. Kurva keanggotaan akan beranjak naik secara stabil hingga mencapai umur 40 tahun yang
88 berarti benar-benar SETENGAH BAYA. Setelah melewati umur 40 tahun, kurva akan berangsur-angsur turun sehingga orang yang berumur 50 tahun hanya dikatakan SETENGAH BAYA secara lemah, dan orang yang berumur 55 tahun sudah tidak memiliki keanggotaan lagi pada himpunan fuzzy SETENGAH BAYA.
Gambar 2.42 Represesntasi Fuzzy: TINGGI
Hal yang sama diterapkan juga pada konsep TINGGI (Gambar 2.42). Kurva untuk himpunan fuzzy TINGGI berbentuk linier. Jika tinggi badan semakin bertambah, maka derajat keanggotaannya juga akan semakin bertambah secara proporsional. Himpunan fuzzy ini dimulai dari 150 cm yang berarti tidak memiliki keanggotaan fuzzy dan berangsur-angsur naik hingga mencapai nilai satu pada tinggi badan 180 cm. Untuk semua individu yang memiliki tinggi badan di bawah 150 cm dikatakan tidak TINGGI, sedangkan semua individu yang memiliki tinggi badan lebih dari 180 cm dikatakan benar-benar TINGGI.
89
Gambar 2.43 Daerah Interseksi Himpunan Fuzzy: TINGGI dan SETENGAH BAYA
Berikut adalah aturan Zadeh dasar untuk interseksi fuzzy, daerah antara 2 himpunan ditentukan oleh aplikasi operasi tersebut:
μ A∩ B = min( μ A [ x], μ B [ y ]).
(2-37)
Daerah yang diarsir pada Gambar 2.43 menunjukkan daerah tersebut.
2.9.2.1.1.2 Union Himpunan Fuzzy
Union dari 2 himpunan dibentuk dengan menggunakan operator OR. Pada logika fuzzy konvensional, operator OR diperlihatkan dengan derajat keanggotaan minimum antara
kedua
himpunan.
Tabel
2.6
menunjukkan
nilai
fuzzy
merepresentasikan keanggotaan x dan y.
Tabel 2.6 Tabel kebenaran operator Zadeh ‘OR’
OR
untuk
90 Operator fuzzy OR jarang sekali digunakan dalam pemodelan sistem, karena operasi OR pada dasarnya dapat dibentuk sebagai gabungan dari 2 proposisi fuzzy. Sebagai contoh: IF x is A OR y is B THEN z is C
Dapat dibentuk: IF x is A THEN z is C IF y is B THEN z is C
Pada kedua kasus, kekuatan nilai keanggotaan antara konsekuen z dan daerah fuzzy C oleh max (µ[x is A], µ[y is B]). Seperti halnya pada operator AND, visualisasi proses ini merupakan peng-OR-an bit pada vektor boolean yang merepresentasikan kebenaran dari ekspresi himpunan karakteristik untuk tiap-tiap kategori seperti terlihat pada Tabel 2.7.
Tabel 2.7 Vektor bit OR: SETENGAH BAYA dan TINGGI
Untuk membangun himpunan fuzzy yang menggunakan union dari himpunan fuzzy SETENGAH BAYA dan himpunan fuzzy TINGGI, berikut ini digunakan aturan Zadeh dasar untuk union fuzzy, daerah antara 2 himpunan ditentukan oleh aplikasi operasi tersebut:
μ A∪ B = max(μ A [ x], μ B [ y ])
(2-38)
91 Daerah yang diarsir pada Gambar 2.44 menunjukkan daerah tersebut.
Gambar 2.44 Daerah Union Himpunan Fuzzy: TINGGI dan SETENGAH BAYA
2.9.2.1.1.3 Komplemen Himpunan Fuzzy
Komplemen atau negasi suatu himpunan A berisi semua elemen yang tidak berada di A dan direpresentasikan dengan:
μ A' = 1 − μ A [ x]
Gambar 2.45 Komplemen Himpunan Crisp: SETENGAH BAYA
92
Gambar 2.46 Komplemen Himpunan Crisp: TINGGI
Gambar 2.45 dan Gambar 2.46 menunujukkan contoh komplemen untuk himpunan SETENGAH BAYA dan TINGGI.
μ SETENGAH BAYA' [ x] = [umur < 35 ∨ umur > 45] Tabel 2.8 Vektor bit AND: SETENGAH BAYA dan TINGGI
Yang menjadi pertanyaan adalah: yang manakah anggota populasi yang tidak tinggi dan juga tidak setengah baya? Interseksi ini dapat ditunjukkan dengan proyeksi vektor bit dari tabel populasi seperti terlihat pada Tabel 2.8. Pada logika fuzzy, komplemen dihasilkan dengan cara menginverskan fungsi kebenaran untuk tiap-tiap titik pada himpunan fuzzy sebagai berikut:
μ A' = 1 − μ A [ x]
(2-39)
93 Gambar 2.47 dan Gambar 2.48 menunjukkan komplemen himpunan fuzzy untuk TINGGI dan himpunan fuzzy SETENGAH BAYA.
Gambar 2.47 Komplemen Himpunan Fuzzy: TINGGI
Gambar 2.48 Komplemen Himpunan Fuzzy: SETENGAH BAYA
Andaikan ada suatu aturan: x is NOT A dengan x adalah elemen dalam domain daerah fuzzy A, maka interseksi antara SETENGAH BAYA’ dan TINGGI’ memiliki kenggotaan:
μ SETENGAHBAYA'∩TINGGI ' = min(μ SETENGAHBAYA' [ x], μ TINGGI ' [ y ]). Pada himpunan crisp, suatu daerah tidak akan memiliki interseksi dengan daerah yang menjadi komplemennya seperti pada Gambar 2.48 dimana daerah TINGGI akan
94 beririsan dengan daerah TIDAK TINGGI (PENDEK). Namun tidak demikian dengan himpunan fuzzy. Pada Gambar 2.49 terlihat adanyan interseksi antara daerah TINGGI dan PENDEK (TINGGI’), dimana suatu nilai domain dapat dikatakan TINGGI dan PENDEK.
Gambar 2.49 Interseksi Komplemen Crisp: TINGGI dan PENDEK
Gambar 2.50 Interseksi Komplemen Fuzzy: TINGGI dan PENDEK
95
Gambar 2.51 Daerah Fuzzy Ambiguous dalam Suatu Domain
Hal ini akan menyebabkan terjadinya ambiguitas. Sebagai contoh, pada definis SETENGAH BAYA, ada seorang yang termasuk baik SETEGNAH BAYA maupun MUDA, ada pula orang yang termasuk kategori baik SETENGAH BAYA maupun TUA (Gambar 2.51). Contoh lain, misalkan pada daftar BUDGET PROYEK yang termasuk kelas NOMINAL, MODERAT, dan MAHAL. Biaya yang berkisar antara $300 dan $450 termasuk kategori NOMINAL dan Moderat, sedangkan biaya yang berkisar antara $600 dan $800 termasuk MODERAT dan MAHAL. Ada 2 aturan yang berhubungan dengan hal ini, yaitu: IF BudgetProyek is NOMINAL THEN HarapanDiterima BERTAMBAH IF BudgetProyek is MODERAT THEN HarapanDiterima agak BERTAMBAH
96 Pada beberapa titik yang terletak diantara $300 dan $450, predikat fuzzy: BudgetProyek is NORMAL BudgetProyek is MODERAT
memiliki derajat keanggotaan yang bukan nol. Dengan demikian, pemodelan sistem fuzzy dalam praktiknya harus dapat menghindari hal-hal yang bersifat ambiguitas.
Gambar 2.52 Budget Proyek Himpunan Fuzzy
Sebagai contoh, pada Gambar 2.52, memperlihatkan representasi fuzzy untuk anggaran biaya MAHAL, dan komplemennya MAHAL’. Aturan yang diterapkan: IF Budget Proyek is MAHAL THEN resiko DINAIKKAN IF BudgetProyek is TIDAK MAHAL THEN resiko DIKURANGI
2.9.2.2 Neural Network 2.9.2.2.1
Pembelajaran dalam Neural Network
Sifat yang paling utama dari Neural Network adalah kemampuan untuk belajar dari lingkungan, dan meningkatkan daya guna jaringan melalui pembelajaran tersebut.
97 (Haykin, 1999, p50). Neural Network belajar melalui proses interaktif dari penyesuaian bobot-bobot interkoneksi (weights). Nilai bobot ditentukan oleh output dari Neural Network. Jika output tidak sesuai dengan yang diharapkan, maka Neural Network akan menyesuaikan nilai output dengan cara mengubah nilai bobot untuk mendapatkan nilai output yang diharapkan dan meminimalkan nilai kesalahan (error). Proses penyesuaian
bobot agar jaringan dapat mempelajari hubungan diantara input dan target disebut learning, atau training. Banyak algoritma learning telah ditemukan untuk membantu
menemukan bobot optimum untuk berbagai model Neural Network. Menurut Fausett (1994, p3), learning dalam Neural Network dapat dibagi menjadi dua bagian yaitu: 1. Supervised Learning, merupakan teknik belajar dimana data input dan data output yang diharapkan sudah tersedia. Perbedaan antara output sebenarnya
dan output yang diharapkan digunakan oleh algoritma untuk menyesuaikan bobot (weight) dalam jaringan (Gambar 2.53). Perbedaan antara hasil perhitungan dengan data yang diharapkan digunakan untuk menghitung bobot. Nilai bobot inilah yang digunakan untuk perhitungan selanjutnya. Training Data Input
Desired output
Jaringan
in
out
Perubahan bobot
-
+
target Sinyal kesalahan
Fungsi Obyektif
Algoritma Training (optimization method)
Gambar 2.53 Supervised Learning Model
(Sumber: Yu, 2000, p10)
2. Unsupervised Learning, yang sering disebut self-organizing. Unsupervised learning dianggap sebagai model dalam konsep sistem biologis. Teknik ini
98 tidak memerlukan target output, sehingga tidak ada nilai pembanding yang dilakukan. Rangkaian pelatihan ini hanya memerlukan nilai input dan jaringan akan menyesuaikan sendiri outputnya sampai hasil konsisten.
Gambar 2.54 menunjukkan beberapa tipe Neural Network yang berbeda dan bagaimana pengelompokannya berdasarkan algoritma pembelajaran.
Gambar 2.54 Klasifikasi Artificial Neural Network Berdasarkan Algoritma Learning
(Sumber : Ham, 2001, p19)
99
Berdasarkan gambar diatas dapat dilihat bahwa salah satu jenis Neural Network yang menggunakan supervised learning untuk meminimumkan error keluaran adalah Feedforward Network yang dilatih (trained) menggunakan algoritma backpropagation.
2.9.2.2.2
Feedforward Neural Network
Feedforward network umumnya terdiri dari beberapa lapisan (multi-layer), yaitu
sebuah input layer, sebuah output layer dan satu atau beberapa output layer yang terletak diantara input layer dan output layer, dan setiap layer mengandung beberapa unit. Setiap unit menerima input secara langsung dari layer sebelumnya (kecuali input unit) dan mengirim output-nya secara langsung ke unit-unit di layer selanjutnya (kecuali output unit).
Untuk menetapkan suatu struktur jaringan yang pasti seperti, berapa jumlah hidden layer harus digunakan, berapa banyak unit di dalam sebuah hidden layer untuk suatu masalah tertentu adalah pekerjaan yang tidak mudah. Untuk membuat sebuah jaringan dengan kemampuan pembelajaran yang baik, perlu ditentukan jumlah hidden units yang sesuai. Jika terlalu sedikit, jaringan mungkin tidak belajar apa-apa, sementara hidden units yang terlalu banyak membuat proses pembelajaran terlalu lama dan
melebihi kebutuhan sebuah model jaringan yang optimal (Michie et al., 1994, p96). Tidak ada alasan teoritis untuk menggunakan jaringan yang lebih dari dua hidden layer, karena pada dasarnya jaringan dengan dua hidden layer dapat merepresentasikan berbagai bentuk fungsi. Menentukan jumlah unit dalam sebuah hidden layer diperngaruhi oleh jumlah unit input dan output, jumlah training set, jumlah noise dalam
100 output target, error function complexity, struktur jaringan dan algoritma training. Dalam
banyak situasi, tidak ada cara yang mudah untuk menentukan jumlah hidden units yang optimum tanpa melakukan training menggunakan jumlah hidden units yang berbedabeda dan menganalisis setiap error yang dihasilkan. Pendekatan terbaik untuk menemukan jumlah hidden units yang optimum adalah dengan trial and error (Yu, 2000, p16-18).
2.9.2.2.3
Propagasi Balik (Backpropagation)
Neural Network model propagasi balik (Backpropagation) didesain untuk beroperasi secara multilayer, terdiri dari satu lapisan unit-unit masukan (input layer), satu atau lebih lapisan tersembunyi (hidden layer), dan satu lapisan unit-unit keluaran (output layer). berarsitektur umpan maju (feedforward network), menggunakan metode supervised learning dan antara lapisan yang satu dengan lapisan yang lain saling
berhubungan (fully interconnection by layer). Backpropagation memiliki unjuk kerja yang baik dari sisi tingkat ketelitian, sehingga sering dipakai dalam pelatihan (training) untuk meminimalkan kesalahan pada output jaringan melalui penyesuaian bobot (weight). Ada beberapa paramenter dalam proses pembelajaran untuk mengubah input menjadi output yang diinginkan. Parameter yang dimaksud adalah parameter konstanta belajar (learning rate) yang merupakan suatu parameter yang berfungsi sebagai penyekala perubahan bobot pada iterasi yang sedang berlangsung, parameter momentum (α) yang berfungsi sebagai penyekala perubahan dari iterasi sebelumnya dan menambahkan pada iterasi yang sedang berlangsung, parameter epoch yang merupakan suatu putaran proses dari input yang mendapatkan output sehingga menghasilkan error
101 yang kemudian dipropagasikan kembali dan dilakukan penyesuaian bobot yang ada. Untuk menghindari gangguan yang cukup besar dalam arah pembelajaran akibat kehadiran pasangan training pattern yang tidak biasa, disarankan menggunakan nilai learning rate yang kecil. Konvergensi seringkali lebih cepat tercapai jika momentum term ditambahkan kedalam formula penyesuaian bobot. Error pada output menentukan perubahan bobot antara hidden layer dan output layer, kemudian digunakan sebagai dasar untuk mengatur bobot antara hidden layer dan input layer. Hubungan transformasi antara input dan output biasanya dinyatakan oleh
sebuah harga yang kontinu oleh fungsi aktivasi. Pelatihan backpropagation memiliki tiga tahap yaitu: proses pelatihan pola input propagasi maju (forward propagation), proses propagasi balik (backward propagation) dari error dan proses penyesuaian bobot (update weight). Algoritma selengkapnya adalah sebagai berikut: 1. Inisialisasi bobot (weight) dengan interval 0 sampai 1. 2. Selama syarat berhenti salah lakukan langkah 3-10 3. Untuk setiap pasangan training (masukan dan keluaran) lakukan langkah 4-9 4. Setiap unit pada lapisan pertama menerima sinyal masukan dengan interval antara 0 hingga 1, yang merupakan hasil penyekalaan menggunakan persamaan: Nilai skala = nilai sebenarnya – min
(2-40)
max – min di mana: min = nilai minimum yang diharapkan dalam jaringan max = nilai maksimum yang diharapkan dalam jaringan
102 selajutnya meneruskan (propagated) ke seluruh unit pada lapisan berikutnya, yaitu hidden unit. 5. Setiap unit tersembunyi (hidden) menghitung total sinyal masukan terbobot menggunakan persamaan (2.1), lalu menghitung sinyal keluarannya dengan fungsi aktivasi menggunakan persamaan (2.4) dan mengirimkan sinyal ini ke seluruh unit pada lapisan berikutnya (fungsi sigmoid memiliki kelebihan untuk digunakan dalam algoritma backpropagation karena hubungan yang sederhana antara nilai fungsi pada suatu titik dengan nilai turunannya, sehingga mengurangi waktu komputasi selama pembelajaran). 6. Setiap unit output juga menghitung total sinyal masukan terbobot menggunakan persamaan (2.1), lalu menghitung sinyal keluaran dengan fungsi aktivasi menggunakan persamaan (2.4). 7. Setiap unit menerima sebuah pola target yang sesuai dengan pola masukan pelatihannya. Unit tersebut menghitung informasi kesalahan dengan persamaan:
δ k = (t k − y k ) f ′( y _ ink )
(2-41)
di mana: δk = koreksi error untuk weight Wjk tk = target keluaran ke-k yk = unit keluaran ke-k y_ink = unit keluaran ke-k yang belum dihitung nilai aktivasinya f ′ = turunan dari fungsi aktivasi
serta mengirimkan nilai δ k ke unit pada lapisan sebelumnya.
103 8. Setiap unit tersembunyi menghitung selisih input dari unit-unit pada layer berikutnya menggunakan persamaan: m
δ _ in j = ∑ δ kW jk
(2-42)
k =1
di mana: W jk = bobot antara unit tersembunyi ke-j dan unit keluaran ke-k lalu mengalikannya dengan turunan fungsi aktivasi untuk menghitung informasi kesalahannya menggunakan persamaan:
δ j = δ _ in j . f ′( Z _ in j )
(2-43)
di mana: δ j = koreksi error untuk bobot (weight) Vij 9. Setiap unit output mengubah bias dan bobot-bobotnya menggunakan persamaan:
W jk (new) = W jk (old ) + ηδ k Z j + α .ΔW jk
(2-44)
di mana: W jk (new) = bobot Wjk yang baru W jk (old ) = bobot Wjk yang lama
η = learning rate Zj = unit tersembunyi (hidden) ke-j α = koefisien momentum ΔW jk = perubahan bobot Wjk Setiap unit tersembunyi mengubah bias dan bobot-bobotnya dengan persamaan: Vij (new) = Vij (old ) + ηδ j X i + α .ΔVij
(2-45)
104 di mana: Vij (new) = bobot Vij yang baru Vij (old ) = bobot Vij yang lama Xi = unit masukan ke-i ΔVij = perubahan bobot Vij 10. Uji syaraf berhenti dengan rumus: n
∑ (t
k
− yk ) 2 < ε
(2-46)
k =1
di mana : ε = error toleransi dengan syarat 0 ≤ ε < 1 Jika benar maka selesai, jika tidak, kembali ke langkah 2
Algoritma training diatas diasumsikan hanya memiliki satu hidden layer saja. Jika terdapat lebih dari satu hidden layer, algoritma harus dimodifikasi sebagai berikut: a. Langkah 5 dilakukan berulang-ulang untuk setiap hidden layer dengan asumsi sinyal terbobot berasal dari unit di lapisan sebelumnya. b. Langkah 8 dilakukan berulang-ulang.
2.9.2.3 Minimum Distance Classifier
Minimum distance classifier adalah salah satu metode klasifikasi yang memanfaatkan fungsi diskriminan dalam menentukan subset. Dengan fungsi diskriminan maka dapat ditentukan jarak terdekat suatu objek di dalam suatu feature space yang digunakan dalam klasifikasi. Contoh apabila dalam feature space terdapat kelompokkelompok titik maka masing-masing kelompok titik tersebut mewakili masing-masing
105 class. Dan jarak minimum dapat diperoleh dengan mengelompokkan titik pola x ke dalam class yang terdekat dengannya. Keuntungan dari metode Minimum distance classifier ini adalah waktu yang dibutuhkan dalam melakukan perhitungan lebih singkat dan implementasinya lebih mudah. Ada beberapa jenis perhitungan jarak minimum di antaranya:
Euclidean distance: x−v
∑ (x
=
n
− vn )
2
(2-47)
n =1,..., N
City-block distance: x−v
2
2
=
∑x
n =1,..., N
n
− vn
(2-48)
Maximum distance: x−v
∞
= max n =1,..., N x n − v n
(2-49)
Perepresentasian kelas tidak hanya dapat menggunakan satu pola sampel tapi juga dapat menggunakan lebih. Dalam keadaan demikian maka jarak pola x ke suatu kelas k0 sama dengan jarak minimum dari pola x dengan semua pola sampel zk yang mewakili kelas tersebut: x − z k0 = min k { x − z k
}
(2-50)
Minimum distance classifier dengan jenis perhitungan Euclidean digunakan untuk mengenali pola QRS. Berikut ini adalah perumusan untuk mendapatkan jarak minimum dengan jenis perhitungan Euclidean.
106 d (c1 , c 2 , c5 ) =
(c
1
− c1
) + (c 2
2
− c2
) + (c 2
5
− c5
)
2
(2-51)
Perhitungan di atas dilakukan dengan tujuan untuk mengetahui apakah suatu gelombang QRS termasuk dalam pola QRS normal atau QRS ventrikular.
2.9.2.4 Knowledge Based Expert System
Knowledge Based Expert System merupakan bagian dari artificial intelligence yang didesain untuk memecahkan suatu permasalahan berdasarkan pengetahuan (informasi) yang telah diinput ke dalam komputer. Hasil dari proses expert system disebut goals (tujuan). Dalam perancangan Knowledge Based Expert System, goals dibuat berdasarkan fakta dan aturan, contoh : Fakta
:
Aturan :
Tumbuhan membutuhkan sinar matahari JIKA mawar adalah tumbuhan MAKA mawar membutuhkan sinar matahari
Dalam kasus pengenalan pola rekaman EKG terkadang suatu aturan terkait dengan lebih dari satu fakta. Langkah awal pembuatan Knowledge Based Expert System untuk EKG adalah membuat tabel nama variabel.
107 Tabel 2.9 Contoh Tabel Nama Variabel
Nama Variabel
Pengertian
Kecepatan denyut rata-rata
Rata-rata denyut jantung per menit
(Heart Rate) Varian (irama) jantung
Irama denyut jantung Perbedaan waktu antara dua denyut yang
Interval
berurutan Banyaknya kompleks QRS ventrikular
Jumlah kompleks QRS ventrikular
yang terdeteksi
Waktu sejak QRS terakhir
Berapa rentang waktu sejak QRS terakhir
Langkah selanjutnya adalah mengisi tabel tersebut dengan menggunakan rumusan atau ketentuan yang ada. Misalnya untuk mencari kecepatan rata-rata denyut jantung yaitu dengan menggunakan rumusan:
r = 60
4 t1 + t 2 + t 3 + t 4
(2-52)
Di mana r adalah kecepatan rata-rata denyut jantung dan tn adalah interval antara denyut n dan n+1. Rumusan lain misalnya untuk mencari varian interval, yaitu:
σ2 =
((
) (
) (
2 2 1 t1 − t + t 2 − t + t 3 − t 3
Di mana σ adalah varian interval.
) + (t 2
4
−t
)) 2
(2-53)
108 Berikut adalah contoh Knowledge Based Expert System pada pengenalan pola EKG: Rule 1
:
IF Time since last QRS IS normal AND Number of ventricular complexes IS none THEN Rhythm IS supraventricular
Rule 2
:
IF Rhythm IS supraventricular AND Rhythm IS regular AND Heart rate IS normal THEN Diagnosis normal sinus rhythm IS yes
Rule 3
:
IF Rhythm IS supraventricular AND Rhythm IS NOT regular AND Interval shortened IS none AND Interval prolonged IS none THEN Diagnosis sinus arrhythmia IS yes
Aturan (rule) seperti di atas akan menjadi dasar bagi algoritma forward chaining dan backward chaining untuk mendapatkan hasil dari suatu keadaan tertentu. Penggunaan algoritma forward dan backward dalam pengenalan pola EKG:
Forward chaining Dengan mengamati keadaan waktu QRS dan jumlah kompleks ventrikular, dapat diperoleh suatu kesimpulan baru. Dan dengan penggabungan bersama variabel lain akan diperoleh diagnosis pola jantung tertentu. Sebagai contoh,
109 apabila dari sebuah gambar didapatkan Time since last QRS IS normal dan Number of ventricular complexes IS none, maka dapat ditarik kesimpulan bahwa kondisi tersebut termasuk dalam kondisi Rhythm IS supraventricular. Setelah mendapatkan kondisi baru tersebut, maka baru dapat ditambah dengan keadaan Rhythm IS NOT regular dan Interval shortened IS none dan Interval prolonged IS none untuk mendapatkan kondisi diagnosis selanjutnya. Dari penggabungan keempat kondisi maka akan menghasilkan Diagnosis sinus arrhythmia IS yes.
Backward chaining Backward chaining merupakan kebalikan dari Forward chaining, dimana pada Backward chaining kondisi yang diketahui adalah kondisi akhir atau polanya. Dan tujuan dilakukan Backward chaining adalah untuk mengetahui penyebab dari suatu kondisi. Sebagai contoh, apabila dari suatu kondisi diketahui Diagnosis normal sinus rhythm IS yes kemudian dicari rule yang dapat menghasilkan kondisi tersebut, yaitu dengan menggunakan algoritma seperti yang ada pada rule kedua. Dengan mengetahui bahwa Rhythm IS supraventricular dan Rhythm IS regular dan Heart rate IS normal maka dapat ditelusuri lebih lanjut penyebab awal dari kondisi tersebut; sesuai dengan algoritma pada pertama yaitu Time since last QRS IS normal dan Number of ventricular complexes IS none.
110 2.10
State Transition Diagram
Menurut
Pressman
(1997,
p301),
State
Transition
Diagram
(STD)
mengindikasikan bagaimana suatu sistem berkerja setelah berinteraksi dengan event eksternal. Untuk memenuhi hal ini, STD merepresentasikan berbagai mode perilaku (disebut state) dari sistem dan bagaimana setiap transisi terjadi dari state ke state. STD menyediakan basis permodelan perilaku. Informasi tambahan dari aspek kontrol software yang terkandung dalam control spesification. STD merepresentasikan perilaku dari sebuah sistem dengan menggambarkan state-state yang ada dalam sistem dan eventevent
yang
menyebebkan
sistem
berganti
state.
Sebagai
tambahan,
STD
mengindikasikan tindakan apa yang diambil sebagai konsekuensi dari sebuah event. Simbol-simbol dari STD yang sering digunakan: a.
State, disimbolkan dengan segiempat. Simbol state
b.
Transition state atau perubahan state disimbolkan dengan panah berarah. Simbol transition state
c.
State adalah kumpulan keadaan atau atribut yang mencirikan seseorang atau suatu benda pada waktu tertentu atau kondisi tertentu.
d.
Condition adalah suatu event pada lingkungan eksternal yang dapat dideteksi oleh sistem.
e.
Action adalah yang dilakukan sistem bila terjadi perubahan state atau merupakan reaksi terhadap kondisi. Aksi akan menghasilkan keluaran atau tampilan.
f.
Display pada screen menghasilkan kalkulasi dan sebagainya.