• Tidak ada hasil yang ditemukan

SIMULASI TURBO CODES UNTUK PENGOLAHAN DATA ELEKTROKARDIOGRAM

N/A
N/A
Protected

Academic year: 2019

Membagikan "SIMULASI TURBO CODES UNTUK PENGOLAHAN DATA ELEKTROKARDIOGRAM"

Copied!
107
0
0

Teks penuh

(1)

i

Halaman Judul

SIMULASI

TURBO CODES

UNTUK PENGOLAHAN DATA

ELEKTROKARDIOGRAM

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh: L. Endra Prasetya

085314004

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

ii

Halaman Judul

SIMULATION OF TURBO CODES

FOR ELECTROCARDIOGRAM DATA PROCESSING

THESIS

Presented as Partial Fullfilment of the Requirements To Obtain the Computer Bachelor Degree

In Informatics Engineering

By:

L. Endra Prasetya 085314004

INFORMATICS ENGINEERING STUDY PROGRAM

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

(3)

iii

(4)

iv

(5)

v

Halaman Persembahan

HALAMAN PERSEMBAHAN

Skripsi ini saya persembahkan untuk : Tuhan Yesus Kristus.

Keluarga Bapak Ignatius Pilih, Ibu Th. Ninik Sriwinarni, Margareta Sri Pininih, dan Christina Putranti Rose Widani yang selalu setia mendukung dengan Cinta dan Doa.

Keluarga besar Bapak B. Puji Saputroyang selalu mendukung dengan Doa.

Sahabat dan teman-teman.

UNLESS someone like you

cares a whole awful lot,

nothing is going to get better.

It’s not.

(6)

vi

(7)

vii

ABSTRAK

Perkembangan teknologi yang begitu pesat menuntut pengiriman data dengan kecepatan tinggi dan kinerja yang handal. Data yang dikirim dapat berupa data analog atau data digital, seperti audio, video, karakter atau teks. Sebagai contohnya adalah data rekam medis Electrocardiogram (ECG). Pemasalahan yang sering terjadi ketika komunikasi data adalah gangguan saluran. Gangguan saluran berupa derau (noise), pelemahan sinyal (fading), dan perusakan sinyal oleh sinyal lain (jamming) [1]. Jika data yang dikirim mengalami gangguan saluran, maka di sisi penerima data dipastikan mengalami kesalahan (error). Jika data yang dikirim berupa data ECG, maka akan menyebabkan salah diagnosa yang akan menimbulkan runtutan kesalahan, sehingga akan berakibat fatal terhadap pasien. Dari permasalahan tersebut, suatu metode dibutuhkan agar kesalahan dapat dideteksi dan dikoreksi [2]. Dengan menggunakan metode penyandian digital, kesalahan dapat dideteksi dan dikoreksi. Salah satu metode penyandian dalam error control coding, ialah dengan turbo codes.

Turbo codes encoder yang dikembangkan untuk penelitian menggunakan

Recursive Systematic Convolutional (RSC) dengan rate 1/3 dan menggunan random interleaver. Decoder turbo codes menggunakan algoritma Maximum

A-Posteriori Probability (MAP). Pengujian menggunakan data rekam medis dengan

panjang data 300, 600, 900, 1200, dan 1500 titik. Modulasi yang diggunakan adalah Quadrature amplitude modulation (QAM) dengan ukuran QAM 4, 16, 32, dan 64. Signal to Noise Ratio (SNR) yang digunakan adalah 0 sampai dengan 20.

(8)

viii

ABSTRACT

The fast development of technology required that data should be transmitted in a high speed way and in a meticulous performance. The data which was sent could be in the form of an analog or digital data such as audio, video, character, or text. Examples are electrocardiogram (ECG) medical records. The problems which usually occur during a communication is on the way is channel disturbance. Channel disturbance could be in the form of hissing sound (noise), fading signals, and disturbed signals because of other signals which are called jamming [1]. Others from the mentioned problems, very often it happened that the data being sent is broken before it is transmitted. When the data being sent undergo channel disturbance or data break down, then there certainly be some errors on the receiver side and the data received is not valid. When the data being sent is in the form of an ECG, then it would cause false diagnosis which would raise a series of deceptions that it would end in a serious and fatal result on the patients. From this point of view, an application or a method is needed that the errors could detected and corrected [2]. By using a digital coding method, any error could be certainly detected and corrected. One of the coding methods in error control coding is the turbo codes.

Turbo codes encoder which was developed for research used the Recursive Systematic Convolutional (RSC) with a rate of 1/3 and used a random inter-leaver. The Decoder turbo codes used the Maximum A-Posteriori Probability (MAP) algorithm. The test used a medical record data of 300, 600, 900, and 1,500 niche in length. The modulation which was applied was the Quadrature amplitude modulation (QAM) in QAM 4, 16, 32, and 64 sizes whereas the Signal to Noise Ratio (SNR) was 0 to 20.

(9)

ix

(10)

x

Kata Pengantar

KATA PENGANTAR

Puji syukur kepada Yesus Kristus yang telah memberikan karunia, rahmat, dan kesempatan, sehingga penulis dapat menyelesaikan skripsi dengan judul “Simulasi Turbo Codes Untuk Pengolahan Data Elektrokardiogram”. Penyusunan skripsi ini tidak lepas dari semua pihak yang turut memberikan dukungan, doa, semangat, dan bantuan yang sangat bermanfaat bagi penulis. Pada kesempatan ini penulis mengucapkan terima kasih sebesar besarnya kepada :

1. Bapak Damar Widjaja, S.T.,M.T. selaku dosen pembimbing senantiasa memberikan masukkan dan bantuan dalam membimbing penulis untuk menyelesaikan skripsi ini.

2. Segenap dosen Universitas Sanata Dharma yang telah membantu memberikan bekal pengetahuan kepada penulis.

3. Bapak Ignatius Pilih, Ibu Th. Ninik Sriwinarni, Margareta Sri Pinilih, dan keluarga besar Christina Putranti Rose Widani yang dengan tulus memberikan perhatian, doa, dan dukungan.

4. Seluruh sahabat dan rekan-rekan TI (Angga, Sisca, Reza, Wulan, Surya, Devi, Putri, Petra, Itha, Tista, Gadis, dan Mas Susilo) yang tidak dapat penulis sebutkan atas kesediaanya dalam memberikan masukkan, menemani dan mendengarkan keluh kesah dari penulis.

Penulis menyadari bahwa masih banyak kekurangan yang terdapat pada skripsi ini. Saran dan kritik penulis harapkan untuk kebaikan bersama. Semoga bermanfaat.

Yogyakarta, Februari 2013 Penulis,

(11)

xi

Daftar Isi

Halaman Judul ... i

Halaman Judul ... ii

Halaman Persetujuan ... iii

Halaman Pengesahan ... iv

Halaman Persembahan ... v

Pernyataan Keaslian Karya ... vi

ABSTRAK ... vii

ABSTRACT ... viii

Halaman Persetujuan ... ix

Kata Pengantar ... x

Daftar Isi... xi

Daftar Gambar ... xvi

Daftar Tabel ... xviii

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang... 1

1.2 Rumusan masalah ... 2

1.3 Tujuan ... 2

1.4 Manfaat ... 3

1.5 Batasan Masalah ... 3

1.6 Metodologi Penelitian ... 3

1.7 Sistematika Penulisan ... 4

BAB II LANDASAN TEORI ... 6

2.1 ECG ... 6

2.2 Penyandian Kanal ... 6

(12)

2.2.2 Additive white gausian Noise ... 9

2.2.3 White Noise ... 9

2.2.4 Distribusi Gaussian ... 9

2.3 Turbo Codes ... 10

2.3.1 Parameter Pengujian Unjuk Kerja Turbo Codes ... 12

2.4 Recursive Systematic Convolutional Encoder ... 12

2.4.1 Representasi Generator ... 12

2.5 Turbo Encoder ... 13

2.5.1 Interleaving ... 14

2.6 Turbo Decoder... 14

2.6.1 Skema Decoding ... 15

2.6.2 Decoding dengan Menggunakan Feedback Loop ... 15

2.7 Algoritma Maximum A-Posteriori Probability ... 16

2.7.1 Log-Likelihood Ratio ... 16

2.8 Bit Error Rate ... 18

2.8.1 Noise dan BER ... 18

2.8.2 Kuantisasi Kesalahan ... 19

2.8.3 Signal to Noise Ratio ... 19

BAB III PERANCANGAN ... 20

3.1 Analisis Sistem ... 20

3.1.1 Gambaran Sistem yang Dikembangkan ... 20

3.1.2 Analisis Kebutuhan Sistem ... 20

3.2 Perancangan Sistem ... 20

3.2.1 Perancangan Encoder Turbo Codes ... 21

3.2.2 Perancangan Decoder Turbo Codes ... 22

(13)

3.2.4 Narasi Use Case ... 23

3.2.5 Diagram Konteks ... 29

3.2.6 Diagram Dekomposisi (Diagram Berjenjang) ... 30

3.2.7 Data Flow Diagram Level 0 ... 30

3.2.8 DFD Level 1 Proses 1 ... 31

3.2.9 DFD Level 1 Proses 2 ... 31

3.2.10 DFD Level 1 Proses 3 ... 32

3.3 Desain Antarmuka Pengguna ... 32

3.3.1 Halaman Utama Program ... 32

3.3.2 Tampilan Open File ... 33

3.3.3 Halaman Encode ... 33

