• Tidak ada hasil yang ditemukan

BAB 3 ANALISA DAN PERANCANGAN SISTEM. resiko kegagalan yang ditimbulkan yang cukup besar yang diakibatkan karena terjadinya

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISA DAN PERANCANGAN SISTEM. resiko kegagalan yang ditimbulkan yang cukup besar yang diakibatkan karena terjadinya"

Copied!
56
0
0

Teks penuh

(1)

111

ANALISA DAN PERANCANGAN SISTEM

3.1

Analisa Masalah

Pengenalan pola dan penganalisaan EKG secara manual memiliki persentase

resiko kegagalan yang ditimbulkan yang cukup besar yang diakibatkan karena terjadinya

ketidaktelitian dalam penginterpretasian. Hal ini disebabkan karena terdapatnya

beberapa penyakit dengan karakteristik yang nyaris sama. Selain itu, keterbatasan fisik

para ahli sebagai manusia juga dapat menimbulkan terjadinya kesalahan dalam

penginterpretasian, seperti kesalahan yang disebabkan karena kelelahan yang dialami

oleh para ahli. (Loren, K, 2000).

Selain masalah ketelitian, penganalisaan EKG secara manual juga menimbulkan

masalah waktu. Untuk meminimalisasi resiko kegagalan akibat ketidaktelitian maka

dibutuhkan waktu yang cukup lama dalam pengenalan pola serta penganalisaannya

(Zainal, H, 1978). Sehingga apabila dibutuhkan informasi dalam waktu yang cepat,

tingkat kemungkinan terjadinya kegagalan penginterpretasian menjadi sangat besar.

3.2

Pemecahan Masalah

Masalah-masalah di atas dapat diatasi dengan merancang sebuah prototipe

berbasiskan teknologi informasi yang dapat digunakan untuk mengenali pola gelombang

EKG dan pendiagnosannya. Dengan diciptakan prototipe ini diharapkan dapat

meningkatkan ketelitian dan mengurangi durasi waktu yang dibutuhkan dalam tahap

pengenalan dan penganalisaan pola.

(2)

< >

Fuzzy Logic Neural NetworK

System Error

Train Count Target Error

Alpha Train Load Weight Save Weight Analyze Analyze

Gambar 3.7 Rancangan Tampilan Utama

Layar utama terdiri dari 5 bagian, yaitu :

1. Title

Title berisi judul program “ECG Analyzer”.

2. Menu Bar

Menu Bar berisi menu-menu untuk membuka/menutup file, dan pemrosesan

sinyal. Menu bar ini terdiri dari :

- File

Berisi pilihan untuk load data dan close data, serta exit untuk keluar

dari program.

(3)

- Graph

Terdiri dari tiga bagian. Bagian pertama adalah option, yang

berfungsi untuk mengatur kecepatan animasinya, yang bila dipilih

akan menampilkan window baru seperti di bawah ini:

Settings X

Animation Speed

Close Apply

Graph Length

Gambar 3.8 Window Untuk Setting Animasi

Satu bagian lagi adalah animate, yang berfungsi untuk mengatur

tampilan gelombang (statis atau animasi). Lalu, bagian terakhir

yaitu simulation, yang berfungsi untuk menampilkan gelombang

EKG penyakit-penyakit jantung yang ada, yaitu :

o

Raw Data

o Normal

o Sinus Tachycardia

(4)

Berisi langkah-langkah pemrosesan sinyal untuk mendeteksi lokasi

QRS dan klasifikasi bentuk QRS. Langkah-langkah tersebut antara

lain

o

Bandpass Filter

o Baseline Shift Removal

o Averaging and Scaling

o

Squaring and Moving Window Integrator

o Dynamic Threshold and QRS Detection

o

Lowpass Filter

o Baseline Shift Removal

o Feature Space C1 and C2

o

Feature Space C1 and C5

o Detected QRS Complex

- About

Apabila diklik, maka akan memunculkan window baru yang

menampilkan nama-nama pembuat program.

(5)

About X

ECG Signal Analyzer

OK

Gambar ECG Signal Analyzer

Dibuat Untuk Proyek Skripsi Jenjang S1

Oleh : Ohaiyo Randy Rahmat 0700695521

Ivan Christian 0700708524

Feriko Wirajimin 0700708676

Gambar 3.9 Window About yang Menampilkan Nama-nama Pembuat

- Shortcut Button

Berisi button-button yang merupakan shortcut dari menu-menu di

dalam Menu Bar (Load, Close, Exit, Options, Animate, dan

Button-button Signal Processing).

-

Axis

Bagian ini berfungsi untuk menampilkan grafik yang dihasilkan.

-

Scroll Bar

Bagian ini berfungsi untuk menggeser grafik / tampilan gelombang

