Anda di halaman 1dari 89

1

UNJUK KERJA ALGORITMA BIDIRECTIONAL ASSOCIATIVE MEMORY


(BAM) DAN ALGORITMA VITERBI UNTUK SISTEM PENDETEKSIAN
KEBOHONGAN PADA SUARA

TESIS

RINI MEIYANTI
167038004

PROGRAM STUDI S2 TEKNIK INFORMATIKA


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018
2

UNJUK KERJA ALGORITMA BIDIRECTIONAL ASSOCIATIVE MEMORY


(BAM) DAN ALGORITMA VITERBI UNTUK SISTEM PENDETEKSIAN
KEBOHONGAN PADA SUARA

TESIS

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh


ijazah Magister Teknik Informatika

RINI MEIYANTI
167038004

PROGRAM STUDI S2 TEKNIK INFORMATIKA


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018
ii
iii
iv
v

Telah diuji pada


Tanggal : 23 Juli 2018

PANITIA PENGUJI TESIS


Ketua : Prof. Dr. Prof. Dr. Herman Mawengkang
Anggota : 1. Dr. Poltak Sihombing, M.Kom
2. Prof. Dr. Opim Salim Sitompul
3. Dr. Sawaluddin, M.IT
vi

RIWAYAT HIDUP

DATA PRIBADI

Nama Lengkap : RINI MEIYANTI


Tempat dan Tanggal Lahir : Keude Krueng Geukueh, 22 Mei 1992
Alamat Rumah : Jl. Bujang Salim No. 24 Aceh Utara
Telp/HP : 085277672706
Email : rinimeiyanti522@gmail.com

DATA PENDIDIKAN

SD : SD Negeri 1 Dewantara TAMAT : 2004


SMP : SMPSwasta Al-Alaq TAMAT : 2007
SMA : SMA Negeri 1 Dewantara TAMAT : 2010
S1 : Teknik Informatika Universitas Malikussaleh TAMAT : 2015
S2 : Teknik Informatika USU TAMAT : 2018
vii

UCAPAN TERIMA KASIH

Syukur Alhamdulillah kehadirat Allah SWT sebagaimana Allah telah memberi


nikmat, rahmat dan hidayahnya kepada kita. Tak lupa pula shalawat beriringkan salam
kepada Nabi Muhammad SAW yang telah membawa kita dari alam kebodohan hingga
ke alam yang penuh dengan ilmu pengetahuan. Dengan rahmat dan hidayahNya
penulis dapat menyelesaikan Tesis dengan judul “UNJUK KERJA ALGORITMA
BIDIRECTIONAL ASSOCIATIVE MEMORY (BAM) DAN ALGORITMA VITERBI
UNTUK SISTEM PENDETEKSIAN KEBOHONGAN PADA SUARA”, Tesis ini
merupakan salah satu syarat untuk memperoleh gelar Magister Teknik Informatika
pada program studi S-2 Teknik Informatika Universitas Sumatera Utara.
Penulis menerima banyak bantuan, dukungan dan semangat selama proses pendidikan
sampai dengan penyusunan tesis ini. Oleh karena itu penulis menyampaikan ucapan
terima kasih kepada:
1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum. selaku Rektor Universitas
Sumatera Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul selaku Dekan Fakultas Ilmu Komputer dan
Teknologi Informasi (Fasilkom-TI) Universitas Sumatera Utara.
3. Bapak Prof. Dr. Muhammad Zarlis selaku Ketua Program Studi Magister Teknik
InformatikaUniversitas Sumatera Utara.
4. Bapak Dr. Syahril Efendi, S.Si., M.IT selaku Sekretaris Program Studi Teknik
Informatika Universitas Sumatera Utara.
5. Bapak Prof. Dr. Herman Mawengkang selaku Guru Besar Program Studi
Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara dan juga
selaku dosen pembimbing 1 Saya, yang tiada henti memberikan motivasi dan
saran serta ilmu yang sangat membantu penulis sehingga penulis dapat
menyelesaikan tesis ini dengan tepat waktu.
6. Bapak Dr. Poltak Sihombing, M.Kom selaku Dosen Pembimbing II yang telah
banyak meluangkan waktu untuk membimbing, memberikan saran dan motivasi
serta ilmu yang sangat membantu penulis sehingga penulis dapat menyelesaikan
tesis ini dengan tepat waktu.
7. Bapak/Ibu Dosen Program Studi Pascasarjana (S-2) Teknik Informatika Fakultas
Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara yang telah
viii

memberikan bekal ilmu yang sangat berharga bagi penulis selama menjadi
mahasiswa.
8. Seluruh Civitas Akademika, Staf, Pegawai, teman-teman, adik-adik, kakakkakak
di Program Studi Pascasarjana (S-2) Teknik Informatika Fakultas Ilmu Komputer
dan Teknologi Informasi Universitas Sumatera Utara, yang telah membantu
penulis dalam menyelesaikan penelitian dan juga telah mewarnai hari-hari indah
penulis selama menjalani masa kuliah.
9. Ayahanda H. Muslim Hasan dan Ibunda Hj. Rahmiati S.Pd, yang tercinta, karena
pengorbanan yang sungguh luar biasa serta cinta kasih dan do’a mereka yang tak
henti hentinya sehingga Saya dapat mengenyam dan menyelesaikan studi magister
dan menyelesaikan tesis ini dengan tepat waktu.
10. Bapak Fadlisyah, S.Si., MT., selaku Kepala Prodi Teknik Informatika
Malikussaleh dan juga selaku orang tua angkat bagi Saya karena motivasi dan
kata-kata semangat beliau Saya berani melangkah lebih maju dalam mengenyam
studi magister berkat saran dan ilmu beliau juga Saya dapat menyelesaikan tesis
ini dengan tepat waktu.
11. Kak Linda, Kak Dewi dan Kak Ika tercinta dan adik Saya tersayang Humaira,
yang telah memberikan dukungan serta do’a yang sangat luar biasa sehingga
penulis dapat menyelesaikan tesis ini dengan tepat waktu.
12. Sodara terkasih dan tersayang Lika, Ita, Lisa dan Muty yang selalu memberikan
dukungan agar segera menyelesaikan tesis tepat waktu dan bantu berdo’a agar
tesis ini cepat selesai.
13. Kakak-Kakak dan Abang-Abang angkatan 2015 Miftah, Yessi, K U Syaliman,
Afizh dan Riski terima kasih banyak untuk semua saran dan dukungan semangat
yang kalian berikan kepada penulis.
14. Bang Amin, Wanda dan seluruh rekan-rekan seperjuangan mahasiswa Magister
Teknik Informatika Kom A 2016, yang telah membantu dan memberikan
dukungan kepada penulis.
15. Seluruh pihak yang terlibat langsung dan tidak langsung dalam penulisan tesis ini
dan tidak bisa disebutkan satu persatu.
ix
x

ABSTRAK

Sistem pendeteksian kebohongan pada suara dapat dideteksi menggunakan algoritma


Bidirectional Associative Memory (BAM). Namun, tingkat keakuratan sistem dengan
menggunakan BAM masih rendah, dimana hasil true detection yang diperoleh
menunjukkan persentase yang kecil dan hal ini juga dipengaruhi oleh jumlah sampel
suara pelatihan. Pada penelitian ini, penulis mengajukan solusi dengan menggunakan
algoritma Viterbi dalam mendeteksi kebohongan melalui suara. Algoritma BAM
dapat memproses input yang tidak lengkap, karena adanya hubungan timbal balik
antara dari lapisan output ke lapisan input. Dengan algoritma Viterbi maka
pengolahan status-status dalam sistem pengenalan suara dapat lebih optimal. Pada
algoritma BAM, nilai suara pengujian dan nilai sampel suara pelatihan yang
diperoleh akan dicari nilai vektornya menggunakan pencarian nilai bobot yang
dilakukan dengan cara mengubah matriks biner ke dalam matriks bipolar. Sedangkan
pada algoritma Viterbi, nilai sampel suara pelatihan akan dicari pencarian Viterbi
dengan menggunakan transformasi Mellin. Transformasi Mellin digunakan untuk
merubah domain waktu ke domain frekuensi. Penelitian ini melakukan proses
pengenalan dan pelatihan sampel suara bohong pada kata pergi, jalan dan pindah lalu
diuji dengan mensimulasikannya pada data latihan dan data uji untuk menghasilkan
persentase pengenalan dan pengklasifikasian suara kebohongan tersebut. Hasil
penelitian menunjukkan bahwa sistem pendeteksian kebohongan menggunakan
algoritma BAM memiliki kisaran true detection sebesar 67% untuk kata pergi, 72%
pada kata jalan dan 69% pada kata pindah. Sedangkan dengan menggunakan
algoritma Viterbi memiliki kisaran true detection sebesar 92% pada kata pergi, 90%
pada kata jalan dan 88% pada kata pindah. Hasil dari penelitian ini menunjukkan
algoritma Viterbi cukup efektif diterapkan pada sistem pengenalan suara, dapat
dilihat dari tingkat akurasi yang relatif baik dan penggunaan sumber daya memori
yang rendah.

Kata kunci : Bidirectional Associative Memory (BAM), Viterbi, true detection,


pendeteksian kebohongan, suara.
xi

PERFORMANCE OF BAM ALGORITHM AND VITERBI


ALGORITHM FOR LIE DETECTION SYSTEM
USING VOICE

ABSTRACT

Lie detection systems using voice can be detected using the Bidirectional Associative
Memory (BAM) algorithm. However, the accuracy of the system by using BAM is
still low, where the true detection results obtained show a small percentage and this
is also influenced by the number of training voice samples. In this study, the authors
propose solutions using the Viterbi algorithm in detecting lies through sound. In the
BAM algorithm, the value of the test voice and the training sample value obtained
will be searched for its vector value using the weighted value search performed by
converting the binary matrix into the bipolar matrix. While on the Viterbi algorithm,
the training sample value will be searched for Viterbi search by using Mellin
transformation. The Mellin transform is used to change the time domain to the
frequency domain. This research carried out the process of introducing and training
lie voice samples on the word go, walk and move and then tested by simulating it in
the exercise data and test data to generate the percentage of recognition and
classification of the voice of the lie. The results showed that the lam detection system
using the BAM algorithm has a true detection range of 67% for the word go, 72% on
the word path and 69% on the word moved. While using the Viterbi algorithm has a
true detection range of 92% on the word go, 90% on the word path and 88% on the
word moved. The results of this study show that Viterbi algorithm is quite effective
applied to voice recognition system, can be seen from the relatively good level of
accuracy and the use of low memory resources.

Keywords : Bidirectional Associative Memory (BAM), Viterbi, true detection, lie


detection, voice.
xii

DAFTAR ISI

Halaman
Persetujuan ii
Pernyataan iii
Persetujuan Publikasi iv
Panitia Penguji Tesis v
Riwayat Hidup vi
Ucapan Terima Kasih vii
Abstrak x
Abstract xi
Daftar Isi xii
Daftar Tabel xiv
Daftar Gambar xv

Bab 1 Pendahuluan
1.1. Latar Belakang 1
1.2. Rumusan Masalah 3
1.3. Batasan Masalah 4
1.4. Tujuan Penelitian 4
1.5. Manfaat Penelitian 4

Bab 2 Landasan Teori


2.1. Suara 5
2.2. Pembangkitan Sinyal Suara Manusia 5
2.3. Sinyal dan Sistem 7
2.4. Pengenalan Suara 8
2.5. Sampling 9
2.6. Konsep Frekuensi 10
2.7. Berbohong 11
2.8. WAV 12
2.9. Jaringan Saraf Tiruan 12
2.10. Algoritma Bidirectional Associative Memory(BAM) 14
2.11. Algoritma Viterbi 15
2.12. Riset Terkait 17
2.13. Perbedaan Dengan Riset Sebelumnya 19

Bab 3 Metode Penelitian


3.1. Tahapan Penelitian 20
3.2. Diagram Alur Kerja Penelitian 20
3.3. Data dan Peralatan Penelitian 21
3.4. Skema Sistem 21
3.4.1. Sampling Suara 22
3.4.2. Bidirectional Assocative Memory (BAM) 23
xiii

3.4.3. Viterbi 24
3.5. Paramater Pengukuran Evaluasi Unjuk Kerja Sistem 25

Bab 4 Hasil dan Pembahasan


4.1. Hasil 26
4.1.1. Sampel training dan testing 26
4.1.2. Hasil sampling suara 27
4.1.3. Hasil deteksi kebohongan pada suara 30
4.1.4. Pengukuran unjuk kerja sistem pendeteksi kebohongan 40
4.3. Pembahasan 50

Bab 5 Kesimpulan dan Saran


5.1. Kesimpulan 55
5.2. Saran 55

Daftar Pustaka 57
Lampiran 60
xiv

DAFTAR TABEL

Halaman
Tabel 2.1. Riset tekait 17
Tabel 4.1. Detection Rate dengan lima sampel suara pelatihan pada
algoritma BAM 35
Tabel 4.2. Detection Rate dengan lima sampel suara pelatihan pada
algoritma Viterbi 36
Tabel 4.3. Detection Rate dengan sepuluh sampel suara pelatihan pada
algoritma BAM 37
Tabel 4.4. Detection Rate dengan sepuluh sampel suara pelatihan pada
algoritma Viterbi 38
Tabel 4.5. Detection Rate dengan lima belas sampel suara pelatihan pada
algoritma BAM 39
Tabel 4.6. Detection Rate dengan lima belas sampel suara pelatihan pada
algoritma Viterbi 40
Tabel 4.7. Detection Rate dengan dua puluh sampel suara pelatihan pada
algoritma BAM 41
Tabel 4.8. Detection Rate dengan dua puluh sampel suara pelatihan pada
algoritma Viterbi 42
Tabel 4.9. Detection Rate secara keseluruhan pada algoritma BAM dan
algoritma Viterbi 44
xv

DAFTAR GAMBAR