3.3.4 Halaman Pengaturan kanal AWGN ... 34

3.3.5 Halaman Decode ... 35

BAB IV IMPLEMENTASI SISTEM ... 37

4.1 Implementasi Proses ... 37

4.1.1 Proses Pembacaan Data ECG... 37

4.1.2 Penyandian Data ECG... 37

4.1.3 Pengiriman Data Sandi Melalui Kanal AWGN ... 39

4.1.4 Decoder Turbo Codes ... 39

4.2 Implementasi Tampilan ... 40

4.2.1 Tampilan Utama ... 40

4.2.2 Tampilan Proses Encoding ... 40

4.2.3 Tampilan Handling “Cari Data ECG” ... 42

4.2.4 Tampilan Pengaturan Kanal AWGN ... 42

4.2.5 Tampilan Decoder ... 43

(14)

5.1 Hasil Pengujian ... 45

5.1.1 Hasil Pengujian BER dengan Parameter Pengujian Iterasi ... 45

5.1.2 Hasil Pengujian BER Menggunakan Modulasi QAM 4 ... 46

5.1.3 Hasil Pengujian BER Menggunakan Modulasi QAM 16 ... 46

5.1.4 Hasil Pengujian BER Menggunakan Modulasi QAM 32 ... 47

5.2.1 Analisis Pengujian BER Berdasar Panjang data ECG ... 48

5.2.2 Hasil Pengujian BER Menggunakan Panjang Data ECG 300 ... 48

5.2.3 Hasil Pengujian BER Menggunakan Panjang Data ECG 600 ... 49

5.2.4 Hasil Pengujian BER Menggunakan Panjang Data ECG 900 ... 49

5.2.5 Hasil Pengujian BER Menggunakan Panjang Data ECG 1200 ... 50

5.3.1 Analisis Pengujian BER Menggunakan Modulasi QAM... 51

5.4 Pengujian ... 52

5.4.1 Pembacaan Data ECG ... 52

5.5 Encoder Turbo Codes ... 53

5.6 Decoder Turbo Codes... 55

BAB VI KESIMPULAN DAN SARAN ... 57

6.1 Kesimpulan ... 57

6.2 Saran ... 57

DAFTAR PUSTAKA ... 58

LAMPIRAN ... 61

LAMPIRAN 1 ... 62

BER QAM 4 Berdasar Iterasi ... 62

BER QAM 4 ... 62

BER QAM 16 ... 63

BER QAM 32 ... 64

(15)

BER dengan panjang data ECG: 300 ... 65

BER dengan panjang data ECG: 600 ... 66

BER dengan panjang data ECG: 900 ... 66

BER dengan panjang data ECG: 1200 ... 67

BER dengan panjang data ECG: 1500 ... 68

Lampiran 2 Fungsi Proses_baca_data.m ... 68

Lampiran 3 Hasil Pembacaan Data ECG oleh Proses_baca_data.m ... 71

Lampiran 4 Fungsi Encoder ... 72

Lampiran 5 Pengiriman Data Sandi Melalui Kanal AWGN ... 73

Lampiran 7 Hasil Penerjemahan Data Biner menjadi Data ECG ... 82

Lampiran 8 Data ECG ... 82

Lampiran 9 Penghitungan Manual Encoder Menggunakan Excel ... 83

Turbo Code Decoder 1 ... 84

(16)

xvi

Daftar Gambar

Gambar 2.1 Rekaman Detak Jantung ... 6

Gambar 2.2 Konversi digital ke analog... 7

Gambar 2.3 Diagram Constellation ... 8

Gambar 2.4 Konsep Diagram Constellation ... 8

Gambar 2.5 Kanal AWGN ... 9

Gambar 2.6 Unjuk kerja turbo codes ... 12

Gambar 2.7 Turbo codes (a) dan (b) dengan rate ½ ... 13

Gambar 2.8 Turbo Codes dengan rate 1/3 ... 14

Gambar 2.9 Skema decoder ... 14

Gambar 2.10 Feedback loop ... 15

Gambar 3.1 Model Sistem... 20

Gambar 3.2 Diagram encoder dengan generator polinomial 15,13 ... 21

Gambar 3.3 Diagram decoder ... 22

Gambar 3.4 Diagram Use Case pengguna ... 23

Gambar 3.5 Diagram arus data... 29

Gambar 3.6 Diagram berjenjang ... 30

Gambar 3.7 DFD level 0 ... 31

Gambar 3.8 DFD level 1 proses 1 ... 31

Gambar 3.9 DFD level 1 proses 2 ... 32

Gambar 3.10 DFD level 1 proses 3 ... 32

Gambar 3.11 Halaman utama progam ... 33

Gambar 3.12 Tampilan fungsi Encode... 34

Gambar 3.13 Pengaturan kanal AWGN ... 35

Gambar 3.14 Tampilan fungsi Decode ... 36

Gambar 4.1 Tampilan utama program turbo codes. ... 40

Gambar 4.2 Tampilan Turbo Encoder ... 41

Gambar 4.3 Tampilan Cari lokasi Simpan data ... 41

Gambar 4.4 Notifikasi proses Encoding ... 41

Gambar 4.5 Tampilan handling Cari data ECG ... 42

Gambar 4.6 Tampilan pengaturan kanal AWGN. ... 42

(17)

Gambar 4.8 Tampilan Decoder Turbo Codes. ... 43

Gambar 4.9 Tampilan ECG setelah Encoding ... 44

Gambar 5.1 BER turbo codes yang dibentuk daari pengujian iterasi ... 45

Gambar 5.2 BER turbo codes dengan ukuran modulasi QAM 4. ... 46

Gambar 5.3 BER turbo codes dengan ukuran modulasi QAM 16 ... 47

Gambar 5.4 BER turbo codes dengan ukuran modulasi QAM 32 ... 47

Gambar 5.5 BER turbo codes dengan ukuran modulasi QAM: 64... 48

Gambar 5.6 BER turbo codes dengan panjang data ECG: 300 titik ... 49

Gambar 5.7 BER turbo codes dengan panjang data ECG: 600 titik ... 49

Gambar 5.8 BER turbo codes dengan panjang data ECG: 900 titik ... 50

Gambar 5.9 BER turbo codes dengan panjang data ECG: 1200 titik ... 50

Gambar 5.10 BER turbo codes dengan panjang data ECG: 1500 titik. ... 51

Gambar 5. 11 Hasil pembacaan data menggunakan fungsi dari physionet.org . .. 52

Gambar 5.12 Hasil pembacaan data ECG pada program turbo codes. ... 52

Gambar 5.13 Trellis diagram dari RSC ... 54

Gambar 5.14 Hasil encoding program turbo codes ... 55

(18)

xviii

Daftar Tabel

Tabel 4.1 Pengubahan data ECG menjadi data Biner ... 38

Tabel 4.2 Pengubah data “string” menjadi array ... 38

Tabel 4.3 Fungsi konversi data biner menjadi Data ECG ... 39

Tabel 4.4 Trellis diagram pada program... 83

Tabel 4.5 Data proses yang diproses oleh decoder ... 84

Tabel 4.6 Branch Matrix hasil persamaan (2.13) ... 84

Tabel 4.7 Penghitungan partial branch matrix ... 85

Tabel 4.8 Penghitungan forward branch matrix dari persamaan (2.11) ... 86

Tabel 4.9 Normalisasi Forward Branch Matrix ... 86

Tabel 4.10 Penghitungan Backward branch mrnggunakan persamaan (2.12) .... 87

Tabel 4.11 Normalisasi Backward branch ... 87

Tabel 4.12 Pengitungan LLR ... 88

Tabel 4.13 Hasil akhir pengitungan LLR ... 88

Tabel 4.14 Hasil L(extrinsic) dari DEC 1 ... 89

Tabel 4.15 Penghitungan LLR dari DEC 1 ... 89

Tabel 4.16 Hasil L(extrinsic) dari DEC 1 ... 89

Tabel 5.1 Perhitungan Encoder secara manual. ... 53

(19)

1

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi yang begitu pesat menuntut pengiriman data dengan kecepatan tinggi dan kinerja yang handal. Data yang dikirim dapat berupa data analog atau data digital, seperti audio, video, karakter atau teks. Sebagai contohnya adalah data rekam medis Electrocardiogram (ECG) atau Elektrokardiogram (EKG). ECG adalah rekaman pada permukaan tubuh aktivitas listrik yang dihasilkan oleh jantung [3].

Gangguan saluran merupakan permasalahan yang sering terjadi ketika komunikasi data, seperti derau (noise), pelemahan sinyal (fading), dan perusakan sinyal oleh sinyal lain (jamming) [1]. Selain permasalahan tersebut sering kali data rusak sebelum ditranmisikan [2]. Jika data yang dikirim mengalami gangguan saluran atau kerusaan data, maka di sisi penerima data dipastikan mengalami kesalahan (error) dan data yang diterima tidak valid. Jika data yang dikirim berupa data rekam medis (ECG atau EEG) maka akan menyebabkan salah diagnosa yang akan menimbulkan runtutan kesalahan, sehingga akan berakibat fatal terhadap pasien.

Dari permasalahan tersebut, suatu aplikasi atau metode dibutuhkan agar kesalahan (error) dapat dideteksi dan dikoreksi [2]. Dengan menggunakan metode penyandian digital, kesalahan dapat dideteksi dan dikoreksi. Penyandian digital mengubah data ke dalam bit-bit kode yang bertujuan untuk meningkatkan ketahanan sinyal terhadap terjadinya gangguan saluran.