pada waktu yang diinginkan.

-

Group Fuzzy Logic

Berisi tombol Analyze yang berguna untuk memulai analisa pola

dan mendiagnosanya. Bila tombol Analyze ditekan, maka akan

(6)

Gambar 3.10 Window Analisa dan Hasil Diagnosa

-

Group Neural Network

Berisi Button Train untuk proses pembelajaran, Load Weight untuk

mengambil nilai bobot yang akan digunakan, Save Weight untuk

menyiman nilai bobot setelah di training, dan Button Analyze untuk

menganalisa dan mendiagnosa data EKG.

(7)

3.5

Spesifikasi Proses

Sebelum sinyal/data EKG di analisa, terlebih dahulu diperlukan serangkaian

proses pengenalan pola untuk mengenali karakteristik dari gelombang EKG tersebut.

Adapun langkah-langkah proses pengenalan pola tersebut seperti pada gamabar berikut:

(8)
(9)

Gambar 3.11 menunjukkan serangkaian proses untuk mengenali pola gelombang

EKG asli. Untuk data EKG yang telah dinormalisasi, proses pengenalan agak berbeda.

Ini dikarenakan data tersebut sudah dibentuk sedemikian rupa sehingga tidak lagi

memiliki noise serta tidak membutuhkan pergeseran garis dasar. Untuk itu proses digital

bandpass filter, lowpass filter, serta baseline shift removal tidak diperlukan lagi.

Langkah-langkah algoritma pengenalan polanya adalah sebagai berikut:

(10)
(11)

3.5.1 Signal Processing dan QRS Detection

Untuk penggunaan sinyal EKG berdasarkan rekaman asli, maka setelah pertama

kali di-load, akan terlihat grafik seperti berikut:

Gambar 3.13 Sinyal yang Pertama Kali Dihasilkan

Karena data ini bersasal dari rekaman langsung terhadap pasien, maka pada

sinyal masih terdapat noise yang menyebabkan kesulitan dalam melakukan analisa.

Untuk itu, sinyal harus diproses dengan algoritma pemrosesan sinyal digital.

3.5.1.1 Proses Digital Bandpass Filter

Tahap yang pertama dalam pemrosesan sinyal adalah proses digital bandpass

filter. Pada proses ini noise yang ada dihilangkan. Dengan menggunakan Discreet

Fourier Transform (DFT), respon sinyal dari proses ini dihasilkan. Berikut ini adalah

hasil dari proses digital bandpass filter

(12)

Gambar 3.14 Sinyal EKG Asli Setelah Tahap Digital Bandpass Filter

3.5.1.2 Proses Baseline Shift Removal

Dari sinyal yang dihasilkan sebelumnya, terlihat bahwa garis dasar dari

gelombang tersebut tidak berada pada titik nol. Untuk itu, perlu dilakukan pergeseran

garis dasar mendekati nol dengan menggunakan metode pengepasan kurva berdasarkan

pendekatan polinomial Chebyshev. Hasil pendekatan tersebut kemudian dikalikan

dengan fungsi pembobot (weighting function). Fungsi pembobot yang digunakan seperti

pada gambar berikut:

(13)

Gambar 3.16 Perkiraan Geseran Garis Dasar Dengan Polinomial Chebyshev

Gambar 3.17 Garis Dasar Digeser Sehingga Mendekati Nol

3.5.1.3 Proses Averaging dan Scaling

Pada proses ini, dilakukan penskalaan pada sinyal sehingga rata-rata

amplitudonya menjadi 10.

(14)

Gambar 3.18 Tahap Averaging dan Scaling

3.5.1.4 Proses Squaring dan Moving Window Integrator

Pada proses ini, sinyal dikuadratkan dan dihaluskan bentuknya dengan moving

window integrator. Lebar window integrator yang digunakan sama dengan 5.. Hasil dari

proses ini adalah sebagai berikut:

(15)

3.5.1.5 Proses Dynamic Threshold dan QRS Detection

Dengan penggunaan threshold sebagai batas acuan untuk mendeteksi kompleks

QRS, maka nilai maksimum dari sinyal pada periode tertentu dapat diketahui. Berikut

ini adalah hasilnya:

Gambar 3.20 Posisi Kompleks QRS Sudah Diketahui

3.5.2 Shape Recognition

Setelah serangkaian proses sebelumnya, maka lokasi kompleks QRS sudah

diketahui. Berikutnya adalah proses untuk menentukan normal atau tidaknya kompleks

QRS tersebut. Karena proses sebelumnya sudah banyak mendistorsi sinyal, maka pada

untuk proses selanjutnya digunakan sinyal EKG yang masih belum diolah.

3.5.2.1 Proses Digital Lowpass Filter