Halaman
Gambar 2.1. Organ wicara manusia 6
Gambar 2.2. Proses produksi suara 7
Gambar 2.3. Sinyal Analog 8
Gambar 2.4. Sinyal digital 8
Gambar 3.1. Alur kerja penelitian secara umum 20
Gambar 3.2. Diagram skema sistem secara keseluruhan 21
Gambar 3.3. Diagram skema sistem secara keseluruhan 22
Gambar 3.4. Flowchart proses Bidirectional Associative Memory(BAM) 23
Gambar 3.5. Flowchart proses Viterbi 24
Gambar 4.1. Mengilustrasikan gambar sinyal suara pada kata pergi 26
Gambar 4.2. Mengilustrasikan gambar sinyal suara pada kata jalan 26
Gambar 4.3. Mengilustrasikan gambar sinyal suara pada kata pindah 27
Gambar 4.4. Nilai sampling suara bohong pada kata pergi 27
Gambar 4.5. Nilai sampling suara bohong pada kata jalan 28
Gambar 4.6. Nilai sampling suara bohong pada kata pindah 28
Gambar 4.7. Nilai sampling suara jujur pada kata pergi 29
Gambar 4.8. Nilai sampling suara jujur pada kata jalan 29
Gambar 4.9. Nilai sampling suara jujur pada kata pindah 29
Gambar 4.10. Nilai hasil perhitungan algoritma Bidirectional Associative
Memory (BAM) pada kata pergi 30
Gambar 4.11. Nilai hasil perhitungan algoritma Viterbi pada kata pergi 31
Gambar 4.12. Nilai hasil perhitungan algoritma Bidirectional Associative
Memory (BAM) pada kata jalan 33
Gambar 4.13. Nilai hasil perhitungan algoritma Viterbi pada kata jalan 34
Gambar 4.14. Nilai hasil perhitungan algoritma Bidirectional Associative
Memory (BAM) pada kata pindah 34
Gambar 4.15. Nilai hasil perhitungan algoritma Viterbi pada kata pindah 34
Gambar 4.16. Grafik hasil detection rate dengan lima sampel suara pelatihan
pada algoritma BAM dan algoritma Viterbi 37
Gambar 4.17. Grafik hasil detection rate dengan sepuluh sampel suara
pelatihan pada algoritma BAM dan algoritma Viterbi 39
Gambar 4.18. Grafik hasil detection rate dengan lima belas sampel suara
pelatihan pada algoritma BAM dan algoritma Viterbi 41
Gambar 4.19. Grafik hasil detection rate dengan dua puluh sampel suara
pelatihan pada algoritma BAM dan algoritma Viterbi 43
Gambar 4.20. Grafik hasil detection rate secara keseluruhan pada algoritma
BAM dan algoritma Viterbi 45
Gambar 4.21. Ilustrasi sampel suara bohong yang dideteksi melalui sinyal suara 46
1

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Alat pendeteksi kebohongan pada umumnya adalah sebuah alat yang berfungsi untuk
memverifikasi kebenaran dari perkataan seseorang. Berbagai cara untuk mendeteksi
kebohongan sebenarnya sudah ada sejak dulu. Seiring berkembangnya zaman,
berbagai cara mendeteksi kebohongan juga berkembang. tanpa adanya persetujuan
tertulis yang didapatkan sebelum pencatatan”.
Newman et al. (2003) mengatakan dibandingkan dengan seorang yang jujur,
pembohong menunjukkan kompleksitas kognitif yang lebih rendah, lebih sedikit
menggunakan referensi diri dan referensi lainnya, dan lebih menggunakan kata-kata
emosi negatif. Penelitiannya menunjukkan bahwa pembohong dapat diidentifikasi
dengan kata-kata mereka, bukan mengenai apa yang mereka katakan melainkan
bagaimana mereka mengatakannya. Dan pada penelitian Ahsan et al. (2014)
Teknologi analisis suara adalah hal yang tepat untuk menemukan pola perubahan
seseorang saat dia sedang berbohong atau tidak. Gunadi et al. (2012) mengatakan
berbagai pendekatan metode yang telah dikembangkan untuk mendeteksi
kebohongan,diantaranya deteksi kebohongan berdasarkan konduktivitas kulit, bentuk
tulisan tangan , isi (content tulisan), analisis suara, termograpy, dan gesture.
Pengenalan suara sering disebut juga teknologi biometrik, termasuk
identifikasi, verifikasi (otentifikasi), klasifikasi, segmentasi dan deteksi suara. Sebagai
informasi tentang identitas seseorang berdasarkan pengenalan suara Beigi (2011).
Sistem pengenalan suara pertama hanya mencoba mengenali karakteristik suara
seseorang. Ini merupakan model matematika dari sistem fisiologi pada suara manusia.
Akan tetapi semakin berkembangnya teknologi banyak peneliti membangun model
yang lebih menarik dan spesifik pada sistem pengenalan suara Beigi (2011).
2

Pada penelitian Maharantau et al. (2010) Pemodelan suara dengan Hidden


Markov Model cukup efektif untuk diterapkan pada sistem pengenalan suara
sederhana command and control, dapat dilihat dari tingkat akurasi yang relatif baik
dan penggunaan sumber daya memori yang rendah. Mekanisme pencarian Viterbi
memberikan efektifitas pencarian sekuen fonem penyusun kata dengan mengurangi
ruang pencarian dimana pencarian hanya dilakukan pada fonem-fonem dengan nilai
terbesar.
Angela et al. (2010) mengatakan dalam teknologi pengenalan suara
digunakan metode Hidden Markov Models untuk mengenali suara. HMM
menggunakan konsep statistik dan probabilitas. Namun, dalam penerapannya HMM
memiliki tiga permasalahan utama yaitu bagaimana memperhitungkan kemungkinan
rangkaian pengamatan secara efisien dari model, bagaimana memilih rangkaian
status yang cocok dan optimal pada beberapa tafsiran, namun permasalahan tersebut
dapat ditangani dengan menggunakan algoritma Viterbi. Algoritma ini menggunakan
konsep dynamic programming dalam menentukan rangkaian status yang digunakan
yaitu nilai maksimal probabilitas status pada setiap tahap.
Dalam algoritma Bidirectional Associative Memory (BAM) sebagai model
neural network memiliki kelebihan yaitu dapat memproses input yang tidak lengkap
(incomplete input atau input with noise). Adapun kelemahan BAM adalah terletak
pada kapasitas memori yang sangat kecil Lidya et al. (2016). Dalam model
Bidirectional Associative Memory, dibutuhkan 2 lapisan input dan output yang saling
terhubung penuh dari satu lapisan ke lapisan yang lainnya Arifin (2009).
Bustami et al. (2015) mengatakan pada penelitiannya bahwa pendeteksi
kebohongan melalui suara dapat dideteksi menggunakan algoritma Bidirectional
Associative Memory (BAM). Sistem ini adalah cabang pemrosesan suara yang dapat
digunakan untuk mengidentifikasi jenis kebohongan suara menggunakan beberapa
kata kerja seperti pergi, jalan dan pindah. Peneliti membuat saran melakukan
penelitian lebih lanjut untuk membuat perbandingan dengan menggunakan lebih dari
satu metode.
Berdasarkan penjelasan tersebut, maka penulis ingin melakukan penelitian
perbandingan dari sistem pendeteksian kebohongan dengan menggunakan algoritma
Bidirectional Associative Memory (BAM) dan algoritma Viterbi. Algoritma
3

Bidirectional Associative Memory (BAM) telah banyak digunakan di berbagai


bidang, terutama di jaringan syaraf tiruan. BAM mampu mengekstrak bentuk
sempurna dengan bentuknya tidak sempurna. Sistem ini adalah cabang pengolahan
suara yang bisa digunakan untuk mengidentifikasi jenis suara bersifat bergerak
seperti pergi, jalan dan pindah. Sedangkan algoritma Viterbi adalah algoritma
dynamic programming untuk menemukan kemungkinan rangkaian status yang
tersembunyi (biasa disebut Viterbi path) yang dihasilkan pada rangkaian pengamatan
kejadian. Dengan Algoritma Viterbi maka pendeteksian kebohongan dalam sistem
pengenalan suara dapat lebih optimal. Dalam penelitian sebelumnya, sistem
pendeteksi kebohongan melalui suara menggunakan dengan algoritma BAM masih
memiliki tingkat keakuratan yang rendah. Dalam penelitian ini penulis ingin
membandingkan unjuk kerja kedua algoritma berdasarkan beberapa perubahan nilai
parameter untuk mendapatkan persentase pengakuan dan klasifikasi terbaik.

1.2 Rumusan Masalah

Unjuk kerja menggunakan algoritma BAM dalam mendeteksi kebohongan tingkat


keakuratan yang diperoleh masih rendah. Pencarian bobot pada algoritma BAM dari
setiap sampel suara yang dilatih menujukkan hasil true detection yang berbeda-beda
dan cenderung tidak meningkat. Hal ini tentu akan mengakibatkan tingkat keakuratan
sistem semakin rendah dalam mendeteksi kebohongan melalui suara.

1.3 Batasan Masalah


Beberapa Batasan masalah pada penelitian ini adalah sebagai berikut :
1. Pengujian hanya dari sampel wawancara terecord lalu dipotong pada tiga kata
seperti pergi, jalan dan pindah.
2. Untuk sampel suara pelatihan bohong diambil dari seseorang yang ketahuan
berbohong.
3. Rekaman suara harus bersifat spontan.
4. Suara input merupakan suara hasil rekaman dengan frekuensi 16.000Hz dan
berformat .WAV.
5. Suara rekaman diambil dari penduduk di wilayah Aceh.
6. Penelitian fokus pada perbandingan dari unjuk kerja Algoritma Viterbi dan
Algoritma BAM.
4

1.4 Tujuan Penelitian

Penelitian ini dilakukan dengan tujuan mendapatkan persentase pengakuan dan


klasifikasi terbaik. Sehingga mendapatkan true detection yang lebih tinggi dalam
mendeteksi kebohongan. Untuk algoritma BAM akan dilakukan pencarian bobot
pada sampel suara pelatihan, maka untuk algoritma Viterbi melakukan pencarian
Viterbi dengan menggunakan transformasi Mellin dalam mencari nilai vektorisasi
pada nilai sampel suara pelatihan. Sampel kebohongan diambil dari sampel suara
dengan menguji tekanan kata-kata yang bersifat bergerak seperti pergi, jalan dan
pindah ada kecenderungan bisa dideteksi seseorang berbohong atau tidak.

1.5 Manfaat Penelitian

Adapun manfaat penelitian ini adalah :

1. Memperoleh metode baru dalam mendeteksi kebohongan.

2. Terukurnya kinerja sistem pendeteksian kebohongan dengan unjuk kerja


Algoritma BAM dan Algoritma Viterbi.
3. Dapat digunakan sebagai langkah awal untuk penelitian unjuk kerja algoritma
dalam sistem pendeteksian kebohongan melalui suara yang bisa diaplikasikan
pada sistem pendeteksian suara lainnya.
4. Sebagai bahan evaluasi perbandingan terhadap berbagai pendekatan lainnya.
5

BAB 2

LANDASAN TEORI

2.1 Suara
Suara berguna untuk melakukan suatu komunikasi antar sesama manusia. Dimana
masing-masing suara memiliki karakteristik dan tingkatan frekuensi yang berbeda-
beda. Suara dihasilkan oleh suatu pita suara dengan kerjasama seluruh organ penghasil
suara. Saat ini aplikasi teknologi ini berkembang dengan cepat dan sangat berguna
bagi kehidupan manusia, contoh: membantu tunarungu, pembuatan google translate
dan lain-lain. Ada beberapa permasalahan dalam pengidentifikasian suara yaitu
kecepatan dan ketepatan pengolahan data suara Ishaq (2007).
Suara atau gelombang akustik sesungguhnya merupakan kasus khusus dari
suatu gelombang elastik pada medium udara atau fluida. Suara merupakan suatu hal
yang unik dan memiliki range frekuensi tertentu dan intensitas suara yang bisa dan
tidak bisa didengar oleh manusia. Satuan untuk mengukur intensitas suara tersebut
adalah desibel (dB) diambil dari nama penemunya yaitu Alexander Graham Bell yang
dikenal sebagai penemu telepon, sedangkan satuan dari frekuensi suara adalah Hertz,
diambil dari nama seorang Fisikawan, Heinrich Rudolf Hertz untuk menghargai jasa
atas kontribusinya dalam bidang elektromagnetik Syaifuddin (2014).

2.2 Pembangkitan Sinyal Suara Manusia


Sinyal adalah besaran fisis yang berubah menurut waktu, ruang, atau variabel-variabel
bebas lainnya. Contoh sinyal: sinyal ucapan, ECG, dan EEG. Secara matematis, sinyal
adalah fungsi dari satu atau lebih variabel independen. Proses ini dilakukan melalui
pemodelan sinyal.

Contoh fungsi matematis dari sinyal adalah:


𝒇𝒔 (𝒕) = 𝐬𝐢𝐧⁡(𝒕) (2.1)
6

Bagian dari otak kiri mengkhususkan dalam produksi dan pemahaman bahasa dan
gambar pada otak belahan kanan dapat memahami karakteristik musik termasuk pitch,
tempo, ritme, dan suara Beigi (2011).
Speech (wicara) dihasilkan dari sebuah kerjasama antara lungs (paru-paru),
glottis (dengan vocal cords) dan articulation tract (mouth/mulut dan nose
cavity/rongga hidung). Gambar 2.1 menunjukkan penampang melintang dari organ
wicara manusia. Untuk menghasilkan sebuah voiced sounds (suara ucapan), paru-paru
lungs menekan udara melalui epiglottis, vocal cords bergetar, menginterupt udara
melalui aliran udara dan menghassilkan sebuah gelombang tekanan quasi-periodic.

Gambar 2.1 Organ wicara manusia

Impuls tekanan pada umumnya disebut sebagai pitch impulses dan frekuensi
sinyal tekanan adalah pitch frequency atau fundamental frequency. Impuls pitch
merangsang udara di dalam mulut, dan untuk suara tertentu (nasals) juga merangsang
nasal cavity (rongga hidung). Ketika rongga beresonansi, akan menimbulkan radiasi
sebuah gelombang suara yang mana merupakan sinyal wicara. Kedua rongga beraksi
sebagai resonators dengan karacteristik frekuensi resonansi masing-masing, yang
disebut formant frequencies. Pada saat rongga mulut dapat mengalami perubahan
besar, kita mampu untuk menghasilkan beragam pola ucapan suara yang berbeda.
Di dalam kasus unvoiced sounds (suara tak terucap), exitasi pada vocal tract
lebih menyerupai noise (derau). Gambar 2.2 menampilkan proses produksi suara-
suara /a/, dan /f/. Fadlisyah (2013).
7

Gambar 2.2 Proses produksi suara

2.3 Sinyal dan Sistem


Secara umum sinyal didefinisikan sebagai suatu besaran fisis yang merupakan fungsi
waktu, ruangan, atau beberapa variabel. Sinyal biasa juga diartikan fenomena dari
lingkungan yang terukur atau terkuantisasi, sementara system merupakan bagian dari
lingkungan yang menghubungkan sinyal dengan sinyal lainnya atau dengan kata lain
merespon sinyal masuk dengan menghasilkan sinyal keluaran. Suara pembicaraan
merupakan contoh dari sinyal sementara sistem komunikasi telepon sendiri
merupakan contoh dari sistem yang menghubungkan sinyal-sinyal pembicaraan
tersebut Hanggarsari (2012).
Sinyal analog adalah sinyal yang kontinu menurut waktu (time-domain).
Sinyal analog merupakan campuran dari sinyal sinusoida yang jumlahnya bisa tak
terbatas. Amplitudo pada sinyal analog untuk sebuah file suara bisa sama dalam
interval waktu tertentu, dan bisa juga berubah-ubah sesuai dengan keras atau
lemahnya suara pada interval waktu. Elektromagnetik sinyal analog diilustrasikan
pada Gambar 2.3 Prasetya et al. (2008) :
8

Gambar 2.3 Sinyal Analog

Sinyal digital atau sinyal waktu diskrit merupakan bentuk sampling dari sinyal
analog. Sinyal digital pada dasarnya di code-kan dalam bentuk biner (Hexa). Besarnya
nilai suatu sinyal digital dibatasi oleh lebarnya atau jumlah bit (bandwidth). Jumlah bit
juga sangat mempengaruhi nilai akurasi sinyal digital Gambar 2.4 mengilustrasikan
sinyal digital Ishaq (2007).

Gambar 2.4 Sinyal digital

2.4 Pengenalan Suara