Salah satu metode penyandian dalam error control coding, ialah dengan turbo codes. Turbo codes diperkenalkan oleh Berrou, Glavieux, dan

Thitimajshima pada tahun 1993 [4]. Turbo codes merupakan metode baru turunan dari sandi convolusional dengan unjuk kerja penghitungan Bit Error Rate (BER) mendekati Shanon limit

Turbo codes banyak dikembangkan untuk National Aeronautics and Space

Administration (NASA) dan European Space Agency (ESA) untuk komunikasi

(20)

untuk mengirim citra foto dari Mars [5]. Selain itu error control coding digunakan untuk komunikasi luar angkasa, transmisi data, penyimpanan data, komunikasi perangkat bergerak, file transfer, dan transmisi digital audio atau video [6].

Pengujian unjuk kerja turbo codes selama ini dilakukan dengan cara membuat simulasi dengan parameter-parameter tertentu. Parameter yang sering diuji adalah rasio noise (Eb/No), ukuran frame, code rate dan jumlah iterasi [7]. Pengujian unjuk kerja turbo codes mengunakan data ECG sudah pernah dilakukan menggunakan komunikasi satelit berbasis Code-Division Multiple-Acces (CDMA) [8]. Pengujian tersebut menggunakan kanal Additive White Gaussian Noise (AWGN) Unshadowed/shadowed. Selain itu, pengujian tersebut menggunakan code rate ½, jumlah bit yang dikirim 1280 bit, memori encoder yang digunakan

adalah 2. Iterasi yang digunakan adalah 1, 3, dan 5 dengan target BER 10-5.

Pada tugas akhir ini, pengujian turbo codes menggunakan program simulasi yang dibuat dengan menggunakan Matlab. Pengujian menggunakan data rekam medis dengan panjang data 300, 600, 900, 1200, dan 1500 titik. Data tersebut adalah data pecahan antara negatif 1 dan positif 1. Bilangan pecahan tidak dapat diprose oleh encoder. Untuk mengatasi hal tersebut, setiap titik data akan diubah menjadi data bulat kemudian akan dijadikan data biner basis 12 bit. Code rate yang digunakan adalah 1/3, memori encoder yang digunakan adalah 3. Iterasi yang digunakan adalah 1, 2, 3, 4, dan 5. Signal to Noise Ratio (SNR) yang digunakan adalah 0 sampai dengan 20 db.

1.2 Rumusan masalah

Dari latar belakang masalah, rumusan masalah yang didapat adalah: 1. Bagaimana mengoreksi data yang terkena noise?

2. Bagaimana program turbo codes mengoreksi data?

1.3 Tujuan

(21)

1.4 Manfaat

Hasil penelitian tugas akhir ini diharapkan dapat bermanfaat bagi mahasiswa dan dosen teknik informatika sebagai media pendukung pembelajaran untuk mata kuliah Teknik Koreksi Kesalahan Data.

Hasil penelitian tugas akhir ini diharapkan dapat bermanfaat sebagai referensi penelitian lanjutan teknik koreksi data mengenai error control coding terutama untuk pengkajian turbo code lebih lanjut.

1.5 Batasan Masalah

Batasan masalahan dari penelitian ini adalah:

1. Pengujian dilakukan dengan cara simulasi pada aplikasi encoding dan decoding pada Matlab.

2. Program simulasi turbo codes menggunakan personal computer (PC) tunggal. 3. Data ECG berasal dari MIT-BIH Arryhtymia Database [9].

4. Pengujian program turbo codes menggunakan data ECG dengan panjang data 300, 600, 900, 1200, dan 1500 sampel titik data.

5. Code rate turbo codes menggunakan rate=1/3. 6. SNR yang digunakan adalah 0 sampai 20 db. 7. Kanal yang digunakan adalah AWGN.

8. Modulasi yang digunakan adalah Quadrature amplitude modulation (QAM). 9. Algoritma decoding yang digunakan adalah Maximum a-posteriori

Probability (MAP) dengan menggunakan variasi iterasi 1, 2, 3, 4, dan 5.

10.Perhitungan BER dilakukan dengan menggunakan rumus dasar BER.

1.6 Metodologi Penelitian

Langkah-langkah yang digunakan dalam penelitian ini adalah: 1. Studi literatur

Mengumpukan dan mempelajari referensi yang berkaitan dan mendukung penelitian ini, seperti error control coding, tutorial turbo code, algoritma turbo code.

2. Perancangan

(22)

3. Pengujian program

Program akan diuji dengan memberi masukan data kecil atau berjumlah sedikit. Kemudian hasil simulasi dibandingkan dengan hasil perhitungan secara teoritis. Program akan dianggap benar jika kedua hasil perhitungan bernilai sama.

4. Simulasi dan pengumpulan data

Simulasi dan perancangan program turbo codes mengunakan bahasa pemprograman Matlab.

5. Analisis

Pada tahap ini, penulis akan melakukan analisis dari hasil pengujian. Analisis akan dilakukan dengan melakukan pengamatan dan menghitung nilai BER, kemudian akan menyimpukan unjuk kerja dari turbo codes.

1.7 Sistematika Penulisan

BAB I PENDAHULUAN

Bab ini berisi latar belakang masalah penulisan tugas akhir, rumusan masalah, tujuan penulisan, manfaat penulisan, batasan masalah, metodologi penelitian dan sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini menjelaskan mengenai teori yang berkaitan dengan masalah tugas akhir ini.

BAB III PERANCANAN SIMULASI TURBO CODES

Bab III berisi perancangan prose dan tampilan program turbo codes yang akan dibuat.

BAB IV IMPLEMENTASI TURBO CODES

Bab ini berisi implementasi proses dan tampilan (GUI) program turbo codes.

BAB V HASIL PENGUJIAN DAN ANALISA

(23)

BAB VI KESIMPULAN DAN SARAN

(24)

6

2

BAB II

LANDASAN TEORI

2.1 ECG

Electrocardiogram (ECG) merupakan gambaran yang berupa grafik

berbagai variasi potensial listrik yang disebabkan oleh eksitasi (proses untuk menetral polaritas) yang dideteksi pada permukaan tubuh [10]. Elektrokardiogram normal merupakan gambaran skalar yang memperlihatkan defleksi (perubahan garis dasar yang diukur sebagai gelombang) yang disebabkan oleh aktifitas atrium (ruangan yang menjadi jalan masuk ke struktur atau organ lain) dan ventrikel (suatu ronga normal, kecil di dalam suatu organ seperti jantung dan otak) sebagai perubahan dalam magnitudo tegangan dan polaritas (positif dan negatif) terhadap waktu. Gambar 2.1 menunjukkan skema detak jantung.

Gambar 2.1 Rekaman Detak Jantung [11]

Defleksi pertama gelombang P pada Gambar 2.1 disebabkan oleh eksitasi kedua atrium. Defleksi QRS disebabkan oleh eksitasi kedua ventrikel, dan gelombang T terjadi karena pulihnya kedua ventrikel (repolarisasi).

2.2 Penyandian Kanal

(25)

Waveform coding merupakan penyandian yang mengubah bentuk gelombang menjadi bentuk gelombang yang “lebih baik”, sehingga mengurangi terjadinya galat (error). Sedangkan structured sequences merupakan penyandian yang mengubah urutan data menjadi urutan yang “lebih baik” yang mempunyai bit berlebih (redundant bit). Bit berlebih digunakan untuk mendeteksi dan mengkoreksi error.

Urutan terstruktur dibedakan menjadi dua kategori, yaitu: block codes dan convolutional code. Berdasarkan metode penyandian, penyandian kanal dibedakan

menjadi dua, yaitu: Backward Error Correction (BEC) dan Forward Error Correction (FEC)

BEC hanya membutuhkan deteksi kesalahan. Jika kesalahan terdeteksi, pengirim diminta untuk mengirim ulang pesan. BEC merupakan metode sederhana yang menggunakan persyaratan sederhana pada koreksi galat. Di sisi lain, BEC membutuhkan komunikasi duplek yang menyebabkan keterlambatan transmisi.

Sedangkan FEC membutuhkan decoder yang digunakan untuk mengoreksi sejumlah kesalahan. Decoder harus mampu mengetahui posisi bit yang mengalami kesalahan. FEC hanya membutuhkan komunikasi simplek saja, FEC sangat menarik dalam komunikasi jaringan nirkabel. FEC digunakan untuk meningkatkan efisiensi energi dari sistem.

2.2.1 Konversi Digital ke Analog

Konversi digital ke analog adalah proses pengubahan salah satu karakteristik sinyal analog berdasarkan informasi data digital [2]. Gambar 2.2 menunjukkan hubungan antara informasi digital, proses digital ke analog modulasi, dan sinyal analog yang dihasilkan. Salah satu konversi digital ke analog adalah quadrature amplitude modulation (QAM).

(26)

2.2.1.1 Quadrature Amplitude Modulation

Quadrature amplitude modulation (QAM) merupakan gabungan

amplitude shift keying (ASK) dan phase shift keying (PSK) [2]. QAM menggunakan dua operator (satu di phase dan lainnya quadrature) dengan tingkat amplitudo yang berbeda untuk masing-masing operator. Variasi kemungkinan QAM sangat banyak, Gambar 2.3 menunjukkan beberapa skema QAM.

Gambar 2.3 Diagram Constellation