Hampir sama pada tahap bandpass filter, sinyal dihilangkan noise-nya, tetapi

noise pada frekuensi tinggilah yang dihilangkan.

(16)

Gambar 3.21 Sinyal EKG Asli Setelah Tahap Lowpass Filter

3.5.2.2 Proses Baseline Shift Removal

Sama seperti yang telah dibahas sebelumnya, setelah proses digital lowpass filter

maka dilakukan baseline shift removal untuk menggeser garis dasar mendekati nol.

(17)

Gambar 3.23 Penghilangan Geseran Garis Dasar

3.5.3 Pengenalan Pola

Dengan menggunakan rumus pada pendekatan polinomial Chebyshev didapatkan

koefisien-koefisien yang digunakan untuk penentuan distribusi pada feature space.

Klasifikasi jarak minimum menggunakan Euclidean distance digunakan untuk

mengenali pola kompleks QRS normal. Lalu rumus (2-55) digunakan untuk mencari

titik pusat gravitasi pada feature space. Bila ternyata pemetaan koefisien jaraknya jauh

dari pusat gravitasi normal, maka titik tersebut tergolong ventrikular.

(18)

Gambar 3.25 Distribusi Koefisien Chebyshev (c

1

, c

5

)

Dari hasil klasifikasi diatas, maka nilai perhitungan jaraknya dapat digambarkan

seperti berikut:

Gambar 3.26 Klasifikasi Bentuk QRS

3.5.4 Diagnosis

Setelah melalui serangkaian proses signal processing, maka kompleks

gelombang QRS dapat diklasifikasi. Jenis-jenis penyakit-pun dapat diklarifikasikan

(19)

berdasarkan kompleks gelombang tersebut. Berikut ini adalah gambar dari lima

kompleks QRS berturut-turut:

Gambar 3.27 Lima QRS yang Dijadikan Input Dalam Analisa

Setelah didapat lima QRS, maka ditentukan beberapa karakteristik yang akan

digunakan dalam diagnosis yaitu:

• Denyut jantung per menit.

• Varian interval.

• Interval antar kelima kompleks QRS (t

1

, t

2

, t

3

, t

4

) dalam satuan detik.

• Jumlah kompleks QRS ventrikular diantara lima denyut yang dianalisa.

• Waktu yang terhitung sejak kompleks QRS terakhir.

Kelima karakteristik di atas digunakan seperti layaknya sebuah expert system,

dimana untuk setiap variabel didefinisikan sebuah subset fuzzy dengan nilai yang telah

ditentukan dari berbagai sumber (Krzysztof Dubowik, 1999).

(20)

Number

of

Ventricular

Complexes Varian

[rhytm]

Time Since Last QRS

Gambar 3.28 Fuzzy Set yang Digunakan Dalam Expert System

Untuk diagnosa penyakit, diperlukan penambahan satu variabel. Untuk setiap

langkah forward chaining didefinisikan sebagai berikut:

Diagnosis

(21)

Berdasarkan informasi di atas dapat digambarkan sebuah decision tree untuk

menganalisa penyakit sebagai berikut:

(22)

Number of ventricular complexes IS none THEN Rhythm IS supraventricular

IF Rhythm IS supraventricular AND Rhythm IS regular AND

Heart rate IS normal

THEN Diagnosis normal sinus rhythm IS yes

Sinus tachycardia:

IF Time since last QRS IS normal AND

Number of ventricular complexes IS none THEN Rhythm IS supraventricular

IF Rhythm IS supraventricular AND Rhythm IS regular AND

Heart rate IS high

THEN Diagnosis sinus tachycardia IS yes

Sinus bradycardia:

(23)

Number of ventricular complexes IS none THEN Rhythm IS supraventricular

IF Rhythm IS supraventricular AND Rhythm IS regular AND

Heart rate IS low

THEN Diagnosis sinus bradycardia IS yes

Sinus arrhythmia:

IF Time since last QRS IS normal AND

Number of ventricular complexes IS none THEN Rhythm IS supraventricular

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

Ventricular fibrillation:

IF Time since last QRS IS NOT normal

THEN Diagnosis ventricular fibrillation IS yes

Premature atrial complex:

IF Time since last QRS IS normal AND

Number of ventricular complexes IS none THEN Rhythm IS supraventricular

(24)

IF Time since last QRS IS normal AND

Number of ventricular complexes IS none THEN Rhythm IS supraventricular

IF Rhythm IS supraventricular AND Rhythm IS NOT regular AND Interval shortened IS yes AND

Number of shortened interval IS more than or equal to 3 THEN Diagnosis atrial tachycardia IS yes

Premature Ventricular Complexes:

IF Time since last QRS IS normal AND