Pengenalan suara (juga dikenal sebagai Automatic Speech Recognition (ASR), atau
pengenalan suara komputer adalah proses mengkonversi sinyal suara ke urutan
kata-kata, melalui algoritma yang diimplementasikan kedalam program komputer
Anusya et al. (2010). Pengenalan suara (speech recognition) adalah suatu proses untuk
mengenali huruf, kata atau kalimat yang diucapkan. Pengenalan suara lebih dikenal
dengan istilah Automatic Speech Recognition atau Computer Speech Recognition
dimana penggunaan sebuah mesin/komputer untuk mengenali sebuah suara atau
identitas seseorang dari suara yang diucapkan. Umumnya pengucap berbicara di
depan komputer/mesin kemudian komputer/mesin mengenali suara/identitas seseorang
dengan tepat sesuai yang diucapkan. Pengenalan pola suara dikenali ke dalam
berbagai level tugas, pengenalan dalam tingkat sinyal akustik berupa uji tingkatan
dalam susunan unit sub kata berupa fonem, kata, frase dan kalimat Tavanaei et al.
(2011).
Pengenalan Suara sering disebut juga teknologi biometrik, termasuk
identifikasi, verifikasi (otentifikasi), klasifikasi, segmentasi dan deteksi suara. Sebagai
9

informasi tentang identitas seseorang berdasarkan pengenalan suara. Sistem


pengenalan suara pertama hanya mencoba mengenali karakteristik suara seseorang. Ini
merupakan model matematika dari sistem fisiologi pada suara manusia. Akan tetapi
semakin berkembangnya teknologi banyak peneliti membangun model yang lebih
menarik dan spesifik pada sistem pengenalan suara Beigi (2011).
Pengenalan suara pada dasarnya dibagi menjadi identifikasi suara dan
verifikasi suara. Identifikasi suara adalah kegiatan memetakan sinyal suara dari
sumber yang tidak dikenal ke dalam database yang berisi suara – suara yang sudah
dikenali. Sedangkan verifikasi suara adalah kegiatan menentukan apakah suara yang
dimasukkan cocok dengan suara yang telah diperkirakan sebelumnya.Proses
identifikasi dapat dibedakan menjadi text-dependent dan text-independent.Text-
dependent membutuhkan inputan tertentu yang lebih spesifik seperti password atau
kode pin Sedangkan text-independent mengharuskan sistem untuk dapat
mengidentifikasi inputan yang lebih bebas Omer (2017).

2.5 Sampling
Sampling merupakan suatu proses konversi sinyal analog menjadi sinyal digital
berupa sekumpulan nilai agar dapat dikenali oleh kumputer. Pada proses sampling
akan diambil beberapa sampel data dari sinyal analog. Tiap sampel akan mewakili
satu nilai dimana posisi pergerakan grafik pada waktu tertentu. Nilai hasil sampling
dimasukkan kedalam fungsi :

𝒈⁡(𝒕) = ⁡𝒏⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡ (2.2)

Dimana t adalah waktu, dan n adalah nilai sampel pada waktu t Prasetya et al. (2008).
Jika sinyal sampling tidak memenuhi syarat maka akan terjadi aliasing. Aliasing
adalah suatu efek dimana sinyal yang dihasilkan memiliki frekuensi yang berbeda
dengan sinyal aslinya Bhaskoro et al. (2014).

2.6 Konsep Frekuensi


Sebagian besar sinyal alami ini berbentuk analog. Untuk mendapatkan Sinyal diskrit
dari sinyal analog untuk melakukan proses yang disebut contoh. Dalam matematika,
proses pengambilan sampel adalah dinyatakan dengan persamaan. Sinyal analog
10

memiliki berbagai tipe, dijelaskan di sini hanya untuk sinyal periodik atau seragam
umumnya banyak digunakan dalam praktek.
x(n) = xa (nT) = x(t)|t = Ts, for -∞ < n < ∞ (n=integer) (2.3)
dimana:
x(t) = sinyal analog
x(n) = sinyal waktu diskrit
xa(nT) = sinyal analog diambil sampel setiap periode Ts
Dimana:
Ts = waktu sampling
Fs = 1/Ts, tingkat sampling
Secara Umum :
𝐹
∫=
𝐹𝑠
Dimana:
∫ = frekuensi normal
F = frekuensi informasi
Fs = frekuensi sampling

Untuk menghindari aliasing frekuensi, ukuran yang terkecil Frekuensi sampling harus
dua kali maksimal frekuensi informasi sinyal Kriteria Nquist ini. Korelasi dapat dilihat
di bawah ini:
Fs > 2 Fmax(information signal)

Sinyal sinusoidal dapat dinyatakan dengan x (t) = A sin Ω0 t


Sinyal sinus analog dapat dinyatakan secara matematis berikut:
x(t) = A sin (Ωt+θ)
= A sin (2πf+θ)
dengan Ω = 2πf
Sinyal sinus diskrit dapat dinyatakan secara matematis sebagai berikut:
x(n) = A sin (wn+θ) ,
dimana wn=2πf/fs = 2πfn
= A sin (2πfn+θ)
Dimana n adalah integer, nilai n menyatakan nth sampling. Sebuah sinyal diskrit
dengan periode N dapat dinyatakan dengan:
11

𝑁 𝑁
∫= 𝑛
𝑜𝑟 𝑛 ,

Dimana /k = integer.
2𝜋
Angular Frequency Ωₒ = 2πfₒ = 𝑇ₒ 𝑟𝑎𝑑⁄𝑠𝑒𝑐

1 2𝜋
Period Tₒ = 𝐹ₒ = ⁡ 𝛺ₒ 𝑠𝑒𝑐

1 𝛺ₒ
Frequency Fₒ = 𝑇ₒ = 2𝜋 𝐻𝑧

𝐹ₒ
Digital Frequency wₒ = 2𝜋⁡ 𝐹𝑠 𝑟𝑎𝑑 = ⁡𝛺ₒ𝑇𝑠

Nquist = Fs > 2Finformation

2.7 Berbohong
Penelitian sebelumnya telah mengungkapkan bahwa pembohong sering menunjukkan
salah satu dari dua jenis pola respons: baik tanggapan aktivasi umum atau ketegangan
yang lebih besar. Getaran beralasan negatif dapat terungkap melalui dilatasi pupil
yang lebih besar atau ketidakstabilan, perpindahan postural, gelisah, gerakan batang
dan anggota tubuh acak, gerakan adaptor tangan seperti menyentuh wajah, leher atau
kepala dengan tangan, atau adapter bibir seperti menggigit, menjilat, atau
mengerutkan mata. bibir. Ketegangan, di sisi lain, dapat memanifestasikan dirinya
melalui postur yang beku dan kaku, kurangnya gerakan atau pengetatan otot di pita
suara, yang menyebabkan mereka bergetar lebih cepat dan menghasilkan nada yang
lebih tinggi (frekuensi dasar) ketika berbicara Titze et al. (1998).
Pada penelitian DePaulo et al. (2003) mengatakan pembohong mungkin tidak
memiliki kemampuan, motivasi, emosi, kepercayaan diri, atau kemampuan untuk
menciptakan ekspresif spontan atau mengelola perilaku secara sadar. Banyak strategi
untuk mendeteksi kebohongan beroperasi dengan asumsi bahwa bukti individu
kecemasan meningkat saat berbohong, dan itu tanda-tanda ini akan bocor keluar
melalui satu atau lebih saluran komunikasi. Asumsi ini konsisten dengan penelitian
tentang pengendalian diri, yang menunjukkan bahwa orang memiliki kemampuan
terbatas untuk mengendalikan tingkah lakunya.
Pada penelitian Newman et al. (2003) menuliskan bahwa data menunjukkan
negatif hubungan antara kompleksitas kognitif dan penggunaan kata kerja gerak
(misalnya, pergi, jalan, dan pindah). Jadi, jika pembohong berkomunikasi secara
kognitif kurang kompleks, pembohong menggunakan lebih banyak kata kerja gerak
12

dan lebih sedikit kata-kata ekslusif. Pembohong menggunakan kata kerja gerak,
seperti "jalan”, “pindah”, dan “pergi" pada tingkat yang lebih tinggi daripada orang
yang jujur. Pembohong mungkin telah menggunakan kata kerja ini pada tingkat yang
lebih tinggi karena mereka berbicara secara umum. Namun, penelitian masa depan
harus menyelidiki kekuatan prediksi dari kata kerja bergerak sebelum kesimpulan bisa
ditarik.

2.8 WAV
WAV adalah format audio standar Microsoft dan IBM komputer pribadi (PC) yang
biasanya menggunakan kode PCM (Pulse Code Modulation). WAV adalah data yang
tidak dikompres sehingga seluruh sampel audio disimpan semuanya di harddisk.
Software yang bisa dibuat WAV dari contoh suara analog adalah Windows Voice atau
perekam suara. File audio ini jarang digunakan di internet karena ukurannya yang
relatif besar dengan maksimal batas untuk file WAV adalah 2 GB.

2.9 Jaringan Saraf Tiruan


Jaringan Syaraf Tiruan (JST) adalah sebuah komputasi mesin itu dirancang untuk
mensimulasikan bagaimana otak biologis atau perilaku dalam melakukan berbagai
tugas atau spesifik fungsi. Sebagai teknologi komputasi, JST adalah sebuah teknik
pengolahan informasi yang menggunakan model kuantitatif syaraf biologis yang
mengilhami terciptanya suatu proses yang identik dengan kerja neuron dalam sistem
saraf manusia.
JST terdiri dari elemen pengolahan yang disebut neuron, yang mana dikaitkan
dengan elemen pemrosesan lainnya oleh suatu aturan dan bobot. Umumnya, JST
adalah suatu kumpulan pemrosesan sinyal analog yang dihubungkan melaui link yang
disebut interkoneksi atau koneksi-koneksi sederhana. Secara skematis, JST
digambarkan dalam bentuk grafik yang memiliki arah menuju simpul elemen
pengolahan. Panah-panah tunjukkan arah arah normal arus sinyal. Pengolahan sinyal
di jaringan dilakukan melalui proses komputasi. Karena itu, JST adalah sebuah
komputasi teknik dalam perangkat lunak atau perangkat keras yang mengemulasi
biologis neuron dalam melakukan operasi pencarian informasi. Sebuah neuron terdiri
dari tiga bagian utama, yaitu soma (badan induk neuron), akson (jalur keluaran dari
13

soma) dan dendrit (jalur masukan untuk soma). Hubungan satu neuron ke neuron
berikutnya disebut sinapsis.
Karena sinapsis adalah tempat satu hubungan neuron dengan selanjutnya neuron
maka tempat itu sangat menguntungkan sebagai pengatur konduksi sinyal. Beberapa
sinapsis melahirkan sinyal dari satu neuron ke neuron lain dengan mudah, sedangkan
sinapsis lainnya sulit untuk mengantarkan sinyal. Selain Beberapa neuron pasca-
sinapsis bereaksi dengan sejumlah besar impuls sementara yang lain hanya bereaksi
terhadap dorongan hati saja. Jadi sinapsis melakukan tindakan selektif, misalnya oleh
menghalangi sinyal lemah tapi terus sinyal kuat, memilih dan menguatkan sinyal
lemah yang spesifik dan sering mendistribusikan sinyal ke berbagai arah, tidak hanya
satu arah saja.
JST mempelajari sampel yang disebut training set. Karena mempelajari sampel,
JST memiliki potensi membangun sistem komputasi sebagai hasil input dan output
memetakan hubungan yang ada dalam sistem. Perlengkapan latihan
dikenal sebagai pola pelatihan dalam bentuk vektor dan diperoleh dari sumber seperti
gambar, sinyal suara, dan berbagai informasi lainnya.

2.10 Algoritma Bidirectional Associative Memory (BAM)


Model BAM memiliki jaringan syaraf dari dua lapisan dan terhubung sepenuhnya dari
setiap lapisan yang lain. Artinya, ada hubungan timbal balik antara dari lapisan output
ke lapisan input Rao (1995). Namun, berat hubungan antara dua neuron diberikan
berbagai lapisan yang sama. Anda bahkan mungkin mempertimbangkan hubungan
dua arah tunggal dengan berat tunggal. Matriks pembobotan untuk koneksi lapisan
output ke lapisan masukan hanya mengubah urutan bobot matriks ke hubungan antara
input dan layer output. Jika kita tunjukkan matriks untuk koneksi ke bobot depan oleh
W, WT adalah matriks pembobotan untuk lapisan output ke masukan koneksi layer.
Seperti yang akan Anda ingat, mengubah urutan matriks yang diperoleh hanya dengan
menukarkan baris dan kolom matriks.
Jaringan Syaraf Tiruan (JST) Bidirectional Associative Memory (BAM)
memiliki kemampuan sebagai associative memory atau content addressable memory
yaitu memori yang dapat dipanggil menggunakan bagian dari informasi yang
tersimpan di dalamnya Arifin (2009). Selain itu terdapat dua lapisan neuron, yaitu
14

lapisan input dan lapisan output. Tidak ada hubungan lateral, yaitu tidak ada dua
neuron di lapisan yang sama terhubung. Sambungan berulang yang merupakan
koneksi umpan balik ke neuron itu sendiri, mungkin atau mungkin tidak ada,
arsitektur ini cukup sederhana.
Input dari jaringan BAM adalah sebuah vektor dari bilangan real, biasanya di
set {-1, 1}. Output juga vektor dari bilangan real, biasanya pada himpunan {-1, 1},
dengan dimensi yang sama atau berbeda dari inputnya. Vektor bisa dianggap sebagai
pola, dan jaringan membuat pola heteroassociation. Jika outputnya harus sama dengan
inputnya, maka Anda meminta jaringan untuk membuat autoassociation. Jika tidak, itu
akan menjadi kasus khusus dari aktivitas umum tipe jaringan syaraf tiruan.
Langkah 1: Hubungan antara pola pasangan yang tersimpan di dalamnya memori
dalam bentuk vektor biner bipolar dengan entri - 1 dan 1.

{(a (1), b (1)), (a (2), b (2)) .. ... (a (p), b (q))} (2.4)

Langkah 2: Bobot dihitung dengan

W=⁡ ∑ a(i) b (i)t


i=1
(2.5)

Langkah 3: Uji pasangan vektor a dan b diberikan sebagai masukan.

Langkah 4: Di forward pass, b diberikan sebagai masukan dan dihitung sebagai

Langkah 5: Vektor yang sekarang diberikan sebagai masukan ke lapisan kedua


terbelakang.

Langkah 6: Jika tidak ada lagi proses update berhenti. Jika tidak ada langkah 4 dan 5
yang berulang.
15

2.11 Algoritma Viterbi


Algoritma Viterbi diperkenalkan oleh Andrew J. Viterbi pada tahun 1967. Algoritma
Viterbi adalah algoritma dynamic programming untuk menemukan kemungkinan
rangkaian status yang tersembunyi (biasa disebut Viterbi path) yang dihasilkan pada
rangkaian pengamatan kejadian (Bustami et al. 2015). Untuk menemukan sebuah
rangkaian status terbaik, q = (q1,q2, ...... qґ), untuk rangkaian observasi O = (O1, O2,
......... Oґ), perlu didefinisikan kuantitas:
δt(i) = max P[q1, q2, ... qt-1, qt=i, o1q1, q2....qt-1 o2....ot | λ] (2.6)
Ket :
δt(i) = rangkaian terbaik
t = waktu
I = status i

Dengan menginduksi, didapat:


δt+1(j) = [maxδt(i)ij] . bj(o1+1)i (2.7)

Untuk mendapatkan kembali rangkaian status, perlu adanya penyimpanan hasil yang
memaksimalkan persamaan (2), untuk tiap i dan j, dengan menggunakan tabel Aґ(j).
Prosedur lengkap untuk menemukan kumpulan status-status terbaik bisa dirumuskan
sebagai:
1. Inisialisasi
δ1 (i) = Πibi(o1), 1≤ i ≥ N
Aґ(1) = 0.
2. Rekursif
δt(i) = max [δt-1(i)aij]bj(ot)1≤ i ≤ N
2 ≤ t ≤ T, 1 ≤ j ≤ N
Ar(j) = arg max [δt-1(i)aij]1≤ i ≤ N
2 ≤ t ≤ T, 1 ≤ j ≤ N
3. Terminasi
P* = max [δT(i)]1≤ i ≤ N
qT* = arg max [δT(i)]1≤ i ≤ N
4. Lintasan status
qt* = Ar(t+1)(q*t+1)
t = T-1, T-2, ..., 1.
16

2.12 Riset Terkait


Algoritma yang telah digunakan dapat dijabarkan dalam tabel berikut ini :

Tabel 2.1 Riset terkait


Nama
Algoritma /
Peneliti dan
No Judul Riset Metode yang Hasil Penelitian
Tahun
digunakan
Penelitian
BAM mampu
mendeteksi
Lie Detection
kebohongan
System with
melalui suara
Voice Using Bidirectional
Bustami, et dengan pengenalan
1 Bidirectional Associative
al. 2015 sebesar 90% pada
Associative Memory(BAM)
kata pergi, 80%
Memory
pada kata jalan dan
Algorithm
70% pada kata
pindah.
Dari HMMs
berhasil diperoleh
Algoritma
sinyal suara yang
Viterbi dalam
dapat
Metode
Viterbi dan dikarakteristikkan
Irfani, A., et Hidden
Hidden sebagai proses
2 al. Markov
Markov parameter acak,
2007 Models pada
Models serta parameter
Teknologi
dari proses
Speech
stokastik yang
Recognition
dapat ditentukan
dengan tepat.
Algoritma
Sistem
Bidirectional
Pendeteksian
Associative
Pola Tajwid
Memory dapat
pada Citra Al-
digunakan sebagai
Rosnita, L., et Qur’an Bidirectional
salah satu
3 al. menggunakan Associative
pendekatan untuk
2016 Algoritma Memory(BAM)
pendeteksian pola
Bidirectional
tajwid pada citra
Associative
Al-Qur’an dengan
Memory
kompleksitas
sebesar T(n) = (n).
17

Nama
Algoritma /
Peneliti dan
No Judul Riset Metode yang Hasil Penelitian
Tahun
digunakan
Penelitian
HMM memiliki
kemampuan untuk
memodelkan variasi
temporal dalam
Speech sinyal suara,
Recognition Hidden algoritma Viterbi
using Hidden Markov mampu menurunkan
4 Bhardwaj, et
Markov Model Models dan probabilitas posterior
al (2015)
and Viterbi Viterbi tanpa membuat
Algorithm asumsi. Juga diamati
bahwa pelatihan
yang lebih baik,
tingkat pengenalan
yang lebih baik.
Model FIE dan
BAM yang
diusulkan
menggunakan FIE
untuk menghapus
impulsif dan
Image
suara non-impulsif
Recognition
Bidirectional halus, dan untuk
using
Mohammed Associative meningkatkan tepi
Bidirectional
5 H.Almourish Memory dan atau menonjol
Associative
(2014) Fuzzy Image lainnya
Memory and
Enhancement struktur dalam
Fuzzy Image
gambar input.
Enhancement
Setelah itu gambar
diberikan kepada
BAM untuk
mengklasifikasikan
dan mengenali
vektor input.
18

2.13 Perbedaan Dengan Riset Sebelumnya

Dari tabel diatas didapatkan satu penelitian yang hanya menggunakan satu metode
dalam mendeteksi kebohongan. Oleh karena itu peneliti akan mencoba menggunakan
dua metode dengan mengimplementasikan algoritma Bidirectional Associative
Memory (BAM) dan algoritma Viterbi dalam mendetksi kebohongan melalui suara
berdasarkan persentase pengakuan dan klasifikasi terbaik, sehingga akan didapatkan
hasil unjuk kerja dari kedua algoritma tesebut.
20

BAB 3

METODOLOGI PENELITIAN

3.1 Tahapan Penelitian

Pada penelitian ini, seluruh prosedur awal penelitian terlebih dahulu harus sudah
dilakukan seperti studi literatur dan melakukan konsultasi dengan pembimbing.
Setelah ditemukan permasalahan dan merumuskannya maka penelitian bisa
dilanjutkan pada proses selanjutnya.

3.2 Diagram Alur Kerja Penelitian

Diagram alur kerja penelitian ini di ilustrasikan pada berikut :

Memfokuskan Mengumpulkan
Tujuan Penelitian Data (Sampel)
Identifikasi
Masalah Merancang dan
Mengimplementasi
Kesimpulan Metode
Penelitian
Mengukur Menguji Coba
Kinerja Metode Metode

Gambar 3.1 Alur kerja penelitian secara umum

Berdasarkan gambar 3.1, alur kerja penelitian secara umum dimulai dengan
tahapan mengidentifikasi sebuah masalah yang akan diteliti, kemudian tahapan
memfokuskan tujuan penelitian yang diteliti tidak menyebar ke ruang lingkup yang
lain dan dilanjutkan tahapan mengumpulkan data atau sampel yang akan diteliti
khususnya sampel suara, selanjutnya setelah sampel terkumpulkan maka dilanjutkan
tahapan merancang dan mengimplentasikan sistem dimana sistem sesuai dengan
tujuan penelitian yang telah difokuskan, kemudian pada tahap selanjutnya proses
20

menguji coba metode yang telah ditentukan lalu mengukur perbandingan kinerja
metode tersebut sehingga mendapatkan kesimpulan terhadap penelitian.

3.3 Data dan Peralatan Penelitian


Data yang digunakan dalam penelitian ini berupa data sampel suara seseorang.
Dengan data suara untuk training dilakukan sampling suara dengan mewakili kata
kerja bergerak seperti pindah, pergi dan jalan.

3.4 Skema Sistem

Langkah penelitian secara umum pengenalan pola yang dibangun dalam penelitian ini
diilustrasikan pada gambar berikut :

Gambar 3.2 Diagram skema sistem secara keseluruhan

Adapun tahapan yang dilakukan setelah aktor mengeluarkan suara berupa kata
kerja atau sumber sinyal adalah tahapan ekstraksi ciri vektor atau komputasi vektor
untuk melakukan perhitungan nilai sinyal suara yang dihasilkan, kemudian melakukan
perhitungan dengan menggunakan algoritma Bidirectional Associative Memory
(BAM) dan algoritma Viterbi. Pada algoritma Viterbi proses utama, komputasi
21

menggunakan transformasi Mellin, Sampel suara akan dilatih untuk mendapatkan


sebuah nilai energi dan nilai segmen, yang selanjutnya nilai tersebut digunakan
sebagai nilai dalam algoritma Viterbi.

3.4.1 Sampling Suara


Proses pengambilan nilai sampling suara yaitu proses merubah sinyal analog menjadi
sinyal digital. Gambar berikut merupakan flowchart proses sampling suara.

Mulai

sampel suara
real-time

Apakah g(t)=n ?
Tidak

Ya

sampling
suara

Selesai

Gambar 3.3 Flowchart sampling suara

3.4.2 Bidirectional Assocative Memory (BAM)


Berikut flowchart dari algoritma Bidirectinal Associative Memory (BAM).
22

Mulai

Sampel Suara

Hitung input Y_inj


∑i WijXj

Tidak Hitung input X_inj


∑j WijYj

Apakah vektor aktivasi X dan Y


mempunyai nilai yang seimbang

Ya

Klasifikasi
Kebohongan

Selesai

Gambar 3.4 Flowchart proses Bidirectional Associative Memory(BAM)

Pada tahap ini, jaringan menerima inputan struktur pola. Struktur suara inputan
merupakan sebarisan nilai sinyal suara tepi-tepi objek yang mungkin mengandung
suara bohong atau jujur, dan selanjutnya jaringan melakukan perhitungan input Y_inj.
Setelah perhitungan input Y_inj dilakukan, jaringan melakukan perhitungan input
23

X_inj. Langkah-langkah ini terus diulang hingga tercapai nilai aktivasi yang
seimbang.
3.4.3 Viterbi
Berikut adalah flowchart dari algoritma Viterbi yang ditunjukkan seperti gambar
dibawah ini.

Mulai

Sampel
suara

Hitung rata-rata sinyal dan


energi secara Mellin

Tidak

Proses Perbandingan antara


sampel pelatihan dan pengujian

Ya

Sampel suara
dikenali dan
dideteksi

Selesai

Gambar 3.5 Flowchart proses Viterbi

Pada tahap ini, jaringan menerima inputan struktur sampel suara. Struktur
suara inputan merupakan sebarisan nilai sinyal suara tepi-tepi objek yang mungkin
mengandung suara bohong atau jujur, dan selanjutnya jaringan melakukan tahapan
pelatihan yaitu pengenalan sinyal suara dan tandai ciri, dan uji pengenalan suara
24

melalui algoritma Viterbi. Pada proses utama, komputasi menggunakan transformasi


Mellin, sampel suara akan dilatih untuk mendapatkan sebuah nilai energi dan nilai
segmen.

3.5 Paramater Pengukuran Evaluasi Unjuk Kerja Sistem

Pengukuran evaluasi unjuk kerja sistem dilakukan dengan pelatihan bertahap. Pada
suara memuat beberapa sinyal suara yang mampu dideteksi menggunakan kata kerja
bersifat bergerak seperti pergi, jalan dan pindah. Hasil evaluasi sistem menunjukkan
bahwa peningkatan Detection Rate sangat terkait dengan peningkatan jumlah
pelatihan dari sampel suara bohong.
26

BAB 4

HASIL DAN PEMBAHASAN

4.1 Hasil
Hasil yang dibahas meliputi pemilihan sampel training dan testing suara bohong, hasil
sampling suara bohong pada kata pergi, jalan dan pindah, pengujian sistem, dan
pengukuran unjuk kerja sistem.

4.1.1 Sampel training dan testing


Sampel training dan testing berupa sampel suara secara real-time. Data training dan
tesing diambil melalui rekaman dengan mengambil pemotongan pada kata pergi, jalan
dan pindah. Data training yang digunakan pada penelitian ini berjumlah 20 sampling
suara bohong pada kata pergi, jalan dan pindah dengan 10 data testing pada kata pergi,
pindah dan jalan pula.

Gambar 4.1 Mengilustrasikan gambar sinyal suara pada kata pergi

Gambar 4.2 Mengilustrasikan gambar sinyal suara pada kata jalan


26

Gambar 4.3 Mengilustrasikan gambar sinyal suara pada kata pindah

4.1.2 Hasil sampling suara


Setiap suara memiliki sampling suara yang spesifik atau berbeda antara satu suara
dengan suara lainnya. Sampling suara ialah nilai sinyal suara asli berupa nilai
frekuensi dari suara.
Dimana Gambar dibawah ini menunjukkan ciri-ciri nilai sampling suara bohong pada
kata pergi, jalan dan pindah. Setelah nilai sampling suara diketahui barulah kita dapat
memproses suara tersebut untuk mendapatkan informasi yang lebih spesifik sebagai
acuan penelitian.

Gambar 4.4 Nilai sampling suara bohong pada kata pergi

Pada gambar diatas menunjukkan nilai sampling suara bohong yang terdapat pada
kata pergi. Itu merupakan salah satu sampel yang digunakan untuk sinyal suara
27

pelatihan pada kata pergi. Untuk suara bohong pada kata pergi memiliki banyak ciri
vektor dari nilai sinyal suara. Untuk menentukan normalisasi sinyal suara yaitu jika
nilai f > 0 maka f = 1, jika f < 0 maka f = -1 dan jika f = 0 maka f = 0.

Gambar 4.5 Nilai sampling suara bohong pada kata jalan

Pada gambar diatas menunjukkan nilai sampling suara bohong yang terdapat pada
kata jalan. Itu merupakan salah satu sampel yang digunakan untuk sinyal suara
pelatihan pada kata jalan. Seperti yang ditunjukkan pada gambar diatas terlihat bahwa
suara bohong pada kata jalan memiliki nilai vektor yang banyak dari sinyal suara yang
diperoleh.
28

Gambar 4.6 Nilai sampling suara bohong pada kata pindah

Pada gambar diatas menunjukkan nilai sampling suara bohong yang terdapat pada
kata pindah. Itu merupakan salah satu sampel yang digunakan untuk sinyal suara
pelatihan pada kata pindah. Nilai vektor yang diperoleh dari sinyal suara bohong pada
kata pindah lebih banyak, itu adalah salah satu dari ciri suara bohong.
Selanjutnya merupakan ciri-ciri dari nilai sampling suara jujur pada kata pergi,
jalan dan pindah seperti yang ditunjukkan pada gambar dibawah ini.

Gambar 4.7 Nilai sampling suara jujur pada kata pergi

Pada gambar diatas menunjukkan nilai sampling suara jujur yang terdapat pada kata
pergi. Gambar tersebut mengilustrasikan salah satu sampel yang digunakan untuk
29

sinyal suara pelatihan pada kata pergi. Terlihat bahwa nilai vektor frekuensi yang
didapat pada suara jujur lebih sedikit dibandingkan suara bohong.

Gambar 4.8 Nilai sampling suara jujur pada kata jalan

Pada gambar diatas menunjukkan nilai sinyal suara jujur yang terdapat pada kata
jalan. Gambar tersebut mengilustrasikan salah satu sampel yang digunakan untuk
sinyal suara pelatihan pada kata jalan. Nilai vektor frekuensi pada kata jalan lebih
sedikit pada suara jujur dibandingkan dengan suara bohong.

Gambar 4.9 Nilai sampling suara jujur pada kata pindah

Pada gambar diatas menunjukkan nilai sampling suara jujur yang terdapat pada kata
pindah. Gambar tersebut mengilustrasikan salah satu sampel yang digunakan untuk
sinyal suara pelatihan pada kata pindah. Terlihat bahwa gambar diatas adalah nilai
vektor lebih sedikit merupakan ciri-ciri dari suara jujur.

4.1.3 Hasil deteksi kebohongan pada suara


Hasil sistem pendeteksi kebohongan dilakukan terhadap tiga karakteristik suara.
Karakteristik pertama yang dilakukan adalah suara pada kalimat yang mengandung
unsur kata kerja pergi, karakteristik kedua adalah suara pada kalimat yang
mengandung unsur kata kerja jalan dan karakteristik ketiga adalah suara pada kalimat
30

yang mengandung unsur kata kerja pindah. Gambar di bawah ini menunjukkan hasil
pengujian sistem pendeteksi kebohongan dengan menggunakan algoritma

Bidirectional Associative Memory (BAM).


Gambar 4.10 Pengujian suara bohong pada kata pergi dengan algoritma BAM
menghasilkan suara bohong

Setelah dilakukan pelatihan pada sejumlah sampel suara, selanjutnya dilakukan


proses pengujian untuk pengenalan pada setiap jenis suara yang terdapat kata pergi,
jalan dan pindah. Tahap ini berfungsi sebagai output dan klimaks dari keseluruhan
proses. Dari perhitungan tersebut maka diperoleh nilai energi untuk mempermudah
pengenalan jenis suara bohong dari beberapa sampel suara bohong yang dilatih
diinputkan ke dalam sistem. Selanjutnya nilai-nilai tersebut akan diproses agar
mendapatkan hasil yang menunjukkan tingkat keberhasilan pengenalan jenis suara
bohong.
31

Gambar di bawah ini menunjukkan hasil pengujian sistem pendeteksi kebohongan


dengan menggunakan algoritma Viterbi pada kata pergi, jalan dan pindah.

Gambar 4.11 Pengujian suara bohong pada kata pergi dengan algoritma Viterbi
menghasilkan suara bohong

Setelah dilakukan pelatihan pada sejumlah sampel suara, selanjutnya dilakukan proses
pengujian untuk pengenalan pada setiap jenis suara yang terdapat kata pergi, jalan dan
pindah. Dari perhitungan tersebut maka diperoleh nilai energi untuk mempermudah
pengenalan jenis suara bohong dari beberapa sampel suara bohong yang dilatih
diinputkan ke dalam sistem. Selanjutnya nilai-nilai tersebut akan diproses agar
mendapatkan hasil yang menunjukkan tingkat keberhasilan pengenalan jenis suara
bohong.
32

Pada gambar dibawah ini menunjukkan nilai hasil yang didapat dalam
perhitungan menggunakan algoritma Bidirectional Associative Memory (BAM) dan
algoritma Viterbi pada kata jalan dan pindah.

Gambar 4.12 Pengujian suara bohong pada kata jalan dengan algoritma BAM
menghasilkan suara bohong

Gambar diatas menunjukkan nilai dari hasil perhitungan menggunakan


algoritma Bidirectional Associative Memory (BAM) pada kata jalan. Dari gambar
diatas menunjukkan hasil uji suara pada sampel pengujian kata jalan yang berhasil
mendeteksi suara bohong.
33

Gambar 4.13 Pengujian suara bohong pada kata jalan dengan algoritma Viterbi
menghasilkan suara bohong

Gambar diatas menunjukkan nilai dari hasil perhitungan menggunakan algoritma


Viterbi pada kata jalan. Dari gambar diatas menunjukkan hasil uji suara pada sampel
pengujian kata jalan yang berhasil mendeteksi suara bohong.

Gambar 4.14 Pengujian suara bohong pada kata pindah dengan algoritma BAM
menghasilkan suara bohong
34

Gambar diatas menunjukkan nilai dari hasil perhitungan menggunakan algoritma


Bidirectional Associative Memory (BAM) pada kata pindah. Dari gambar diatas
menunjukkan hasil uji suara pada sampel pengujian kata pindah yaitu berhasil
mendeteksi suara bohong.

Gambar 4.15 Pengujian suara bohong pada kata pindah dengan algoritma Viterbi
menghasilkan suara bohong

Gambar diatas menunjukkan nilai dari hasil perhitungan menggunakan algoritma


Viterbi pada kata pindah. Dari gambar diatas menunjukkan hasil uji suara pada sampel
pengujian kata pindah yang berhasil mendeteksi suara bohong.
Gambar-gambar diatas menunjukkan bahwa disaat user melakukan penginputan
terhadap sampel suara pada kata pergi, jalan dan pindah, maka program akan
melakukan pengenalan dengan cara menghitung nilai energi yang ada pada sampel
suara bohong yang dilatih dan kemudian didapatkan hasil akhirnya dari proses
pengenalan tersebut, yaitu jenis suara bohong yang terdapat pada kata pergi, jalan dan
pindah.
35

Dibawah ini mengilustrasikan suara jujur yang diperoleh dari sistem pendeteksian
kebohongan pada sampel suara pengujian dengan menggunakan algoritma BAM dan
algoritma Viterbi.

Gambar 4.16 Pengujian suara bohong pada kata pergi dengan algoritma BAM
menghasilkan suara jujur

Pada gambar diatas menunjukkan ketika salah satu sampel suara pengujian pada kata
pergi yang diuji lalu sistem pendeteksian kebohongan menunjukkan hasil yang tidak
sesuai yaitu suara jujur yang seharusnya menghasilkan suara bohong. Maka dari itu,
setelah dilakukan pendeteksian kebohongan dengan menggunakan algoritma BAM
terdapat sampel suara pengujian yang tidak sesuai dengan hasil yang diharapkan.
Gambar diatas mengilustrasikan hasil pendeteksian kebohongan yang keliru ketika
diuji pada sampel suara bohong dengan menggunakan algoritma BAM.
36

Gambar 4.17 Pengujian suara bohong pada kata pergi dengan algoritma Viterbi
menghasilkan suara jujur

Pada gambar diatas menunjukkan ketika salah satu sampel suara pengujian pada kata
pergi yang diuji lalu sistem pendeteksian kebohongan menunjukkan hasil yang tidak
sesuai yaitu suara jujur yang seharusnya menghasilkan suara bohong. Maka dari itu,
setelah dilakukan pendeteksian kebohongan dengan menggunakan algoritma Viterbi
terdapat sampel suara pengujian yang tidak sesuai dengan hasil yang diharapkan.
Gambar diatas mengilustrasikan hasil pendeteksian kebohongan yang keliru ketika
diuji pada sampel suara bohong menggunakan algoritma Viterbi.

Gambar 4.18 Pengujian suara bohong pada kata jalan dengan algoritma BAM
menghasilkan suara jujur
37

Pada gambar 4.18 menunjukkan ketika salah satu sampel suara pengujian pada kata
jalan yang diuji lalu sistem pendeteksian kebohongan menunjukkan hasil yang tidak
sesuai yaitu suara jujur yang seharusnya menghasilkan suara bohong. Maka dari itu,
setelah dilakukan pendeteksian kebohongan dengan menggunakan algoritma BAM
terdapat sampel suara pengujian yang tidak sesuai dengan hasil yang diharapkan.
Gambar diatas mengilustrasikan hasil pendeteksian kebohongan yang keliru ketika
diuji pada sampel suara bohong dengan menggunakan algoritma BAM.

Gambar 4.19 Pengujian suara bohong pada kata jalan dengan algoritma Viterbi
menghasilkan suara jujur

Pada gambar 4.19 menunjukkan ketika salah satu sampel suara pengujian pada kata
jalan yang diuji lalu sistem pendeteksian kebohongan menunjukkan hasil yang tidak
sesuai yaitu suara jujur yang seharusnya menghasilkan suara bohong. Maka dari itu,
setelah dilakukan pendeteksian kebohongan dengan menggunakan algoritma Viterbi
terdapat sampel suara pengujian yang tidak sesuai dengan hasil yang diharapkan.
Gambar diatas mengilustrasikan hasil pendeteksian kebohongan yang keliru ketika
diuji pada sampel suara bohong menggunakan algoritma Viterbi.
38

Gambar 4.20 Pengujian suara bohong pada kata pindah dengan algoritma BAM
menghasilkan suara jujur

Pada gambar diatas menunjukkan ketika salah satu sampel suara pengujian pada kata
pindah yang diuji lalu sistem pendeteksian kebohongan menunjukkan hasil yang tidak
sesuai yaitu suara jujur yang seharusnya menghasilkan suara bohong. Maka dari itu,
setelah dilakukan pendeteksian kebohongan dengan menggunakan algoritma BAM
terdapat sampel suara pengujian yang tidak sesuai dengan hasil yang diharapkan.
Gambar diatas mengilustrasikan hasil pendeteksian kebohongan yang keliru ketika
diuji pada sampel suara bohong dengan menggunakan algoritma BAM.

Gambar 4.21 Pengujian suara bohong pada kata pindah dengan algoritma Viterbi
menghasilkan suara jujur
39

Pada gambar diatas menunjukkan ketika salah satu sampel suara pengujian pada kata
pindah yang diuji lalu sistem pendeteksian kebohongan menunjukkan hasil yang tidak
sesuai yaitu suara jujur yang seharusnya menghasilkan suara bohong. Maka dari itu,
setelah dilakukan pendeteksian kebohongan dengan menggunakan algoritma Viterbi
terdapat sampel suara pengujian yang tidak sesuai dengan hasil yang diharapkan.
Gambar diatas mengilustrasikan hasil pendeteksian kebohongan yang keliru ketika
diuji pada sampel suara bohong menggunakan algoritma Viterbi.

4.1.4 Pengukuran unjuk kerja sistem pendeteksi kebohongan


Pengukuran unjuk kerja sistem dilakukan dengan pelatihan bertahap. Pada suara
memuat beberapa sinyal suara yang mampu dideteksi menggunakan kata kerja seperti
pergi, jalan dan pindah. Sistem pendeteksi kebohongan pada kata pergi memiliki
tingkat keakuratan sebesar 67% untuk algoritma BAM dan 92% untuk algoritma
Viterbi. Sistem pendeteksi kebohongan pada kata jalan memiliki tingkat keakuratan
sebesar 72% untuk algoritma BAM dan 90% untuk algoritma Viterbi. Sistem
pendeteksi kebohongan pada kata pindah memiliki tingkat keakuratan sebesar 69%
untuk algoritma BAM dan 88% untuk algoritma Viterbi. Tabel 4.1, tabel 4.2, tabel
4.3, tabel 4.4, tabel 4.5, tabel 4.6, tabel 4.7, dan tabel 4.8 dibawah ini mengilustrasikan
beberapa hasil pengukuran unjuk kerja sistem pendeteksian kebohongan. Setiap
sampel suara pengujian menggunakan seratus sampel dengan sampel suara pelatihan
yang berbeda.

Tabel 4.1 Detection Rate dengan tiga sampel suara pelatihan pada algoritma
BAM
40

Pada Tabel 4.1 menunjukkan bahwa pada algoritma BAM dengan menggunakan tiga
sampel suara pelatihan menghasilkan tingkat keakuratan sebesar 66% untuk kata
pergi, selanjutnya 68% pada kata jalan dan 60% pada kata pindah dengan masing-
masing kata menggunakan seratus sampel pengujian. Dari hasil tabel 4.1
menunjukkan hasil true detection yang berbeda-beda dari kata pergi, jalan dan pindah
pada tiga sampel suara pelatihan.

Tabel 4.2 Detection Rate dengan tiga sampel suara pelatihan pada algoritma
Viterbi

Pada Tabel 4.2 menunjukkan bahwa pada algoritma Viterbi dengan menggunakan tiga
sampel suara pelatihan menghasilkan tingkat keakuratan sebesar 65% untuk kata
pergi, lalu pada kata jalan sebesar 67% dan pada kata pindah sebesar 70% dengan
masing-masing kata menggunakan seratus sampel suara pengujian. Dalam hal ini juga
menunjukkan bahwa pengujian sampel suara pada kata pergi, jalan dan pindah
memiliki true detection yang berbeda-beda.
Gambar 4.22 mengilustrasikan hasil dari detection rate yang didapat
berdasarkan tiga sampel suara pelatihan dengan masing-masing seratus sampel suara
pengujian dalam unjuk kerja sistem menggunakan algoritma BAM dan algoritma
Viterbi.
41

Grafik Detection Rate dengan 3 Sampel Suara


Pelatihan
72%
70%
70%
68
68%
66% 66%
67% BAM
64% Viterbi
65%
62%
60%
58% 60

56%
54%
Pergi Jalan Pindah

Gambar 4.22 Grafik hasil detection rate dengan tiga sampel suara pelatihan pada
algoritma BAM dan algoritma Viterbi

Gambar diatas menunjukkan hasil detection rate dengan tiga sampel suara
pelatihan untuk mendeteksi kebohongan pada kata pergi, jalan dan pindah dengan
masing-masing seratus sampel suara pengujian menggunakan algoritma BAM dan
algoritma Viterbi. Tingkat keakuratan dalam mendeteksi kebohongan pada algoritma
BAM sebesar 66% pada kata pergi, 68% pada kata jalan dan 60% pada kata pindah.
Sedangkan pada algoritma Viterbi tingkat keakuratan sebesar 65% pada kata pergi,
67% pada kata jalan dan 70% pada kata pindah.

Tabel 4.3 Detection Rate dengan sepuluh sampel suara pelatihan pada algoritma
BAM
42

Pada Tabel 4.3 menunjukkan bahwa pada algoritma BAM dengan menggunakan lima
sampel suara pelatihan menghasilkan tingkat keakuratan sebesar 67% untuk kata
pergi, selanjutnya 72% pada kata jalan dan 69% pada kata pindah dengan masing-
masing kata menggunakan seratus sampel pengujian.

Tabel 4.4 Detection Rate dengan lima sampel suara pelatihan pada algoritma
Viterbi

Pada Tabel 4.4 menunjukkan bahwa pada algoritma Viterbi dengan menggunakan
lima sampel suara pelatihan menghasilkan tingkat keakuratan sebesar 82% untuk kata
pergi, lalu pada kata jalan sebesar 85% dan pada kata pindah sebesar 79% dengan
masing-masing kata menggunakan seratus sampel suara pengujian.

Gambar 4.23 mengilustrasikan hasil dari detection rate yang didapat


berdasarkan lima sampel suara pelatihan dengan masing-masing seratus sampel suara
pengujian dalam unjuk kerja sistem menggunakan algoritma BAM dan algoritma
Viterbi.
43

Grafik Detection Rate dengan 5 Sampel Suara


Pelatihan
90%
82%
80% 85%
79%
70%
72% 69%
60% 67% BAM
50% Viterbi
40%
30%
20%
10%
0%
Pergi Jalan Pindah

Gambar 4.23 Grafik hasil detection rate dengan lima sampel suara pelatihan pada
algoritma BAM dan algoritma Viterbi

Gambar 4.23 menunjukkan hasil detection rate dengan lima sampel suara pelatihan
untuk mendeteksi kebohongan pada kata pergi, jalan dan pindah dengan masing-
masing seratus sampel suara pengujian menggunakan algoritma BAM dan algoritma
Viterbi. Tingkat keakuratan dalam mendeteksi kebohongan pada algoritma BAM
sebesar 67% pada kata pergi, 72% pada kata jalan dan 69% pada kata pindah.
Sedangkan pada algoritma Viterbi tingkat keakuratan sebesar 82% pada kata pergi,
85% pada kata jalan dan 79% pada kata pindah.

Tabel 4.5 Detection Rate dengan sepuluh sampel suara pelatihan pada algoritma
BAM
44

Pada Tabel 4.5 menunjukkan bahwa pada algoritma BAM dengan menggunakan
sepuluh sampel suara pelatihan menghasilkan tingkat keakuratan sebesar 62% untuk
kata pergi, selanjutnya 66% pada kata jalan dan 67% pada kata pindah dengan
masing-masing kata menggunakan seratus sampel pengujian.

Tabel 4.6 Detection Rate dengan sepuluh sampel suara pelatihan pada algoritma
Viterbi

Pada Tabel 4.6 menunjukkan bahwa pada algoritma Viterbi dengan menggunakan
sepuluh sampel suara pelatihan menghasilkan tingkat keakuratan sebesar 86% untuk
kata pergi, lalu pada kata jalan sebesar 89% dan pada kata pindah sebesar 84% dengan
masing-masing kata menggunakan seratus sampel suara pengujian.
Gambar 4.24 mengilustrasikan hasil dari detection rate yang didapat
berdasarkan sepuluh sampel suara pelatihan dengan masing-masing seratus sampel
suara pengujian dalam unjuk kerja sistem menggunakan algoritma BAM dan
algoritma Viterbi.
45

Grafik Detection Rate dengan 10 Sampel Suara


Pelatihan
100%
86% 89% 84%
90%
80%
70%
67% BAM
60%
62% 66 Viterbi
50%
40%
30%
20%
10%
0%
Pergi Jalan Pindah

Gambar 4.24 Grafik hasil detection rate dengan sepuluh sampel suara pelatihan pada
algoritma BAM dan algoritma Viterbi

Gambar 4.24 menunjukkan hasil detection rate dengan sepuluh sampel suara pelatihan
untuk mendeteksi kebohongan pada kata pergi, jalan dan pindah dengan masing-
masing seratus sampel suara pengujian menggunakan algoritma BAM dan algoritma
Viterbi. Tingkat keakuratan dalam mendeteksi kebohongan pada algoritma BAM
sebesar 62% pada kata pergi, 66% pada kata jalan dan 67% pada kata pindah.
Sedangkan pada algoritma Viterbi tingkat keakuratan sebesar 86% pada kata pergi,
89% pada kata jalan dan 84% pada kata pindah.

Tabel 4.7 Detection Rate dengan lima belas sampel suara pelatihan pada
algoritma BAM

Pada Tabel 4.7 menunjukkan bahwa pada algoritma BAM dengan menggunakan lima
belas sampel suara pelatihan menghasilkan tingkat keakuratan sebesar 57% untuk kata
46

pergi, selanjutnya 61% pada kata jalan dan 65% pada kata pindah dengan masing-
masing kata menggunakan seratus sampel pengujian.

Tabel 4.8 Detection Rate dengan lima belas sampel suara pelatihan pada
algoritma Viterbi

Pada Tabel 4.8 menunjukkan bahwa pada algoritma Viterbi dengan menggunakan
lima belas sampel suara pelatihan menghasilkan tingkat keakuratan sebesar 92%
untuk kata pergi, lalu pada kata jalan sebesar 90% dan pada kata pindah sebesar 88%
dengan masing-masing kata menggunakan seratus sampel suara pengujian.

Gambar 4.25 mengilustrasikan hasil dari detection rate yang didapat


berdasarkan lima belas sampel suara pelatihan dengan masing-masing seratus sampel
suara pengujian dalam unjuk kerja sistem menggunakan algoritma BAM dan
algoritma Viterbi.
47

Grafik Detection Rate dengan 15 Sampel Suara


Pelatihan
100% 92 90 88
90%
80%
70% 61 65
57% BAM
60%
Viterbi
50%
40%
30%
20%
10%
0%
Pergi Jalan Pindah

Gambar 4.25 Grafik hasil detection rate dengan lima belas sampel suara pelatihan
pada algoritma BAM dan algoritma Viterbi

Gambar 4.25 menunjukkan hasil detection rate dengan lima belas sampel suara
pelatihan untuk mendeteksi kebohongan pada kata pergi, jalan dan pindah dengan
masing-masing seratus sampel suara pengujian menggunakan algoritma BAM dan
algoritma Viterbi. Tingkat keakuratan sistem dalam mendeteksi kebohongan pada
algoritma BAM sebesar 67% pada kata pergi, 72% pada kata jalan dan 69% pada kata
pindah. Sedangkan pada algoritma Viterbi tingkat keakuratan sebesar 92% pada kata
pergi, 90% pada kata jalan dan 88% pada kata pindah.
Berdasarkan data dan fakta yang muncul pada tabel dan beberapa penjabaran
diatas, menunjukkan bahwa sampel suara yang dijadikan pelatihan sangat berdampak
terhadap tingginya persentase keberhasilan pengenalan suara bohong. Pada algoritma
BAM, semakin banyaknya jumlah suara pelatihan yang dimasukkan maka detection
rate menunjukkan hasil yang berbeda-beda. Namun, dengan menggunakan algoritma
Viterbi semakin banyak jumlah suara pelatihan yang dimasukkan akan menunjukkan
hasil persentase yang semakin tinggi atau stabil.
Berikut merupakan hasil dari deteksi secara keseluruhan dengan menggunakan
algoritma BAM dan algoritma Viterbi pada kata pergi, jalan dan pindah dalam
mendeteksi kebohongan.
48

Tabel 4.9 Detection Rate secara keseluruhan pada algoritma BAM dan algoritma
Viterbi

Berdasarkan tabel diatas, dapat disimpulkan bahwa tingkat keakuratan yang


diperoleh dengan menggunakan algoritma BAM yang berhasil dideteksi berdasarkan
100 sampel pengujian dari kata pergi sebesar 66% dengan 3 sampel suara pelatihan,
67% dengan 5 sampel suara pelatihan, 62% dengan 10 sampel suara pelatihan dan
57% dengan 15 sampel suara pelatihan. Pada kata jalan sebesar 68% dengan 3 sampel
suara pelatihan, 72% dengan 5 sampel suara pelatihan, 66% dengan 10 sampel suara
pelatihan dan 61% dengan 15 sampel suara pelatihan. Pada kata pindah sebesar 60%
dengan 3 sampel suara pelatihan, 69% dengan 5 sampel suara pelatihan, 67% dengan
10 sampel suara pelatihan dan 65% dengan 15 sampel suara pelatihan.
Sedangkan tingkat keakuratan yang diperoleh dengan menggunakan
algoritma Viterbi yang berhasil dideteksi berdasarkan 100 sampel pengujian dari kata
pergi sebesar 65% dengan 3 sampel suara pelatihan, 82% dengan 5 sampel suara
pelatihan, 86% dengan 10 sampel suara pelatihan dan 92% dengan 15 sampel suara
pelatihan. Pada kata jalan sebesar 67% dengan 3 sampel suara pelatihan, 85% dengan
49

5 sampel suara pelatihan, 89% dengan 10 sampel suara pelatihan dan 90% dengan 15
sampel suara pelatihan. Pada kata pindah sebesar 70% dengan 3 sampel suara
pelatihan, 79% dengan 5 sampel suara pelatihan, 84% dengan 10 sampel suara
pelatihan dan 88% dengan 15 sampel suara pelatihan.
Gambar dibawah ini adalah hasil dari detection rate secara keseluruhan
seperti yang diilustrasikan dalam Gambar 4.26.

Grafik Detection Rate secara Keseluruhan


100%
90%
80%
70%
Detection Rate

60%
50% BAM
40% Viterbi
30%
20%
10%
0%

(3 Sampel) (15 Sampel) (10 Sampel) (15 Sampel)

Jumlah Sampel Suara Pelatihan

Gambar 4.26 Grafik hasil detection rate secara keseluruhan pada algoritma BAM dan
algoritma Viterbi

Dari grafik diatas dapat disimpulkan bahwa tingkat keakuratan yang didapat dari
detection rate pada algoritma BAM yang paling tinggi terletak pada kata pergi yaitu
67%, selanjutnya 72% pada kata jalan dan 69% pada kata pindah. Sedangkan pada
algoritma Viterbi, tingkat keakuratan yang didapat dari detection rate tertinggi yaitu
pada kata pergi dengan 92%, selanjutnya 90% pada kata jalan dan 88% pada kata
pindah.

4.2 Pembahasan
Berdasarkan hasil penelitian yang telah dilakukan, hasil unjuk kerja sistem detection
rate sangat dipengaruhi oleh jumlah pelatihan, pengamatan terhadap sinyal acuan
50

untuk pengujian, kekompleksitasan objek-objek yang terdapat dalam suara, dan


tingkat keberhasilan sistem dalam menentukan jaringan saraf tiruan untuk
memasukkan suara. Lokasi suara pada sistem dapat dideteksi oleh sistem jika sampel
yang dimasukkan sesuai format yang sudah ditentukan. Gambar 4.21 menunjukkan
ilustrasi dari sampel suara bohong yang berhasil dideteksi melalui sinyal suara.

Gambar 4.27 Ilustrasi sampel suara bohong yang dideteksi melalui sinyal suara

Dari gambar 4.27 terlihat bahwa nilai sinyal suara yang telah diinputkan ke
dalam sistem dan kemudian mendeklarasikan sinyal suara tersebut kedalam nilai-nilai
dan menunjukkan hasil akhir dari perhitungan menggunakan algoritma Bidirectional
Associative Memory (BAM) dan algoritma Viterbi tersebut apakah nilai suara yang
diuji termasuk dalam kategori berbohong atau tidak.
Pada unjuk kerja algoritma ini, sistem masih ditemukan kelemahan, yakni sistem tidak
dapat mendeteksi ulang apabila suara pelatihan yang telah disimpan kemudian ditimpa
dengan suara pelatihan yang berbeda lainnya. Berdasarkan hasil true detection yang
telah dicapai, maka skema sistem yang diajukan telah mampu melakukan
pendeteksian kebohongan pada suara dengan menggunakan komputasi yang efisien.
Pada metode Bidirectional Associative Memory (BAM) pencarian nilai bobot
dilakukan dengan cara mengubah matriks biner ke dalam matriks bipolar, yang
selanjutnya akan dilakukan pencarian bobot.
Contoh pencarian bobot pada algoritma Bidirectional Associative Memory (BAM)
yang diambil dari sembarang vektor fitur.
𝑥1= (1,0,0,1) 𝑦1=(0,1,1)
𝑥2= (0,1,1,0) 𝑦2=(1,0,1)

Matriks biner tersebut selanjutnya diubah kedalam matriks bipolar menjadi:


Cari nilai bipolar 0 1
(𝑥1)+ =⁡(1,−1,−1,1)⁡⁡⁡(𝑦1)+ =(−1,1,1)
(𝑥2)- = (−1,1,1,−1)⁡⁡⁡(𝑦2)- =(1,−1,1)
51

Maka untuk pencarian bobot dilakukan dengan menggunakan rumus w = ∑𝑖=1 𝑥𝑖𝑦𝑖
⁡⁡1 ⁡⁡1
−1 −1
W= [ ] [−1 1 1] + [ ] [−1 1 1]
−1 −1
⁡⁡⁡1 ⁡⁡1
⁡1 ⁡⁡1 ⁡⁡1 −1 ⁡⁡1 ⁡⁡1
⁡1 −1 −1 ⁡⁡1 −1 −1
W= [ ]+[ ]
⁡1 −1 −1 ⁡⁡1 −1 −1
−1 ⁡⁡1 ⁡⁡1 −1 ⁡⁡1 ⁡⁡⁡1
−2 ⁡⁡2 ⁡⁡0
−2 ⁡⁡2 ⁡⁡2 −2
⁡⁡2 −2 ⁡⁡0
W= [ ] dan WT = [ ⁡⁡2 −2 −2 ⁡⁡2 ]
⁡⁡2 −2 ⁡⁡0
⁡⁡0 ⁡⁡⁡0 ⁡⁡0 ⁡⁡0
−2 ⁡⁡2 ⁡⁡0

Gambar 4.28 Pencarian ciri vektor sampling suara menggunakan algoritma BAM

Pencarian algoritma Viterbi dalam sistem ini menggunakan transformasi Mellin.


Contoh penjabaran rumus transformasi Mellin dan Viterbi untuk perhitungan manual
yang diterapkan pada sistem ini : Rumus Mellin

𝑛−1

𝜑(𝑠) = ∑ 𝑥 𝑠−1 𝑓(𝑥)


𝑥=0

Mencari energi kata pergi


Dik : x = 0,1,2,3
S = 0,1,2,3
N =4
52

f(x) = 0,2,0,0
Penyelesaian :
𝜑(0) = (00-1 . 0) + (00-1 . 1) + (00-1 . 2) + (00-1 . 3)
𝜑(0) =0+2+0+0=2
𝜑(1) = (01-1 . 0) + (01-1 . 1) + (01-1 . 2) + (01-1 . 3)
𝜑(1) =0+2+0+0=2
𝜑(2) = (02-1 . 0) + (02-1 . 1) + (02-1 . 2) + (02-1 . 3)
𝜑(2) =0+2+0+0=2
𝜑(3) = (03-1 . 0) + (03-1 . 1) + (03-1 . 2) + (03-1 . 3)
𝜑(3) =0+2+0+0=2
Energi Mellin Persegmen
𝜑(0) + 𝜑(1) + 𝜑(2) + 𝜑(3)
𝜑 =⁡
𝑁2
𝜑(2) + 𝜑(2) + 𝜑(2) + 𝜑(2) 8
𝜑 =⁡ 2
= = 0,5
4 16

Mencari energi kata jalan


Dik : x = 0,1,2,3
S = 0,1,2,3
N =4
f(x) = 0,1,1,0
Penyelesaian :
𝜑(0) = (00-1 . 0) + (00-1 . 1) + (00-1 . 2) + (00-1 . 3)
𝜑(0) = 0 + 1 + 0 ,5+ 0 = 1,5
𝜑(1) = (01-1 . 0) + (01-1 . 1) + (01-1 . 2) + (01-1 . 3)
𝜑(1) =0+1+1+0=2
𝜑(2) = (02-1 . 0) + (02-1 . 1) + (02-1 . 2) + (02-1 . 3)
𝜑(2) =0+1+2+0=3
𝜑(3) = (03-1 . 0) + (03-1 . 1) + (03-1 . 2) + (03-1 . 3)
𝜑(3) =0+1+4+0=5
Energi Mellin Persegmen
𝜑(0) + 𝜑(1) + 𝜑(2) + 𝜑(3)
𝜑 =⁡
𝑁2
𝜑(1,5) + 𝜑(2) + 𝜑(3) + 𝜑(5) 11,5
𝜑 =⁡ = = 0,7
42 16

Mencari energi kata pindah


Dik : x = 0,1,2,3
S = 0,1,2,3
53

N =4
f(x) = 2,0,0,1
Penyelesaian :
𝜑(0) = (00-1 . 0) + (00-1 . 1) + (00-1 . 2) + (00-1 . 3)
𝜑(0) = 0 + 0 + 0 + 0,33 = 0,33
𝜑(1) = (01-1 . 0) + (01-1 . 1) + (01-1 . 2) + (01-1 . 3)
𝜑(1) =2+0+0+1=3
𝜑(2) = (02-1 . 0) + (02-1 . 1) + (02-1 . 2) + (02-1 . 3)
𝜑(2) =0+0+0+3=3
𝜑(3) = (03-1 . 0) + (03-1 . 1) + (03-1 . 2) + (03-1 . 3)
𝜑(3) =0+0+0+9=9
Energi Mellin Persegmen
𝜑(0) + 𝜑(1) + 𝜑(2) + 𝜑(3)
𝜑 =⁡
𝑁2
𝜑(0,33) + 𝜑(3) + 𝜑(3) + 𝜑(9) 15,33
𝜑 =⁡ = = 0,9
42 16

Gambar 4.29 Pencarian ciri vektor sampling suara menggunakan algoritma Viterbi

Dapat disimpulkan bahwa algoritma Viterbi mampu menunjukkan hasil yang lebih
optimal dalam mendeteksi kebohongan dibandingkan algoritma BAM. Jika pada
algoritma Bidirectional Associative Memory (BAM) menggunakan pencarian nilai
bobot yang dilakukan dengan cara mengubah matriks biner ke dalam matriks bipolar,
maka pada algoritma Viterbi menggunakan Transformasi Mellin dalam menentukan
nilai sinyal suara. Dengan mengunnakan algoritma BAM, semakin banyak sampel
suara yang dilatih maka beberapa hasil yang diuji menjadi tidak akurat. Hal tersebut
merupakan keterbatasan Jaringan Syaraf Tiruan BAM yang disebabkan karena input
yang diberikan sebagai pelatihan memiliki banyak kesamaan, sehingga Jaringan
54

Syaraf Tiruan (JST) Bidirectional Associative Memory (BAM) menjadi tidak stabil.
Namun kedua algoritma ini dapat dilakukan dalam penelitian untuk mendeteksi
kebohongan melalui suara.
55

BAB 5

KESIMPULAN DAN SARAN

4.2 Kesimpulan
Hasil penelitian menunjukkan bahwa sistem pendeteksian kebohongan menggunakan
algoritma Bidirectional Associative Memory(BAM) memiliki kisaran true detection
sebesar 67% pada kata pergi, 72% pada kata jalan dan 69% pada kata pindah.
Sedangkan dengan menggunakan algoritma Viterbi memiliki kisaran true detection
sebesar 92 % pada kata pergi, 90% pada kata jalan dan 88% pada kata pindah.

Persentase true detection menunjukkan bahwa algoritma Bidirectional


Associative Memory (BAM) dan algoritma Viterbi dapat digunakan sebagai salah satu
pendekatan untuk pendeteksian kebohongan melalui suara. algoritma Viterbi mampu
menunjukkan hasil yang lebih optimal dalam mendeteksi kebohongan dibandingkan
algoritma BAM.

Berdasarkan pengujian yang telah dilakukan pada bab sebelumnya, maka dapat
disimpulkan bahwa hasil unjuk kerja sistem detection rate sangat dipengaruhi oleh
jumlah pelatihan suara bohong.

4.3 Saran
Adapun saran yang dapat diberikan dalam penelitian ini adalah sebagai berikut.

1. Untuk meningkatkan unjuk kerja dari sistem pendeteksi kebohongan


menggunakan suara, dapat dilakukan dengan memberikan pelatihan lebih
lanjut dengan tambahan data training yang lebih banyak.
2. Perlu dilakukan proses pra pengolahan suara (preprocessing) yang lebih
kompleks pada suara sehingga ciri-ciri suara lebih detail.
3. Analisis suara adalah salah satu pendekatan metode yang dapat dilakukan
dalam mendeteksi kebohongan, namun hal tersebut tidak dapat membuktikan
56

seseorang tersebut berbohong 100%. Maka dari itu, perlu melakukan


penelitian selanjutnya dengan pendekatan metode seperti konduktivitas kulit,
bentuk tulisan tangan , isi (content tulisan), termograpy, dan gesture.
57

DAFTAR PUSTAKA

Ahsan, A. & Nagdeve, T.U. 2014. Crime Detection using Voice Behavior on the
Basis of Collected Evidence. International Journal of Engineering and
Advanced Technology (IJEAT) ISSN: 2249 – 8958, Volume-4 Issue 1,
October 2014. PP : 137-141.

Almourish, H.M. 2014. Image Recognition using Bidirectional Associative Memory


and Fuzzy Image Enhancement. Journal of Science & Technology, Vol. (19)
No. (1) 2014. PP : 71-87.

Anusya, M.A. & Katti, S.K. 2010. Mel Frequency Discrete Wavelet Coefficient for
Kannada Speech Recognition using PCA. Proceeding of International
Conference on Advances in Computer Science (ACEEE). PP : 225-227.

Arifin, Z. 2009. Jaringan Syaraf Tiruan Bidirectional Associative Memory (BAM)


Sebagai Identifikasi Pola Sidik jari Manusia. Jurnal Informatika Mulawarman,
Vol 4 No. 1, Feb 2009. PP : 21-26.

Bhardwaj, S., Pathania, S. & Akela, R. 2015. Speech Recognition using Hidden
Markov Model and Viterbi Algorithm. International Journal of Advanced
Research in Electronics and Communication Engineering (IJARECE) Volume
4, Issue 5, May 2015. ISSN: 2278 – 909X. PP : 1179-1183.

Beigi, H. 2011. Fundamentals Of Speaker Recognition. Spinger : New York.

Bhaskoro, B., Susetyo., Ariani, I. & Alamsyah, A.A. 2014. Transformasi Pitch Suara
Manusia Menggunakan Metode PSOLA. Jurnal ELKOMIKA Institut Teknologi
Nasional Bandung Vol.2 (2).

Bustami. Fadlisyah. & Delemunte, N. 2015. Lie Detection System with Voice Using
Bidirectional Associative Memory Algorithm. IJCAT – International Journal of
Computing and Technology, Volume 2, Issue 8, August 2015. ISSN : 2348 –
6090. PP : 301-306.

Bustami. Fadlisyah. & Mauliza, I. 2015. Sistem Pendeteksi Kesalahan dalam


Membaca Al-Qur’an Ayat 1-5 menggunakan Metode Viterbi. TECHSI : Jurnal
Penelitian Teknik Informatika. PP : 1-15.

DePaulo, B. M., Lindsay, J. J., Malone, B. E., Muhlenbruck, L., Charlton, K., & Cooper,
H. (2003). Cues to deception. Psychological Bulletin, 129(1). PP : 74–118.
58

Erokyar, H. 2014. Age And Gender Recognition For Apeech Applications Based On
Support Vector Machine. Thesis Master of science in electrical engineering,
universitas of south florida.

Fadlisyah. 2013. Pengolahan Suara. Edisi Pertama. Yogyakarta. Penerbit Graha Ilmu.
Innovations in Information, Embedded and Communication Systems (ICIIECS),
PP : 1-5.

Gunadi, A.G., Harjoko, H. 2012. Telaah Metode-metode Pendeteksi Kebohongan.


IJCCS, Vol.6, No.2, July 2012, pp. 35~46. ISSN: 1978-1520. PP : 35-46.

Hanggarsari, P.N., Fitriawan, H. & Yuniati, Y. 2012. Simulasi Sistem Pengacakan


Sinyal Suara Secara Realtime berbasis Fast Fourier Transform (FFT).
Electrical Jurnal Rekayasa dan Teknologi Elektro Vol.6 (3). PP : 192-198.

Hibare, R. & Vibhute, A. 2014. Feature Extraction Techniques in Speech Processing :


A Survey. International Journal Of Computer Applications Vol.107 (5). PP : 1-8.

Irfani, A., Amelia, R. & Saptanti, D. 2006. Algoritma Viterbi dalam Metode Hidden
Markov Models pada Teknologi Speech Recognition. Departemen Teknik
Informatika, Institut Teknologi Bandung. PP : 1-5.

Ishaq, M. 2007. Fisika Dasar. Bandung: Graha Ilmu.

Madan., Akansha. & Gupta, D. 2014. Speech Feature Extraction and Classification :
A Comparative Review. International Journal Of Computer Application Vol.90
(9). PP : 20-25.

Maharantau, R.D. Suyanto. & Wibowo, T.A. 2010. Implementasi Sistem Pengenalan
Suara pada Aplikasi Asisten Pribadi Komputer dengan Berbasis Hidden
Markov Model dan Viterbi Search. Tugas Akhir Teknik Informatika,
Universitas Telkom.

Newman, L.M., Pennebaker, W.J., Berry, S.D. & Richards, M.J. 2003. Lying Words:
Predicting Deception From Linguistic Styles. PSPB, Vol. 29 No. 5, May 2003.
PP : 665-675.

Omer, A.E. 2017. Joint MFCC-and-Vector Quantization based Text-Independent


Speaker Recognition System. International Conference on Communication,
Control, Computing and Electronic Engineering (ICCCCEE). PP : 1-6.

Prasetya, W., Binyamin., Susanto,B. & Purwadi, J. 2008. Identifikasi Suara Pria dan
Wanita Berdasarkan Frekuensi Suara. Jurnal Informatika, Vol 4 (1).

Putra, D. 2010. Pengolahan Citra Digital. Andi. Yogyakarta.


59

Rao, V.B. 1995. C++ Neural Networks and Fuzzy Logic: Preface. MTBooks, IDG
Books Worldwide, Inc.

Rosnita, Lidya. 2016. Unjuk Kerja Algoritma BAM dan Algoritma FAM Untuk Sistem
Pendeteksian Pola Tajwid Pada Citra Al-Qur’an. Tesis, Fakultas Ilmu
Komputer dan Teknologi Informasi: Universitas Sumatera Utara.

Setiyoaji,A., Muflikhah, L., Ali, M.F. 2017. Named Entity Recognition Menggunakan
Hidden Markov Model dan Algoritma Viterbi pada Teks Tanaman Obat. Jurnal
Pengembangan Teknologi Informasi dan Ilmu Komputer. Vol. 1, No. 12,
Desember 2017, hlm. 1858-1864. e-ISSN: 2548-964X. PP : 1858-1864.

Syaifuddin, A. & Suryono. 2014. Fast Fourier Transform (FFT) Untuk Analisis
Sinyal Suara Doopler Ultrasonik. Youngster Physics Journal Vol.3 (3). PP :
181-188.

Tavanaei, A., Manzuri, M.T. & Sameti, H. 2011. Mel-Scaled Discrete Wavelet
Transform and Dynamic Features for the Persian Phoneme Recognition.
Internasional Symposium on Artifical Intelligance and Signal Processing (AISP)
(2). PP : 138-140.
60

LAMPIRAN

Listing Program

Bidirectional Associative Memory(BAM) [Proses Training]

procedure TForm1.Open1Click(Sender: TObject);


var init_fx,i : integer;
begin
if not OpenDialog1.Execute then exit else
begin
alWavePlayer1.FileName := Opendialog1.FileName;
alWavePlayer1.Start;
end;

label1.Caption:='....';
buffer_fx:=0;
for i:=-1 to 1 do
begin
x1[i]:=0;y1[i]:=0;
x2[i]:=0;y2[i]:=0;
end;
for init_fx:=-100000 to 100000 do probabi[init_fx]:=0;
end;

procedure TForm1.RadioButton1Click(Sender: TObject);


var i,j : integer;
begin
BAM1.Click;

//simpan bobot ciri 1


namafile := 'bobot_1.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);
for i:=1 to 3 do
for j:=1 to 3 do
writeln(fsinyal, floattoStr(w[i,j]));
closefile(fsinyal);
end;

procedure TForm1.RadioButton2Click(Sender: TObject);


var i,j : integer;
begin
BAM1.Click;

//simpan bobot ciri 2


namafile := 'bobot_2.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);
for i:=1 to 3 do
for j:=1 to 3 do
writeln(fsinyal, floattoStr(w[i,j]));
closefile(fsinyal);

end;
61

procedure TForm1.RadioButton3Click(Sender: TObject);


var i,j : integer;
begin
BAM1.Click;

//simpan bobot ciri 3


namafile := 'bobot_3.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);
for i:=1 to 3 do
for j:=1 to 3 do
writeln(fsinyal, floattoStr(w[i,j]));
closefile(fsinyal);

end;

procedure TForm1.RadioButton4Click(Sender: TObject);


var i,j : integer;
begin
BAM1.Click;

//simpan bobot ciri 4


namafile := 'bobot_4.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);
for i:=1 to 3 do
for j:=1 to 3 do
writeln(fsinyal, floattoStr(w[i,j]));
closefile(fsinyal);

end;

procedure TForm1.RadioButton5Click(Sender: TObject);


var i,j : integer;
begin
BAM1.Click;

//simpan bobot ciri 5


namafile := 'bobot_5.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);
for i:=1 to 3 do
for j:=1 to 3 do
writeln(fsinyal, floattoStr(w[i,j]));
closefile(fsinyal);

end;

procedure TForm1.RadioButton6Click(Sender: TObject);


var i,j : integer;
begin
BAM1.Click;

//simpan bobot ciri 6


namafile := 'bobot_6.txt';
assignfile(fsinyal,namafile);
62

rewrite(fsinyal);
for i:=1 to 3 do
for j:=1 to 3 do
writeln(fsinyal, floattoStr(w[i,j]));
closefile(fsinyal);

end;

Bidirectional Associative Memory (BAM) [Proses Testing]

procedure TForm1.Button1Click(Sender: TObject);


var BAM_1, BAM_2 : byte;
memorizing : string;
i,j : integer;
w_ciri1, w_ciri2 : array [1..3,1..3] of
real;
w_ciri3, w_ciri4 : array [1..3,1..3] of
real;
w_ciri5, w_ciri6 : array [1..3,1..3] of
real;

begin
vek1.Click;
vek2.click;
BAM1.Click;
BAM_1:=0;
BAM_2:=BAM_1;

//loading bobot ciri1


namafile := 'bobot_1.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
while not Eof(fsinyal) do
begin

for i:=1 to 3 do
for j:=1 to 3 do begin
readln (fsinyal, memorizing);
w_ciri1[i,j]:=strtofloat(memorizing);
end;

end;
closefile(fsinyal);
//loading bobot ciri 2
namafile := 'bobot_2.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
while not Eof(fsinyal) do
begin

for i:=1 to 3 do
for j:=1 to 3 do
begin
readln (fsinyal, memorizing);
w_ciri2[i,j]:=strtofloat(memorizing);

end;
end;
63

closefile(fsinyal);

//loading bobot ciri 3


namafile := 'bobot_3.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
while not Eof(fsinyal) do
begin

for i:=1 to 3 do
for j:=1 to 3 do
begin
readln (fsinyal, memorizing);
w_ciri3[i,j]:=strtofloat(memorizing);

end;
end;
closefile(fsinyal);

//loading bobot ciri 4


namafile := 'bobot_4.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
while not Eof(fsinyal) do
begin

for i:=1 to 3 do
for j:=1 to 3 do
begin
readln (fsinyal, memorizing);
w_ciri4[i,j]:=strtofloat(memorizing);

end;
end;
closefile(fsinyal);

//loading bobot ciri 5


namafile := 'bobot_5.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
while not Eof(fsinyal) do
begin

for i:=1 to 3 do
for j:=1 to 3 do
begin
readln (fsinyal, memorizing);
w_ciri5[i,j]:=strtofloat(memorizing);

end;
end;
closefile(fsinyal);

//loading bobot ciri 6


namafile := 'bobot_6.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
while not Eof(fsinyal) do
begin
64

for i:=1 to 3 do
for j:=1 to 3 do
begin
readln (fsinyal, memorizing);
w_ciri6[i,j]:=strtofloat(memorizing);

end;
end;
closefile(fsinyal);

//cacah uji banding antara vektor bobot BAM input dgn BAM referensi
for i:=1 to 3 do
for j:=1 to 3 do
begin
//uji WALK
if abs(abs(w_ciri1[i,j])-abs(w[i,j]))<abs(abs(w_ciri2[i,j])-
abs(w[i,j])) then
if abs(abs(w_ciri1[i,j])-abs(w[i,j]))<abs(abs(w_ciri4[i,j])-
abs(w[i,j])) then
if abs(abs(w_ciri1[i,j])-abs(w[i,j]))<abs(abs(w_ciri6[i,j])-
abs(w[i,j])) then inc(BAM_1,1);

//uji MOVING
if abs(abs(w_ciri3[i,j])-abs(w[i,j]))<abs(abs(w_ciri2[i,j])-
abs(w[i,j])) then
if abs(abs(w_ciri3[i,j])-abs(w[i,j]))<abs(abs(w_ciri4[i,j])-
abs(w[i,j])) then
if abs(abs(w_ciri3[i,j])-abs(w[i,j]))<abs(abs(w_ciri6[i,j])-
abs(w[i,j])) then inc(BAM_1,1);

//uji GO
if abs(abs(w_ciri5[i,j])-abs(w[i,j]))<abs(abs(w_ciri2[i,j])-
abs(w[i,j])) then
if abs(abs(w_ciri5[i,j])-abs(w[i,j]))<abs(abs(w_ciri4[i,j])-
abs(w[i,j])) then
if abs(abs(w_ciri5[i,j])-abs(w[i,j]))<abs(abs(w_ciri6[i,j])-
abs(w[i,j])) then inc(BAM_1,1);

end;

//bandingkan vektor BAM


if BAM_1>BAM_2 then label1.Caption:='BOHONG' else
label1.Caption:='JUJUR';

//caption
label7.Caption:=floattostr(BAM_1);
label8.Caption:=floattostr(BAM_2);

end;

procedure TForm1.Matriks1Click(Sender: TObject);


begin
Memo1.Lines.LoadFromFile(namafile);

end;
65

procedure TForm1.FormActivate(Sender: TObject);


var i : integer;
begin
buffer_fx:=0;
for i:=-1 to 1 do
begin
x1[i]:=0;y1[i]:=0;
x2[i]:=0;y2[i]:=0;
end;
end;

procedure TForm1.vek1Click(Sender: TObject);


var init_fx,init_buffo : integer;
ca_probabi : integer;

begin
H:=0.0;

ca_probabi:=buffer_fx*buffo;

//vektor probabilitas
for init_fx:=-100000 to 100000 do
sigma_p[init_fx]:=probabi[init_fx]/ca_probabi;

//start to count probabilities


for init_fx:=0 to buffer_fx do
for init_buffo:=0 to buffo do
begin
if sigma_p[tampung[init_fx,init_buffo]]<>0 then
H:=H+-
(sigma_p[tampung[init_fx,init_buffo]]*ln(abs(sigma_p[tampung[init_fx,
init_buffo]])));

end;

//vektor probabilitas
for init_fx:=-100000 to 100000 do
sigma_p[init_fx]:=probabi[init_fx]/ca_probabi;

label2.Caption:=inttostr(buffer_fx);
label3.Caption:=inttostr(buffo);
label4.Caption:=inttostr(ca_probabi);
label5.Caption:=floattostr(H);
vektor_x1:=H;
x1[-1]:=vektor_x1;x1[1]:=0;y1[-1]:=0;y1[1]:=1;

end;

procedure TForm1.vek2Click(Sender: TObject);


var u,init_fx, init_buffo : integer;
x_en_spek : real;
begin
x_en_spek:=0;

for init_fx:=0 to buffer_fx do


for u:=0 to buffo do
begin
x_real[init_fx,u]:=0;
x_imajiner[init_fx,u]:=0;
66

end;

namafile := 'spektrum.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);

for init_fx:=0 to buffer_fx do


for u:=0 to buffo do
begin
for init_buffo:=0 to buffo do
begin

x_real[init_fx,u]:=x_real[init_fx,u]+(tampung[init_fx,init_buffo]*(co
s(2*3.14*u*init_buffo/buffo)));
x_imajiner[init_fx,u]:=x_imajiner[init_fx,u]+-
(tampung[init_fx,init_buffo]*(sin(2*3.14*u*init_buffo/buffo)));

end; //end for init_buffo:=0 to buffo do

x_spektrum[init_fx,u]:=sqrt(sqr(x_real[init_fx,u])+sqr(x_imajiner[ini
t_fx,u]));
writeln(fsinyal, floattoStr(x_spektrum[init_fx,u])+' ');
x_en_spek:=x_en_spek+ x_spektrum[init_fx,u];
end; //end for u:=0 to buffo do

closefile(fsinyal);
Memo2.Lines.LoadFromFile(namafile);

x_en_spek:=x_en_spek/(buffer_fx*buffo);
label6.Caption:=floattostr(x_en_spek);

vektor_x2:=x_en_spek;
x2[-1]:=vektor_x2;x2[1]:=1; y2[-1]:=1;y2[1]:=0;
end;

procedure TForm1.PreTrain1Click(Sender: TObject);


begin
{radiobutton1.Enabled:=true;
radiobutton2.Enabled:=true; }
end;

procedure TForm1.BAM1Click(Sender: TObject);


var i,j : integer;
begin
vek1.Click;
vek2.click;

//bipolar -1 dan +1
for i:=-1 to 1 do
begin
if x1[i]<=0 then x1[i]:=-1 else x1[i]:=+1;
if y1[i]<=0 then y1[i]:=-1 else y1[i]:=+1;
if x2[i]<=0 then x2[i]:=-1 else x2[i]:=+1;
if y2[i]<=0 then y2[i]:=-1 else y2[i]:=+1;

end;
//akhir bipolar
for i:=1 to 3 do
for j:=1 to 3 do w[i,j]:=0;
67

//simpan peta bobot


namafile := 'bobot.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);

//hitung bobot
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
w[i,j]:=w[i,j]+x1[i-2]*y1[j-2]+x2[i-2]*y2[j-2];
write(fsinyal, floattoStr(w[i,j])+' ');
end;
writeln(fsinyal,' ');
end;
closefile(fsinyal);

//aktivasi
//simpan peta AKTIVASI
namafile := 'aktivasi.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);

//hitung aktivasi umulatif


for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
w[i,j]:=w[i,j]+(vektor_x1*x1[i-2])*y1[j-2]+(vektor_x2*x2[i-
2])*y2[j-2];
write(fsinyal, floattoStr(w[i,j])+' ');
end;
writeln(fsinyal,' ');
end;
closefile(fsinyal);

end;
end.

Viterbi [Proses Training]

procedure TForm1.Open1Click(Sender: TObject);


begin
if not OpenDialog1.Execute then exit else
begin
alWavePlayer1.FileName := Opendialog1.FileName;
alWavePlayer1.Start;
end;

//set global value


N:=0;
M:=0;
Total:=0;
end;

procedure TForm1.ALGenericFilter1ProcessData(Sender: TObject;


InBuffer: IALAudioBuffer; var OutBuffer: IALAudioBuffer;
68

var SendOutputData: Boolean);


var
I : Integer;
begin
inc(N,1);
for I := 0 to InBuffer.GetSize() - 1 do
begin
Total:= Total+InBuffer[ I, 0 ];
simpanbuffer[N,M]:= InBuffer[ I, 0 ]; //load memory fisik ke RAM
variabel

inc(M,1);
end;
end;

procedure TForm1.Ciri1Click(Sender: TObject);


var cacahmellin : integer;
begin
label1.caption:=inttostr(N); //JUMLAH BUFFER PER SEGMEN MEMORY
label2.caption:=inttostr(M); //jumlah total sebaran nilai NILAI
label3.caption:=inttostr(Total);//total nilai
rata:=Total/M; //average
label4.caption:=floattostr(rata); //tampilkan rata

//RUBAH DOMAIN KE DOMAIN BARU DAN HITUNG ENERGI NYA SECARA MELLIN

cacahmellin:=N;
tampungmellin:=0;

for InM:=0 to cacahmellin do


for Inc1:=0 to N do
for Inc2:=0 to M do
begin
mellin:= {power(InM,cacahmellin)*}simpanbuffer[InC1,InC2]/100;
tampungmellin:= tampungmellin+mellin;

end;

label5.caption:=floattostr(tampungmellin); //tampilkan
tampungmellin

end;

procedure TForm1.HMM1Click(Sender: TObject);


begin
//tahap awal menentukan nilai probabilitas start dan emisi
probHMMstart:=N/M; //TENTUKAN PROBABILITAS AWAL CIRI
label6.caption:=floattostr(probHMMstart);
probHMMemisi:=rata/tampungmellin;
label7.caption:=floattostr(probHMMemisi);

end;

procedure TForm1.RadioButton1Click(Sender: TObject);


begin
ciri1.Click;
HMM1.Click;

namafile := 'prob_1.txt';
69

assignfile(fsinyal,namafile);
rewrite(fsinyal);
writeln(fsinyal, floattoStr(probHMMstart));
writeln(fsinyal, floattoStr(probHMMemisi));
closefile(fsinyal);
end;

procedure TForm1.RadioButton2Click(Sender: TObject);


begin
ciri1.Click;
HMM1.Click;
namafile := 'prob_2.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);
writeln(fsinyal, floattoStr(probHMMstart));
writeln(fsinyal, floattoStr(probHMMemisi));
closefile(fsinyal);
end;

procedure TForm1.RadioButton3Click(Sender: TObject);


begin
ciri1.Click;
HMM1.Click;
namafile := 'prob_3.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);
writeln(fsinyal, floattoStr(probHMMstart));
writeln(fsinyal, floattoStr(probHMMemisi));
closefile(fsinyal);
end;

procedure TForm1.RadioButton4Click(Sender: TObject);


begin
ciri1.Click;
HMM1.Click;
namafile := 'prob_4.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);
writeln(fsinyal, floattoStr(probHMMstart));
writeln(fsinyal, floattoStr(probHMMemisi));
closefile(fsinyal);
end;

procedure TForm1.RadioButton5Click(Sender: TObject);


begin
ciri1.Click;
HMM1.Click;
namafile := 'prob_5.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);
writeln(fsinyal, floattoStr(probHMMstart));
writeln(fsinyal, floattoStr(probHMMemisi));
closefile(fsinyal);
end;

procedure TForm1.RadioButton6Click(Sender: TObject);


begin
ciri1.Click;
70

HMM1.Click;
namafile := 'prob_6.txt';
assignfile(fsinyal,namafile);
rewrite(fsinyal);
writeln(fsinyal, floattoStr(probHMMstart));
writeln(fsinyal, floattoStr(probHMMemisi));
closefile(fsinyal);
end;

procedure TForm1.Button1Click(Sender: TObject);


begin
HMM2.Click;
end;

Viterbi [Proses Testing]

procedure TForm1.HMM2Click(Sender: TObject);


var bobot1, bobot2 : string;
ujisimpul1,ujisimpul2,cekemisi1,cekemisi2 : Real;
ujisimpul3,cekemisi3 : Real;
ujisimpul4,cekemisi4 : Real;
ujisimpul5,ujisimpul6 : Real;
begin
ciri1.Click;
HMM1.Click;
//loading ciri 1
namafile := 'prob_1.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
readln (fsinyal, bobot1);
readln (fsinyal, bobot2);
closefile(fsinyal);
probHMMstart1:=strtofloat(bobot1);
probHMMemisi1:=strtofloat(bobot2);
label8.caption:=floattostr(probHMMstart1);
label9.caption:=floattostr(probHMMemisi1);
//akhir

//loading ciri 2
namafile := 'prob_2.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
readln (fsinyal, bobot1);
readln (fsinyal, bobot2);
closefile(fsinyal);
probHMMstart2:=strtofloat(bobot1);
probHMMemisi2:=strtofloat(bobot2);
label11.caption:=floattostr(probHMMstart2);
label12.caption:=floattostr(probHMMemisi2);
//akhir

//loading ciri 3
namafile := 'prob_3.txt';
assignfile(fsinyal,namafile);
71

reset(fsinyal);
readln (fsinyal, bobot1);
readln (fsinyal, bobot2);
closefile(fsinyal);
probHMMstart3:=strtofloat(bobot1);
probHMMemisi3:=strtofloat(bobot2);
label13.caption:=floattostr(probHMMstart3);
label14.caption:=floattostr(probHMMemisi3);
//akhir

//loading ciri 4
namafile := 'prob_4.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
readln (fsinyal, bobot1);
readln (fsinyal, bobot2);
closefile(fsinyal);
probHMMstart4:=strtofloat(bobot1);
probHMMemisi4:=strtofloat(bobot2);
label13.caption:=floattostr(probHMMstart4);
label14.caption:=floattostr(probHMMemisi4);
//akhir

//loading ciri 5
namafile := 'prob_5.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
readln (fsinyal, bobot1);
readln (fsinyal, bobot2);
closefile(fsinyal);
probHMMstart5:=strtofloat(bobot1);
probHMMemisi5:=strtofloat(bobot2);
label13.caption:=floattostr(probHMMstart5);
label14.caption:=floattostr(probHMMemisi5);
//akhir

//loading ciri 6
namafile := 'prob_6.txt';
assignfile(fsinyal,namafile);
reset(fsinyal);
readln (fsinyal, bobot1);
readln (fsinyal, bobot2);
closefile(fsinyal);
probHMMstart6:=strtofloat(bobot1);
probHMMemisi6:=strtofloat(bobot2);
label13.caption:=floattostr(probHMMstart6);
label14.caption:=floattostr(probHMMemisi6);
//akhir

//berdasarkan ciri bangun hubungan graph berdasar probabilitas


viterbi
if probHMMstart1>=probHMMstart then
ujisimpul1:=probHMMstart/probHMMstart1;
if probHMMstart1<probHMMstart then
ujisimpul1:=probHMMstart1/probHMMstart;

if probHMMstart2>=probHMMstart then
ujisimpul2:=probHMMstart/probHMMstart2;
72

if probHMMstart2<probHMMstart then
ujisimpul2:=probHMMstart2/probHMMstart;

if probHMMstart3>=probHMMstart then
ujisimpul3:=probHMMstart/probHMMstart3;
if probHMMstart3<probHMMstart then
ujisimpul3:=probHMMstart3/probHMMstart;

if probHMMstart4>=probHMMstart then
ujisimpul4:=probHMMstart/probHMMstart4;
if probHMMstart4<probHMMstart then
ujisimpul4:=probHMMstart4/probHMMstart;

if probHMMstart5>=probHMMstart then
ujisimpul5:=probHMMstart/probHMMstart5;
if probHMMstart5<probHMMstart then
ujisimpul5:=probHMMstart5/probHMMstart;

if probHMMstart6>=probHMMstart then
ujisimpul6:=probHMMstart/probHMMstart6;
if probHMMstart6<probHMMstart then
ujisimpul6:=probHMMstart6/probHMMstart;

//uji simpul

//cekemisi1:= 0;
//cekemisi2:= 0;
//cekemisi3:= 0;

if ujisimpul1>=ujisimpul2 then
if ujisimpul1>=ujisimpul3 then
if ujisimpul1>=ujisimpul4 then
if ujisimpul1>=ujisimpul5 then
if ujisimpul1>=ujisimpul6 then label10.Caption:='+BOHONG';

//transisikan
if ujisimpul2>=ujisimpul1 then
if ujisimpul2>=ujisimpul3 then
if ujisimpul2>=ujisimpul4 then
if ujisimpul2>=ujisimpul5 then
if ujisimpul2>=ujisimpul6 then label10.Caption:='-BOHONG';

if ujisimpul3>=ujisimpul1 then
if ujisimpul3>=ujisimpul2 then
if ujisimpul3>=ujisimpul4 then
if ujisimpul3>=ujisimpul5 then
if ujisimpul3>=ujisimpul6 then label10.Caption:='+BOHONG';

if ujisimpul4>=ujisimpul1 then
if ujisimpul4>=ujisimpul3 then
if ujisimpul4>=ujisimpul4 then
if ujisimpul4>=ujisimpul5 then
if ujisimpul4>=ujisimpul6 then label10.Caption:='-BOHONG';

if ujisimpul5>=ujisimpul1 then
if ujisimpul5>=ujisimpul2 then
if ujisimpul5>=ujisimpul4 then
if ujisimpul5>=ujisimpul3 then
if ujisimpul5>=ujisimpul6 then label10.Caption:='+BOHONG';
73

if ujisimpul6>=ujisimpul1 then
if ujisimpul6>=ujisimpul2 then
if ujisimpul6>=ujisimpul4 then
if ujisimpul6>=ujisimpul3 then
if ujisimpul6>=ujisimpul5 then label10.Caption:='-BOHONG';

end;

end.

Anda mungkin juga menyukai