2.2.1.1.1 Constellation Diagram

Diagram konstelasi digunakan membantu menentukan amplitudo dan fase dari sebuah elemen sinyal, terutama ketika menggunakan dua operator (satu-fase dan satu quadrature) [2]. Dalam diagram konstelasi, jenis elemen sinyal diwakili sebagai titik. Bit atau kombinasi dari bit digambarkan disekitar titik konstelasi. sebelahnya. Diagram memiliki dua sumbu. Sumbu X berhubungan dengan carrier di fase, sumbu Y vertikal berhubungan dengan carrier quadrature. Setiap titik pada diagram merupakan potongan informasi. Proyeksi titik pada sumbu X mendefinisikan amplitudo puncak dalam fase, proyeksi titik pada sumbu Y mendefinisikan amplitudo puncak pada quadrature. Panjang garis (vektor) yang menghubungkan titik ke asal adalah amplitudo puncak elemen sinyal (kombinasi dari X dan komponen Y), sudut garis dibuat dengan sumbu X merupakan fase elemen sinyal. Semua informasi yang dibutuhkan ditemukan pada diagram konstelasi. Gambar 2.4 menunjukkan konsep diagram konstelasi.

(27)

2.2.2 Additive white gausian Noise

Additive white gausian Noise (AWGN) merupakan model kanal sederhana

dan umum dalam suatu sistem komunikasi [12]. AWGN adalah sebuah statistik acak pada frekuensi yang lebar dengan spektrum kepadatan yang konstan.

2.2.3 White Noise

Spektrum rapat noise power dianggap memiliki nilai yang sama untuk setiap frekuensi (dalam pita komunikasi yang digunakan), yang dapat dimodelkan pada persamaan matematis sebagai beriku [1]:

𝑆𝑤(𝑓) =𝑵𝟐𝟎

dengan 𝑁0 adalah daya noise dan f adalah frekuensi.

2.2.4 Distribusi Gaussian

Pola kemunculan noise dianggap terdistribusi Gaussian dengan nilai rata-rata (mean) adalah nol dan varians tergantung rapat daya yang diperkirakan dari noise tersebut [1].

Penerima akan menterjemahkan sinyal informasi (bit) baseband dari sinyal carrier yang telah mengandung noise. Penambahan noise tersebut terjadi di dalam

kanal (saluran) yang dapat berupa kabel tembaga atau lintasan melalui udara tanpa halangan (line of sight).

(28)

Gambar 2.5 merupakan blok kanal AWGN. Pada kanal AWGN, zero-mean white Gaussian noise ditambahkan pada sinyal transmisi s(t), sehingga

sinyal yang diterima r(t) berbentuk sebagai berikut:

𝑟 𝑡 = 𝑠 𝑡 +𝑛(𝑡)

s(t) adalah sinyal atau data yang dihasilkan encoder, n(t) adalah zero-mean white

Gaussian noise dengan daya No/2, dan r(t) adalah data atau sinyal yang

mengalami perubahan karena derau. Kanal AWGN merupakan penambahan data atau sinyal s(t) dan derau n(t). Derau AWGN dihasilkan oleh thermal noise, shot noise, dan radiasi sinar matahari.

2.3 Turbo Codes

Salah satu turunan sandi konvolusi adalah turbo codes. Turbo codes pertama kali diperkenalkan oleh Berrou, Glavieux, dan Thitimajshima pada tahun 1993 [4]. Turbo codes merupakan penggabungan dari dua atau lebih Recursive Systematic Convolutional (RSC) dan decoder yang terkait, menggunakan aturan

decoding umpan balik (feedback loop), diimplementasikan sebagai saluran

decoder yang identik. Detail RSC dan feedback loop dapat dilihat pada bagian yang selanjutnya.

Turbo codes yang diajukan oleh Berrou menggunakan code rate (R) ½, generator polinomial g1=37 dan g2=21, dan interleaving 256x256. Code rate merupakan perbandingan antara bit yang masuk ke dalam encoder dan bit yang dihasilkan encoder. Turbo codes tersebut menghasilkan BER 10-5 setelah iterasi ke 18 dengan Eb/N0 0.7 dB, mendekati batas teori yang diprediksi Shanon. Detail

interleaving dan generator polinomial dapat dilihat pada bagian yang selanjutnya.

Penggunaan turbo codes sangat banyak ditemukan dalam kehidupan sehari-hari seperti [5] [13]:

1. Komunikasi perangkat bergerak

Turbo codes dikembangkan untuk komunikasi perangkat bergerak. Turbo

codes merupakan salah satu pilihan FEC dalam Universal Mobile Telecommunications System (UMTS) generasi ketiga. Perkembangan turbo codes

banyak dilakukan pada desain interleavers dengan berbagai macam panjang ukuran interleavers. Aplikasi layanan suara yang mengharuskan efisiensi latency dan untuk layanan data yang harus menyediakan BER yang sangat rendah.

(29)

Turbo codes digunakan dalam Wideband Code-Division Multiple-Access

(W-CDMA). W-CDMA merupakan generasi penerus dari second generation (2G) yang bebasis pada komunikasi Global System for Mobile Communication (GSM) Time Division Multiple-Access (TDMA). W-CDMA didukung oleh Third Generation Partnership Project (3GPP)

Selain itu, turbo codes digunakan untuk komunikasi CDMA2000. CDMA2000 mengalami perkembangan dari 1xRTT (sering disebut 1X), 1xEV-DO (baik 1xEV-1xEV-DO revisi A, 1xEV-1xEV-DO revisi B fase 1 dan fase 2, dan 1xEV-1xEV-DO revisi C), dan 1xEV-DV. CDMA2000 didukung oleh Third Generation Partnership Project 2 (3GPP2).

2. Komunikasi Ruang Angkasa

Jet Propulsion Laboratory (JPL) melakukan penelitian untuk NASA, mewujudkan potensi turbo codes digunakan dalam misi Pathfinder tahun 1997 untuk mengirimkan foto-foto dari Mars ke bumi.

3. Komunikasi Satelit

Turbo codes telah dimasukkan ke dalam standar komunikasi satelit. Turbo

code digunakan untuk Digital Video Broadcasting Return Channel via Satellite

(DVB-RCS). DVB-RCS diadopsi pada tahun 2001 untuk mengembalikan kanal distribusi satelit.

Turbo code digunakan untuk Digital Video Broadcasting via Satellite

Second Generation (DVB-S2). DVB-S2 digunakan digunakan dalam komuniksi satelit untuk memberikan layanan siaran (contoh televisi digital). Selain itu DVB-S2 digunakan untuk layana interaktif (contoh layanan internet).

4. Digital Signal Processor

Algoritma turbo codes dapat diimplementasikan pada digital signal processor (DSP), tetapi perangkat DSP saat ini tidak bisa beroperasi pada kecepatan data lebih tinggi dari beberapa puluh kilobit per detik. Pendekatan yang lebih menjanjikan adalah dirancangnya perangkat khusus application specific integrated circuit (ASIC/IC), atau field programmable gate arrays (FPGA).

(30)

2.3.1 Parameter Pengujian Unjuk Kerja Turbo Codes

Unjuk kerja program turbo codes dapat diketahui dengan cara menghitung nilai BER. BER dihitung dengan menggunakan beberapa parameter di antaranya energi rasio noise bit terhadap (Eb/No), ukuran frame, code rate, dan jumlah iterasi [7]. Gambar 2.6 menunjukkan unjuk kerja turbo codes berdasar code rate dan jumlah iterasi (m). Semakin kecil code rate, unjuk kerja turbo codes akan semakin bagus.

Gambar 2.6 Unjuk kerja turbo codes [14]

2.4 Recursive Systematic Convolutional Encoder

Turbo codes menggunakan lebih dari satu encoder Recursive Systematic Convolutional Encoder (RSC) yang dipisahkan oleh interleaver [4]. Encoder yang dipakai tidak harus identik satu dengan yang lainya, tetapi pada praktiknya encoder yang digunakan dalam progam selalu identik.

2.4.1 Representasi Generator

(31)

Gambar 2.7 Turbo codes (a) dan (b) dengan rate ½ [4] Keterangan gambar :

: Modulo 2 bilangan biner

: Register

: Arah arus data

Xk,Yk : Keluaran RSC

Gambar 2.7 merupakan diagram blok turbo codes dengan code rate R = ½, g1=[111], dan g2=[101] [4]. G1 dan g2 merupakan dua generator polinomial encoder, dinyatakan dalam bentuk oktal.

2.5 Turbo Encoder

Gambar 2.8 menunjukkan aliran data yang terjadi pada encoder [4]. Aliran data (dk pada waktu k) langsung menuju RSC encoder C1 yang pertama, setelah itu

interleaving akan memberi masukan (dn pada waktu k) menuju RSC encoder C2

yang kedua. Kedua encoder tersebut tidak harus selalu sama atau tidak identik satu dengan yang lainya. Data dk secara sistematis dikirim sebagai simbol Xk,

redundansi Y1k dan Y2k dihasilkan oleh C1 dan C2 untuk menyempurnakan

(32)

Gambar 2.8 Turbo Codes dengan rate 1/3 [4]

2.5.1 Interleaving

Interleaver merupakan matrik M*M berbentuk persegi dengan panjang M

(matrik>=32), umumnya terdiri dari bilangan biner. Semua data ditulis secara mendatar dan dibaca secara menurun. Matrik diisi dengan “0”, kecuali untuk beberapa matrik akan diisi dengan “1”. Matrik tersebut menyatakan beberapa pola yang akan mengarah ke codeword.