Number of ventricular complexes IS NOT none THEN Rhythm IS ventricular

IF Rhythm IS ventricular AND

Number of ventricular complexes IS few AND Rhythm IS NOT regular AND

Interval shortened IS yes

(25)

Ventricular tachycardia:

IF Time since last QRS IS normal AND

Number of ventricular complexes IS NOT none THEN Rhythm IS ventricular

IF Rhythm IS ventricular AND

Number of ventricular complexes IS many AND Rhythm IS regular

THEN Diagnosis ventricular tachycardia IS yes

Supraventricular escape beat:

IF Time since last QRS IS normal AND

Number of ventricular complexes IS none THEN Rhythm IS supraventricular

IF Rhythm IS supraventricular AND Rhythm IS NOT regular AND Interval shortened IS none AND Interval prolonged IS yes

THEN Diagnosis supraventricular escape beat IS yes

Ventricular escape beat:

IF Time since last QRS IS normal AND

Number of ventricular complexes IS NOT none THEN Rhythm IS ventricular

IF Rhythm IS ventricular AND

Number of ventricular complexes IS few AND Rhythm IS NOT regular AND

(26)

THEN Rhythm IS ventricular

IF Rhythm IS ventricular AND

Number of ventricular complexes IS few AND Rhythm IS regular

THEN Diagnosis bundle branch block IS yes

Atau:

IF Time since last QRS IS normal AND

Number of ventricular complexes IS NOT none THEN Rhythm IS ventricular

IF Rhythm IS ventricular AND

Number of ventricular complexes IS many AND Rhythm IS NOT regular

(27)

3.6

Pseudocode

3.6.1 Main Modul

Class TForm1

Prosedur RandomWeight Randomisasi

Random semua weight hidden layer Random semua weight ouput layer Akhir Prosedur

Prosedur FormCreate

Inisialisasi nilai variable-variabel

Inisialisasi jumlah input layer, hidden layer dan output layer RandomWeight

Baca nama-nama simulasi yang tersedia dan masukan ke memory Tambahkan nama-nama simulasi ke dalam menu Simulasi

Akhir Prosedur

Prosedur FormDestroy

Hentikan animasi jika berjalan

Bebaskan memory yang dialokasikan untuk simulasi Jika Signal tidak kosong maka Bebaskan memory yang

dialokasikan untuk Signal Akhir Prosedur

Prosedur SimulationClick

Set Active Graph ke index dari simulasi Jika Active Graph sama dengan nol maka

(28)

Disable MenuBandPassFilter dan ButtonBandPassFilter Disable MenuLowPassFilter dan ButtonLowPassFilter Disable MenuBaselineShiftRemoval1 dan

ButtonBaselineShiftRemoval1

Disable MenuBaselineShiftRemoval2 dan ButtonBaselineShiftRemoval2

Akhir Jika

Jika Active Signal kosong maka Disable ScrollBar

selain itu

Enable Scrollbar

Sesuaikan nilai maksimum Scrollbar dengan panjang signal Akhir Jika

Akhir Prosedur

Prosedur ExitClick Tutup Form Utama Tutup Applikasi Akhir Prosedur

(29)

Prosedur AboutClick

Hentikan Timer Animasi Tampilkan Form About

Jika Animasi aktif maka jalankan kembali Timer Animasi Akhir Prosedur

Prosedur AnimateClick

Jika Animasi aktif maka hentikan Timer Animasi selain itu Jalankan Timer Animasi

Akhir Prosedur

Prosedur OptionsClick

Set nilai-nilai Trackbar Animate Speed dan Graph Length pada Form Options

Tampilkan Form Options

Jika user menekan OK maka simpan nilai-nilai dari Trackbar tersebut

Akhir Prosedur

Prosedur LoadDataClick

Tampilkan Open File Dialog Jika User menekan Open maka

Baca data signal ke Signal Set Active Graph ke nol Set Active Signal ke Signal

Sesuaikan nilai maksimum Scrollbar dengan panjang signal Akhir Jika

(30)

Set posisi Graph ke posisi ScrollBar Akhir Prosedur

Prosedur ButtonBandPassFilterClick

Jika ButtonBandPassFilter tertekan maka Tandai MenuBandPassFilter

Selain itu

Hilangkan tanda pada MenuBandPassFilter Akhir Jika

Panggil prosedur AdjustSignal Set parameter Graph

Jika Active Signal kosong maka disable Scrollbar selain itu enable Scrollbar

Akhir Prosedur

Prosedur ButtonBaselineShift1Click

Jika ButtonBaselineShift1 tertekan maka Tandai MenuBaselineShiftRemoval1 Selain itu

Hilangkan tanda pada MenuBaselineShiftRemoval1 Akhir Jika

(31)

Panggil prosedur AdjustSignal Set parameter Graph

Jika Active Signal kosong maka disable Scrollbar selain itu enable Scrollbar

Akhir Jika Akhir prosedur

Prosedur ButtonAverageClick

Jika ButtonBaselineShiftRemoval1 tertekan maka Tandai MenuAveragingAndScaling

Selain itu

Hilangkan tanda pada MenuAveragingAndScaling Akhir Jika

Panggil prosedur AdjustSignal Set parameter Graph

Jika Active Signal kosong maka disable Scrollbar selain itu enable Scrollbar

Akhir Prosedur

Prosedur ButtonSquareClick

Jika ButtonSquare tertekan maka

Tandai MenuSquaringAndMovingWindowIntegrator Selain itu

Hilangkan tanda pada MenuSquaringAndMovingWindowIntegrator Akhir Jika

Panggil prosedur AdjustSignal Set parameter Graph

Jika Active Signal kosong maka disable Scrollbar selain itu enable Scrollbar

(32)

Panggil prosedur AdjustSignal Set parameter Graph

Jika Active Signal kosong maka disable Scrollbar selain itu enable Scrollbar

Akhir Prosedur

Prosedur ButtonLowPassFilterClick

Jika ButtonLowPassFilter tertekan maka Tandai MenuLowPassFilter

Selain itu

Hilangkan tanda pada MenuLowPassFilter Akhir Jika

Panggil prosedur AdjustSignal Set parameter Graph

Jika Active Signal kosong maka disable Scrollbar selain itu enable Scrollbar

Akhir Prosedur

Prosedur ButtonBaselineShift2Click

Jika ButtonBaselineShift2 tertekan maka Tandai MenuBaselineShiftRemoval2

(33)

Selain itu

Hilangkan tanda pada MenuBaselineShiftRemoval2 Akhir Jika

Panggil prosedur AdjustSignal Set parameter Graph

Jika Active Signal kosong maka disable Scrollbar selain itu enable Scrollbar

Akhir Prosedur

Prosedur ButtonFeatureSpace12Click

Jika ButtonFeatureSpace12 tertekan maka Tandai MenuFeatureSpaceC1andC2 Selain itu

Hilangkan tanda pada MenuFeatureSpaceC1andC2 Akhir Jika

Panggil prosedur AdjustSignal Set parameter Graph

Jika Active Signal kosong maka disable Scrollbar selain itu enable Scrollbar

Akhir Prosedur

Prosedur ButtonFeatureSpace15Click

Jika ButtonFeatureSpace15 tertekan maka Tandai MenuFeatureSpaceC1andC5 Selain itu

Hilangkan tanda pada MenuFeatureSpaceC1andC5 Akhir Jika

Panggil prosedur AdjustSignal Set parameter Graph

(34)

Hilangkan tanda pada MenuDetectedQRSComplex Akhir Jika

Panggil prosedur AdjustSignal Set parameter Graph

Jika Active Signal kosong maka disable Scrollbar selain itu enable Scrollbar

Akhir Prosedur

Prosedur AdjustSignal

Set Graph ke Signal Processing yang sedang aktif Akhir Prosedur

Prosedur AdjustEnable Jika Signal kosong maka Disable tombol Analyze

Disable semua tombol Signal Processing Selain itu

Enable tombol Analyze

Jika Signal adalah simulasi maka

Enable semua tombol Signal Processing kecuali Band Pass, Low Pass, Baseline Shift Removal 1 dan 2

(35)

Selain itu

Enable semua tombol Signal Processing Akhir Jika

Akhir Jika Akhir Prosedur

Prosedur MenuBandPassFilterClick

Jika ButtonBandPassFilter tertekan maka lepaskan selain itu tekan ButtonBandPassFilter

Panggil ButtonBandPassFilterClick Akhir Prosedur

Prosedur MenuBaselineShiftRemoval1Click

Jika ButtonBaselineShift1 tertekan maka lepaskan selain itu tekan ButtonBaselineShift1

Panggil ButtonBaselineShift1Click Akhir Prosedur

Prosedur MenuAveragingAndScalingClick

Jika ButtonAveraging tertekan maka lepaskan selain itu tekan ButtonAveraging

Panggil ButtonAverageClick Akhir Prosedur

Prosedur MenuSquaringAndMovingWindowIntegratorClick

Jika ButtonSquare tertekan maka lepaskan selain itu tekan ButtonSquare

Panggil ButtonSquareClick Akhir Prosedur

(36)

tekan ButtonLowPassFilter

Panggil ButtonLowPassFilterClick Akhir Prosedur

Prosedur MenuBaselineShiftRemoval2Click

Jika ButtonBaselineShift2 tertekan maka lepaskan selain itu tekan ButtonBaselineShift2