2.6 Turbo Decoder

Gambar 2.9 memperlihatkan diagram blok decoder yang terdiri dari dua decoder dasar decoder 1(DEC1) dan decoder 2(DEC2) yang disusun secara serial.

Decoder dasar DEC1 yang pertama akan dihubungkan dengan encoder C1 dan

menghasilkan data dk.

Gambar 2.9 Skema decoder [4]

informasi Yk akan mengalami demultipex dan dikirim ke decoder DEC1 ketika

(33)

diberikan ke encoder (C1 atau C2) dan tidak mengeluarkan informasi, masukan decoder yang sama akan diatur ulang menjadi “nol”. Hal tersebut dilakukan oleh blok demux/insertion.

Algoritma Viterbi merupakan metode optimal untuk decoding yang mempunyai peluang kesalahan paling kecil untuk sandi konvolusi. Sayangnya, alogaritma ini tidak mampu untuk menghasilkan keluaran secara langsung untuk setiap bit yang diproses oleh decoder.

2.6.1 Skema Decoding

Skema decoding diwakili Gambar 2.9. Pada diagram blok tersebut, decoder DEC1 menghasilkan bit A1(dk) dari setiap bit yang ditransmisikan dk

melalui urutan {𝑥𝑘} dan {𝑦𝑘}, kemudian decoder DEC2 melakukan decoding

pada bit {dk} dari bit A1(dk) dan {𝑦2𝑘}. Decoder DEC1 menggunakan modifikasi

algoritma Bahl-Cocke-Jelinek-Raviv (BCJR) dan decoder DEC2 menggunakan

algoritma VITERBI. Aturan decoding yang umum tidak optimal karena decoder yang pertama hanya menggunakan sebagian kecil dari informasi bit yang tersedia. oleh karena itu, feedback loop digunakan untuk meningkatkan kinerja decoder.

2.6.2 Decoding dengan Menggunakan Feedback Loop

Gambar 2.10 merupakan skema decoding menggunakan bit W2k yang

dihasilkan oleh decoder DEC2 dalam feedback loop. Untuk mempermudah,

diagram feedback loop tidak memperhitungkan penundaan (delay) yang digunakan oleh decoder DEC1, DEC2, dan interleaving.

(34)

2.7 Algoritma Maximum A-Posteriori Probability

Turbo codes diterjemahkan dengan menggunakan metode Maximum Likelihood Detection (MLD) [15]. MDL yang digunakan turbo codes disebut Maximum a-posteriori Probability (MAP). Algoritma ini diperkenalkan pertama kali pada BCJR. Algoritma MAP sangat terkait dengan algoritma lain seperti Hidden markov model, Baum-Welch algorithm, Forward-Backward algorithm. MAP merupakan lagoritma yang sangat komplek, sulit untuk dimengerti dan sulit untuk digambarkan.

2.7.1 Log-Likelihood Ratio

MAP menggunakan minimum probability of error untuk menghitung a priori probabilities (APP) [15]. Persamaan (2.1) merupakan Persamaan umum dalam MAP untuk APP sebagai berikut :

𝐿𝑢𝑘 = 𝑙𝑜𝑔𝑃𝑃((𝑢𝑢𝑘=+1)

𝑘=−1) (2.1) Nilai uk +1 dan -1 volt merupakan representasi 0 dan 1 bit. Persamaan tersebut

sering digunakan pada error correction coding, disebut sebagai log likelihood ratio(LLR).

𝐿𝑢𝑘 = 𝑙𝑜𝑔𝑃(𝑢𝑘=+1|𝑦1

𝑁)

𝑃(𝑢𝑘=−1|𝑦1𝑁) (2.2) Persamaan (2.2) meruakan proses decoding bit uk pada saat k pada saat bit N .

Persamaan tersebut dapat dirumuskan kembali menggunakan aturan Baye’s peraturan A. Persamaan (2.4) meliputi probabilitas bit yang diterima dari kanal pengiriman. 𝑠 merupakan state awal trellis. s merupakan state akhir trellis. Sedangkan 𝑦1𝑁 merupakan bit masuk decoder. Proses decoding akan mengikuti trellis diagram yang terbentuk oleh encoder. Persamaan (2.4) akan dimasukkan kedalam persamaan (2.3) untuk mendapatkan LLR dari uk. Sehingga Persamaan (2.3) akan

(35)

𝐿𝑢𝑘 = 𝑙𝑜𝑔𝑃 Sehingga P pada persamaan (2.5) menjadi :

𝑃 𝑠,𝑠,𝑦

1𝑁 =𝑃(𝑠,𝑠,𝑦𝑝,𝑦𝑘,𝑦𝑓) (2.6)

𝑦𝑝 = merupakan bit sebelum bit proses 𝑦𝑘 = merupakan bit proses

𝑦𝑓 = merupakan bit setelah bit proses

Persamaan (2.6) akan ditulis kembali dengan dengan peraturan Baye’s berikut

𝑃 𝐴,𝐵|𝐶 = 𝑃 𝐴|𝐶 𝑃 𝐵|𝐵,𝐶 𝑃 𝑠,𝑠,𝑦 =𝑃 𝑠,𝑠,𝑦𝑝,𝑦𝑘,𝑦𝑓

= 𝑃 𝑦𝑓|𝑠,𝑠,𝑦𝑝,𝑦𝑘 𝑃 𝑠,𝑠,𝑦𝑝,𝑦𝑘 (2.7) Persamaan (2.7) dapat disederhanakan menjadi :

𝑃 𝑠,𝑠,𝑦 =𝑃 𝑦

𝑓|𝑠 𝑃 𝑠,𝑠,𝑦𝑝,𝑦𝑘 (2.8)

Persamaan (2.8) akan ditulis kembali dengan dengan peraturan Baye’s berikut

𝑃 𝐴,𝐵 =𝑃 𝐴,𝐵 𝑃 𝐵 =𝑃 𝐵|𝐴 𝑃 𝐴 𝑃 𝑠,𝑠,𝑦𝑝,𝑦𝑘 =𝑃 𝑠,𝑦𝑘|𝑠𝑦𝑝 𝑃 𝑠,𝑦𝑘

𝑃 𝑠,𝑠,𝑦 =𝑃 𝑦

𝑓|𝑠 𝑃 𝑠,𝑦𝑘|𝑠,𝑦𝑝 𝑃 𝑠,𝑦𝑝 (2.9)

Persamaan (2.9) akan disingkat menjadi

(36)

Persamaan (2.9) akan dimasukkan kelalam persamaan (1.5) sehingga akan

Untuk menghitung forward metric menggunkanan persamaan berikut 𝑎𝑘 𝑠′ = 𝑠,𝑠,𝑦𝑝,𝑦𝑘

𝑠

= 𝑎𝑠𝑘−𝑠 𝑠 𝛾 𝑠′,𝑠 (2.11) Untuk menghitung backward metrik menggunkanan persamaan berikut

𝛽𝑘−1 𝑠′ = 𝛽𝑠′ 𝑘 𝑠 𝛾 𝑠′,𝑠 (2.12) Untuk menghitung tranformasi metrik menggunkanan persamaan berikut

𝛾 𝑠′,𝑠 = 𝑒𝑥𝑝 𝑞𝑖=2(𝐿𝑐 ∗0.5∗ 𝑦𝑘𝑖,𝑝∗ 𝑐𝑘𝑖) (2.13)

𝛾 𝑠′,𝑠 = 𝑒𝑥𝑝 𝑞𝑖=2(0.5∗ 𝑐𝑘𝑖) (2.14)

2.8 Bit Error Rate

Salah satu perubahan sistem komunikasi digital modern pada teknik komunikasi radio adalah kebutuhan kinerja end-to-end [16]. Ukuran kinerja dihitung dari bit error rate (BER). BER merupakan kuantifikasi keandalan seluruh sistem radio dari "bit masuk" sampai "bit keluar". BER merupakan konsep-sederhana definisinya adalah:

𝐵𝐸𝑅 =𝑗𝑢𝑚𝑙𝑎 𝑕𝑒𝑟𝑟𝑜𝑟

𝑡𝑜𝑡𝑎𝑙𝑏𝑖𝑡 (2.14)

Perhitungan nilai BER pada persamaan di atas melibatkan dua buah variabel yaitu jumlah error dan total jumlah bit suatu data. Nilai BER berbanding terbalik dengan error. Jika error semakin besar, maka nilai BER akan besar. Setiap analisis mendalam dari proses yang mempengaruhi BER memerlukan analisis matematis yang signifikan.

2.8.1 Noise dan BER

Noise (derau) merupakan faktor utama yang sangat mempengaruhi kinerja

(37)

2.8.2 Kuantisasi Kesalahan

Kesalahan kuantisasi juga mengurangi kinerja BER, melalui rekonstruksi yang salah atau ambigu dari gelombang digital [16]. Kesalahan ini terutama keakurasian dari proses konversi digital ke analog dan analog ke digital, dan terkait dengan jumlah bit yang digunakan pada perangkat. Keakuratan proses modulasi/demodulasi analog, efek penyaringan pada sinyal, dan derau bandwidth juga mempengaruhi kesalahan kuantisasi.

2.8.3 Signal to Noise Ratio

Signal to Noise Ratio (SNR) merupakan perbandingan kekuatan rata-rata

sinyal dengan kekuatan rata-rata noise [2]. SNR digunakan untuk mengukur tingkat unjuk kerja dan efek dari faktor noise. Selain itu, SNR digunakan untuk mengevaluasi unjuk kerja dari karakteristik keluaran. Jika semakin tinggi daya sinyal yang digunakan, maka kerugian (error) akan semakin mengecil. Persamaan berikut merupakan ukuran standar kinerja pada berbagai titik dalam suatu link.

𝑆𝑁𝑅=𝑠𝑖𝑔𝑛𝑎𝑙 𝑝𝑜𝑤𝑒𝑟

𝑛𝑜𝑖𝑠𝑒 𝑝𝑜𝑤𝑒𝑟 (2.15)

Sinyal dapat berupa sebuah sinyal informasi, bentuk gelombang baseband, atau modulated carrier [1]. SNR dapat mengalami penurunan dalam dua cara antara lain:

1. Melalui penurunan kekuatan sinyal yang diinginkan

2. Melalui peningkatan kekuatan noise sinyal yang mengganggu.

Degradasi atau penurunan tersebut dapat menyebabkan kerugian dan noise. Kerugian terjadi ketika sebagian dari sinyal diserap, dialihkan, tersebar,

atau dipantulkan sepanjang proses transmisi data, sehingga sebagian dari energi yang ditransmisikan tidak sampai pada penerima. Noise atau kebisingan dapat disebabkan oleh beberapa sumber utama yaitu [1] [2]:

1. Thermal noise yang disebabkan oleh nilai suhu tertentu. 2. Noise Induksi disebabkan oleh induksi motor.

3. Impulse noise disebabkan oleh sinyal dengan energy yang besar dalam waktu yang siangkat.

(38)

20

3

BAB III

PERANCANGAN

3.1 Analisis Sistem

3.1.1 Gambaran Sistem yang Dikembangkan

Progam yang akan dikembangkan adalah program turbo codes, tujuan program dibuat adalah untuk encoding dan decoding data ECG. Fasilitas utama program turbo codes adalah encoding data ECG dan decoding data sandi menjadi data ECG.

3.1.2 Analisis Kebutuhan Sistem

Program turbo codes membutuhkan file berformat “*.dat”, “*.hea”, dan “.atr”. File “*.dat” merupakan data ECG yang masih berupa data unsigned integer. File tersebut akan diterjemahkan program turbo codes menjadi data biner

(data yang terdiri dari angka 0 dan 1).

3.2 Perancangan Sistem

Diagram model sistem yang akan dikembangkan ditunjukkan pada Gambar 3.1:

Gambar 3.1 Model Sistem

(39)

SNR yang digunakan adalah nilai acak antara 0 sampai 5. Setelah itu progam dapat menerjemahkan kembali data sandi ke dalam betuk data biner menggunakan decoder. Decoder yang digunakan menggunakan iterasi 1, 2, 3, 4, dan 5.

kemudian data biner akan diubah menjadi data ECG kembali.

3.2.1 Perancangan Encoder Turbo Codes

Gambar 3.2 merupakan diagram encoder turbo codes. Diagram tersebut menggunakan code rate R=1/3 dengan generator polinomial G1{111} dan G2{1101}. Program yang dibuat diharapkan mempunyai unjuk kerja yang bagus, mendekati batas teori yang diprediksi oleh Shannon.

Data dk merupakan data biner yang diterjemahkan dari file ECG yang

dibaca. Bit dk akan masuk ke dalam ke dalam register geser. Register geser

dibentuk berdasarkan generator polinomial. Ketika bit dalam register geser mulai bergerak, bit register R1 akan mengisi register R2, bit register R2 akan mengisi R3. Data dk dengan nilai R1, R2, dan R3 akan dipindahkan dengan modulo dua

menghasilkan bit M1. Bit M1 akan mengisi register R1. Pada saat bersamaan, Bit M1, nilai R1, dan R3 akan dipindahkan dengan modulo dua menghasilkan bit yk1. Arus data pada RSC2 hampir sama dengan RSC1, yang membedakan adalah data

dk akan masuk ke dalam interleaver. Data yang keluar dari interleaver akan

diproses pada RSC2.

R1 R2 R3

Interleaver dk

yk1

M1

R1 R2 R3

M1

yk2

Gambar 3.2 Diagram encoder dengan generator polinomial 15,13

(40)

Keterangan gambar :

: Modulo bilangan biner

M1 : bit hasil modulo dua

: Register

: Arah arus data

yk1,yk2 : Keluaran RSC

3.2.2 Perancangan Decoder Turbo Codes

Gambar 3.3 merupakan diagram decoder turbo codes yang akan digunakan pada program turbo codes. Data yang telah disandikan oleh encoder akan diterjemahkan oleh decoder menjadi data integer. Data dk dan yk1 yang

dihasilkan oleh encoder secara bersamaan akan masuk ke dalam decoder 1. Decoder 1 akan menghasilkan bit, bit tersebut akan dikirim ke interleaver.

Interleaver menghasilkan bit yang akan diproses bersamaan dengan bit yk2 yang

masuk ke dalam decoder 2. Bit yang dihasikan oleh decoder 2 akan diproses oleh deinterleaving dan dimasukkan kembali ke dalam decoder 1. Bit dari decoder 2

akan diproses oleh deinterleaving dan diterjemahkan sebagai keluaran.

Decoder 1 Interleaver Decoder 2

deinterleaving

deinterleaving

output dk

yk2

yk1

Gambar 3.3 Diagram decoder

Keterangan gambar :

: arah arus data

yk1,yk2 : keluaran RSC sebagai masukan decode

(41)

3.2.3 Diagram Use Case

Gambar 3.4 merupakan use case pengguna pada program turbo codes. Program turbo codes yang akan dibuat mempunyai dua use case yaitu: encode data ECG dan decode data sandi. Masing-masing use case akan dijelaskan pada narasi use case di bawah.

Pengguna

Program Turbo codes

Encoding

Decoding Lihat data ECG Kanal AWGN

<<Depend on>> <<Depend on>>

Gambar 3.4 Diagram Use Case pengguna

3.2.4 Narasi Use Case

Use case encode data ECG dan decode data sandi merupakan deskripsi

langkah kerja (skenario utama dan skenario alternatif) yang akan dilakukan pengguna terhadap program turbo codes. Langkah kerja tersebut meliputi aksi pengguna dan reaksi program terhadap reaksi pengguna.

Nama Use Case : Encodedata

Aktor : Pengguna

Kondiai awal : Pengguna pada tampilan utama program turbo codes.

Deskripsi : Use case ini digunakan pengguna untuk memasukkan

data ECG, data akan diubah menjadi data yang

(42)

Tabel 3.1 sampai Tabel 3.3 merupakan skenario utama dan skenario alternatif yang akan digunakan pada proses encode data. Tabel tersebut akan menggambarkan aksi yang dilakukan pengguna dan reaksi yang diberikan program kepada pengguna ketika melakukan encoding data ECG.

Tabel 3.1 Skenario utama Encode data

Aksi Aktor Reaksi Sistem

1. Pengguna memilih dropdown “Panjang data ECG”.

2. Pengguna memilih tombol “Cari data ECG”.

3. Sistem menampilkan dialog open file

4. Pengguna mencari dan memilih file ECG/EEG

5. Sistem melakukan pembacaan data ECG

6. Sistem menampilkan data ECG dalam bentuk grafik

7. Pengguna memilih tombol “Encode data”

8. Sistem melakukan konversi data ke dalam data biner

9. Sistem melakukan penyandian terhadap data biner.

10.Sistem menyimpan data penyandian Tabel 3.2 Skenario alternatif 1 Encode data

Aksi Aktor Reaksi Sistem

3. Pengguna memilih tombol “batal”

(43)

Tabel 3.3 Skenario alternatif 2 Encode data

Aksi Aktor Reaksi Sistem

3. Pengguna mencari dan memilih file selain data ECG.

4. Sistem menampilkan notifikasi bahwa data yang dipilih bukan data ECG atau data yang salah

Nama Use Case : Kanal AWGN

Aktor : Pengguna

Kondiai awal : Pengguna selesai melakukan encode data, kemudian

program menampilkan tampilan untuk pengaturan

kanal AWGN

Deskripsi : Use case ini digunakan pengguna untuk mengatur nilai

SNR

Tabel 3.4 sampai Tabel 3.6 merupakan skenario yang digunakan pada proses membangkit derau. Tabel tersebut akan menggambarkan aksi yang dilakukan pengguna dan reaksi yang diberikan program kepada pengguna ketika melakukan pembangkitan derau dengan SNR tertentu.

Tabel 3.4 Skenario utama kanal AWGN

Aksi Aktor Reaksi Sistem

1. Pengguna memilih tombol drop down list tipe modulator.

2. Pengguna memilih tombol drop down list SNR dan memilih nilai SNR

3. Pengguna memilih tombol “Kirim Data”

(44)

Tabel 3.5 Skenario alternatif 1 kanal AWGN

Aksi Aktor Reaksi Sistem

1. Pengguna memilih tombol “Tidak” pada notifikasi melanjutkan proses decoding

2. Sistem kembali ketampilan kanal AWGN.

Tabel 3.6 Skenario alternatif 2 kanal AWGN

Aksi Aktor Reaksi Sistem

1. Pengguna memilih tombol “Proses Encoding”

2. Sistem menampilkan GUI Encoding.

Nama Use Case : Decodedata

Aktor : Pengguna