Panggil ButtonBaselineShift2Click Akhir Prosedur

Prosedur MenuFeatureSpaceC1andC2Click

Jika ButtonFeatureSpace12 tertekan maka lepaskan selain itu tekan ButtonFeatureSpace12

Panggil ButtonFeatureSpace12Click Akhir Prosedur

Prosedur MenuFeatureSpaceC1andC5Click

Jika ButtonFeatureSpace15 tertekan maka lepaskan selain itu tekan ButtonFeatureSpace15

Panggil ButtonFeatureSpace15Click Akhir Prosedur

(37)

Prosedur MenuDetectedQRSComplexClick

Jika ButtonDetectedQRSComplex tertekan maka lepaskan selain itu tekan ButtonDetectedQRSComplex

Panggil ButtonDetectedQRSComplexClick Akhir Prosedur

Prosedur TrainAll Ulangi

Tambah traincount

Forward input ke hidden layer

Forward hidden layer ke output layer Hitung error dari output layer

Backward output ke hidden layer Backward hidden layer ke input layer Update weight hidden layer

Update weight output layer Hitung error rata-rata

Hingga error rata-rata lebih kecil dari target error Akhir Prosedur Prosedur TrainClick Inisialisasi nPattern Jalankan Inisialisasi Graph Tambah nPattern

Hitung masing-masing input Masukkan input kedalam nPattern Hitung target dari input

(38)

Baca weight hidden layer Baca weight output layer Tutup file weight

Akhir Prosedur

Prosedur SaveWeightClick Buka file weight

Tulis jumlah traincount Tulis systemerror

Tulis weight hidden layer Tulis weight output layer Tutup file weight

Akhir Prosedur

Prosedur HitungTarget

Inisialisasi nilai variabel-variabel Hitung nilai desimal dari output layer Akhir Prosedur

Prosedur NeuralAnalyzeClick

(39)

Hitung masing-masing input

Forward input layer ke hidden layer Forward hidden layer ke output layer Panggil HitungTarget

Tampilkan Form Analyze

Panggil Prosedur NeuralNet pada form Analyze Akhir Prosedur

Prosedur FuzzyAnalyzeClick Tampilkan Form Analyze

Panggil Prosedur FuzzyL pada form Analyze Akhir Prosedur

Akhir Class

3.6.2 Modul UnitAbout

Class TForm1

Prosedur FormCreate

Baca gambar animasi dan simpan ke memory Akhir Prosedur

Prosedur FormShow

Set Frame animasi ke nol Reset animasi text

Jalankan timer Akhir Prosedur

Prosedur FormHide Stop Timer

(40)

Tutup Form About Akhir Prosedur Akhir Class

3.6.3 Modul UnitOptions

Class TForm3

Prosedur TForm3.AnimationSpeedChange(Sender: TObject); Set Label1 ke posisi AnimationSpeed

Akhir Prosedur

Prosedur GraphLengthChange

Set Label2 ke posisi GraphLength Akhir Prosedur Akhir Class

3.6.4 Modul UnitAnalyze

Class TForm4 Prosedur FormShow Kosongkan Analisa

(41)

Akhir Prosedur

Prosedur FormClose

Jika thread ada dan sedang berjalan maka batalkan penutupan form

Akhir Prosedur

Prosedur FuzzyL

Inisialisasi variabel dan data

Lakukan perulangan untuk setiap QRS yang terdeteksi Hitung jarak antar ke 5 posisi QRS

Hitung rata-rata jarak Hitung Variasi antar jarak

Hitung jumlah kompleks QRS Ventricular Hitung Detak Per Menit

Lakukan analisa penyakit dengan Fuzzy Subset yang tersedia Akhir perulangan

Hitung persentase tiap-tiap penyakit yang di temukan beserta Tampilkan tiap-tiap penyakit berserta persentasenya

Akhir Prosedur

Prosedur NeuralNet

Inisialisasi variabel dan data

Tampilkan hasil analisa berdasarkan nilai output layer Akhir Prosedur

(42)

Bebaskan memory linklist Akhir Destructor

Prosedur AddHeartBeat

Tambahkan Heartbeat baru ke linklist Akhir Prosedur

Fungsi GetHeartBeat

Lakukan looping hingga ke posisi yang diinginkan Kembalikan informasi HeartBeat

Akhir Fungsi

Prosedur SetInterval

Set Interval dari sampling Akhir Prosedur

Fungsi GetInterval

Kembalikan Interval dari Sampling Akhir Fungsi

(43)

Fungsi GetData

Hitung posisi yang ingin disampling Lakukan perhitungan posisi gelombang Kembalikan nilai sampling

Akhir Fungsi

Fungsi GetLength