Kondiai awal : Pengguna pada tampilan Decoding.

Deskripsi : Use case ini digunakan pengguna untuk memasukkan

data sandi yang akan di terjemahkan.

Tabel 3.7 sampai Tabel 3.13 merupakan skenario utama dan alternatif yang akan digunakan pada proses decode data. Tabel tersebut akan menggambarkan aksi yang dilakukan pengguna dan reaksi yang diberikan program kepada pengguna ketika melakukan decoding data sandi.

Tabel 3.7 Skenario utama decode data

Aksi Aktor Reaksi Sistem

1. Pengguna memilih tombol “Cari data Sandi”.

2. Sistem menampilkan dialog open file

(45)

Tabel 3.7 (Lanjutan) Skenario utama decode data

Aksi Aktor Reaksi Sistem

1. Pengguna memilih dropdown list iterasi decoder.

2. Pengguna mencari lokasi Simpan file “.xls”

3. Pengguna memilih tombol “Decode data”.

4. Sistem melakukan proses decoding.

5. Sistem mengubah data biner hasil decoding menjadi data ECG kembali.

6. Sistem menampilkan grafik BER. 7. Sistem menampilkan notifikasi

penimpanan BER berhasil. Tabel 3.8 Skenario alternatif 1 decode data

Aksi Aktor Reaksi Sistem

3. Pengguna memilih tombol “batal”

4. Sistem menampilkan tampilan utama program.

Tabel 3.9 Skenario alternatif 2 decode data

Aksi Aktor Reaksi Sistem

3. Pengguna mencari dan memilih file selain data sandi.

(46)

Tabel 3.10 Skenario alternatif 3 decode data

Aksi Aktor Reaksi Sistem

4. Pengguna belum memilih iterasi decoder

5. Sistem menampilkan notifikasi bahwa iterasi decoder belum terisi. Tabel 3.11 Skenario alternatif 4 decode data

Aksi Aktor Reaksi Sistem

4. Pengguna belum memilih lokasi penyimpanan file “.xls”

5. Sistem menampilkan notifikasi bahwa lokasi penyimpanan file “.xls” belum terisi.

Tabel 3.12 Skenario alternatif 5 decode data

Aksi Aktor Reaksi Sistem

6. Pengguna belum melakukan proses encoding

7. Sistem menampilkan notifikasi bahwa pengguna belum melakukan proses encoding

Tabel 3.13 Skenario alternatif 6 decode data

Aksi Aktor Reaksi Sistem

11.Pengguna memilih tombol pengulangan “Encoder”/”AWGN”

12.Sistem menampilkan GUI sesuai pilihan pengguna

Nama Use Case : Lihat data ECG

Aktor : Pengguna

(47)

Deskripsi : Use case ini digunakan pengguna untuk melihat dan

membandingkan data ECG sebelum encoding dan sesudah

decoding

Tabel 3.14 sampai Tabel 3.15 merupakan skenario utama dan alternatif yang akan digunakan pada proses lihat data ECG. Tabel tersebut akan menggambarkan aksi yang dilakukan pengguna dan reaksi yang diberikan program kepada pengguna ketika melakukan lihat data ECG.

Tabel 3.14 Skenario utama lihat data ECG

Aksi Aktor Reaksi Sistem

1. Pengguna memilih dropdown list ECG pada SNR tertentu

2. Sistem menampilkan ECG sebelum encoding dan ECG setelah decoding

Tabel 3.15 Skenario alternatif lihat data ECG

Aksi Aktor Reaksi Sistem

3. Pengguna belum melakukan decoding

4. Sistem menampilkan notifikasi bahwa belum melakukan decoding

3.2.5 Diagram Konteks

Gambar 3.5 merupakan interaksi antara pengguna dan program turbo codes. Program menerima masukan data ECG dari pengguna. Setelah proses

encoding dan decoding, program memberikan luaran berupa data ECG kepada

pengguna.

(48)

3.2.6 Diagram Dekomposisi (Diagram Berjenjang)

Gambar 3.6 menjabarkan proses-proses yang dikerjakan oleh program turbo codes. Program turbo codes mempunyai dua proses utama yaitu encode dan

decode. Proses encode mempunyai sub-proses mengubah data ECG menjadi data

(49)

File data

Gambar 3.8 merupakan detail proses encoding. Progam menerima masukan berupa data ECG, kemudian data tersebut akan dibaca proses 1.1 kemudian akan disandikan oleh proses 1.2. Data yang sudah disandikan akan disimpan ke dalam bentuk file.

File data

Gambar 3.8 DFD level 1 proses 1

3.2.9 DFD Level 1 Proses 2

(50)

Pengguna

Gambar 3.9 DFD level 1 proses 2

3.2.10 DFD Level 1 Proses 3

Gambar 3.10 merupakan detail proses decoding. Progam menerima masukan berupa data sandi, kemudian data tersebut akan dibaca proses 2.1. pembacaan data akan menerjemahkan data sandi (data biner) menjadi data integer. Data integer diproses proses 2.2 yang akan mengubah data integer menjadi unsigned-integer dan akan ditulis ke dalam file menjadi data ECG kembali.

File data ECG

Gambar 3.10 DFD level 1 proses 3

3.3 Desain Antarmuka Pengguna

Antarmuka pengguna digunakan oleh pengguna untuk memudahkan proses encoder dan decoder. Progam mempunyai fungsi utama yaitu encoder dan decoder.

3.3.1 Halaman Utama Program

(51)

Gambar 3.11 dipilih, program akan menampilkan halaman “Decode Data” seperti pada Gambar 3.14.

Gambar 3.11 Halaman utama progam

3.3.2 Tampilan Open File

Tampilan open file merupakan tampilan yang disediakan oleh program. Tampilan open file digunakan untuk mempermudah pencarian file, baik file ECG maupun file sandi. Tampilan open file pada proses encoding digunakan untuk mencari file bertipe “*.dat”, sedangkan pada proses decoding digunakan untuk mencari yang berisi data sandi. Tampilan open file akan menggunakan fungsi “uigetfile” pada matlab.

3.3.3 Halaman Encode

(52)

dengan keinginan. Setelah file dipilih oleh pengguna, program melakukan proses pengubahan data ECG menjadi data biner dan memapilkan grafik ECG sesuai panjang yang dipilh pengguna.“Encode Data” digunakan untuk memulai proses encoding data ECG menjadi data sandi. Ketika tombol “Encode Data” dipilih, progam akan membaca file data “*.dat”, file atribut “.atr”, dan file header ”.hea” kemudian akan menampilkan isi ECG ke dalam grafik. “Batal” digunakan untuk mengakiri proses encoding dan akan mengembalikan tampilan ke halaman utama.

Gambar 3.12 Tampilan fungsi Encode

3.3.4 Halaman Pengaturan kanal AWGN

(53)

pengiriman data dengan tipe modulasi, ukuran modulasi dan SNR yang telah dipilih pengguna. Setelah proses pada AWGN selesai, program akan menampilkan sinyal Constellation pada kanal.

Gambar 3.13 Pengaturan kanal AWGN

3.3.5 Halaman Decode

Halaman decode digunakan untuk proses decoding data sandi menjadi data ECG. Halaman decode mempunyai beberapa tombol yaitu “Cari data Sandi”, “jumlah iterasi”, “Cari lokasi”, dan “Decode Data” ditunjukkan pada Gambar 3.14. “Cari data Sandi” digunakan untuk mencari file yang berisi data sandi, dengan menggunakan fasilitas open file. “Cari lokasi” digunakan untuk menyimpan file data ECG yang dihasilkan program. Lokasi penyimpanan diisi oleh program secara otomatis, lokasi penyimpanan sama dengan lokasi file sandi yang dibaca program. Selain itu, pengguna dapat mengubah lokasi penyimpanan file dapat sesuai dengan keinginan. Sedangkan “jumlah iterasi” digunakan untuk memilih iterasi yang akan digunakan decoder.

(54)
(55)

37

4

BAB IV

IMPLEMENTASI SISTEM

Bab IV berisi implementasi sistem dibuat berdasar perancangan sistem pada Bab III. Spesifikasi perangkat lunak yang digunakan untuk melakukan implementasi simulasi ini sebagai berikut :

1. Sistem operasi : Windows 7 32-bit 2. Matlab R2010a (Versi : 7.10.0.499)

4.1 Implementasi Proses

4.1.1 Proses Pembacaan Data ECG

Proses pembacaan data ECG adalah proses konversi data unsigned integer menjadi data array bertipe integer. Program membutuhkan file “*.dat”, file “*.hea”, dan file “*.atr”. File “*.dat” merupakan file yang berisi sinyal ECG dalam bentuk digital. File “*.hea” merupakan file yang berisi teks singkat yang digunakan untuk menggambarkan sinyal (berisi nama atau URL dari file ”*.dat”, format penyimpanan, jumlah dan jenis sinyal, frekuensi sampling, data kalibrasi, karakteristik, durasi rekaman dan waktu mulai) [17]. File “*.atr” merupakan file yang berisi penjelasan gelombang QRS (detak jangtung), menunjukkan lokasi (waktu terjadi), dan jenis ECG (normal, ventricular ectopic, dll), serta penjelasan lain yang menunjukkan perubahan irama detak jantung dan kualitas sinyal.