Kembalikan panjang simulasi Akhir Fungsi

Fungsi GetCount

Kembalikan jumlah sample Akhir Fungsi

Akhir Class

3.6.6 Modul ECGData

Class TECGData

Constructor Create

Baca informasi sinyal dan simpan ke memory Akhir Constructor

Fungsi GetSignal

Buat TECGSignal berdasarkan informasi sinyal Kembalikan object tersebut

Akhir Fungsi Akhir Class

(44)

Fungsi GetData

Kembalikan nilai data sinyal Akhir Fungsi Akhir Class

3.6.7 Modul SignalProcessing

Class TSignalProcessor Constructor Create Inisialisasi variabel

Jika sig tidak kosong maka set Signal ke sig Akhir Constructor

Prosedur NotifyListener

Panggil prosedur Changed untuk setiap Listener Akhir Prosedur

Prosedur Changed Set Update ke True

(45)

Akhir prosedur

Prosedur UpdateData Set Update False Akhir UpdateData

Prosedur AddChangeListener

Tambahkan listener baru ke list Akhir Prosedur

Prosedur RemoveChangeListener Keluarkan listener dari list Akhir Prosedur

Prosedur SetSignal Set Signal ke sig Akhir Prosedur

Fungsi GetData

Jika Signal tidak kosong maka panggil GetData dari Signal

Selain itu

kembalikan nilai default

Akhir Jika

Akhir Fungsi

Fungsi GetTipe

Jika Enabled maka kembalikan Tipe selain itu kembalikan Tipe dari Signal

(46)

Kembalikan nilai Enabled Akhir Fungsi Akhir Class

3.6.8 Modul SignalFilter

Class LowpassFilter Constructor Create Initialisasi variabel-variabel

Buat koefisien respon frekuensi pada 0-40Hz Lakukan Invers DFT untuk koefisien respon impuls Akhir Constructor

Destructor Destroy

Bebaskan memory yang dialokasi untuk Signal Akhir Destructor

Prosedur UpdateData Set Update ke False

Lakukan perkalian koefisien ke setiap sinyal dan simpan ke data signal

(47)

Akhir Prosedur

Fungsi GetData

Jika nilai Update True maka Panggil Prosedur UpdateData Kembalikan nilai data signal sesuai index

Akhir Fungsi Akhir Class

Class BandpassFilter Constructor Create

Initialisasi variabel-variabel

Buat koefisien respon frekuensi pada 8-40Hz Lakukan Invers DFT untuk koefisien respon impuls Akhir Constructor

Destructor Destroy

Bebaskan memory yang dialokasi untuk Signal Akhir Destructor

Prosedur UpdateData Set Update ke False

Lakukan perkalian koefisien ke setiap sinyal dan simpan ke data signal

Akhir Prosedur

Fungsi GetData

Jika nilai Update True maka panggil Prosedur UpdateData Kembalikan nilai data signal sesuai index

(48)

Destructor Destroy

Bebaskan memory yang dialokasi untuk Signal Akhir Destructor

Prosedur UpdateData Set Update ke False

Cari nilai maksimum dan nilai minimum Signal Simpan nilai range dari minimum dan maksimum

Bagi setiap data pada Signal dengan range dan kalikan dengan nilai Scale

Akhir prosedur

Prosedur GetData

Jika nilai Update True maka panggil Prosedur UpdateData Kembalikan nilai Signal sesuai index

Akhir Prosedur Akhir Class

(49)

3.6.10 Modul SquaredAndDynamicThreshold

Class SquaredAndMovingWindowIntegrator Constructor Create

Inisialisasi variable-variabel

Set Signal ke Signal dari proses sebelumnya Akhir Constructor

Prosedur UpdateData Set Update ke False

Lakukan pengkuadratan data Signal dari index–2 hingga index+2 Bagi dengan 5 dan simpan ke memory

Ulangi pengkuadratan hingga akhir signal Akhir Prosedur

Fungsi GetData

Jika nilai Update True maka panggil prosedur UpdateData Kembalikan nilai data sesuai index

Akhir Fungsi Akhir Class

Class DynamicThreshold Constructor Create

Inisialisasi variable-variabel

Set Signal ke Signal dari proses sebelumnya Akhir Constructor

Destructor Destroy

(50)

Hitung luas dari area yang melewati garis threshold Jika lebih dari batas yang ditentukan maka catat

posisi tertinggi sebagai posisi QRS Kompleks

Selain itu

Hitung nilai berikutnya

Akhir jika

Akhir Prosedur

Fungsi GetData

Jika nilai Update True maka panggil prosedur UpdateData Kembalikan nilai data sesuai index

Akhir Fungsi Akhir Class

Class TRPeak

Constructor Create

Inisialisasi variable-variabel

Set Signal ke Signal dari proses sebelumnya Akhir Constructor

(51)

Bebaskan memory yang dialokasi untuk Signal Akhir Destructor

Prosedur UpdateData Set Update ke False

Lakukan perulangan untuk setiap signal dan simpan posisi QRS Akhir Prosedur

Fungsi GetData

Jika nilai Update True maka panggil prosedur UpdateData Kembalikan nilai posisi sesuai index

Akhir Fungsi Akhir Class

3.6.11 Modul Chebyshev

Class ChebyshevPolinomial Constructor Create Inisialisasi variable-variabel

Set Signal ke Signal dari proses sebelumnya Akhir Constructor

Destructor Destroy

Bebaskan memory yang dialokasi untuk Signal Akhir Destructor

Fungsi GetData

Jika index tidak dalam range sebelumnya maka hitung kembali nilai Koefisien

(52)

Akhir Constructor

Destructor Destroy

Bebaskan memory yang dialokasi untuk Signal Akhir Destructor

Prosedur UpdateData Set Update ke False

Hitung nilai koefisien chebyshev C1, C2, dan C5 pada posisi QRS yang terdeteksi

Simpan nilai koefisien tersebut

Lakukan hingga akhir dari posisi QRS yang terdeteksi Akhir Prosedur

Fungsi GetData

Jika nilai Update True maka panggil prosedur UpdateData Kembalikan nilai koefisien chebyshev

Akhir Fungsi Akhir Class

(53)

Class TQRSComplex

Constructor Create

Inisialisasi variable-variabel

Set Signal ke Signal dari proses sebelumnya Akhir Constructor

Destructor Destroy

Bebaskan memory yang dialokasi untuk Signal Akhir Destructor

Prosedur UpdateData Set Update ke False

Lakukan looping untuk setiap koefisien chebyshev dan hitung cari jarak koefisien tersebut ke klasifikasi QRS terdekat dan simpan bentuk QRS

Akhir Prosedur

Fungsi GetData

Jika nilai Update True maka panggil prosedur UpdateData Kembalikan nilai bentuk QRS

Akhir Fungsi Akhir Class

3.6.12 Modul FuzzyLogic

Fungsi HeartRateLow

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

(54)

Akhir Fungsi

Fungsi IntervalShort

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

Akhir Fungsi

Fungsi IntervalNormal

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

Akhir Fungsi

Fungsi IntervalLong

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

Akhir Fungsi

Fungsi VentricularNone

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

(55)

Fungsi VentricularFew

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

Akhir Fungsi

Fungsi VentricularMany

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

Akhir Fungsi

Fungsi VarianceRegular

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

Akhir Fungsi

Fungsi VarianceIrregular

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

Akhir Fungsi

Fungsi TimeSinceNormal

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

Akhir Fungsi

Fungsi TimeSinceLong

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

(56)

Akhir Fungsi

Fungsi DiagnosisYes

Hitung membership value sesuai dengan gambar Fuzzy Set Kembalikan nilai membership value

Gambar

Gambar 3.7 Rancangan Tampilan Utama
Gambar 3.8 Window Untuk Setting Animasi
Gambar ECG Signal  Analyzer
Gambar 3.10 Window Analisa dan Hasil Diagnosa
+7

Referensi

Dokumen terkait

Tujuan penelitian ini adalah untuk mengetahui apakah faktor finansial, latar belakang pendidikan menengah, pengaruh orang lain, pengakuan profesional, pelatihan

Penelitian dilakukan untuk menginventarisasi kearifan lokal yang terkait dengan kepercayaan atau/dan pantangan, etika dan aturan, teknik dan teknologi, serta praktek dan

tradisional yang merupakan pengetahuan kebudayaan yang dimiliki oleh suatu masyarakat tertentu yang mencakup sejumlah pengetahuan kebudayaan yang berkenaan dengan

Dalam penelitian ini juga diketahui bentuk- bentuk kearifan lokal lokal yang dapat mendukung pengelolaan hutan seperti Kepercayaan dan/atau pantangan yang ada berupa

DENAH RUANG LANTAI 1 SMK PGRI 1 SALATIGA. wc wc wc

Dengan semakin dekatnya era globalisasi/perdagangan bebas, dimana jarak tidak merupakan hambatan, komunikasi akan bisa dilakukan kapan saja, dimana saja, maka perlu

Bahwa rumusan masalah penelitian yang ditulis penulis berbeda dengan penelitian yang dilakukan oleh David Fredriek Albert Porajow yang fokus penelitiannya

Salah satu nutrisi yang berperan dalam tumbuh kembang anak adalah asam lemak esensial, asam lemak esensial merupakan bagian dari asam lemak yang penting bagi tubuh manusia dan