Data ECG yang digunakan untuk pengujian adalah data ECG yang diunduh dari MIT-BIH Arryhtymia Database [9]. Data ECG akan dibaca dengan fungsi yang diunduh dari physionet.org [18]. Fungsi program pembacaan data ECG dinamakan Proses_baca_data. Kode program Proses_baca_data dilampirkan pada lampiran 2, sedangkan hasil pembacaan data dilampirkan pada lampiran 3.

4.1.2 Penyandian Data ECG

Proses penyandian adalah proses pengubahan data biner sesuai dengan rate encoder. Fungsi program dinamakan encoder. Fungsi encoder mempunyai

(56)

4.1.2.1 Proses Pengubahan Data ECG Menjadi Data Biner

Tabel 4.1 merupakan kode program yang digunakan untuk mengubah data ECG menjadi data biner. Setiap satu titik data ECG akan diubah menjadi 12 data biner. Hasil konversi data ECG menjadi data biner akan bertipe data “string”.

Tabel 4.1 Pengubahan data ECG menjadi data Biner

function [dataBin]= baca_dataECG() load ECGDat;

dataBiner='';

for i=1:size(DataECG(:,1))

dataBiner=[dataBiner,dec2bin(DataECG(i,1),12)];

end

dataBin=dataBiner;

4.1.2.2 Random Interleaver

Random interleaver digunakan untuk mengacak pola atau urutan data

biner yang dihasilkan oleh pengubah data ECG menjadi data biner. Interleaver yang digunakan merupakan fungsi yang tersedia pada Matlab. Sebelum data masuk dalam interleaver, data “string” yang dihasilkan pengubah data biner diproses menjadi array data biner dengan kode program pada Tabel 4.2, kemudian array data biner akan dimasukkan ke dalam interleaver.

Tabel 4.2 Pengubah data “string” menjadi array tempData='';

for i=1:length(dataBiner) if i==length(dataBiner)

tempData=[tempData,dataBiner(i)]; else

tempData=[tempData,dataBiner(i),' ']; end

end

(57)

4.1.2.3 Encoder Turbo Codes

Encoder turbo digunakan untuk mengkodekan data ECG yang telah

berbetuk data biner menjadi data sandi. Satu data biner akan disandikan menjadi tiga data, tiga data tersebut meliputi satu data asli dan dua data paritas. Turbo encoder terdiri dari dua RSC. RSC pertama menghasilkan satu data asli dan satu

data paritas, RSC kedua menghasilkan satu paritas. Data hasil RSC 1 dan 2 akan digabungkan menjadi satu deret data. Hasil encoder adalah data biner bertipe “string”. Kode program encoder dilampirkan pada lampiran 4.

4.1.3 Pengiriman Data Sandi Melalui Kanal AWGN

Pengiriman data sandi menggunakan kanal AWGN. Sebelum proses pada kanal AWGN, data akan diproses oleh modulator QAM dengan ukuran modulasi 4, 16, 32, atau 64. Data hasil modulator akan masuk ke dalam kanal AWGN. SNR yang digunakan yaitu 0 sampai 20. Setelah proses pada kanal, data akan diproses oleh demodulator QAM. Demodulator QAM digunakan untuk menerjemahkan data kanal menjadi data biner. Kode program dilampirkan pada lampiran 5.

4.1.4 Decoder Turbo Codes

Decoder turbo codes terdiri dari 2 decoder yang menggunakan algoritma

Maximum a-posteriori Probability (MAP). Decoder turbo codes merupakan komputasi untuk menghitung matrik tranformasi, Forward Branch matrix, backward Branch matrix, LLR, dan soft output. Kode program decoder turbo codes dilampirkan pada lampiran 6.

4.1.4.1 Proses Penerjemahan Data Biner Menjadi Data ECG

Tabel 4.3 merupakan kode penerjemah data biner menjadi data ECG. Kode tersebut digunakan untuk mengembalikan data biner hasil decoding menjadi data ECG. Data ECG yang diterjemahkan akan disajikan dalam bentuk grafik. Lampiran 7 merupakan data ECG hasil penerjemahan data biner menjadi data ECG.

Tabel 4.3 Fungsi konversi data biner menjadi Data ECG

(58)

i=0;a=1;

while i<length(iterasiDEC2(1,:))

indexECG(a,iSNR)=bi2de(iterasiDEC2(1,[i+1:i+12]),'left-msb'); i=i+12;

a=a+1;

end

4.2 Implementasi Tampilan

4.2.1 Tampilan Utama

Gambar 4.1 merupakan implementasi tampilan utama program turbo code. Tombol “Encode“ digunakan untuk memanggil tampilan turbo encoder pada Gambar 4.2. Tombol “Decode“ digunakan untuk memanggil tampilan turbo decoder pada Gambar 4.8.

Gambar 4.1 Tampilan utama program turbo codes.

4.2.2 Tampilan Proses Encoding

Gambar 4.2 merupakan implementasi tampilan program turbo encode Tampilan turbo encoder digunakan untuk proses encoding data ECG. Dropdown

list “panjang data ECG” digunakan untuk memilih panjang data yang akan

(59)

Simpan data merupakan tampilan yang telah disediakan oleh Matlab. Tombol “Encode” digunakan untuk memproses data ke dalam turbo encoder. Setelah proses encode data selesai, progam menampilkan notifikasi seperti pada Gambar 4.4. Jika pengguna memilih “ya” pada notifikasi, maka program menampilkan tampilan pada Gambar 4.6. Jika pengguna memilih “tidak”, maka program kembali pada tampilan turbo encoder.

Gambar 4.2 Tampilan Turbo Encoder

Gambar 4.3 Tampilan Cari lokasi Simpan data

(60)

4.2.3 Tampilan Handling“Cari Data ECG”

Gambar 4.5 merupakan implementasi tampilan yang digunakan untuk menangani handling tombol “Cari Data ECG” pada Gambar 4.2. Tampilan pilih data ECG digunakan untuk mencari data ECG berbentuk file “*.dat “. Tampilan handling Cari data ECG merupakan tampilan yang disediakan Matlab.

Gambar 4.5 Tampilan handling Cari data ECG

4.2.4 Tampilan Pengaturan Kanal AWGN

Gambar 4.6 merupakan implementasi tampilan pengaturan parameter pada kanal AWGN. Dropdown list “Tipe modulator” digunakan untuk memilih tipe modulasi data sebelum pengiriman pada kanal AWGN. Dropdown list

Ukuran modulator” digunakan untuk memilih ukuran modulasi. Ukuran modulasi yang tersedia adalah 4, 16, 32, dan 64 QAM. Dropdown list “SNR Kanal AWGN” digunakan untuk memilih ukuran SNR. Tombol “Kirim Data” digunakan untuk memproses data sesuai dengan parameter yang dipilih oleh pengguna. Ketika proses data selesai, program akan menampilkan notifikasi seperti Gambar 4.7. Jika pengguna memilih “ya” pada notifikasi, maka program menampilkan tampilan pada Gambar 4.6. Jika pengguna memilih “tidak”, maka program kembali pada tampilan pengaturan kanal AWGN.

(61)

Gambar 4.7 Notifikasi AWGN.

4.2.5 Tampilan Decoder

Gambar 4.8 merupakan implementasi tapilan decoder turbo codes. Tombol “Cari Data Sandi” digunakan unuk mencari lokasi data sandi hasil encoding. Lokasi sandi diisi otomatis oleh program. Dropdown list Iterasi

digunakan untuk memilih iterasi proses decoding data sandi. Lokasi penyimpanan BER digunakan untuk menyimpan data BER hasil decoding. Data BER disimpan dalam bentuk excel. “Lihat Data ECG” digunakan untuk melihat grafik ECG sebelum encoding dan sesudah decoding seperti pada Gambar 4.9. Tombol “Encoder” digunakan untuk kembali pada tampilan encoding turbo codes. Tombol “AWGN” digunakan untuk kembali pada tampilan encoding turbo codes.

(62)

44

Gambar

Gambar 2.1 Rekaman Detak Jantung [11]
Gambar 2.2 Konversi digital ke analog.
Gambar 2.4 Konsep Diagram Constellation
Gambar 2.5 Kanal AWGN [12]
+7

Referensi

Dokumen terkait

Konstruksi sosial ( social construction ) merupakan teori sosiologi kontemporer, teori ini dimaksudkan sebagai satu kajian teoritis dan sistematis mengenai sosiologi

Penelitian ini bertujuan untuk meningkatkan kreativitas dan prestasi belajar siswa pada materi hidrolisis garam kelas XI IPA 1 SMA Negeri 3 Boyolali dengan

Abstrak: Tujuan penelitian adalah untuk menganalisis sifat kimia (protein, kalsium, zat besi) dan sifat organoleptik yang terdiri dari mutu hedonik (tekstur, aroma, rasa) serta

Selanjutnya, (2) Adapun susunan rencana kepala madrasah dalam mengembangkan mutu guru dan tenaga kependidikan yakni (a) Pengenalan jenis tugas secara teknis dan administratif

Berdasarkan hal ini, dapat diketahui juga bahwa jarak yang paling optimum untuk sistem positioning dengan menggunakan estimasi jarak RSSI pada BLE adalah 1 hingga 5 meter.

Faktor penyesuaian rasio arus jalan minor dapat juga ditentukan dengan grafik, variabel masukan adalah rasio arus jalan minor (PMi, dari formulir USIG 1 baris 24, kolom 10) dan

Nyeri merupakan kondisi berupa perasaan tidak menyenangkan bersifat sangat subyektif karena perasaan nyeri berbeda pada setiap orang dalam hal skala atau