Anda di halaman 1dari 154

RANCANG BANGUN SISTEM KLASIFIKASI EMOSI

BERBASIS ELECTROENCEPHALOGRAPHY DENGAN


SUPPORT VECTOR MACHINE (SVM) UNTUK
INSTRUMENTASI PENGUKURAN PSIKOTERAPI

SKRIPSI

untuk memenuhi sebagian persyaratan


untuk memperoleh derajat Sarjana S-1
Program Studi Teknik Fisika

Diajukan oleh
MUHAMMAD GHAZIAN RASIS RAHMANULLAH
16/394996/TK/44288

kepada
DEPARTEMEN TEKNIK NUKLIR DAN TEKNIK FISIKA
FAKULTAS TEKNIK
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2020
PERNYATAAN BEBAS PLAGIASI

Saya yang bertanda tangan di bawah ini:

Nama Muhammad Ghazian Raşis Rahmanullah


16/394996ThK/44288
Tahun terdaftar 2016
Program Studi Teknik Fisika
Fakultas Teknik

menyatakan bahwa dokumen ilmiah skripsi ini tidak terdapat bagian dari karya il-
miah lain yang telah diajukan untuk memperoleh gelar akademik di suatu lembaga
Pendidikan Tınggi, dan juga tidak terdapat karya atau pendapat yang pernah ditulis
atau diterbitkan oleh orangflembaga lain, kecuali yang secara tertulis disitasi dalam
dokumen ini dan disebutkan sumbernya secara lengkap dalam daftar pustaka.
Dengan demikian saya menyatakan bahwa dokumen ilmiah ini bebas dari
unsur- unsur plagiasi dan apabila dokumen ilmiah Skripsi ini di kemudian hari ter-
bukti merupakan plagiasi dari hasil karya penulis lain dan/atau dengan sengaja meng-
ajukan karya atau pendapat yang merupakan hasil karya penulis lain, maka penulis
bersedia menerima sanksi akademik dan/atau sanksi hükum yang berlaku.

Yogyakarta, 20 Oktober 2020


Yang menyatakan,

017

RIBURUPIAH

Muhammad Ghazian Raşis Rahmanullah


NİM. 16/3949961TK/44288

ii
UNIVERSITAS GADJAH MADA
FAKULTAS TEKNIK
DEPARTEMEN TEKNIK NUKLIR DAN TEKNIK FISIKA
PROGRAM STUDI TEKNIK NUKLIR DAN TEKNIK FISIKA
Jalan Grafika No. 2, Yogyakarta 55281, Telp. (0274) 6492120, 580882 Faks. (0274) 580882
http://tf.ugm.ac.id, E-mail: t-fisika@ugm.ac.id

SURAT KETERANGAN
Nomor : 11809/UN1/FTK.2/DTNTF/PK.03.08/2020
27 Oktober 2020

Ketua Departemen Teknik Nuklir dan Teknik Fisika Fakultas Teknik Universitas
Gadjah Mada menerangkan bahwa mahasiswa di bawah ini :

Nama : Muhammad Ghazian Rasis Rahmanullah


NIM : 16/394996/TK/44288
Program Studi : Teknik Fisika
Departemen : Teknik Nuklir dan Teknik Fisika
Judul Karya Akhir : Rancang Bangun Sistem Klasififikasi Emosi
berbasis Electroencephalography dengan Support
Vector Machine untuk Instrumentasi Pengukuran
Psikoterapi.
Tanggal Ujian : 16 Oktober 2020
Pembimbing Utama : Prof. Ir. Sunarno, M.Eng., Ph.D., IPU.
Pembimbing Pendamping : Ir. Memory Motivanisman W., S.T., M.Eng., IPM
Penguji Utama : Ir. Nazrul Effendy, S.T., M.T., Ph.D., IPM.
Penguji Pendamping : Dwi Joko Suroso, S.T., M.Eng.

Telah mendapatkan persetujuan dari para pembimbing dan penguji TA/Skripsi


sehingga dinyatakan telah menyelesaikan revisi final pada tanggal 26 Oktober 2020.

Surat keterangan ini dibuat dan berlaku pada masa tanggap darurat covid-19 dan dapat
dipergunakan sebagai pengganti lembar pengesahan dan persetujuan karya tulis akhir
sebagai syarat yudisium atau wisuda pada program sarjana.

Demikian surat keterangan ini dikeluarkan untuk dipergunakan sebagaimana


mestinya.

a.n. Dekan
Ketua Departemen,

Ir. Nopriadi, S.T., M.Sc., Ph.D.


NIP 197311192002121002
HALAMAN TUGAS

KEMENTERIAN RISET, TEKNOLOGI, DAN PENDIDIKAN TINGGI


UNIVERSITAS GADJAH MADA
FAKULTAS TEKNIK
DEPARTEMEN TEKNIK NUKLIR DAN TEKNIK FISIKA

Nama : Muhammad Ghazian Rasis Rahmanullah


NIM : 16/394996/TK/44288
Pembimbing Utama : Prof. Ir. Sunarno, M.Eng., Ph.D., IPU
Pembimbing Pendamping : Ir. Memory Motivanisman W., M. Eng., IPM
Judul Skripsi : Rancang Bangun Sistem Klasifikasi Emosi berbasis
Electroencephalography dengan Support Vector Ma-
chine (SVM) untuk Instrumentasi Pengukuran Psiko-
terapi
Permasalahan : Identifikasi kondisi emosional pada klien psikoterapi
masih bersifat subjektif. Metode pengenalan gelom-
bang otak perlu dikembangkan untuk mengevaluasi
kondisi emosional klien secara objektif

Pembimbing Utama Pembimbing Pendamping

Prof. Ir. Sunarno, M.Eng., Ph.D., IPU Ir. Memory Motivanisman W., M. Eng., IPM
NIP. 195511241983031001 NIP.

Mengetahui,

Ketua Departemen Teknik Nuklir dan Teknik Fisika


Fakultas Teknik UGM

Nopriadi, S.T., M.Sc., Ph.D.


NIP. 197311192002121002

iv
. . . Karya ini kupersembahkan untuk diriku sendiri . . .

v
. . . Aku adalah seniman yang juga merupakan hasil karya . . .

vi
KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Allah SWT, karena berkat rahmat
dan hidayah-Nya penulis dapat menyelesaikan penelitian dan penulisan skripsi yang
berjudul "Rancang Bangun Sistem Klasifikasi Emosi berbasis Electroencephalogra-
phy dengan Support Vector Machine (SVM) untuk Instrumentasi Pengukuran Psi-
koterapi" sebagai syarat untuk memperoleh gelar Sarjana Strata Satu Program Studi
Teknik Fisika.
Penelitian berkaitan dengan pemanfaatan data Electroencephalography dari
otak manusia untuk membuat sistem klasifikasi jenis emosi dengan menggunakan al-
goritma support vector machine. Skripsi ini tersusun dari enam bab. Bab pertama
berisi pendahuluan. Pada bab ini dikemukakan hal-hal yang melatarbelakangi pene-
litian, rumusan masalah yang disusun, tujuan dari penelitian yang dilakukan, batas-
an masalah penelitian, serta manfaat yang dapat dipeoroleh dari penelitian ini. Bab
kedua adalah tinjauan pustaka. Pada bab ini dikemukakan penelitian yang telah di-
lakukan oleh peneliti-peneliti lain sebelumnya yang berkaitan dengan penelitian ini.
Bab ketiga adalah dasar teori. Pada bab ini dijelaskan mengenai berbagai landasan
teori yang digunakan dalam penelitian ini. Bab keempat adalah pelaksanaan peneliti-
an. Pada bab ini dijelaskan tentang alur dari pelaksanaan penelitian yang dilakukan.
Bab kelima adalah hasil dan pembahasan. Pada bab ini dikemukakan data yang di-
dapatkan dan analisisnya yang didapatkan dari penelitian ini. Bab keenam adalah
kesimpulan dan saran. Bab ini berisi kesimpulan-kesimpulan yang diperoleh setelah
melakukan analisis pada data yang didapatkan dalam penelitian ini. Selain itu juga
diberikan saran mengenai pengembangan untuk penelitian ke depan dari penelitian
ini.
Tentunya dalam mengerjakan penelitian ini penulis mendapatkan banyak ban-

vii
viii

tuan dari berbagai pihak. Pada kesempatan ini penulis ingin mengucapkan terima
kasih kepada semua pihak yang turut andil dalam mewujudkan penelitian ini, antara
lain kepada:

1. Kedua orang tua penulis, Bapak Sutarno dan Ibu Fatchu Rohmah, yang telah
memberikan segalanya sehingga penulis dapat menempuh pendidikan hingga
sampai ke jenjang ini.

2. Prof. Ir. Sunarno, M.Eng., Ph.D., IPU selaku pembimbing utama penulis yang
telah memberikan bimbingan sehingga penulis dapat belajar dari kesalahan-
kesalahan yang sering luput dari diri penulis.

3. Ir. Memory Motivanisman Wauruwu, S.T., M.Eng., IPM selaku pembimbing


pendamping yang telah membimbing penulis mulai dari perencanaan peneliti-
an, pelaksanaan penelitian, hingga penulisan skripsi ini.

4. Ir. Rony Wijaya, S.T., M.Eng., IPM yang telah membantu memenuhi segala
kebutuhan lapangan untuk pelaksanaan penelitian ini.

5. Ir. Nazrul Effendy, S.T., M.T., Ph.D. IPM dan Dwi Joko Suroso, S.T., M.Eng
selaku penguji yang telah memberikan masukan-masukan sehingga karya ini
menjadi lebih baik.

6. Mas Fafa dan Mbak Sari yang memberikan dukungan dan masukan kepada
peneliti.

7. Teman-teman satu tim penelitian; Ilham, Febry, Yasin, Yodha, Andaru, Tobias,
Duwi, dan Totok yang telah menjadi rekan seperjuangan untuk lulus di tengah
pandemi ini.

8. Orang-orang yang tidak saya sebutkan satu per satu yang juga telah berkontri-
busi dalam terwujudnya skripsi ini.
ix

Penulis sadar bahwa penelitian ini masih jauh dari kata sempurna. Untuk itu,
diharapkan bahwa ke depannya dapat dilakukan penelitain lanjutan untuk mengem-
bangkan ide-ide yang ada dalam penelitian ini. Diharapkan juga bahwa penelitian ini
dapat menjadi referensi dan acuan untuk pengembangan penelitian yang lebih hebat
ke depannya.

Yogyakarta, September 2020

Penulis
DAFTAR ISI

HALAMAN JUDUL i

PERNYATAAN BEBAS PLAGIASI ii

HALAMAN PENGESAHAN iv

HALAMAN TUGAS v

HALAMAN PERSEMBAHAN v

HALAMAN MOTTO vi

KATA PENGANTAR vii

DAFTAR LAMBANG DAN SINGKATAN xviii

INTISARI xxi

ABSTRACT xxii

I. PENDAHULUAN 1
I.1. Latar Belakang . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
I.2. Perumusan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . 3
I.3. Batasan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
I.4. Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I.5. Manfaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

II. TINJAUAN PUSTAKA 6

III. DASAR TEORI 12

x
xi

III.1. Psikoterapi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
III.2. Emosi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
III.2.1. Emosi dalam psikoterapi . . . . . . . . . . . . . . . . . . . . 15
III.3. Electroencephalography . . . . . . . . . . . . . . . . . . . . . . . 16
III.3.1. Gelombang Otak . . . . . . . . . . . . . . . . . . . . . . . . 18
III.3.2. Artefak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
III.4. Filter Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
III.5. Metode Welch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
III.6. Support Vector Machine . . . . . . . . . . . . . . . . . . . . . . . 28
III.6.1. Linear Classifier . . . . . . . . . . . . . . . . . . . . . . . . 28
III.6.2. Margin Klasifikasi . . . . . . . . . . . . . . . . . . . . . . . 30
III.6.3. Maximum Margin Classifier . . . . . . . . . . . . . . . . . . 32
III.6.4. Kernel dan Hiperparameter . . . . . . . . . . . . . . . . . . . 34
III.6.5. Klasifikasi Multi-Kelas . . . . . . . . . . . . . . . . . . . . . 36
III.6.6. K-Fold Cross-Validation . . . . . . . . . . . . . . . . . . . . 38
III.6.7. Hyperparameter Tuning . . . . . . . . . . . . . . . . . . . . 40
III.7. Confusion Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
III.8. Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

IV. PELAKSANAAN PENELITIAN 43


IV.1. Tempat dan Waktu Penelitian . . . . . . . . . . . . . . . . . . . . 43
IV.2. Metode Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . 43
IV.3. Alat dan Bahan Penelitian . . . . . . . . . . . . . . . . . . . . . . 43
IV.4. Tata Laksana Penelitian . . . . . . . . . . . . . . . . . . . . . . . 46
IV.4.1. Studi Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . 46
IV.4.2. Perancangan Sistem . . . . . . . . . . . . . . . . . . . . . . . 46
IV.4.3. Pembangunan Sistem . . . . . . . . . . . . . . . . . . . . . . 47
xii

IV.4.4. Pengambilan Data EEG . . . . . . . . . . . . . . . . . . . . . 48


IV.4.5. Pelatihan Sistem . . . . . . . . . . . . . . . . . . . . . . . . 50
IV.4.6. Pengujian Sistem . . . . . . . . . . . . . . . . . . . . . . . . 54
IV.4.7. Analisis Hasil Pengujian . . . . . . . . . . . . . . . . . . . . 54

V. HASIL DAN PEMBAHASAN 55


V.1. Hasil Perancangan Sistem . . . . . . . . . . . . . . . . . . . . . . 55
V.1.1. Tuntutan Rancangan . . . . . . . . . . . . . . . . . . . . . . 55
V.1.2. Diagram Blok . . . . . . . . . . . . . . . . . . . . . . . . . . 55
V.1.3. Diagram Alir . . . . . . . . . . . . . . . . . . . . . . . . . . 56
V.2. Hasil Pembangunan Sistem . . . . . . . . . . . . . . . . . . . . . 62
V.2.1. Program Preprocessing dan Pemilahan Data . . . . . . . . . . 62
V.2.2. Program Ekstraksi Fitur . . . . . . . . . . . . . . . . . . . . . 63
V.2.3. Program SVM . . . . . . . . . . . . . . . . . . . . . . . . . . 63
V.3. Pembahasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
V.3.1. Hasil Pembangkitan Emosi . . . . . . . . . . . . . . . . . . . 64
V.3.2. Pembagian Data . . . . . . . . . . . . . . . . . . . . . . . . . 66
V.3.3. Hasil Validasi Silang . . . . . . . . . . . . . . . . . . . . . . 67
V.3.4. Hasil Pengujian Sistem . . . . . . . . . . . . . . . . . . . . . 72

VI. KESIMPULAN DAN SARAN 78


VI.1. Kesimpulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
VI.2. Rencana Penelitian Ke Depan . . . . . . . . . . . . . . . . . . . . 78

LAMPIRAN

A. Hasil Ekstraksi Fitur dan Validasi SIlang 84

B. Listing Program 93
xiii

B.1. Program Preprocessing dan Pemilahan Data . . . . . . . . . . . . . 93


B.2. Program Ekstraksi Fitur . . . . . . . . . . . . . . . . . . . . . . . 95
B.3. Program SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
DAFTAR TABEL

2.1. Ringkasan Tinjauan Pustaka . . . . . . . . . . . . . . . . . . . . . . 9


2.2. Ringkasan Tinjauan Pustaka . . . . . . . . . . . . . . . . . . . . . . 10

4.1. Bahan Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44


4.2. Alat Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3. Kernel dan hiperparameter validasi . . . . . . . . . . . . . . . . . . . 53

5.1. Keberhasilan Pembangkitan Emosi Berdasarkan Jenis Emosi . . . . . 64


5.2. Keberhasilan Pembangkitan Emosi Berdasarkan Variasi Video . . . . 66
5.3. Akurasi Kernel Linier . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.4. Akurasi Kernel RBF dalam % . . . . . . . . . . . . . . . . . . . . . . 69
5.5. Akurasi Kernel Linier . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.6. Akurasi Kernel RBF dalam % . . . . . . . . . . . . . . . . . . . . . . 71
5.7. Confusion matrix hasil pengujian multi-sesi . . . . . . . . . . . . . . 72
5.8. Nilai precision, recall, dan F1 pengujian multi-sesi . . . . . . . . . . 73
5.9. Confusion matrix hasil pengujian sesi tunggal . . . . . . . . . . . . . 74
5.10. Nilai precision, recall, dan F1 pengujian sesi tunggal . . . . . . . . . 74

A.1. Fitur daya gelombang delta hingga gamma elektroda Fp1 dari sampel
1 hingga 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
A.2. Fitur energi gelombang delta hingga gamma elektroda Fp1 dari sam-
pel 1 hingga 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
A.3. Fitur asimetri gelombang delta hingga gamma elektroda Fp1-Fp2 dari
sampel 1 hingga 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
A.4. Fitur daya gelombang delta hingga gamma elektroda Fp1 dari sampel
1 hingga 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

xiv
xv

A.5. Fitur energi gelombang delta hingga gamma elektroda Fp1 dari sam-
pel 1 hingga 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
A.6. Fitur asimetri gelombang delta hingga gamma elektroda Fp1-Fp2 dari
sampel 1 hingga 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
A.7. Hasil validasi silang multi-sesi beserta hyperparameter yang digunakan 91
A.8. Hasil validasi silang sesi tunggal beserta hyperparameter yang digu-
nakan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
DAFTAR GAMBAR

3.1. Circumplex model of affect [6] . . . . . . . . . . . . . . . . . . . . . 15


3.2. Sistem penempatan elektroda EEG 10-20 [9] . . . . . . . . . . . . . 17
3.3. Ilustrasi gelombang δ, θ, α, β, dan γ dalam mikrovolt selama 1 detik
[9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4. Ilustrasi rekaman EEG yang normal [18] . . . . . . . . . . . . . . . . 21
3.5. Ilustrasi filter (a) high pass, (b) low pass, (c) band stop, atau (d) band
pass [19] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.6. Ilustrasi plot PSD [22] . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.7. Sebuah classifier linier. Batas keputusan (titik x sehingga w| x + b =
0) membagi bidang menjadi dua set tergantung dari tanda w| x + b [23] 30
3.8. SVM linier. Titik yang dilingkari adalah support vector-contoh yang
paling dekat dengan batas keputusan. Mereka menentukan margin di
mana dua kelas dipisahkan [23] . . . . . . . . . . . . . . . . . . . . 31
3.9. Efek dari konstanta soft margin, C, pada batas keputusan [23] . . . . 34
3.10. Efek dari parameter inverse-width dari kernel Gaussian (γ) untuk ni-
lai tetap pada konstanta soft margin [23] . . . . . . . . . . . . . . . . 36
3.11. Pembagian data 5-fold cross-validation untuk hyperparameter tuning
dan pengujian performa akhir model [26] . . . . . . . . . . . . . . . 40
3.12. Confusion matrix [27] . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.1. Alur pelaksanaan penelitian . . . . . . . . . . . . . . . . . . . . . . 46


4.2. Sketsa ruangan pengambilan data . . . . . . . . . . . . . . . . . . . 49
4.3. Self Assessment Manikin . . . . . . . . . . . . . . . . . . . . . . . . 50

5.1. Diagram blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56


5.2. Diagram alir perangkat lunak preprocessing dan pemilahan data . . 57

xvi
xvii

5.3. Diagram alir perangkat lunak ekstraksi fitur . . . . . . . . . . . . . . 59


5.4. Diagram alir perangkat lunak SVM . . . . . . . . . . . . . . . . . . 61
DAFTAR LAMBANG DAN SINGKATAN

Lambang Romawi
Lambang Kuantitas Satuan
b Bias –
C Konstanta Soft Margin –
k Jumlah Fold –
N Orde Filter –
Sx (ν) PSD µV 2 /Hz
w Weight Vector –
W Fungsi Window –

Lambang Yunani
Lambang Kuantitas Satuan
α Gelombang alpha Hz
β Gelombang beta Hz
δ Gelombang delta Hz
γ Inverse Width Parameter Kernel Gaussian –
γ Gelombang gamma Hz
θ Gelombang theta Hz
ξi Slack Variable –

Subskrip
Lambang Deskripsi
left kiri
right kanan

xviii
xix

Superskrip
Lambang Deskripsi
| Transpose

Singkatan
ANN Artificial Neural Network
BNT Bayesian Network
DEAP Database for Emotion Analysis using Physiological Signal
DSP Digital Signal Processor
EEG Electroencephalography / Elektroensefalografi
FN False Negative
FP False Positive
HPI Head Position Indicator
IAPS International Affective Picture System
KNN K-Nearest Neighbor
LDA Linear Discriminant Analysis
MLP Multilayer Perceptron
OvO One-vs-One
ICA Independent Component Analysis
PCA Principal Component Analysis
PSD Power Spectral Density
PSO Particle Swarm Optimization
OvR One-vs-Rest
RBF Radial Basis Function
RBFN Radial Basis Function Network
RT Regression Tree
xx

SAM Self Assessment Manikin


SVM Support Vector Machine
TN True Negative
TP True Positive
RANCANG BANGUN SISTEM KLASIFIKASI EMOSI
BERBASIS ELECTROENCEPHALOGRAPHY DENGAN
SUPPORT VECTOR MACHINE (SVM) UNTUK
INSTRUMENTASI PENGUKURAN PSIKOTERAPI

oleh

Muhammad Ghazian Rasis Rahmanullah


16/394996/TK/44288

Diajukan kepada Departemen Teknik Nuklir dan Teknik Fisika Fakultas Teknik
Universitas Gadjah Mada pada tanggal 16 Oktober 2020
untuk memenuhi sebagian persyaratan untuk memperoleh derajat
Sarjana Program Studi Teknik Fisika

INTISARI
Efektivitas psikoterapi selama ini dievaluasi dari perubahan emosi klien yang
diukur secara subjektif. Sehingga perlu dikembangakan suatu sistem indikator objek-
tif yang mampu mengenali emosi klien secara objektif. Banyak indikator fisiologis
yang secara natural berubah seiring dengan perubahan emosi, salah satunya adalah
aktivitas otak. Aktivitas otak manusia dipantau dengan menggunakan teknik ele-
ctroencephalography (EEG) dengan mengukur potensial listrik yang timbul akibat
aktivitas otak manusia. Saat ini belum ada sistem klasifikasi jenis emosi dengan me-
manfaatkan data EEG yang cocok untuk diterapkan dalam pengukuran psikoterapi.
Data EEG memiliki pola-pola yang tidak dapat dibedakan dengan pengamat-
an secara langsung. Oleh karena itu digunakan salah satu algoritma machine lear-
ning yaitu support vector machine (SVM). Untuk melakukan klasifikasi, digunakan
fitur daya, energi, dan asimetri serebral pada data EEG. Dilakukan metode sampling
sesi tunggal dan multi-sesi. Pada penelitian ini diperoleh sistem klasifiasi emosi se-
nang, takut, sedih, dan tenang dengan akurasi 63,29% untuk sampel sesi tunggal dan
45,00% untuk sampel multi-sesi.

Kata kunci: Psikoterapi, Electroencephalography, Support Vector Machine, Klasi-


fikasi Emosi.

Pembimbing Utama: Prof. Ir. Sunarno, M.Eng., Ph.D., IPU


Pembimbing Pendamping: Ir. Memory Motivanisman W., M. Eng., IPM

xxi
DESIGN AND BUILD OF
ELECTROENCEPHALOGRAPHY-BASED EMOTION
CLASSIFICATION SYSTEM WITH SUPPORT VECTOR
MACHINE (SVM) FOR PSYCHOTHERAPY MEASUREMENT
INSTRUMENTATION
by

Muhammad Ghazian Rasis Rahmanullah


16/394996/TK/44288
Submitted to the Department of Nuclear Engineering and Engineering Physics
Faculty of Engineering Universitas Gadjah Mada on October 16, 2020
in partial fulfillment of the requirement for the Degree of
Bachelor of Engineering in Engineering Physics

ABSTRACT
As far as we concerned, the effectiveness of psychotherapy is evaluated from
the client’s emotional changes as measured subjectively. So it is necessary to develop
an objective measurement system that is able to objectively identify client emotions.
Many physiological indicators change naturally with emotional changes, one of whi-
ch is brain activity. Human brain activity is monitored using the electroencephalogra-
phy (EEG) technique by measuring the electrical potential arising from human brain
activity. Currently, there is no emotion classification system using EEG data that is
suitable for application in psychotherapy measurements.
EEG data have patterns that cannot be distinguished from direct observation.
Therefore, one of the machine learning algorithms is used, namely support vector
machine (SVM). To perform the classification, power, energy, and cerebral asymme-
try features are extracted from EEG data. Single-session and multi-session sampling
methods are performed. In this study, we obtained a classification system of hap-
py, fearful, sad, and calm emotions with an accuracy of 63.29% for single-session
samples and 45.00% for multi-session samples.

Keywords: Psychotherapy, Electroencephalography, Support Vector Machine, Emo-


tion Classification

Supervisor: Prof. Ir. Sunarno, M.Eng., Ph.D., IPU


Co-supervisor: Ir. Memory Motivanisman W., M. Eng., IPM

xxii
BAB I

PENDAHULUAN

I.1. Latar Belakang

Psikoterapi adalah komunikasi antara klien dan terapis yang didesain untuk
menghasilkan perubahan perasaan, pengetahuan, sifat, dan tingkah laku yang
terbukti menyusahkan klien oleh terapis [1]. Klien adalah pihak yang memiliki
masalah psikologis sedangkan terapis adalah pihak yang membantu menyelesaikan
masalah psikologis pada klien [2]. Masalah psikologis didefinisikan secara luas
sebagai gangguan kondisi psikologis pada individu yang terkait dengan perasaan
susah dan reaksi yang tidak sesuai dengan budaya [3]. Psikoterapi digunakan
sebagai salah satu langkah intervensi oleh terapis terhadap masalah psikologis pada
klien selain intervensi secara medis.
Fokus pada emosi sudah menjadi bagian penting dari proses psikoterapi
bahkan sejak Freud (1910), hal ini tidak mengejutkan karena banyak kelainan
psikologis meliputi gangguan pada emosi (Berenbaum, Raghaven, Le, Vernon, &
Gomez, 2003; Kring, 2001) [4]. Emosi adalah fenomena perilaku kompleks yang
menggabungkan banyak tingkat integrasi saraf dan kimia dalam tubuh manusia [5].
Semua keadaan emosional dapat dinyatakan dalam circumplex model of affect [6].
Circumplex model of affect adalah model yang menjelaskan bahwa emosi muncul
dari dua sistem neuropsikologis, satu berhubungan dengan valence (senang-tidak
senang), dan yang lain dengan arousal atau kewaspadaan [6]. Valence digambarkan
sebagai perubahan perasaan yang sangat positif hingga sangat negatif, dan arousal,
yang juga disebut aktivasi adalah perubahan dari tidur menjadi bersemangat [7].
Mengingat pentingnya emosi dalam psikoterapi, karena banyak kelainan psikologis

1
2

meliputi gangguan pada emosi, diperlukan cara untuk mengukur emosi sebagai
indikator efektivitas terapi [4]. Selama ini, perubahan emosi klien dalam psikoterapi
diukur secara subjektif dengan menggunakan kuesioner. Hal ini menyebabkan
adanya kesalahan dalam identifikasi emosi klien apabila pengisian kuesioner tidak
dilakukan dengan benar. Oleh karena itu, identifikasi emosi secara objektif dengan
menggunakan parameter fisis yang dapat diukur perlu dikembangkan. Identifikasi
emosi secara objektif ini dapat mengeliminasi kemungkinan ketidakpastian, bias,
dan kesalahan dalam identifikasi emosi secara subjektif dengan menggunakan
kuesioner.
Karakteristik respons terhadap keadaan emosional seseorang telah terbukti
dapat direpresentasikan dengan sinyal Electroencephalography (EEG) [8]. EEG
adalah pengukuran potensi (tegangan) yang mencerminkan aktivitas listrik otak
manusia [9]. Penelitian yang sudah ada menemukan bahwa emosi dapat
diklasifikasikan berdasarkan data EEG sebagai berikut. Marah, takut, dan terkejut
diklasifikasikan dengan 3 karakteristik data hasil pengukuran EEG (frekuensi,
asimetri serebral, koherensi) menggunakan Linear Discriminant Analysis (LDA)
dengan akurasi sebesar 66,3% [10]. Senang, tenang, sedih, dan takut berhasil
diklasifikasikan menggunakan KNN dan k=3 dengan akurasi 61% [7]. Tenang,
marah, dan senang diklasifikasikan menggunakan SVM dengan kernel RBF, akurasi
yang didapatkan sebesar 60% [11]. Gembira, marah, sedih, dan kenikmatan
diklasifikasikan menggunakan SVM dengan akurasi rata-rata 82,29% [8]. Himpunan
data DEAP diklasifikasikan menggunakan Radial Basis Function Network dengan
akurasi 84,6% [12]. Dari penelitian sebelumnya, dapat dilihat bahwa jenis emosi
yang diklasifikasikan dan classifier yang digunakan berpengaruh pada akurasi
klasifikasi emosi [7] [8] [10] [11] [12] [13].
Emosi klien yang dipilih dalam klasifikasi oleh peneliti adalah senang, takut,
3

sedih, dan tenang dengan pertimbangan bahwa emosi tersebut kemungkinan muncul
dalam proses psikoterapi. Perubahan emosi menimbulkan perubahan frekuensi dan
amplitudo pada sinyal EEG. Akan tetapi perubahan ini tidak dapat diidentifikasi
secara manual dengan observasi sinyal secara langsung karena kompleksitas dari
bentuk sinyal. Oleh karena itu diperlukan metode klasifikasi untuk membedakan
sinyal EEG dari emosi yang berbeda. Metode klasifikasi Support Vector Machine
(SVM) diusulkan untuk digunakan dalam penelitian ini untuk mengklasifikasikan
emosi senang, takut, sedih, dan tenang karena SVM telah terbukti memberikan
akurasi yang lebih tinggi dibandingkan dengan metode lain seperti LDA, KNN, RT,
BNT, dan ANN [8] [13] [14]. SVM adalah teknik machine learning yang digunakan
secara luas, salah satunya adalah untuk klasifikasi [14]. Machine learning adalah
teknik yang digunakan untuk menggantikan atau menirukan perilaku manusia untuk
menyelesaikan masalah atau melakukan otomatisasi [15]. Metode SVM diharapkan
dapat digunakan untuk mendapatkan hasil klasifikasi emosi berdasarkan data
pengukuran EEG pada instrumentasi pengukuran psikoterapi dengan akurasi lebih
dari 61%.

I.2. Perumusan Masalah

Bagaimana rancang bangun sistem klasifikasi emosi klien yang meliputi


perasaan senang, takut, sedih, dan tenang dengan metode Support Vector Machine
(SVM) secara akurat dengan menggunakan data Electroencephalography (EEG)
untuk instrumentasi pengukuran psikoterapi?

I.3. Batasan Masalah

Batasan-batasan yang menjadi lingkup pembahasan penelitian ini adalah:

1. Emosi yang diklasifikasikan adalah emosi senang, takut, sedih, dan tenang.
4

2. Rancang bangun sistem yang dilakukan adalah rancang bangun sistem


perangkat lunak.

3. Perangkat lunak yang dibangun tidak termasuk bagian antarmuka pengguna


grafis.

4. Data EEG masukan yang digunakan berformat .BDF yang direkam dengan
menggunakan alat EEG standar 16 kanal.

5. Fitur yang diekstrak adalah daya, energi, dan asimetri serebral.

6. SVM digunakan sebagai classifier dengan kernel linier dan RBF.

I.4. Tujuan

Merancang dan membangun sistem klasifikasi emosi klien yang meliputi


perasaan senang, takut, sedih, dan tenang dengan metode Support Vector Machine
(SVM) secara akurat dengan menggunakan data Electroencephalography (EEG)
untuk instrumentasi pengukuran psikoterapi.

I.5. Manfaat

Manfaat yang dapat diperoleh bila tujuan penelitian tercapai yaitu:

1. Bagi terapis psikoterapi, hasil penelitian dapat digunakan untuk memantau


keadaan emosi klien sebelum, saat, dan sesudah dilaksanakannya proses
psikoterapi secara terukur sebagai acuan untuk mengambil langkah yang tepat
dalam psikoterapi.

2. Bagi klien, hasil penelitian bermanfaat secara tidak langsung agar didapatkan
hasil psikoterapi secara optimal bagi klien sesuai dengan keadaan emosi
sebelum, sesaat, dan sesudah sesi terapi dijalankan.
5

3. Bagi peneliti, hasil penelitian dapat dijadikan sebagai alat bantu untuk
penelitian lebih lanjut mengenai klasifikasi emosi klien dalam psikoterapi
secara real-time.
BAB II

TINJAUAN PUSTAKA

Data EEG seseorang dapat digunakan melakukan identifikasi emosi emosi.


Penelitian mengenai klasifikasi emosi berdasarkan data EEG sudah beberapa kali
dilakukan. Penelitian yang dilakukan memiliki perbedaan dalam jumlah kanal EEG
yang digunakan, jumlah partisipan, metode preprocessing, fitur yang diekstrak, dan
metode klasifikasinya. Dengan pendekatan dalam melakukan klasifikasi yang
berbeda-beda ini, didapatkan hasil klasifikasi dengan akurasi yang berbeda-beda
pula.
Pada tahun 2010, dilakukan penelitian mengenai pengenalan emosi dalam
mendengarkan musik yang dilakukan oleh Yuan-Pin Lin dkk. Emosi senang, marah,
sedih, dan kenikmatan diklasifikasikan dengan menggunakan MLP dan SVM. Data
diperoleh dari 26 partisipan dengan pembagian 16 laki-laki dan 10 perempuan.
Partisipan berusia 24,40 ± 2,53. Perekaman sinyal EEG dilakukan dengan
menggunakan EEG 32 kanal. Dilakukan inspeksi visual untuk menghilangkan
artefak gerak yang serius dan jelas. Akurasi rerata tertinggi 82,29% ± 3,06%
didapatkan dengan classifier SVM dan fitur DASMI12. DASMI12 adalah asimetri
perbedaan daya dari 12 pasang elektroda pada sebelah kanan dan kiri kepala [8].
M.-S. Park, H.-S. Oh, H. Jeong, dan J.-H. Sohn mengklasifikasikan emosi
marah, takut, dan terkejut pada tahun 2013. Klasifikasi dilakukan dengan
menggunakan Linear Discriminant Analysis (LDA). Jumlah partisipan adalah 110
yang terdiri dari 57 pria dengan usia 24,7 ± 1,82 dan 53 wanita dengan usia 22,9 ±
1,67 tahun. Sinyal EEG didapatkan dari probe Cz, P3, P4, F3, dan F4. Dilakukan
penapisan dengan band pass filter pada frekuensi 0,7 - 46 Hz. Fitur yang diekstrak
yaitu pita frekuensi (theta, alpha, beta, dan gamma), asimetri serebral, dan koherensi

6
7

EEG. Akurasi tertinggi sebesar 66,3 % didapatkan dengan menggunakan semua fitur
[10]. Selain itu, pada tahun yang sama, A. T. Sohaib, S. Qureshi, J. Hagelbäck, O.
Hilborn, dan P. Jerčić membandingkan akurasi dari KNN, RT, BNT, SVM dan ANN
dalam mengklasifikasikan emosi berdasarkan nilai positif atau negatif dari gairah
dan valensi. Klasifikasi dilakukan dari data 15 orang partisipan dengan data EEG
yang diambil dari elektroda F3, F4, C3, C4, T3, T4, P3, dan P4. Artefak dihilangkan
dengan menggunakan ICA dan fitur nilai minimum, maksimum, rerata, dan standar
deviasi diekstrak. Dari data keseluruhan didapatkan akurasi tertinggi sebesar 56,1%
dengan menggunakan SVM. Apabila data dikelompokkan tiap 5 partisipan
didapatkan akurasi rerata tertinggi 66,47% dengan menggunakan SVM juga.
Apabila data dikelompokkan per individu didapatkan akurasi terbesar dengan KNN
[13].
Pada tahun 2015, R. M. Mehmood dan H. J. Lee mengklasifikasikan emosi
senang, tenang, sedih, dan takut dengan menggunakan KNN dan SVM. Digunakan
EEG dengan 14 kanal untuk pengambilan data. Data diperoleh dari 5 partisipan pria
yang diberi paparan untuk membangkitkan emosi dari database IAPS. Untuk
membersihkan data dari artefak digunakan ICA dan penolakan manual. Fitur yang
diekstrak dari data adalah 3 parameter Hjorth (activity, mobility, complexity)
Didapatkan akurasi maksimum sebesar 61% dengan menggunakan classifier KNN
dengan K = 3 [7]. Di tahun yang sama, himpunan data DEAP diklasifikasikan
berbagai jenis classifier dan proses ekstraksi fitur oleh Sreeshakthy M. dan Preethi J.
Data mentah ditapis dengan menyisakan frekuensi 4-40 Hz untuk ekstraksi fitur.
Digunakan fitur berupa gelombang hasil dekomposisi seperti gelombang alpha,
beta, gamma, dan theta. Fitur yang digunakan dipilih dari fitur hasil ekstraksi
dengan menggunakan algoritma PSO (Particle Swarm Optimization). Metode
ekstraksi connectivity features dan PCA dengan metode klasifikasi RBFN
8

menghasilkan akurasi tertinggi sebesar 84,6% [12].


Pada tahun 2016, K. Kawintiranon, Y. Buatong, dan P. Vateekul
mengklasifikasikan emosi senang, tenang, sedih, marah, dan netral dengan
menggunakan SVM dengan kernel linier, polinomial, dan RBF. Fitur yang
digunakan adalah power. Sampel data latih dan uji diambil dari sesi yang berbeda
sehingga lebih menyerupai skenario dalam pengaplikasian secara nyata. Didapatkan
akurasi terbesar 48,47% dengan kernel polinomial untuk data uji pada yang diambil
pada hari yang sama dan 50,50% dengan kernel linier untuk data uji yang diambil
setidaknya 5 hari setelah pengambilan data latih [16].
Pada tahun 2018, emosi tenang, marah, dan senang diklasifikasikan dengan
menggunakan SVM dengan kernel linear, polynomial, dan RBF oleh B. Kaur, D.
Singh, dan P. P. Roy. Data diambil dari 10 orang partisipan dengan menggunakan
EEG 14 kanal. Fitur fractal dimension diekstrak dengan menggunakan algoritma
Higuchi tanpa langkah preprocessing. Didapatkan akurasi rerata terbesar sebesar
60% pada SVM dengan kernel RBF [11].
Hasil penelitian sebelumnya dirangkum dalam Tabel 2.1. dan Tabel 2.2.
berikut ini.
9

Tabel 2.1. Ringkasan Tinjauan Pustaka

No Tahun Judul Peneliti Metode Hasil


1 2010 EEG- Yuan-Pin Menguji Classifier SVM
Based Lin dkk. performansi fitur mampu
Emotion DASMI12, mengklasifikasikan
Recognition RASMI12, PSD24, emosi senang,
in Music dan PSD30 dalam marah, sedih, dan
Listening klasifikasi emosi kenikmatan dengan
senang, sedih, akurasi terbesar
marah, dan nikmat 82,29% ± 3,06%
menggunakan SVM dengan fitur
dengan stimulus DASMI12.
musik
2 2013 Eeg-based M.-S. Mengklasifikasikan Emosi marah, takut,
emotion Park, emosi marah, takut, dan terkejut berhasil
recogntion H.-S. Oh, dan terkejut diklasifikasikan
during H. Jeong, berdasarkan data menggunakan LDA
emotionally dan J.-H. EEG menggunakan dengan akurasi
evocative Sohn LDA dengan fitur 66,3%.
films pita frekuensi,
asimetri serebral,
dan koherensi
3 2013 Evaluating A. T. Membandingkan Didapatkan akurasi
Classifiers Sohaib, S. performansi k-NN, tertinggi 56,1%
for Qureshi, J. RT, BN, SVM, dan menggunakan SVM
Emotion Hagelbäck, ANN untuk
Recognition O. mengklasifikasikan
Using Hilborn, 5 golongan emosi
EEG dan P. yang dibangkitkan
Jerčić dengan stimulus
IAPS
4 2015 Emotion R. M. Mengekstrak Emosi senang,
classification Mehmood parameter Hjorth tenang, sedih, dan
of EEG dan H. J. dari data EEG takut berhasil
brain Lee mengklasifikasikannya diklasifikasikan
signal dengan dengan akurasi
using menggunakan SVM maksimum sebesar
SVM and dan KNN 61,1% (k-NN)
KNN dengan K = 3 dan
38,9% (SVM)
10

Tabel 2.2. Ringkasan Tinjauan Pustaka

No Tahun Judul Peneliti Metode Hasil


5 2015 ClassificationSreeshakthy Menguji Akurasi terbesar
of emotion M. dan performansi didapatkan dari
from EEG Preethi J. klasifikasi emosi metode ekstraksi
using berbagai metode connectivity features
hybrid ekstraksi fitur dan PCA dengan
radial unsupervised dan metode klasifikasi
basis metode klasifikasi RBFN
function supervised
networks
with elitist
PSO
6 2016 Online K. Menguji Didapatkan akurasi
music Kawintiranon, performansi tertinggi untuk
emotion Y. normalisasi Z-score, valence sebesar
prediction Buatong, rescaling, dan 50,50% dengan
on dan P. frequency band normalisasi Z-score
multiple Vateekul percentage dalam dan SVM kernel
sessions klasifikasi emosi linier, dan 50,20%
of EEG pada skenario untuk arousal
data using pengambilan data dengan frequency
SVM multi-session band percentage
dan SVM kernel
polinomial
7 2018 EEG B. Kaur, Melaksanakan Emosi tenang,
Based D. Singh, pengujian marah, dan senang
Emotion dan P. P. performansi SVM berhasil
Classification Roy dengan kernel linier, diklasifikasikan
Mechanism polinomial, dan menggunakan SVM
in BCI RBF untuk dengan Kernel RBF
mengklasifikasikan dengan akurasi
emosi rerata sebesar 60%
Posisi Penelitian
8 2020 Penelitian M. Merancang bangun ?
ini Ghazian, sistem klasifikasi
Sunarno, emosi senang, takut,
M. sedih, dan tenang
Motivanisman dengan
menggunakan SVM
11

Berdasarkan penelitian-penelitian sebelumnya yang tercantum pada Tabel


2.1. dan Tabel 2.2., klasifikasi emosi dengan menggunakan data EEG sudah pernah
dilakukan. Akan tetapi penelitian - penelitian tersebut sebagian belum menggunakan
data primer dengan jumlah partisipan setidaknya 30, sebagian besar menggunakan
data latih dan data uji yang diambil dari satu sesi pada orang yang sama, dan tidak
menghubungkan hasil penelitian dengan kemungkinan aplikasi hasil penelitian
dalam psikoterapi. Oleh karena itu, penelitian yang akan dilakukan dilaksanakan
dengan tujuan untuk Mendapatkan hasil rancang bangun sistem klasifikasi emosi
klien yang meliputi perasaan senang, takut, sedih, dan tenang dengan metode SVM
secara akurat dengan menggunakan data EEG untuk instrumentasi pengukuran
psikoterapi. Akurasi hasil penelitian ini diharapkan lebih dari 61% mengacu pada
hasil penelitian nomor 4 dalam Tabel 2.1. yang melakukan klasifikasi pada
kelompok emosi yang sama dengan classifier yang berbeda.
BAB III

DASAR TEORI

III.1. Psikoterapi

Psikoterapi adalah komunikasi antara klien dan terapis yang didesain untuk
menghasilkan perubahan perasaan, pengetahuan, sifat, dan tingkah laku yang
terbukti menyusahkan klien oleh terapis [1]. Klien adalah pihak yang memiliki
masalah psikologis sedangkan terapis adalah pihak yang membantu menyelesaikan
masalah psikologis pada klien [2]. Psikoterapi merupakan salah satu cara untuk
membantu orang-orang dengan penyakit mental dan kesulitan emosional.
Psikoterapi dapat membantu menghilangkan atau mengendalikan gejala yang
mengganggu sehingga seorang dapat berfungsi dengan lebih baik dan dapat
meningkatkan kesehatan dan penyembuhan.
Fokus dalam proses psikoterapi adalah penyelesaian masalah psikologis.
Masalah psikologis dalam psikoterapi didefinisikan secara luas sebagai gangguan
kondisi psikologis pada individu yang terkait dengan perasaan susah dan reaksi yang
tidak sesuai dengan budaya [3]. Masalah yang ditolong oleh psikoterapi termasuk
kesulitan dalam mengatasi kehidupan sehari-hari; dampak trauma, penyakit medis
atau kehilangan, seperti kematian orang yang dicintai; dan gangguan mental tertentu,
seperti depresi atau kecemasan. Ada beberapa jenis psikoterapi dan jenis tertentu
dapat bekerja lebih baik dengan isu atau masalah tertentu. Psikoterapi dapat
digunakan dalam kombinasi dengan obat-obatan atau terapi lain.
Terdapat beberapa jenis psikoterapi yang digunakan oleh terapis. Pilihan
jenis terapi tergantung dari jenis penyakit, keadaan khusus klien, dan pilihan klien.
Berbagai elemen dalam pendekatan terapi yang berbeda dapat digunakan untuk

12
13

memenuhi kebutuhan klien. Beberapa jenis pendekatan dalam psikoterapi yaitu [3]:

1. Cognitive Behavioral Therapy (CBT)


CBT membantu klien untuk mengidentifikasi dan mengubah cara pikir serta
perilaku yang berbahaya atau tidak efektif, menggantinya dengan pemikiran
yang lebih akurat dan perilaku yang fungsional.

2. Interpersonal Therapy (IPT)


IPT meupakan bentuk jangka pendek perawatan yang membantu klien untuk
memahami masalah interpersonal pokok yang mengganggu yang berkaitan
dengan orang lain.

3. Dialectical Behavior Therapy


Dialectical Behavior Therapy adalah tipe CBT spesifik yang membantu
mengatur emosi. Sering digunakan untuk mengobati orang dengan pemikiran
bunuh diri, gangguan kepribadian ambang, gangguan makan, dan gangguan
stres pascatrauma.

4. Psyhcodynamic Therapy
Psychodynamic Therapy meningkatkan kesadaran diri dan mengubah pola lama
sehingga klien dapat lebih mengendalikan hidupnya.

5. Psychoanalisis
Psychoanalisis adalah bentuk dari psychodynamic therapy yang lebih intensif
dengan frekuensi sesi terapi tiga kali atau lebih dalam seminggu.

6. Supportive Therapy
Supportive therapy menggunakan panduan dan dorongan untuk membantu
klien mengembangkan sumber daya mereka sendiri. Ini membantu
membangun rasa percaya diri, mengurangi kecemasan, memperkuat
14

mekanisme mengatasi masalah, dan meningkatkan fungsi sosial dan


masyarakat.

III.2. Emosi

Menurut kamus Merriam-Webster, emosi adalah sebuah reaksi mental sadar


(seperti marah atau takut) yang dialami secara subjektif sebagaiperasaan kuat yang
biasanya diarahkan pada objek tertentu dan secara tipikal disertai dengan perubahan
fisiologis dan perilaku dalam tubuh [4]. Kemunculan emosi merupakan fenomena
perilaku kompleks yang menggabungkan banyak tingkat integrasi saraf dan kimia
dalam tubuh manusia [5]. Paradigma eksperimental yang ada dalam penelitian
neuroscience afektif mengemukakan bahwa emosi dapat dibagi ke dalam kategori
diskrit dan independen di mana struktur dan jalur saraf yang spesifik memunculkan
masing-masing kategori emosi. Akan tetapi terdapat pendekatan lain terhadap emosi
di mana emosi dinyatakan dalam model dimensi emosi yang menyatakan bahwa
semua keadaan afektif muncul dari sistem neurofisiologis yang sama dan saling
berkaitan.
Salah satu pendekatan dimensional yang disebut sebagai circumplex model of
affect menyatakan bahwa semua keadaan akfektif muncul dari dua sistem
neurofisiologis fundamental. Satu sistem terkait dengan valensi (kenyamanan-
ketidaknyamanan) dan yang lainnya terkait dengan gairah atau kewaspadaan
(aktivasi - deaktivasi) [6]. Tiap-tiap emosi dapat dipahami sebagai kombinasi linier
dari dua dimensi tersebut, atau sebagai bebagai tingkat valensi dan gairah seperti
yang ditunjukkan pada Gambar 3.1. Emosi senang merupakan kombinasi dari
kondisi aktif dan nyaman, emosi takut merupakan kombinasi dari kondisi aktif dan
tidak nyaman, emosi sedih merupakan kombinasi kondisi tidak aktif dan tidak
nyaman, serta emosi tenang merupakan kombinasi dari kondisi tidak aktif dan
15

nyaman. Keempat emosi ini merepresentasikan semua kuadran dari circumplex


model of affect.

Gambar 3.1. Circumplex model of affect [6]

III.2.1. Emosi dalam psikoterapi

Fokus pada emosi sudah menjadi bagian penting dari proses psikoterapi
bahkan sejak Freud (1910), hal ini tidak mengejutkan karena banyak kelainan
psikologis meliputi gangguan pada emosi (Berenbaum, Raghaven, Le, Vernon, &
Gomez, 2003; Kring, 2001). Fokus dalam emosi pada psikoterapi menjadi pusat
dalam pendekatan kontemporer pada berbagai jenis orientasi psikoterapi. Sebagai
contoh, penekanan pada kesadaran dan penerimaan emosi menjadi landasan
gelombang baru terapi cognitive-behavioral. Berbagai pendekatan psikoterapi
dimaksudkan untuk mengembangkan dan/atau meningkatan keterampilan yang
16

berkaitan dengan fungsi emosional, oleh karena itu penting bagi terapis untuk
menilai memiliki kemampuan dalam menilai peningkatan klien dalam keterampilan
emosi yang ditargetkan selama masa terapi [4].

III.3. Electroencephalography

Electroencephalography (EEG) adalah pengukuran potensial listrik yang


menggambarkan aktivitas elektrik otak manusia. Pengkukuran EEG adalah tes yang
sudah tersedia yang memberikan bukti tentang bagaimana otak berfungsi. EEG
digunakan secara luas oleh dokter dan ilmuwan untuk mempelajari fugsi otak dan
mendiagnosis gangguan neurologis. Pada saat pengujian EEG, piringan kecil yang
disebut dengan elektroda diletakkan pada lokasi yang berbeda-beda di permukaan
kulit kepala. Tiap elektroda disambungkan dengan sebuah amplifier dan alat
perekam. Sinyal elektrik dari otak kemudian dikonversikan menjadi tampilan dalam
bentuk gelombang pada layar komputer untuk merekam hasilnya [17].
Elektroda-elektroda mendeteksi perubahan muatan listrik sangat kecil yang
muncul dari aktivitas sel otak. Terdapat dua jenis EEG tergantung dari di mana
sinyal diambil di kepala yaitu scalp dan intracranial. Pada scalp EEG atau EEG
kulit kepala, elektroda kecil diletakkan di permukaan kulit kepala dengan kontak
secara mekanik dan listrik yang baik. Sedangkan pada intracranial EEG, elektroda
spesial ditanamkan secara langsung di otak. Amplitudo sinyal EEG biasanya berada
dalam rentang 1 hingga 100 µV. Karena formasi otak tidak seragam dan korteks
terorganisir secara fungsional, EEG dapat berbeda-beda tergantung dari lokasi
elektroda perekaman [17].
Metode standar peletakan elektroda pada EEG kulit kepala adalah sistem
elektroda internasional 10-20. Angka 10 dan 20 merepresentasikan jarak aktual
antar elektroda adalah 10% atau 20% dari jarak total depan-belakang atau kanan-kiri
17

tempurung kepala. Jarak total depan-belakang ditentukan dari dua titik yaitu nasion,
yang merupakan titik di antara dahi dan hidung, sejajar dengan mata, dan inion,
yang berupa tulang menonjol pada pangkal tengkorak di bagian belakang kepala.
Setiap lokasi menggunakan sebuah huruf untuk mengindentifikasi lobus otak dan
angka untuk mengindentifikasi lokasi belahan otak [9].

Gambar 3.2. Sistem penempatan elektroda EEG 10-20 [9]

Gambar 3.2 mengilustrasikan penempatan elektroda EEG. Huruf F, T, C, P,


dan O adalah singkatan dari Frontal, Temporal, Central, Parietal, dan Occipital.
Huruf z berarti bahwa elektroda diletakkan pada garis tengah kepala. Angka ganjil
berarti bahwa elektroda berada di sebelah kiri sedangkan angka genap berarti bahwa
elektroda berada di sebelah kanan dari garis tengah kepala. Karena sinyal tegangan
EEG merepresentasikan perbedaan tegangan antara dua elektroda, penampilan sinyal
EEG pada mesin pembaca EEG dapat diatur dengan berbagai cara. Cara peletakan
elektroda disebut dengan montage. Terdapat beberapa montage EEG sebagai berikut
[9].

1. Bipolar montage
Sepasang elektroda membentuk satu kanal EEG. Tiap kanal merepresentasikan
perbedaan potensial antara dua elektroda yang berdampingan. Sebagai contoh
18

apabila terdapat kanal bernama "Fp1-F3" maka berarti bahwa kanal tersebut
menunjukkan perbedaan tegangan antara elektroda Fp1 dan F3.

2. Referential montage
Setiap kanal merepresentasikan perbedaan potensial antara sebuah elektroda
dengan elektroda referensi yang sudah ditentukan. Tidak ada posisi standar
untuk elektroda referensi. Akan tetapi, elektroda referensi memiliki posisi yang
berbeda dengan elektroda yang membaca sinyal. Posisi tengah kepala biasanya
digunakan karena referensi pada posisi tersebut tidak memperkuat sinyal pada
satu belahan kepala dibandingkan dengan belahan lainnya. Referensi lain yang
sering digunakan adalah rerata dari elektroda yang dipasang pada kedua cuping
telinga atau mastoid.

3. Average referencing montage


Tiap keluaran dari semua elektroda dijumlahkan dan direrata, sinyal rerata
kemudian digunakan sebagai referensi untuk tiap kanal.

4. Laplacian montage
Tiap kanal merepresentasikan perbedaan antara sebuah elektroda dan rerata
yang telah diberi bobot dari elektroda di sekitarnya.

III.3.1. Gelombang Otak

Frekuensi adalah salah satu kriteria paling penting dalam menilai keadaan
abnormal dalam EEG klinik dan memahami perilaku fungsional dalam penelitian
kognitif. Frekuensi mengacu pada aktivitas ritmik berulang (dalam Hz). Jumlah
siklus dalam satu detik dihitung sebagai frekuensi. Dengan milyaran osilasi neuron
sebagai sumbernya, potensial listrik EEG manusia diwujudkan sebagai osilasi
aperiodik yang tidak dapat diprediksi dengan osilasi rentetan berselang. Pada orang
19

dewasa sehat, amplitudo dan frekuensi sinyal berubah dari satu keadaan ke keadaan
lain, seperti bangun dan tidur. Terdapat lima gelombang otak utama yang dibedakan
berdasarkan rentang frekuensinya. Frekuensi-frekuensi ini dari pita frekuensi rendah
ke tinggi, secara berurutan, biasanya dikategorikan pada pita spesifik seperti 0,5-4
Hz (delta, δ), 4-8 Hz (theta, θ), 8-13 Hz (alpha, α), 13-30 Hz (beta, β), dan >30 Hz
(gamma, γ). Frekuensi tinggi sering kali lebih umum pada otak dalam keadaan
abnormal seperti epilepsi[19]. Ritme gelombang otak dalam 1 detik diilustrasikan
pada Gambar 3.3. [9].

Gambar 3.3. Ilustrasi gelombang δ, θ, α, β, dan γ dalam mikrovolt selama 1 detik


[9]
20

Gelombang delta berada dalam rentang frekuensi 0,5-4 Hz dan memiliki


amplitudo tertinggi serta merupakan gelombang paling lambat. Gelombang ini
diasosiasikan dengan tidur nyenyak, kelainan otak serius, dan keadaan bangun.
Gelombang theta berada dalam rentang frekuensi antara 4 dan 8 Hz dengan
amplitudo biasanya lebih besar dari 20 µV. Gelombang theta timbul dari tekanan
emosional, terutama rasa frustrasi atau kekecewaan dan hal-hal bawah sadar,
inspirasi kreatif, dan meditasi dalam. Gelombang alpha mengandung frekuensi
dengan rentang 8 hingga 13 Hz, dengan amplitudo 30-50 µV, yang muncul terutama
pada bagian posterior kepala (occipital lobe) saat subjek menutup mata atau dalam
keadaan relaksasi. Gelombang ini biasanya diasosiasikan dengan aktivitas mental
intens, tekanan, dan tensi. Aktivitas alpha yang direkam dari daerah sensorimotor
juga disebut sebagai gelombang mu. Gelombang beta ada dalam rentang frekuensi
13-30 Hz. Gelombang ini terlihat dalam amplitudo rendah dan frekuensi yang
bervariasi secara simetris pada kedua sisi di area frontal. Saat otak terangsang dan
aktif terlibat dalam aktivitas mental, ia menghasilkan gelombang beta. Gelombang
ini adalah karakteristik dari pikiran yang sedang dipakai. Gelombang beta biasanya
diasosiasikan dengan hal-hal aktif, perhatian aktif, dan fokus pada dunia luar atau
pemecahan masalah konkret. Gelombang gamma mempunyai frekuensi 30Hz dan
lebih. Ritme ini terkadang didefinisikan memiliki frekuensi maksimnal sekitar 80
atau 100 Hz. Gelombang ini diasosiasikan dengan dengan berbagai fungsi motorik
dan kognitif. Gambar 3.4. menunjukkan ilustrasi dari rekaman EEG normal. Ini
adalah contoh EEG saat bangun yang menunjukkan aktivitas beta dengan jumlah
normal. Seperti yang ditunjukkan di sini, aktivitas beta seringkali lebih mudah
diidentifikasi saat keadaan bangun yang rileks atau awal dari rasa kantuk [9].
21

Gambar 3.4. Ilustrasi rekaman EEG yang normal [18]

III.3.2. Artefak

Dalam praktik pembacaan sinyal EEG, tidak semua sinyal berasal dari
aktivitas neuron otak yang diinginkan. Sering kali, aktivitas neuron pada bagian lain
atau potensial listrik dari aktivitas lain selain neuron dapat terbaca. Bagian-bagian
dari sinyal terekam yang muncul dari sumber lain selain yang diinginkan disebut
dengan artefak. Dengan demikian, artefak adalah bentuk interferensi atau derau
relatif terhadap sinyal yang diinginkan. Terdapat beberapa jenis artefak berdasarkan
sumber interferensi atau derau, dengan contoh sebagai berikut [18].

1. Environmental artifacts
Merupakan artefak yang berasal dari lingkungan sekitar. Artefak dapat berupa
gangguan elektromagnetik ataupun mekanik. Beberapa contoh dari artefak
22

jenis ini yaitu gelombang elektromagnetik yang ditimbulkan oleh aliran listrik
AC, getaran yang menimbulkan lonjakan sinyal, dan medan elektromagnetik
dari perangkat elektronik.

2. Instrumentation artifacts
Merupakan artefak yang mungkin muncul akibat digunakannya penggunaan
instrumen pada saat pengukuran EEG. Beberapa diantaranya adalah
interferensi elektromagnetik dari penyajian stimulus, osilasi kontinyu pada
frekuensi spesifik yang digunakan oleh kumparan head position indicator
HPI, dan fluktuasi amplitudo tinggi acak atau sinyal nol konstan pada sebuah
kanal karena malfungsi sensor.

3. Biological artifacts
Merupakan artefak yang berasal dari aktivitas bagian tubuh lain pada orang
yang sedang menjalani perekaman EEG. Sinyal dengan pola mirip QRS dapat
muncul akibat aktivitas elektrik di jantung. Defleksi pendek seprti fungsi
undak dan defleksi besar sementara khususnya khususnya pada kanal EEG
frontal muncul akibat gerakan mata dan kedipan. Selain itu juga terdapat
fluktuasi frekuensi tinggi pada beberapa kanal yang mungkin muncul akibat
aktivitas otot.

III.4. Filter Digital

Seperti yang sudah dibahas pada subbab mengenai artefak, pada data EEG
terekam banyak artefak yang bukan merupakan sinyal dari gelombang otak yang
ingin direkam. Oleh karena itu setelah direkam dan sebelum diolah lebih lanjut
dilakukan langkan preprocessing yang bertujuan untuk menghilangkan/mengurangi
artefak. Untuk melakukan hal ini digunakan filter. Filter adalah sistem yang
23

memproses sinyal untuk mendeteksi dan mengekstrak komponen yang diinginkan


dari bagian yang tidak diinginkan, seperti derau atau sinyal lain yang
mendistorsinya. Terdapat dua tipe utama filter yaitu analog dan digital. Kedua jenis
filter berbeda dalam struktur fisiknya dan bagaimana mereka bekerja [19].

1. Filter analog menggunakan rangkaian elektronik untuk menghasilkan efek


penapisan. Rangkaian filter ini diterapkan secara luas dalam amplifikasi sinyal
video, equalizer grafis dalam sistem hi-fi, reduksi derau, dan sebagainya.

2. Filter digital menggunakan prosesor digital untuk melakukan penghitungan


numerik pada nilai sinyal yang tersampel. Prosesor ini dapat jadi PC atau
sebuah Digital Signal Processor (DSP)

Untuk melakukan filtering pada data EEG digunakan filter digital karena data EEG
sudah merupakan sinyal EEG yang tersampel.
Filter digital linear dibagi menjadi dua kategori berdasarkan panjang respons
impulsnya. Filter Infinite Impulse Response dan filter Finiter Impulse Response.
Filter digital linear FIR memiliki respons terbatas pada fungsi impuls unit masukan
dengan keuntungan besar menjamin stabilitas dan fase yang linier absolut (selama
respons impulsnya simetris atau anti-simetris terhadap origin)-sifat yang dengan
mudah menjelaskan penerapan yang luas dalam sistem telekomunikasi [19]. Rumus
dari filter FIR dituliskan pada Persamaan 3.1. di mana x(n) adalah series masukan,
a(k) adalah series yang merepresentasikan filter, N adalah orde filter, dan y(n)
adalah series keluaran filter [20]. k memiliki panjang sebesar N + 1 dari 0 hingga N
sedangkan n sesuai panjang masukan.

n
X
y(n) = a(k)x(n − k) (3.1)
k=0
24

Filter digital linier IIR memiliki respons waktu tak terbatas terhadap fungsi
impuls unit masukan. Untuk penghitungan keluaran, biasanya digunakan nilai
masukan dan keluaran dari kejadian sebelumnya, oleh karena itu filter ini disebut
dengan filter rekursif. Filter ini memiliki kompleksitas komputasi yang lebih sedikit
daripada filter FIR yang sebanding, tetapi tidak dapat memastikan stabilitas atau fase
linier, yang mengakibatkan distorsi[26]. Rumus dari filter IIR dituliskan pada
Persamaan 3.2. di mana x(n) adalah series masukan, a(k) dan b(j) adalah series
yang merepresentasikan filter, N dan P adalah orde filter, dan y(n) adalah series
keluaran filter [20].

N
X P
X
y(n) = a(k)x(n − k) + b(j)y(n − j) (3.2)
k=0 j=0

Filter dapat dibuat untuk tugas yang berbeda-beda. Sebagai contoh filter dapat
digolongkan menjadi empat tipe dasar yaitu high pass, low pass, band stop, atau band
pass [19]. Ilustrasi tipe filter dapat dilihat pada Gambar 3.5..

Gambar 3.5. Ilustrasi filter (a) high pass, (b) low pass, (c) band stop, atau (d) band
pass [19]
25

Jenis-jenis filter dijelaskan sebagai berikut:

(a) High Pass


Filter high pass digunakan untuk menghilangkan frekuensi rendah sinyal
dengan frekuensi lebih rendah daripada frekuensi yang ditentukan.

(b) Low Pass


Filter low pass menghilangkan frekuensi yang lebih tinggi dari frekuensi yang
ditentukan.

(c) Band Pass


Filter band pass hanya mengizinkan konten para rentang frekuensi terbatas dari
sinyal yang dilewatkan pada filter.

(d) Band Stop


Filter band stop digunakan untuk menghilangkan konten pada rentang
frekuensi tertentu[26].

III.5. Metode Welch

Metode Welch merupakan salah satu metode untuk melakukan estimasi


Power Spectral Density (PSD) sinyal yang menunjukkan daya sinyal versus
frekuensi. Estimasi PSD diperlukan untuk mengekstraksi fitur domain frekuensi dari
gelombang delta, theta, alpha, beta, dan gamma. Dengan mengubah data ke dalam
domain frekuensi maka daya gelombang otak dapat dipisahkan berdasarkan
frekuensinya. Langkah-langkah dari metode Welch adalah sebagai berikut [21].

1. Melakukan partisi urutan data x[0], x[1], . . . , x[N − 1] dengan N sebagai


panjang data menjadi K segmen:
Segmen 1: x[0], x[1], . . . , x[M − 1]
26

Segmen 2: x[S], x[S + 1], . . . , x[M + S − 1]


Segmen K: x[N − M ], x[N − M + 1], . . . , x[N − 1]
di mana
M = Jumlah titik data
S = Jumlah pergeseran titik tiap segmen
K = Jumlah segmen

2. Untuk tiap segmen (k = 1 hingga K), hitung windowed Discrete Fourier


Transform (DFT) pada beberapa frekuensi ν = i/M dengan
−(M/2 − 1) ≤ i ≤ M/2:

N
X −1
Xk (ν) = x[m]w[m] exp(−j2πνm) (3.3)
m

di mana
m = (k − 1)S, . . . , M + (k − 1)S − 1
w[m] = fungsi window misalkan Hann, w[m] = sin2 ( πm
N
)

3. Untuk tiap segmen (k = 1 hingga K), susun nilai periodogram yang sudah
dimodifikasi, Pk (f ), dari DFT:

1
Pk (ν) = |Xk (ν)|2 (3.4)
W

di mana
M
X
W = w2 [m] (3.5)
m=0

4. Hitung rerata dari nilai periodogram untuk mendapatkan estimasi PSD Wlech:

K
1 X
Sx (ν) = Pk (ν) (3.6)
K k=1
27

Metode Welch juga disebut dengan metode weighted overlapped segment


averaging (WOSA) dan metode rerata periodorgam. Parameter M adalah panjang
tiap segmen. Beberapa orang menyebut segmen sebagai batch. Sehingga M adalah
ukuran batch. M juga merupakan panjang dari DFT. Parameter S adalah jumlah titik
pergeseran antar segmen. Ini merupakan jumlah titik baru pada tiap segmen atau
batch. Jumlah titik yang sama dari dua segmen yang berdekatan adalah M − S. Dua
segmen yang berdekatan dikatakan tumpang tindih sebanyak M − S titik atau
100[(M − S/M )]%. Saat S = M , segmen tidak tumpang tindih. Saat S = 0, 5M ,
segmen mengandung bagian yang 50% yang sama atau tumpang tindih. M-titik
urutan w[m] adalah fungsi window. Beberapa fungsi window yang umum digunakan
adalah rectangular, Hann atau Hanning, Hamming, Blackman, Blackman-Harris,
dan Kaiser-Bessel. Parameter K adalah jumlah segmen atau batch. Angka ini adalah
jumlah periodogram yang dirata-rata bersama untuk membentuk estimasi PSD
Sx (f ) [21]. Ilustrasi plot PSD ditunjukkan dalam Gambar 3.6..

Gambar 3.6. Ilustrasi plot PSD [22]


28

III.6. Support Vector Machine

Support Vector Machine (SVM) adalah metode klasifikasi canggih yang


diperkenalkan pada tahun 1992 oleh Boser, Guyon, dan Vapnik. Classifier SVM
digunakan secara luas dalam bioinformatika (dan disiplin lain) karena akurasinya
yang tinggi, kemampuan untuk menangani data high-dimensional seperti ekspresi
gen, dan fleksibilitas dalam memodelkan beragam sumber data [23].
SVM termasuk dalam kategori umum metode kernel. Metode kernel adalah
algoritma yang bergantung pada data hanya melalui hasil operasi dot. Dalam kasus
ini, operasi dot dapat diganti dengan sebuah fungsi kernel yang menghitung operasi
dot dalam beebrapa ruang fitur yang mungkin berdimensi tinggi. Hal ini memiliki dua
keuntungan: Pertama, kemampuan untuk menghasilkan batas keputusan yang non-
linier menggunakan metode yang didesain untuk classifier linier. Kedua, penggunaan
fungsi kernel mengizinkan penggunak untuk mengaplikasikan classifier ke data yang
tidak punya representasi ruang vektor berdimensi-x yang jelas. Contoh utama data
seperti ini dalam bioinformatika adalah urutan, berupa DNA atau protein, dan struktur
protein [23].

III.6.1. Linear Classifier

SVM adalah sebuah contoh dari classifier dua-kelas linier. Data untuk
masalah pembelajaran dua kelas terdiri dari objek yang diberi label dengan salah
satu dari dua label sesuai dengan kedua kelas tersebut; untuk kemudahan digunakan
label +1 (contoh positif), atau -1 (contoh negatif). x menunjukkan vektor dengan
komponen xi . Notasi xi menunjukkan vektor ke i dalam dataset (xi , yi )ni=n , di mana
yi adalah label yang diasosiasikan dengan xi . Objek xi disebut sebagai pola atau
contoh. Diasumsikan bahwa contoh masuk ke dalam sebuah set X. Mula-mula
diasumsikan bahwa contoh adalah vektor, akan tetapi begitu kernel diperkenalkan
29

asumsi ini menjadi lebih longgar, pada titik di mana mereka dapat menjadi objek
kontinu ataupun diskrit [23].
Konsep kunci yang diperlukan untuk mendefinisikan sebuah classifier linier
aadalah operasi dot antara dua vektor, yang juga disebut sebagai inner product atau
produk skalar, didefinisikan sebagai w| x =
P
i wi xi . Classifier linier didasarkan

pada fungsi diskriminan linier dengan bentuk:

f (x) = w| x + b (3.7)

Vektor w disebut sebagai weight vector, dan b adalah bias. Pertimbangkan


kasus dimana b = 0 terlebih dahulu. Kumpulan titik x sehingga w| x = 0 adalah
semua titik yang tegak lurus terhadap w dan melalui origin - sebuah garis dalam
dua dimensi, sebuah bidang dalam tiga dimensi, dan secara lebih umumnya, sebuah
hyperplane. Bias b menggeser hyperplane menjauh dari origin. Hyperplane

x : f (x) = w| x + b = 0 (3.8)

membagi ruang menjadi dua: tanda dari fungsi diskriminan f (x)


menunjukkan di sisi dari hyperplane mana titik berada. Bantas antar daerah yang
diklasifikasikan sebagai positif dan negatif disebut dengan batas keputusan classifier.
Batas keputusan yang didefinisikan oleh sebuah hyperplane dikatakan linier karena
batas keputusan linier dalam contoh masukan (lihat Persamaan 3.7).
30

Gambar 3.7. Sebuah classifier linier. Batas keputusan (titik x sehingga w| x+b = 0)
membagi bidang menjadi dua set tergantung dari tanda w| x + b [23]

III.6.2. Margin Klasifikasi

Untuk pembahasan selanjutnya digunakan istilah dapat dipisahkan secara


linier untuk menunjukkan data di mana terdapat batas keputusan linier yang
memisahkan contoh positif dan negatif seperti yang dapat dilihat pada Gambar 3.8
[23].
31

Gambar 3.8. SVM linier. Titik yang dilingkari adalah support vector-contoh yang
paling dekat dengan batas keputusan. Mereka menentukan margin di
mana dua kelas dipisahkan [23]

Untuk sebuah hyperplane, titik terdekat ke hyperplane untuk contoh positif


(negatif) ditunjukkan dengan x+ (x− ). Besar dari vektor w ditunjukkan dengan kwk,

dan diketahui sebagai w| w. Sebuah unit vektor ŵ dalam arah w diketahui sebagai
w/ kwk dan mempunyai nilai ŵ = 1. Margin hyperplane f sehubungan dengan
dataset D dapat dilihat sebagai:

1
mD (f ) = ŵ| (x+ − x− ) (3.9)
2

di mana ŵ adalah unit vektor dalam arah w, diasumsikan bahwa x+ dan x−


sama jauhnya dari batas keputusan

f (x+ ) = w| x+ + b = a (3.10)

f (x− ) = w| x− + b = −a (3.11)
32

untuk konstanta a > 0. Untuk membuat margin lebih berarti, nilai batas
keputusan di titik yang paling dekat dengan hyperplane ditetapkan, dan mengatur
a = 1 pada Persamaan 3.10 dan 3.11. Dengan menambahkan kedua persamaan
tersebut dan membaginya dengan kwk didapatkan [23]:

1 1
mD (f ) = ŵ| (x+ − x− ) = (3.12)
2 kwk

III.6.3. Maximum Margin Classifier

Maximum margin classifier adalah fungsi diskriminan yang memaksimalkan


margin geometrik 1
kwk
yang sifatnya sama dengan memaksimalkan kwk2 . Hal ini
mengarah ke permasalahan optimasi untuk mencari nilai w optimal dengan batasan
berikut:

1
perkecil w, b kwk2 (3.13)
2

dibatasi oleh : yi (w| (xi ) + b) ≥ 1 i = 1, . . . , n.

Batasan dalam formulasi memastikan bahwa maximum margin classifier


mengklasifikasikan setiap contoh dengan benar, yang masih mungkin karena
diasumsikan bahwa data dapat dipisahkan secara linier. Dalam praktiknya, data
seringkali tidak dapat dipisahkan secara linier; dan bahkan jika dapat, margin yang
lebih besar dapat dicapai dengan mengizinkan classifier untuk melakukan kesalahan
klasifikasi pada beberapa titik. Untuk mengizinkan galat, batasan pertidaksamaan
dalam Persamaan 3.13 dengan

yi (w| (xi ) + b) ≥ 1 − ξi i = 1, . . . , n, (3.14)


33

di mana ξi ≥ 0 adalah variabel slack yang mengizinkan sebuah contoh untuk


berada pada margin (0 ≥ ξi ≥ 1, juga disebut sebagai galat margin) atau untuk
diklasifikasikan dengan salah (ξi > 1). Karena sebuah contoh diklasifikasikan dengan
P
salah jika nilai dari variabel slack-nya lebih dari 1, i ξi terikat pada jumlah sampel
misklasifikasi. Dengan tujuan memaksimalkan margin, memperkecil 12 kwk2 akan
P
ditambah dengan elemen C i ξi untuk menghukum misklasifikasi dan galat margin.
Masalah optimasi berubah menjadi:

n
1 X
perkecil w, b kwk2 + C ξi (3.15)
2 i=1

dibatasi oleh : yi (w| (xi ) + b) ≥ 1 − ξi ξi ≥ 0

Konstanta C > 0 mengatur kepentingan relatif memaksimalkan margin dan


meminimalkan jumlah slack. Formulasi ini disebut dengan soft-margin SVM, dan
diperkenalkan oleh Cortes dan Vapnik. Dengan menggunakan metode pengali
Lagrange, didapatkan formulasi ganda yang diekspresikan dalam variabel αi :

n n n
X 1 XX
perbesar α αi − yi yj αi αj x|i xj (3.16)
i=1
2 i=1 j=1

n
X
dibatasi oleh : yi αi = 0, 0 ≤ αi ≤ C.
i=1

Formulasi ganda mengarah pada perluasan weight vector dalam hal masukan:

n
X
w= y i αi x i (3.17)
i=1

Contoh xi di mana αi > 0 adalah titik yang berada pada margin, atau di dalam
margin saat SVM soft margin digunakan. Titik-titik itu disebut dengan support vector
34

[23].
Formulasi ganda dari masalah optimasi SVM bergantung kepada data hanya
tergantung pada hasil operasi dot. Oleh karena itu, hasil operasi dot dapat diganti
dengan fungsi kernel non-linier, dengan demikian melakukan pemisahan margin yang
besar dalam ruang-fitur kernel [23].

III.6.4. Kernel dan Hiperparameter

Proses pelatihan sebuah SVM mencari hyperplane dengan margin besar, yaitu
mengatur parameter αi dan b. SVM memiliki parameter lain yang disebut dengan
hiperparameter: Konstanta soft margin C, dan parameter apapun yang merupakan
ketergantungan dari fungsi kernel (lebar dari kernel Gaussian atau derajat dari kernel
polinomial) [23].
Peran dari konstanta soft margin dapat dilihat pada Gambar 3.9. [23].

Gambar 3.9. Efek dari konstanta soft margin, C, pada batas keputusan [23]

Untuk nilai C yang lebih besar, hukuman yang besar diberikan kepada
galat/galat margin. Hal ini dapat dilihat pada Gambar 3.9. sebelah kiri dengan
C = 100 di mana dua titik yang terdekat dengan hyperplane mempengaruhi
35

orientasinya, menghasilkan hyperplane yang lebih dekat dengan beberapa titik data
yang lain. Saat C dikurangi (Gambar 3.9. sebelah kanan), titik-titik tersebut
menjadi galat margin; orientasi hyperplane berubah, memberikan margin yang lebih
besar kepada data lainnya [23].
Kernel Gaussian diatur dengan persamaan k (x, x0 ) = exp −γ kx − x0 k2 .


Saat γ kecil (Gambar 3.10. sebelah kiri atas) sebuah titik data x memiliki nilai
kernel tidak nol relatif kepada contoh manapun pada kumpulan support vector.
Dengan demikian, seluruh kumpulan support vector mempengaruhi nilai dari fungsi
diskriminan x, menghasilkan batas keputusan yang halus. Dengan ditingkatkannya
γ, lokalitas dari perluasan support vector meningkat, memberikan kurva yang lebih
besar pada batas keputusan. Saat γ besar, nilai dari fungsi diskriminan pada
dasarnya konstan untuk jarak yang jah dari daerah di mana data terkonsentrasi
(Gambar 3.10. sebelah kanan bawah). Dengan nilai parameter γ seperti ini
classifier jelas overfitting terhadap data [23].
36

Gambar 3.10. Efek dari parameter inverse-width dari kernel Gaussian (γ) untuk nilai
tetap pada konstanta soft margin [23]

III.6.5. Klasifikasi Multi-Kelas

SVM pada bentuk dasarnya hanya mendukung klasifikasi dua kelas atau yang
disebut sebagai klasifikasi biner. Pendekatan dalam menggunakan algoritma
klasifikasi biner untuk klasifikasi multi-kelas adalah dengan membagi himpunan
data klasifikasi multi-kelas menjadi beberapa himpunan data klasifikasi biner dan
mencocokkan model klasifikasi biner pada tiap himpunan data. Dua contoh
pendekatan berbeda adalah strategi One-vs-Rest dan One-vs-One [24].
37

III.6.5.5. Klasifikasi Multi-Kelas One-Vs-Rest

One-vs-Rest (disingkat OvR, juga disebut One-vs-All atau OvA) adalah


metode heuristic untuk menggunakan algoritma klasifikasi biner untuk klasifikasi
multi-kelas. Metode ini melibatkan pembagian himpunan data multi-kelas menjadi
beberapa permasalahan klasifikasi biner. Sebuah classifier biner kemudian dilatih
dengan tiap masalah klasifikasi biner dan prediksi dibuat dengan menggunakan
model yang paling dipercaya [24].
Sebagai contoh, untuk permasalahan klasifikasi multi-kelas dengan kelas red,
blue, dan green. Permasalahan klasifikasi multi-kelas dapat dibagi menjadi tiga
himpunan data klasifikasi sebagai berikut [24]:

1. Masalah klasifikasi biner 1: red vs. [blue, green]

2. Masalah klasifikasi biner 2: bule vs. [red, green]

3. Masalah klasifiaksi biner 3: green vs. [red, blue]

Salah satu kelemahan yang mungkin terjadi pada pendekatan ini adalah bahwa
pendekatan ini memerlukan satu model untuk dibuat untuk tiap kelas. Sebagai contoh,
tiga kelas memerlukan tiga model. Hal ini dapat menjadi masalah untuk himpunan
data yang besar (misal jutaan baris), model yang lambat (misal jaringan syaraf), atau
jumlah kelas yang sangat banyak (misal ratusan kelas) [24].

III.6.5.5. Klasifikasi Multi-Kelas One-Vs-One

One-vs-One (disingkat OvO) adalah metode heuristis lain untuk menggunakan


algoritma klasifikasi biner untuk klasifikasi muulti-kelas. Seperti pada OvR, OvO
membagi himpunan data multi-kelas menjadi masalah klasifikasi biner. Tidak seperti
OvR yang membagi himpunan data menjadi satu himpunan data biner untuk tiap
38

kelas, pendekatan OvO membagi himpunan data menjadi satu himpunan data untuk
tiap kelas versus tiap kelas lainnya [24].
Sebagai contoh, pertimbangkan masalah klasifikasi multi-kelas dengan empat
kelas: red, blue, green, dan yellow. Permasalahan klasifikasi multi-kelas ini dapat
dibagi menjadi enam himpunan data klasifikasi biner sebagai berikut [24]:

1. Masalah klasifikasi biner 1: red vs. blue

2. Masalah klasifikasi biner 2: red vs. green

3. Masalah klasifikasi biner 3: red vs. yellow

4. Masalah klasifikasi biner 4: blue vs. green

5. Masalah klasifikasi biner 5: blue vs. yellow

6. Masalah klasifikasi biner 6: green vs. yellow

Cara ini menghasilkan himpunan data yang lebih banyak, yang pada
gilirannya, menyebabkan lebih banyak model daripada strategi OvR. Formula untuk
menghitung jumlah himpunan data biner [24]:

(N umClasses × (N umClasses − 1))/2 (3.18)

Setiap model klasifikasi biner memprediksi satu label kelas dan kemudian
model dengan prediksi terbanyak diprediksi dengan strategi OvO. Biasanya,
pendekatan ini digunakan oleh SVM dan algoritma berdasarkan kernel yang
berhubungan [24].

III.6.6. K-Fold Cross-Validation

Cross validation atau validasi silang adalah prosedur resampling yang


digunakan untuk mengevaluasi model machine learning (ML) pada sampel data
39

yang terbatas. Prodsedur ini memiliki satu parameter yang disebut k yang mengacu
pada jumlah grup pembagian sampel data yang dibagi. Karena itu, prosedur ini
sering disebut k-fold cross-validation. Nilai k yang paling umum digunakan adalah 5
atau 10, nilai yang berdasarkan eksperimen secara umum menghasilkan estimasi
skill model dengan bias rendah dan variasi sedang [25].
Validasi silang utamanya digunakan dalam penerapan ML untuk
mengestimasi skill model ML pada data yang belum pernah dilihat. Metode ini
populer karena sederhana untuk dipahami dan biasanya menghasilkan estimasi yang
kurang bias atau kurang optimistik dari skill model daripada metode lain, seperti
pembagian train/test sederhana. Prosedur umum dari k-fold cross-validation adalah
sebagai berikut [25]:

1. Acak himpunan data dengan sembarang.

2. Bagi himpunan data menjadi k kelompok

3. untuk tian kelompok unik:

(a) Ambil kelompok untuk menjadi data uji.

(b) Ambil kelompok sisanya menjadi data latih.

(c) Cocokkan model pada data latih dan evaluasi dengan data uji.

(d) Simpan skor evaluasi dan buang model.

4. Rangkum skill model menggunakan nilai sampel evaluasi model

Hasil k-fold cross-validation seringkali dirangkum dengan rerata dari nilai


skill model. Memasukkan ukuran variasi dari nilai skill, seperti standar deviasi atau
standar error merupakan praktik yang bagus [25].
40

III.6.7. Hyperparameter Tuning

Saat mengevaluasi pengaturan berbeda (hyperparameter) untuk estimator,


seperti C yang harus dipilih secara manual pada SVM, masih ada resiko overfitting
pada data uji karena parameter dapat diubah hingga estimator dapat bekerja optimal.
Overfitting adalah keadaan di mana model hanya mengulang label dari sampel dan
mendapatkan skor sempurna, akan tetapi gagal dalam memprediksi hal berguna
dalam data yang belum pernah dilihat. Dengan cara ini, pengetahuan tentang set
pengujian dapat "bocor" ke dalam model dan metrik evaluasi tidak lagi melaporkan
performa secara umum. Oleh karena itu digunakan prosedur validasi silang.
Kumpulan data uji harus masih ditahan untuk evaluasi final, tetapi kumpulan data
validasi tidak lagi diperlukan saat melakukan validasi silang akan tetapi digunakan
k-fold cross-validation. Prosedur evaluasi performa dan pengujian ML dengan 5-fold
cross-validation dapat dilihat pada Gambar 3.11. [26].

Gambar 3.11. Pembagian data 5-fold cross-validation untuk hyperparameter tuning


dan pengujian performa akhir model [26]
41

III.7. Confusion Matrix

Confusion matrix juga sering disebut error matrix. Pada dasarnya confusion
matrix memberikan informasi perbandingan hasil klasifikasi yang dilakukan oleh
sistem (model) dengan hasil klasifikasi sebenarnya. Confusion matrix berbentuk
tabel matriks yang menggambarkan kinerja model klasifikasi pada serangkaian data
uji yang nilai sebenarnya diketahui. Gambar 3.12. berikut ini merupakan confusion
matrix dengan 4 kombinasi nilai prediksi dan nilai aktual yang berbeda. Perhatikan
Gambar 3.12. berikut ini [27]:

Gambar 3.12. Confusion matrix [27]

Terdapat 4 istilah sebagai representasi hasil proses klasifikasi pada confusion


matrix. Keempat istilah tersebut adalah True Positive (TP), True Negative (TN),
False Positive (FP) dan False Negative (FN). Agar lebih mudah memahaminya, saya
menggunakan contoh kasus sederhana untuk memprediksi seorang pasien menderita
kanker atau tidak [27].

1. True Positive (TP)


Merupakan data positif yang diprediksi benar. Contohnya, pasien menderita
42

kanker (class 1) dan dari model yang dibuat memprediksi pasien tersebut
menderita kanker (class 1).

2. True Negative (TN)


Merupakan data negatif yang diprediksi benar. Contohnya, pasien tidak
menderita kanker (class 2) dan dari model yang dibuat memprediksi pasien
tersebut tidak menderita kanker (class 2).

3. False Postive (FP) — Type I Error


Merupakan data negatif namun diprediksi sebagai data positif. Contohnya,
pasien tidak menderita kanker (class 2) tetapi dari model yang telah
memprediksi pasien tersebut menderita kanker (class 1).

4. False Negative (FN) — Type II Error


Merupakan data positif namun diprediksi sebagai data negatif. Contohnya,
pasien menderita kanker (class 1) tetapi dari model yang dibuat memprediksi
pasien tersebut tidak menderita kanker (class 2).

III.8. Hipotesis

Metode Support Vector Machine (SVM) dapat diterapkan untuk klasifikasi


emosi senang, takut, sedih, dan tenang dengan akurasi rata-rata lebih dari 61% dari
prediksi benar hasil uji dalam instrumentasi pengukuran psikoterapi, di mana
klasifikasi emosi dilakukan dengan preprocessing, ekstraksi fitur, dan
mengklasifikasikan dengan SVM.
BAB IV

PELAKSANAAN PENELITIAN

IV.1. Tempat dan Waktu Penelitian

Penelitian dilaksanakan di Laboratorium Sensor dan Sistem Telekontol


(SSTK) Departemen Teknik Nuklir dan Teknik Fisika, Fakultas Teknik, Universitas
Gadjah Mada dan Studio Aman Kuat Sentosa (Amakusa) dari tanggal 30 Januari
2020 sampai tanggal 22 Agustus 2020.

IV.2. Metode Penelitian

Metode penelitian yang digunakan adalah metode eksperimental dengan


perancangan dan pengujian di Laboratorium SSTK, Departemen Teknik Nuklir dan
Teknik Fisika, Fakultas Teknik, Universitas Gadjah Mada, dan pengambilan data
dilaksanakan di Laboratorium SSTK dan Studio Amakusa.

IV.3. Alat dan Bahan Penelitian

Bahan yang digunakan dalam penelitian ini dapat dilihat pada Tabel 4.1. Alat
yang digunakan dalam penelitian ini dapat dilihat pada Tabel 4.2.

43
44

Tabel 4.1. Bahan Penelitian

No Bahan Spesifikasi Keterangan


Penelitian
1 Python Versi 3.7.4 Bahasa pemrograman untuk
pembangunan perangkat lunak
2 MNE Versi 0.19.2 Pustaka pembacaan, pengolahan,
dan penyimpanan data EEG
3 Scipy Versi 1.3.1 Pustaka matematika, sains, dan
teknik
4 Numpy Versi 1.16.5 Pustaka operasi matematika
numerik
5 CSV Versi 0.0.11 Pustaka berkas Comma Separated
Value (CSV)
6 Scikit-Learn Versi 0.21.3 Pustaka analisis data prediktif
termasuk machine learning
7 Pandas Versi 0.25.1 Pustaka analisis data
8 OS Tidak ada Pustaka untuk memanipulasi
versi direktori
8 Laptop CPU: Intel Unit untuk pembangunan program,
Core menjalankan program EEG untuk
i7-7700HQ, akuisisi data, dan menjalankan
RAM: 16GB program yang telah dibangun
2400Mhz,
GPU: Nvidia
Geforce GTX
1050
9 Contec EEG digital Unit untuk akuisisi data EEG
KT88-1016 16 kanal, probandus saat stimulus emosi
sampling rate:
100 Hz
45

Tabel 4.2. Alat Penelitian

No Bahan Spesifikasi Keterangan


Penelitian
1 Notepad++ Versi 7.8.9 Editor teks dan kode sumber untuk
digunakan pada Microsoft
Windows
2 Spyder Versi 3.3.6 Integrated Development
Environment (IDE) untuk
pemrograman saintifik dalam
bahasa Python
3 Microsoft Versi Aplikasi untuk mengatur,
Excel 16.0.13029.20342menganalisis, dan menyimpan data
dalam bentuk tabel
4 Google Forms 8 set Alat pengambilan data gairah dan
pertanyaan valensi secara online pada
dengan skala probandus
dari 1 sampai
9
46

IV.4. Tata Laksana Penelitian

Alur penelitian ditunjukkan oleh Gambar 4.1..

Gambar 4.1. Alur pelaksanaan penelitian

IV.4.1. Studi Literatur

Studi literatur dilakukan dengan menggali materi yang relevan dari buku,
jurnal, maupun artikel baik melalui media cetak maupun daring. Studi literatur
dilaksanakan untuk mendapatkan dasar utama perancangan desain dengan tinjauan
yang terkait dengan psikoterapi, electroecephalography (EEG), pengolahan data
EEG, metode klasifikasi Support Vector Machine (SVM), emosi, dan EEG untuk
klasifikasi emosi.

IV.4.2. Perancangan Sistem

Perancangan sistem meliputi penentuan tuntutan rancangan, pembuatan


desain rancangan sistem secara umum berupa diagram alir perangkat lunak,
47

penentuan rancangan sistem dalam bentuk algoritma, dan pendetailan rancangan


sistem dalam bentuk pseudocode. Tuntutan perancangan dari sistem adalah sistem
mampu mengklasifikasikan emosi senang, takut, sedih, dan tenang dengan akurat.
Semua langkah dalam perancangan sistem akan mengacu pada tuntutan rancangan
ini.
Perancangan sistem perangkat lunak meliputi perangkat lunak pemilahan data
dan preprocessing, perangkat lunak ekstraksi fitur, dan perangkat lunak SVM. Semua
perangkat lunak ditanamkan dan dijalankan pada personal computer. Perangkat lunak
mengambil masukan utama dari data rekaman EEG.
Perangkat lunak pemilahan dan preprocessing data berfungsi untuk
membuka berkas rekaman EEG yang masih mentah, menapis frekuensi yang tidak
diinginkan, memilah data berdasarkan stimulus dan emosi yang dibangkitkan, dan
menyimpannya. Perangkat lunak ekstraksi fitur berfungsi untuk membuka berkas
yang sudah dipilah, mengestimasi PSD dengan metode Welch, menghitung fitur
berupa daya, energi, dan asimetri, dan menyimpannya dalam bentuk .csv.
Sedangkan perangkat lunak SVM berfungsi untuk membuka berkas fitur, membagi
data menjadi data uji dan validasi, melatih model SVM, melakukan validasi silang,
dan menghasilkan keluaran performansi dari model yang dibuat.

IV.4.3. Pembangunan Sistem

Pembangunan sistem dilakukan dengan mewujudkan hasil perancangan.


Rancangan perangkat lunak dibangun dalam bentuk program. Penyusunan perangkat
lunak dilakukan dengan menggunakan bahasa Python dan dengan lingkungan
pengembangan terpadu Spyder.
Perangkat lunak pemilahan dan preprocessing data dibangun dengan
menggunakan pustaka mne untuk membaca dan memanipulasi berkas rekaman
48

EEG. Perangkat lunak ekstraksi fitur dibuat dengan menggunakan pustaka numpy
untuk perhitungan matematis, scipy untuk melakukan estimasi PSD dengan
metode Welch dan operasi integrasi, mne untuk membuka dan memanipulasi data
EEG, serta csv untuk membuat berkas berisikan fitur dengan format .csv.
Perangkat lunak SVM dibuat dengan menggunakan pustaka pandas untuk
membaca dan memanipulasi berkas .csv yang berisikan fitur, scikit-learn
untuk membuat model SVM beserta validasi silang dan pengujian, dan csv untuk
menyimpan data hasil validasi silang dan pengujian ke dalam bentuk berkas .csv.

IV.4.4. Pengambilan Data EEG

Pengambilan data EEG bertujuan untuk mendapatkan data EEG yang


merepresentasikan gelombang otak seseorang dalam keadaan senang, takut, sedih,
dan tenang. Data diambil dari 24 orang probandus (17 laki-laki, 7 perempuan)
dengan jumlah 45 sampel data EEG untuk 4 emosi. Digunakan Contec KT88-1016
untuk merekam data EEG dalam 16 kanal dengan sampling rate 100 Hz. Untuk tiap
sampel data dilakukan pengukuran dengan durasi total 20 menit. Dilakukan
pengambilan data valensi dan gairah probandus dengan menggunakan Self
Assessment Manikin yang diisi setiap akhir stimulus emosi.
Pengambilan data dilaksanakan di Studio Amakusa. Di dalam ruangan
tersedia kursi bagi probandus untuk duduk. Kursi berada pada jarak 2,75 meter dari
TV. Video stimulus akan ditayangkan pada TV tersebut. Selain TV, di dalam
ruangan terdapat AC yang digunakan untuk mengatur suhu. Panel/mikrokontroller
EEG diletakkan dihubungkan dengan laptop di sebelah probandus. Sketsa ruangan
pengambilan data dapat dilihat pada Gambar 4.2..
49

Gambar 4.2. Sketsa ruangan pengambilan data

Langkah pengambilan satu sampel data adalah sebagai berikut:

1. Probandus terlebih dahulu diberikan penjelasan mengenai garis besar penelitian


dan apa yang dilakukan selama pengambilan data.

2. Probandus dipersilahkan masuk ke dalam ruangan pengambilan data dan duduk


secara rileks pada kursi yang sudah disediakan mendekati kondisi pada saat
psikoterapi.

3. EEG dipasangkan pada probandus dengan gangguan seminimal mungkin sesuai


umpan balik probandus.
50

4. Probandus diberikan penjelasan mengenai valensi dan gairah, serta bagaimana


cara mengisi SAM dengan benar. Ilustrasi SAM ditunjukkan pada Gambar
4.2.. Baris pertama menunjukkan valensi dalam skala 1-9 dari kiri ke kanan.
1 berarti sangat tidak nyaman, 5 netral, dan 9 berarti sangat nyaman. Baris ke
dua menunjukkan gairah dalam skala 1-9 dari kiri ke kanan. 1 berarti sangat
tidak bergairah, 5 netral, dan 9 sangat bergairah.

Gambar 4.3. Self Assessment Manikin

5. Suhu dan pencahayaan diubah agar probandus nyaman sesuai umpan balik
probandus.

6. Probandus menonton video stimulus dengan mengurangi durasi 20 menit yang


dibagi menjadi 4 segmen, 1 segmen untuk tiap emosi dengan durasi 5 menit. 2
menit pertama berupa layar hitam yang dilanjutkan dengan 3 menit video untuk
membangkitkan emosi.

7. Setelah tiap segmen stimulus, probandus mengisi SAM dengan menggunakan


gawai secara daring.

IV.4.5. Pelatihan Sistem

Pelatihan sistem dilakukan dengan melatih model SVM menggunakan data


fitur yang diekstrak dari data rekaman EEG. Data rekaman EEG dipilah berdasarkan
emosi yang dibangkitkan terlebih dahulu. Kemudian data yang valid di mana emosi
dibangkitkan dengan benar dipilih. Kriteria pemilihan data didasarkan pada isian
51

SAM dari probandus. Terdapat 9 nilai valensi dan gairah pada SAM. Jenis emosi
data EEG dikategorikan sebagai:

1. Senang jika stimulus video nilai valensi > 5 dan gairah > 5.

2. Takut jika nilai valensi < 5 dan gairah > 5.

3. Sedih jika nilai valensi < 5 dan gairah < 5.

4. Tenang jika nilai valensi > 5 dan gairah < 5.

IV.4.5.5. Pembagian Data

Data dianggap valid jika emosi stimulus dan emosi yang dibangkitkan sesuai.
Dari data yang valid dihasilkan dua varian sampel data EEG. Varian pertama yaitu
multi-sesi dengan durasi sampel 3 menit per emosi per sesi sesuai dengan stimulus,
sedangkan varian ke dua yaitu sesi tunggal dengan 4 sampel berdurasi 45 detik per
emosi per sesi. Tiap sampel valid dilabeli dengan emosi sesuai dengan stimulus. Fitur
berupa daya, energi, dan asimetri diekstrak dari tiap sampel dan disimpan ke dalam
berkas dalam bentuk .csv.

IV.4.5.5. Validasi Sistem

Data fitur dibagi menjadi 20% data uji dan 80% data validasi silang secara
acak. Data validasi silang dibagi menjadi 10 bagian secara acak. 1 bagian digunakan
untuk pelatihan dan 9 bagian digunakan untuk validasi. Validasi silang yang
digunakan adalah 10-fold cross validation. 10-fold cross validation atau validasi
silang 10 kali lipat dilakukan dengan mengulang pelatihan model dengan 9 bagian
dan menguji dengan 1 bagian sebanyak 10 kali yang dilakukan pada data validasi
atau 80% dari total data.
52

Pada proses validasi silang juga dilakukan uji performansi dari kernel (linier
atau RBF) dan hiperparameter model. Dilakukan validasi performa satu set
hiperparameter model dalam skala logaritmik. Hiperparameter yang digunakan
dalam proses validasi silang ditunjukkan dalam Tabel 4.3..
53

Tabel 4.3. Kernel dan hiperparameter validasi

No Kernel C Gamma
1 Linier 0,1 -
2 Linier 1 -
3 Linier 10 -
4 Linier 100 -
5 Linier 1000 -
6 RBF 0,1 1
7 RBF 0,1 0,1
8 RBF 0,1 0,01
9 RBF 0,1 1,00E-03
10 RBF 0,1 1,00E-04
11 RBF 0,1 1,00E-05
12 RBF 0,1 1,00E-06
13 RBF 1 1
14 RBF 1 0,1
15 RBF 1 0,01
16 RBF 1 1,00E-03
17 RBF 1 1,00E-04
18 RBF 1 1,00E-05
19 RBF 1 1,00E-06
20 RBF 10 1
21 RBF 10 0,1
22 RBF 10 0,01
23 RBF 10 1,00E-03
24 RBF 10 1,00E-04
25 RBF 10 1,00E-05
26 RBF 10 1,00E-06
27 RBF 100 1
28 RBF 100 0,1
29 RBF 100 0,01
30 RBF 100 1,00E-03
31 RBF 100 1,00E-04
32 RBF 100 1,00E-05
33 RBF 100 1,00E-06
34 RBF 1000 1
35 RBF 1000 0,1
36 RBF 1000 0,01
37 RBF 1000 1,00E-03
38 RBF 1000 1,00E-04
39 RBF 1000 1,00E-05
40 RBF 1000 1,00E-06
54

Hal ini dilakukan menurut rule of thumb tuning hiperparameter pada SVM.
Data akurasi dari 10 kali validasi dirata-rata dan dihitung standar deviasinya untuk
tiap set hiperparameter yang digunakan. Hiperparameter yang menghasilkan model
SVM dengan performansi terbaik dipilih.

IV.4.6. Pengujian Sistem

Pada pengujian sistem dilakukan dan uji akurasi dengan menggunakan data
uji. Uji akurasi dilakukan untuk mendapatkan nilai akurasi dari sistem klasifikasi
untuk data uji. Pengujian sistem dilakukan pada sampel sesi tunggal dan multi-sesi.
Sistem dengan model hiperparameter terbaik yang dihasilkan dari langkah validasi
diuji. Pengujian dilakukan dengan menggunakan data uji sebanyak 20% dari data
total. Data uji yang digunakan saling asing dengan data yang digunakan untuk
melatih model. Keluaran dari proses pengujian sistem adalah sebaran keberhasilan
klasifikasi yang ditunjukkan dengan menggunakan confusion matrix. Confusion
matrix berisikan jumlah sampel yang sampel yang diprediksi memiliki emosi
tertentu dibandingkan dengan emosi aktual dari sampel.

IV.4.7. Analisis Hasil Pengujian

Akurasi sistem dinyatakan dengan hasil pengujian sistem terhadap data uji.
Hiperparameter dari sistem yang diuji disesuaikan dengan hiperparameter terbaik dari
hasil validasi silang. Terdapat dua set data yaitu data sesi tunggal dan multi-sesi.
Tuntutan rancangan terpenuhi jika akurasi sistem pada pengujian sesi tunggal lebih
dari 61%. Hasil pengujian multi-sesi dijadikan pertimbangan dalam penerapan sistem
secara nyata.
BAB V

HASIL DAN PEMBAHASAN

V.1. Hasil Perancangan Sistem

Hasil dari tahapan perancangan sistem adalah tuntutan rancangan, diagram


blok, dan diagram alir dari sistem klasifikasi emosi untuk instrumentasi pengukuran
psikoterapi.

V.1.1. Tuntutan Rancangan

Tuntutan rancangan dari sistem klasifikasi emosi dibuat berdasarkan


penelitian yang pernah dilakukan sebelumnya. Tuntutan rancangan yang berhasil
didefinisikan adalah sistem akurat. Akurat yang dimaksud adalah sistem mampu
mengklasifikasikan emosi senang, takut, sedih, dan tenang dengan akurasi di atas
61%. Akurat berlaku untuk metode pengambilan sampel sesi tunggal karena akurasi
61% tersebut dihasilkan dari pengambilan sampel dengan metode tersebut. Tuntutan
rancangan terpenuhi apabila akurasi hasil pengujian sistem klasifikasi lebih dari
61%.

V.1.2. Diagram Blok

Diagram blok sistem ditunjukka pada Gambar 5.1..

55
56

Gambar 5.1. Diagram blok

Aktivitas otak direkam dengan menggunakan unit EEG dengan komponen


elektroda EEG dan mikrokontroller EEG. Unit EEG yang digunakan dalam
penelitian ini adalah Contec KT88-1016. Elektroda dipasangkan pada kulit kepala
dengan sistem penempatan EEG standar 10-20. Ujung lain elektroda dipasangkan
pada mikrokontroller EEG sesuai dengan label nama elektroda. Data EEG disimpan
ke dalam Personal Computer (PC) dari mikrokontroller EEG.
Sistem yang dibangun mengolah data EEG yang didapatkan dengan
melakukan perancangan sistem klasifikasi emosi pada bagian perangkat lunak.
Perangkat lunak yang dibangun berisikan algoritma dan ditanamkan dalam PC.
Perangkat lunak terdiri dari 3 program terpisah yaitu perangkat lunak untuk
preprocessing dan pemilahan data, ekstraksi fitur, dan SVM.

V.1.3. Diagram Alir

1. Perangkat Lunak Preprocessing dan Pemilahan data


Hasil perancangan diagram alir perangkat lunak preprocessing dan pemilahan
data ditunjukkan oleh Gambar 5.2..
57

Gambar 5.2. Diagram alir perangkat lunak preprocessing dan pemilahan data

Preparasi dilakukan satu kali saat perangkat lunak dijalankan. Preprasi berupa
export data EEG berupa berkas dengan ekstensi .BDF, penempatan berkas
pada direktori kerja program, dan pemberian nama berkas dengan angka 1, 2,
3, 4, ... sesuai dengan jumlah berkas yang dimasukkan. Preparasi dilakukan
untuk memastikan bahwa berkas yang akan diolah sesuai dan tidak timbul
galat pada saat program dijalankan.

Setelah preparasi selesai, program mengambil data EEG yang ada dalam
58

folder kerja program. Didapatkan data EEG yang berupa potensial listrik
dalam µV dengan waktu t detik dan jumlah data t × 100 dengan 100 sebagai
sampling rate dalam Hz. Setelah data dibaca, dilakukan pengubahan data ke
dalam domain frekuensi untuk penapisan frekuensi kurang dari 1Hz dan lebih
dari 35Hz. Setelah data ditapis, data dikembalikan pada domain waktu.
Kemudian dilakukan pemisahan data berdasarkan emosi, stimulus, dan
pembagian sampel.

Untuk sampel sesi tunggal, satu 3 menit sampel data untuk tiap emosi per sesi
dibagi menjadi empat 45 detik sampel. Sehingga dalam satu sesi pengambilan
data didapatkan 16 sampel dengan durasi masing-masing sampel selama 45
detik. Untuk multi-sesi 3 menit sampel tiap emosi per sesi diambil sehingga
didapatkan 4 sampel dengan durasi masing-masing sampel selama 3 menit.
Sampel kemudian disimpan dalam folder yang berbeda untuk masing-masing
emosi dalam berkas dengan ekstensi .fif.

2. Perangkat Lunak Ekstraksi Fitur


Hasil perancangan diagram alir perangkat lunak ekstraksi fitur dapat dilihat
pada Gambar 5.3..
59

Gambar 5.3. Diagram alir perangkat lunak ekstraksi fitur

Preparasi dilakukan satu kali saat perangkat lunak dijalankan. Preparasi yang
dilakukan berupa penghapusan data sampel dengan pembangkitan emosi yang
tidak valid dan penamaan ulang berkas dengan angka 1, 2, 3, ... sesuai dengan
jumlah berkas. Hal ini dilakukan supaya data yang diolah hanyalah data di
mana emosi probandus berhasil dibangkitkan dan sesuai dengan stimulus yang
diberikan. Selain itu perlu dipastikan bahwa data yang akan diolah berada pada
direktori yang telah ditentukan.
60

Setelah preparasi selesai, data yang sudah ditapis diambil, kemudian dilakukan
estimasi PSD untuk tiap-tiap sampel. Data PSD dipisahkan berdasarkan
rentang frekuensi gelombang delta, theta, alpha, beta, dan gamma. Dari PSD
kemudian dilakukan penghitungan daya rerata, asimetri serebral, dan energi
dari data untuk tiap rentang gelombang otak. Penghitungan dilakukan untuk
tiap kanal EEG. Untuk fitur daya dan energi didapatkan 80 nilai dari 16 kanal
dan 5 gelombang otak. Untuk fitur asimetri serebral didapatkan 40 nilai dari 8
pasang kanal dan 5 gelombang otak. Sehingga jumlah total fitur adalah 200.
Fitur kemudian disimpan ke dalam berkas berbentuk bentuk .csv.

3. Perangkat Lunak SVM Hasil perancangan diagram alir perangkat lunak


ekstraksi fitur dapat dilihat pada Gambar 5.4..
61

Gambar 5.4. Diagram alir perangkat lunak SVM

Sebelum program dimulai dipastikan bahwa berkas yang akan diolah berada
dalam direktori yang sesuai. Data fitur dalam bentuk berkas .csv kemudian
dibaca. Data yang terbaca dibagi menjadi data uji dengan proporsi 20% dari
data total dan data latih dan validasi dengan proporsi 80%. Pembagian data
dilakukan secara acak.

Kemudian dilakukan validasi silang 10 kali lipat dengan 80% data. Data
tersebut dibagi lagi menjadi 10 bagian secara acak. 9 bagian digunakan untuk
data latih dan 1 bagian digunakan untuk validasi. Pada proses latih dan
62

validasi ini jenis kernel, dan hiperparameter yang digunakan divariasikan.


Hasil akurasi dari validasi kemudian disimpan. Proses ini dilakukan sebanyak
10 kali atau dengan kata lain dilakukan satu kali validasi untuk tiap bagian.
Hasil rata-rata dan standar deviasi dari 10 kali validasi dihitung.

Setelah didapatkan hasil validasi silang, dilakukan pengujian model dengan


menggunakan data uji yang telah disisihkan. Pengujian ini menghasilkan data
performansi model berupa akurasi dan confusion matrix. Hasil validasi dan
pengujian ditampilkan kemudian disimpan dalam bentuk berkas .csv.

V.2. Hasil Pembangunan Sistem

Hasil dari pembangunan sistem klasifikasi dibuat berdasarkan pada hasil


perancangan yang telah dipaparkan pada sub-bab sebelumnya. Hasil Perancangan
yang telah dijabarkan dalam bentuk diagram blok dan diagram alir diwujudkan
dalam bentuk program. Semua program ditulis dalam bahasa Python dengan
menggunakan lingkungan pengembangan terpadu Spyder. Program dijelaskan
secara lebih lanjut sebagai berikut.

V.2.1. Program Preprocessing dan Pemilahan Data

Program ini diberi nama BDFSplitterComb.py. Program ini memiliki


beberapa fungsi. Yang pertama adalah untuk memilah data dengan memotong
berkas rekaman EEG pada bagian stimulus layar hitam untuk diambil bagian di
mana probandus sedang diberikan stimulus emosi dan juga untuk preprocessing
dengan menapis frekuensi kurang dari 1Hz dan lebih dari 35Hz dengan
menggunakan filter band-pass filter digital. Program dibuat dengan menggunakan
pustaka os dan mne. Pustaka os digunakan untuk memanipulasi direktori berkas
masukan dan keluaran. Pustaka mne digunakan untuk membaca berkas .BDF,
63

melakukan penapisan data dalam frekuensi yang telah disebutkan, dan menyimpan
berkas dalam bentuk .fif. Filter digital dirancang dengan parameter frekuensi
batas bawah dan batas atas masing-masing 1Hz dan 35Hz, bandwidth transisi 1Hz,
desain FIR, dan window Hamming.
Terdapat dua varian dari program ini. Varian pertama memotong data EEG
dengan durasi penuh selama 3 menit per emosi dan menghasilkan keluaran berupa
berkas .fif (multi-sampel) sedangkan varian ke dua memotong data EEG selama 3
menit per emosi dan menghasilkan 4 berkas .fif (sampel tunggal) dengan durasi
masing-masing selama 45 detik. Masing-masing berkas .fif disimpan dalam
direktori yang diberi label senang, takut, sedih, dan tenang, sesuai dengan emosi
stimulus yang diberikan saat perekaman.

V.2.2. Program Ekstraksi Fitur

Program ini diberi nama EkstraksiFitur.py. Program ini pada


dasarnya berfungsi untuk menghitung fitur dari sampel data yang telah dipilah. Fitur
yang diambil adalah daya, energi, dan asimetri serebral yang telah dinormalisasai.
Program ini dibangun dengan menggunakan pustaka os, numpy, scipy, mne, dan
csv. Pustaka os berfungsi untuk mempermudah manipulasi direktori masukan dan
keluaran berkas. Pustaka numpy digunakan untuk melakukan operasi matematis
logika. Pustaka scipy digunakan untuk melakukan perhitungan PSD dan integrasi.
Pustaka mne digunakan untuk membaca berkas yang telah dipilah. Pustaka csv
digunakan untuk menghasilkan keluaran fitur dalam berkas .csv.

V.2.3. Program SVM

Program ini diberi nama Classifier.py. Pada program ini SVM dilatih,
divalidasi, dan diuji. Pada program ini digunakan pustaka pandas, sklearn, dan
64

csv. pandas digunakan untuk membaca dan memanipulasi berkas .csv yang
berisikan fitur. sklearn digunakan untuk membangun model SVM, membagi data,
melakukan validasi silang 10 kali lipat, dan menguji performa model. csv
digunakan untuk membuat berkas .csv yang berisikan hasil validasi silang dan
performansi model.

V.3. Pembahasan

V.3.1. Hasil Pembangkitan Emosi

Total data yang didapatkan dalam penelitian ini berjumlah 45 sampel dari 45
sesi pengambilan data. Emosi dari stimulus yang diberikan pada probandus
dibandingkan dengan emosi yang sebenarnya dirasakan berdasarkan hasil dari SAM.
Dalam seluruh data tersebut setidaknya terdapat satu emosi probandus yang sesuai
dengan stimulus yang diberikan, misalkan probandus merasakan takut saat diberikan
stimulus takut. Pada mayoritas data yang didapatkan, setidaknya ada satu emosi
probandus yang berbeda dengan stimulus yang diberikan. Keberhasilan
pembangkitan emosi berdasarkan jenis emosi yang dibangkitkan dirangkum dalam
Tabel 5.1..

Tabel 5.1. Keberhasilan Pembangkitan Emosi Berdasarkan Jenis Emosi

Jumlah (sampel)
Emosi Persentase (%)
Sesuai Total
Senang 27 45 60,00
Takut 33 45 73,33
Sedih 17 45 37,78
Tenang 21 45 46,67
Total 98 180 54,44

Dari tabel dapat dilihat bahwa emosi yang sesuai hanya berhasil dibangkitkan
pada 98 sampel emosi dari potensi total 180 sampel. Emosi takut menjadi emosi
65

yang paling mudah dibangkitkan dengan persentase keberhasilan 73,33% sedangkan


emosi sedih menjadi emosi yang paling sulit dibangkitkan dengan keberhasilan hanya
37,77%. Sedangkan persentase keberhasilan pembangkitan total adalah 54,44%.
Variasi keberhasilan pembangkitan emosi disebabkan oleh beberapa faktor.
Yang pertama adalah faktor familiaritas probandus dengan adegan yang ditayangkan
pada video stimulus. Apabila probandus kebetulan pernah menonton klip yang sama
maka seringkali emosi yang ingin dibangkitkan tidak muncul. Faktor kedua adalah
selera/preferensi dari probandus, misalkan probandus menyukai film horor maka
saat ditayangkan stimulus takut maka probandus bisa jadi tidak merasakan takut
sedangkan stimulus emosi yang lain berhasil. Yang ketiga adalah adanya bias pada
saat pemilihan video stimulus. Hal ini disebabkan karena video stimulus dipilih oleh
peneliti berdasarkan opini peneliti mengenai video tersebut, oleh karena itu bisa jadi
video yang dapat membangkitkan suatu emosi pada peneliti tidak membangkitkan
emosi yang sama pada probandus. Yang keempat adalah sensitivitas probandus
terhadap emosi tertenu, di mana probandus lebih mudah merasakan emosi tertentu
dibandingkan dengan emosi lain.
Keberhasilan pembangkitan emosi juga dapat dilihat berdasarkan varian
video stimulus yang diberikan kepada probandus. Terdapat 4 variasi video yaitu Z1,
Z2, Z3, dan Z4. Perbedaan dari 4 jenis video tersebut adalah urutan stimulus emosi
dan video stimulus yang digunakan. Keberhasilan pembangkitan emosi berdasarkan
variasi video dirangkum dalam Tabel 5.2..
Dari tabel dapat dilihat bahwa tidak semua variasi video digunakan dalam
jumlah yang sama walaupun keberhasilan pembangkitan emosi untuk tiap video
tidak berbeda jauh. Hal ini disebabkan karena selama pengambilan data, video yang
berbeda hanya digunakan pada probandus yang sama apabila dilakukan pengukuran
berulang kali.
66

Tabel 5.2. Keberhasilan Pembangkitan Emosi Berdasarkan Variasi Video

Jumlah (sampel)
Variasi Video Persentase (%)
Sesuai Total
Z1 16 28 57,14
Z2 13 28 46,43
Z3 45 84 53,57
Z4 24 40 60,00
Total 98 180 54,44

V.3.2. Pembagian Data

Dari 98 data EEG dengan emosi yang valid, 20% sampel digunakan untuk data
uji dan 80% data digunakan untuk data validasi secara acak. Apabila data tidak dapat
dibagi dengan sempurna maka jumlah data uji dibulatkan naik. Dalam pembagian
data multi-sesi, didapatkan 20 data uji dan 78 data validasi. 78 data validasi yang
sudah dipisah kemudian dibagi lagi menjadi 10 bagian. Masing-masing bagian berisi
7 hingga 8 sampel. Pembagian dilakukan secara acak dan bertingkat sehingga dapat
dipastikan bahwa sampel setiap emosi dapat terwakilkan dalam tiap bagian. Dengan
kata lain setiap bagian setidaknya memiliki satu data sampel untuk tiap emosi. Untuk
pembagian data sesi tunggal, didapatkan 79 sampel data uji dan 313 data validasi.
Dilakukan pembagian yang sama dengan pembagian pada data multi-sesi. Masing-
masing bagian validasi memiliki 31 hingga 32 sampel.
Dilakukan ekstraksi fitur untuk tiap-tiap sampel. Fitur berupa daya, energi,
dan asimetri serebral dihitung berdasarkan PSD masing-masing sampel. Fitur daya
dihitung dengan menggunakan Persamaan 5.1 berdasarkan [22].

Z f1
P = Sx (f )df (5.1)
fo

di mana fo dan f1 adalah frekuensi batas atas dan bawah frekuensi yang diintegralkan,
Sx adalah nilai PSD pada frekuensi tertentu.
67

Sedangkan untuk energi dihitung dengan menggunakan Persamaan 5.3


berdasarkan [28].
f1
∆fwelch X
E = fs × × Sx (f ) (5.2)
∆ff f t f o

di mana f s adalah frekuensi sampling, ∆fwelch adalah selisih sampel frekuensi PSD
berdasarkan perhitungan dengan menggunakan pustaka scipy, dan ∆ff f t adalah
selisih sampel frekuensi FFT berdasarkan perhitungan dengan pustaka numpy.
Asimetri dihitung dengan menggunakan Persamaan 5.4 berdasarkan [8].

Pasimetri = |Plef t − Pright | (5.3)

di mana Plef t adalah daya yang dihitung dari elektroda sebelah kiri dan Pright adalah
pasangan elektroda yang ada di sebelah kanan.
Kemudian fitur dinormalisasi dengan membaginya dengan nilai fitur pada
rentang frekuensi penuh sehingga semua nilai fitur berada dalam rentang di antara 0
sampai 1. Persamaan normalisasi ditunjukkan pada Persamaan 5.4.

F iturδ,θ,α,γ,β
F iturnormalδ,θ,α,β,γ = (5.4)
F iturtotal

Hal ini dilakukan untuk menghilangkan variasi nilai fitur antar sesi.

V.3.3. Hasil Validasi Silang

Dalam proses validasi silang, dilakukan pencarian hiperparameter yang


terbaik untuk proses klasifikasi. Kernel yang digunakan dalam penyusunan model
SVM adalah linier dan RBF, oleh karena itu terdapat dua hiperparameter yaitu C dan
γ. Hasil akurasi dari variasi kernel dan hiperparameter yang digunakan untuk
multi-sesi dan sesi tunggal dijelaskan secara lebih lanjut sebagai berikut.
68

1. Multi-Sesi
Hasil validasi silang pada sampel multi-sesi dengan kernel linier dapat dilihat
dalam Tabel 5.3.. Hasil validasi silang dengan kernel RBF dirangkum dalam
Tabel 5.4. dalam bentuk matriks.

Dari Tabel 5.3. dan Tabel 5.4. dapat dilihat bahwa pada kernel linier
hiperparameter C dengan nilai 100 dan 1000 memberikan akurasi terbaik
yaitu 32,58±15,16%. Sedangkan pada kernel RBF muncul perbedaan akurasi
antara C = 100 dan C = 1000 dengan masuknya hiperparameter γ. Akurasi
terbaik pada kernel RBF muncul dengan nilai C = 1000 dan γ = 0, 1 sebesar
39,58±15,10%.
Tabel 5.3. Akurasi Kernel Linier

No C Akurasi (%)
1 0,1 9,29±1,07
2 1 22,57±7,49
3 10 25,77±9,82
4 100 32,58±15,16
5 1000 32,58±15,16

Tabel 5.4. Akurasi Kernel RBF dalam %

γ
C
1 0,1 0,01 1e-03 1e-04 1e-05 1e-05
0,10 9,29±1,07 9,29±1,07 9,29±1,07 9,29±1,07 9,29±1,07 9,29±1,07 9,29±1,07
1,00 18,37±4,30 20,11±13,08 9,29±1,07 9,29±1,07 9,29±1,07 9,29±1,07 9,29±1,07
10,00 26,19±14,73 25,44±11,07 20,11±13,08 9,29±1,07 9,29±1,07 9,29±1,07 9,29±1,07
100,00 24,57±12,19 30,87±14,11 22,90±9,15 20,11±13,08 9,29±1,07 9,29±1,07 9,29±1,07
1000,00 24,57±15,10 39,58±15,10 33,45±7,42 22,68±9,06 20,11±13,08 9,29±1,07 9,29±1,07
69
70

2. Sesi Tunggal
Hasil validasi silang pada sampel sesi tunggal dengan kernel linier dapat dilihat
dalam Tabel 5.5.. Hasil validasi silang dengan kernel RBF dirangkum dalam
Tabel 5.6. dalam bentuk matriks.

Dari Tabel 5.5. dan Tabel 5.6. dapat dilihat bahwa pada kernel linier
hiperparameter C dengan nilai 10 memberikan akurasi terbaik yaitu
58,39±11,96%. Hal yang sama juga dapat dilihat pada kernel RBF dimana
akurasi terbaik didapatkan dengan nilai C = 10 dan γ = 1 sebesar
66,34±12,86%.

Berdasarkan hasil validasi silang didapatkan hiperparameter terbaik untuk sampel


multi-sesi dengan nilai C = 1000 dan γ = 0, 1. Sedangkan untuk sesi tunggal
didapatkan hiperparameter C = 10 dan γ = 1. Kedua hiperparameter ini akan
digunakan untuk melakukan pengujian sistem klasifikasi.
Tabel 5.5. Akurasi Kernel Linier

No C Akurasi (%)
1 0,1 28,98±14,41
2 1 52,52±16,78
3 10 58,39±11,96
4 100 58,01±18,18
5 1000 54,12±9,83

Tabel 5.6. Akurasi Kernel RBF dalam %

γ
C
1 0,1 0,01 1e-03 1e-04 1e-05 1e-05
0,10 8,87±0,21 8,87±0,21 8,87±0,21 8,87±0,21 8,87±0,21 8,87±0,21 8,87±0,21
1,00 58,31±17,32 45,82±20,27 8,87±0,21 8,87±0,21 8,87±0,21 8,87±0,21 8,87±0,21
10,00 66,34±12,86 58,07±18,98 51,34±22,40 8,87±0,21 8,87±0,21 8,87±0,21 8,87±0,21
100,00 62,68±11,53 62,51±14,55 57,33±15,77 49,24±23,14 8,87±0,21 8,87±0,21 8,87±0,21
1000,00 62,68±11,53 63,00±7,98 57,96±14,23 55,87±17,69 49,24±23,14 8,87±0,21 8,87±0,21
71
72

V.3.4. Hasil Pengujian Sistem

Pengujian sistem dilakukan dengan menggunakan 20 data uji untuk multi-sesi


dan 79 data uji untuk sesi tunggal yang sudah disisihkan. Dengan kata lain data
latih dan validasi saling asing terhadap data uji. Hal ini dilakukan agar tidak terjadi
overfit pada model. Overfit terjadi apabila model mampu mengklasifikasikan sebuah
set data dengan performa yang baik akan tetapi tidak memiliki kemampuan untuk
mengklasifikasikan data asing. Yang mana dalam hal ini berarti bahwa model yang
dibuat tidak dapat difungsikan dalam keadaan nyata.
Pada proses pengujian diperoleh confusion matrix yang menunjukkan kelas
data aktual dan kelas data prediksi dari data uji. Dari confusion matrix dapat dihitung
akurasi total dari sistem klasifikasi. Hasil dari pengujian sistem sesi tunggal dan
multi-sesi dijabarkan sebagai berikut.

1. Multi-Sesi
Dalam multi-sesi digunakan 20 data uji. Persebaran antara emosi hasil prediksi
dan aktual dapat dilihat pada Tabel 5.7..

Tabel 5.7. Confusion matrix hasil pengujian multi-sesi

Aktual
Prediksi
Senang Takut Sedih Tenang
Senang 2 1 0 3
Takut 1 2 0 2
Sedih 0 3 3 1
Tenang 1 1 1 2

Jumlah data dengan emosi prediksi dan aktual sama ditandai dengan highlight
hijau. Jumlah total prediksi emosi yang benar adalah 9 data. Akurasi total
yang didapatkan berdasarkan pengujian ini adalah 9/20 = 45, 00%. Dari
confusion matrix dapat dihitung nilai precision, recall, dan skor f1 untuk
mengetahui kemampuan model untuk mengklasifikasikan tiap emosi.
73

Perhitungan precision, recall, dan skor f1 dilakukan dengan mengikuti


Persamaan 5.5, 5.6, dan 5.7 [27]. Nilai precision, recall, dan skor f1 untuk tiap
emosi pada pengujian ini dapat dilihat pada Tabel 5.8. berikut.

T rueP ositive
P recision = (5.5)
T rueP ositive + F alseP ositive

T rueP ositive
Recall = (5.6)
T rueP ositive + F alseN egative

2 × P recision × Recall
F1 = (5.7)
P recision + Recall

Tabel 5.8. Nilai precision, recall, dan F1 pengujian multi-sesi

Emosi Precision (%) Recall (%) F1 (%)


Senang 50,00 33,33 40,00
Takut 28,57 40,00 33,33
Sedih 75,00 42,86 54,55
Tenang 25,00 40,00 30,77

Nilai precision memberikan gambaran kemampuan classifier untuk


mengklasifikasikan dengan benar suatu emosi aktual dibandingkan dengan
jumlah sampel emosi aktual. Emosi yang berhasil diklasifikasikan dengan
precision tertinggi adalah sedih dengan nilai 75,00%. Sedangkan emosi
dengan precision terendah adalah tenang dengan nilai 25,00%.

Nilai recall memberikan gambaran kemampuan classifier untuk


mengklasifikasikan suatu emosi aktual dibandingkan dengan jumlah sampel
emosi yang diprediksi. Emosi yang berhasil diklasifikasikan dengan recall
tertinggi adalah sedih dengan nilai 42,86%. Di sisi lain, emosi dengan
precision terendah adalah takut dan tenang dengan nilai yang sama yaitu
74

40,00%.

Dari hasil perhitungan precision dan recall, dapat dihitung F1 yang merupakan
weighted average dari precision dan recall. Emosi dengan skor F1 paling tinggi
adalah sedih dengan nilai 54,55%. Sedangkan emosi dengan skor F1 paling
rendah adalah tenang dengan nilai 30,77%.

2. Sesi Tunggal Dalam pengujian sesi tunggal digunakan 79 data uji. Sebaran
emosi aktual dibandingkan dengan hasil prediksi dapat dilihat pada Tabel 5.9.
berikut.
Tabel 5.9. Confusion matrix hasil pengujian sesi tunggal

Aktual
Prediksi
Senang Takut Sedih Tenang
Senang 18 5 3 2
Takut 1 14 6 0
Sedih 2 1 9 9
Tenang 2 3 2 9

Jumlah total prediksi emosi yang benar pada pengujian sesi tunggal adalah 50
dari 79 sampel yang digunakan. Sehingga akurasi total classifier dalam
pengujian ini adalah 50/79 = 63, 29%. Untuk mengetahui preforma
kalsifikasi untuk tiap emosi perlu dihitung precison, recall, dan skor F1 yang
ditunjukkan pada tabel Tabel 5.10.

Tabel 5.10. Nilai precision, recall, dan F1 pengujian sesi tunggal

Emosi Precision (%) Recall (%) F1 (%)


Senang 78,26 64,29 70,59
Takut 60,87 66,67 63,64
Sedih 45,00 64,29 52,94
Tenang 69,23 56,25 62,07

Emosi yang berhasil diklasifikasikan dengan precision tertinggi adalah senang


dengan nilai 78,26%. Di sisi lain emosi dengan precision paling rendah adalah
75

sedih dengan nilai 45,00%. Untuk recall, nilai tertinggi dan terendah tidak
terlalu berbeda jauh. Emosi dengan recall tertinggi adalah takut dengan nilai
66,67%. Sedangkan emosi dengan recall terendah adalah tenang dengan nilai
56,25%.

Untuk nilai F1, yang merupakan weighted average dari precision dan recall,
didapatkan skor tertinggi pada emosi senang dengan nilai 70,59%. Skor F1
terendah diperoleh pada emosi sedih dengan nilai 52,94%.

Dari hasil pengujian yang diperoleh didapatkan bahwa akurasi pengambilan


data dengan sampel tunggal memiliki akurasi di atas akurasi dengan multi-sampel.
Selisih dari akurasi sampel tunggal dan multi-sampel yang didapatkan adalah
18,29%. Akurasi sampel tunggal pada penelitian ini lah yang dapat dibandingkan
dengan penelitian yang telah dilakukan sebelumnya.
Akurasi yang didapatkan dari sampel tunggal ataupun multi-sampel tidak
mencapai 100% kemungkinan disebabkan oleh beberapa hal:

1. Variasi penempatan elektroda antara satu sesi pengambilan data yang dilakukan
dengan sesi yang lain. Variasi ini disebabkan oleh kesalahan pengukuran saat
mengukur peletakan elektroda ataupun karena bentuk kepala probandus sendiri.

2. Adanya artefak yang belum dapat diperbaiki atau ditapis dengan menggunakan
metode preprocessing yang dilakukan pada sistem yang dibangun. Artefak ini
dapat berupa kedipan/gerakan mata, detak jantung, ataupun goyangan kabel
akibat gerakan probandus.

3. Fitur yang digunakan tidak dapat merepresentasikan perbedaan karakter data


EEG seseorang dari emosi yang berbeda secara sempurna.

Akurasi sampel tunggal lebih tinggi daripada multi-sampel karena pada saat
pengacakan data dalam data latih dan data validasi, kemungkinan besar terdapat data
76

latih dan data validasi dari probandus yang sama, emosi yang sama, walaupun dalam
waktu yang berbeda. Kemungkinan terdapat data yang diambil dalam satu sesi yang
sama, memiliki emosi yang sama, dan digunakan sebagai data latih, validasi, dan
uji. Dalam sampel tunggal, data latih yang digunakan memiliki karakteristik lebih
mirip dengan sampel uji. Sehingga dalam sampel tunggal, sistem dapat dikatakan
sudah mengenali karakteristik EEG dari seseorang. Penggunaan sampling sampel
tunggal tidak dapat dikatakan merupakan sebuah kejadian overfitting karena sampel
yang digunakan untuk pengujian, validasi, dan pelatihan berbeda dari satu dengan
yang lainnya.
Pada multi-sampel, tidak ada data sampel dengan emosi yang sama yang
diambil pada sesi yang sama. Sehingga data uji maupun validasi merupakan data
yang dapat dikatakan sama sekali asing terhadap sistem klasifikasi. Oleh karena itu
akurasi yang didapatkan pada sampling multi-sampel lebih rendah daripada sampel
tunggal. Akan tetapi situasi dimana sistem klasifikasi sama sekali asing dengan data
masukan lebih mendekati keadaan nyata utamanya pada saat dilakukan psikoterapi.
Dalam psikoterapi, terapis berusaha menyelesaikan masalah klien dalam
waktu sesingkat mungkin dan hasil sebaik mungkin. Dengan kata lain jumlah sesi
psikoterapi diusahakan seminimal mungkin. Dalam kondisi tersebut boleh jadi
sistem klasifikasi hanya memiliki akurasi dalam kisaran sampel multi-sesi. Akurasi
multi sesi hanya 20% lebih tinggi dibandingkan dengan menebak secara acak (25%).
Performa seperti ini menurut peneliti tidak dapat diterima.
Sehingga dalam penerapannya, akurasi sistem klasifikasi dapat ditingkatkan
apabila sistem sudah mengenali karakteristik data EEG dari seseorang. Salah satu
cara untuk melakukannya dalam penerapan psikoterapi adalah dengan mengambil
sampel EEG klien sebelum dilakukan sesi utama psikoterapi, dengan syarat sampel
EEG klien yang diambil memiliki label yang jelas. Dengan demikian sistem dapat
77

diterapkan secara nyata pada proses psikoterapi.


BAB VI

KESIMPULAN DAN SARAN

VI.1. Kesimpulan

Kesimpulan yang dapat diambil berdasarkan pembahasan yang telah


dilakukan adalah telah berhasil dirancang bangun sistem klasifikasi emosi klien yang
meliputi perasaan senang, takut, sedih, dan tenang dengan metode Support Vector
Machine (SVM) menggunakan data Electroencephalography (EEG) untuk
instrumentasi pengukuran psikoterapi dengan rincian sebagai berikut:

1. Akurasi klasifikasi emosi multi sesi keseluruhan sebesar 45,00% dari 19 sampel
uji. Klasifikasi emosi senang (50,00%), takut (28,57%), sedih (75,00%), dan
tenang (25,00%) berhasil dilakukan.

2. Akurasi klasifikasi emosi sesi tunggal keseluruhan sebesar 63,29% dari 79


sampel uji sehingga tuntutan rancangan terpenuhi. Klasifikasi emosi senang
(78,26%), takut (60,87%), sedih (45,00%), dan tenang (69,23%) berhasil
dilakukan.

VI.2. Rencana Penelitian Ke Depan

Rencana penelitian ke depan yang dapat dilakukan berdasarkan penelitian ini


adalah sebagai berikut:

1. Pengembangan sistem klasifikasi dengan menggunakan Independent


Component Analysis (ICA) pada langkah preprocessing untuk memperbaiki
artefak perekaman EEG.

78
79

2. Pengembangan sistem klasifikasi dengan menggunakan metode machine


learning lain.

3. Pengembangan sistem klasifikasi emosi secara real-time dengan pengolahan


secara langsung pada data yang didapatkan.

4. Pengembangan program antarmuka sistem klasifikasi agar sistem lebih mudah


digunakan.
DAFTAR PUSTAKA

[1] G. C. Smith. “Psychotherapy”. Encyclopedia of Stress, hal. 302–307, 2010.


Diakses dari https://research.monash.edu/en/publications/psychotherapy.

[2] B. Wampold. The basics of psychotherapy: An introduction to theory and


practice, 2010.

[3] What is a Psychological Disorder? Diakses dari https://www.psychologytoday.


com/blog/the-mysteries-love/201503/what-is-psychological-disorder.

[4] Definition of EMOTION. Diakses dari https://www.merriam-webster.com/


dictionary/emotion. Library Catalog: www.merriam-webster.com.

[5] Donald B. Lindsley. Emotion. Handbook of experimental psychology, hal. 473–


516. Wiley, Oxford, England, 1951.

[6] Jonathan Posner, James A. Russell dan Bradley S. Peterson. “The circumplex
model of affect: An integrative approach to affective neuroscience, cognitive
development, and psychopathology”. Development and psychopathology,
17(3):715–734, 2005. Diakses dari https://www.ncbi.nlm.nih.gov/pmc/articles/
PMC2367156/.

[7] Raja Majid Mehmood dan Hyo Jong Lee. Emotion classification of EEG brain
signal using SVM and KNN, June 2015. Diakses dari http://ieeexplore.ieee.org/
lpdocs/epic03/wrapper.htm?arnumber=7169786.

[8] Yuan-Pin Lin, Chi-Hong Wang, Tzyy-Ping Jung, Tien-Lin Wu, Shyh-Kang
Jeng, Jeng-Ren Duann dan Jyh-Horng Chen. “EEG-Based Emotion Recognition
in Music Listening”. IEEE Transactions on Biomedical Engineering,
57(7):1798–1806, July 2010. Diakses dari http://ieeexplore.ieee.org/document/
5458075/.

[9] Siuly Siuly, Yan Li dan Yanchun Zhang. EEG Signal Analysis
and Classification. Health Information Science. Springer International
Publishing, Cham, 2016. Diakses dari http://link.springer.com/10.1007/
978-3-319-47653-7.

[10] Mi-Sook Park, Hyeong-Seok Oh, Hoyeon Jeong dan Jin-Hun Sohn. Eeg-based
emotion recogntion during emotionally evocative films, February 2013. Diakses
dari http://ieeexplore.ieee.org/document/6506629/.

[11] Barjinder Kaur, Dinesh Singh dan Partha Pratim Roy. “EEG Based
Emotion Classification Mechanism in BCI”. Procedia Computer Science,
132:752–758, 2018. Diakses dari https://linkinghub.elsevier.com/retrieve/pii/
S1877050918308196.

80
81

[12] Sreeshakthy M. dan Preethi J. Classification of emotion from EEG using hybrid
radial basis function networks with elitist PSO, January 2015. Diakses dari
http://ieeexplore.ieee.org/document/7282340/.

[13] Ahmad Tauseef Sohaib, Shahnawaz Qureshi, Johan Hagelbäck, Olle Hilborn
dan Petar Jerčić. Evaluating Classifiers for Emotion Recognition Using
EEG. Dalam David Hutchison, Takeo Kanade, Josef Kittler, Jon M.
Kleinberg, Friedemann Mattern, John C. Mitchell, Moni Naor, Oscar Nierstrasz,
C. Pandu Rangan, Bernhard Steffen, Madhu Sudan, Demetri Terzopoulos, Doug
Tygar, Moshe Y. Vardi, Gerhard Weikum, Dylan D. Schmorrow dan Cali M.
Fidopiastis, editors, Foundations of Augmented Cognition, volume 8027, hal.
492–501. Springer Berlin Heidelberg, Berlin, Heidelberg, 2013. Diakses dari
http://link.springer.com/10.1007/978-3-642-39454-6_53.

[14] Aayush Bhardwaj, Ankit Gupta, Pallav Jain, Asha Rani dan Jyoti Yadav.
Classification of human emotions from EEG signals using SVM and LDA
Classifiers, February 2015. Diakses dari http://ieeexplore.ieee.org/document/
7095376/.

[15] Abu Ahmad. “Mengenal Artificial Intelligence, Machine Learning, Neural


Network, dan Deep Learning”. hal. 6, 2017.

[16] Kornraphop Kawintiranon, Yanika Buatong dan Peerapon Vateekul. Online


music emotion prediction on multiple sessions of EEG data using SVM, July
2016. Diakses dari http://ieeexplore.ieee.org/document/7748921/.

[17] Saeid Sanei dan Jonathan Chambers. “EEG Signal Processing”. hal. 313.

[18] Overview of artifact detection — MNE 0.20.5


documentation. Diakses dari https://mne.tools/stable/auto_
tutorials/preprocessing/plot_10_preprocessing_overview.html#
sphx-glr-auto-tutorials-preprocessing-plot-10-preprocessing-overview-py.

[19] Anastasia Veloni, Nikolaos Miridakis dan Erysso Boukouvala. Digital and
statistical signal processing. CRC Press, Taylor & Francis Group, Boca Raton,
FL, 2019.

[20] Introduction to Filters: FIR versus IIR. Diakses dari https://community.sw.


siemens.com/s/article/introduction-to-filters-fir-versus-iir.

[21] OM Solomon Jr. “Psd computations using welch’s method”. STIN, 92:23584,
1991.

[22] Bandpower of an EEG signal. Diakses dari https://raphaelvallat.com/


bandpower.html.
82

[23] Asa Ben-Hur dan Jason Weston. A User’s Guide to Support Vector Machines.
Dalam Oliviero Carugo dan Frank Eisenhaber, editors, Data Mining Techniques
for the Life Sciences, volume 609, hal. 223–239. Humana Press, Totowa, NJ,
2010. Diakses dari http://link.springer.com/10.1007/978-1-60327-241-4_13.
Series Title: Methods in Molecular Biology.

[24] Jason Brownlee. One-vs-Rest and One-vs-One for Multi-Class


Classification, April 2020. Diakses dari https://machinelearningmastery.
com/one-vs-rest-and-one-vs-one-for-multi-class-classification/.

[25] Jason Brownlee. A Gentle Introduction to k-fold Cross-Validation, May 2018.


Diakses dari https://machinelearningmastery.com/k-fold-cross-validation/.

[26] 3.1. Cross-validation: evaluating estimator performance — scikit-learn 0.23.2


documentation. Diakses dari https://scikit-learn.org/stable/modules/cross_
validation.html.

[27] Kuncahyo Setyo Nugroho. Confusion Matrix untuk


Evaluasi Model pada Supervised Learning, June
2020. Diakses dari https://medium.com/@ksnugroho/
confusion-matrix-untuk-evaluasi-model-pada-unsupervised-machine-learning-bc4b1ae9ae3f.

[28] python - Can’t find the right energy using scipy.signal.welch.


Diakses dari https://stackoverflow.com/questions/29429733/
cant-find-the-right-energy-using-scipy-signal-welch.
LAMPIRAN

83
LAMPIRAN A

HASIL EKSTRAKSI FITUR DAN VALIDASI SILANG

84
85

Tabel A.1. Fitur daya gelombang delta hingga gamma elektroda Fp1 dari sampel 1
hingga 40

No Fp1_delta_p Fp1_theta_p Fp1_alpha_p Fp1_beta_p Fp1_gamma_p


1 0,84 0,11 0,02 0,01 0,00
2 0,69 0,12 0,03 0,03 0,00
3 0,68 0,15 0,06 0,06 0,00
4 0,74 0,15 0,05 0,04 0,00
5 0,84 0,09 0,02 0,01 0,00
6 0,69 0,15 0,07 0,07 0,00
7 0,88 0,08 0,01 0,01 0,00
8 0,85 0,12 0,01 0,00 0,00
9 0,70 0,16 0,03 0,07 0,01
10 0,74 0,13 0,03 0,07 0,01
11 0,67 0,17 0,04 0,08 0,01
12 0,74 0,15 0,03 0,04 0,01
13 0,71 0,15 0,06 0,06 0,00
14 0,82 0,12 0,02 0,02 0,00
15 0,64 0,17 0,05 0,11 0,01
16 0,66 0,18 0,07 0,04 0,00
17 0,56 0,15 0,07 0,16 0,03
18 0,72 0,15 0,02 0,05 0,00
19 0,68 0,16 0,07 0,06 0,00
20 0,77 0,19 0,02 0,00 0,00
21 0,79 0,10 0,04 0,03 0,00
22 0,79 0,17 0,02 0,00 0,00
23 0,79 0,14 0,02 0,02 0,00
24 0,82 0,13 0,01 0,01 0,00
25 0,78 0,10 0,04 0,03 0,00
26 0,79 0,13 0,02 0,02 0,00
27 0,70 0,15 0,04 0,08 0,01
28 0,82 0,11 0,01 0,01 0,00
29 0,77 0,12 0,04 0,03 0,00
30 0,74 0,15 0,05 0,03 0,00
31 0,65 0,21 0,08 0,05 0,00
32 0,84 0,12 0,01 0,01 0,00
33 0,78 0,17 0,02 0,01 0,00
34 0,80 0,12 0,04 0,02 0,00
35 0,71 0,21 0,03 0,03 0,00
36 0,72 0,13 0,06 0,05 0,01
37 0,82 0,13 0,02 0,01 0,00
38 0,73 0,21 0,03 0,02 0,00
39 0,71 0,19 0,03 0,04 0,01
40 0,81 0,10 0,03 0,03 0,00
86

Tabel A.2. Fitur energi gelombang delta hingga gamma elektroda Fp1 dari sampel 1
hingga 40

No Fp1_delta_e Fp1_theta_e Fp1_alpha_e Fp1_beta_e Fp1_gamma_e


1 0,87 0,13 0,02 0,01 0,00
2 0,75 0,13 0,03 0,03 0,00
3 0,71 0,17 0,06 0,06 0,00
4 0,77 0,17 0,05 0,04 0,00
5 0,87 0,10 0,02 0,01 0,00
6 0,71 0,17 0,07 0,07 0,01
7 0,90 0,08 0,01 0,01 0,00
8 0,87 0,13 0,01 0,00 0,00
9 0,73 0,18 0,03 0,07 0,01
10 0,76 0,14 0,04 0,07 0,01
11 0,69 0,19 0,05 0,09 0,02
12 0,76 0,17 0,03 0,04 0,01
13 0,73 0,16 0,06 0,06 0,00
14 0,84 0,13 0,02 0,02 0,00
15 0,67 0,18 0,05 0,11 0,01
16 0,70 0,19 0,07 0,04 0,00
17 0,59 0,16 0,07 0,16 0,03
18 0,75 0,17 0,03 0,06 0,00
19 0,70 0,17 0,08 0,06 0,00
20 0,80 0,21 0,02 0,00 0,00
21 0,81 0,11 0,04 0,03 0,00
22 0,81 0,18 0,02 0,00 0,00
23 0,82 0,15 0,02 0,02 0,00
24 0,85 0,14 0,01 0,01 0,00
25 0,81 0,11 0,04 0,03 0,00
26 0,82 0,15 0,03 0,02 0,00
27 0,73 0,16 0,04 0,08 0,01
28 0,87 0,13 0,01 0,01 0,00
29 0,80 0,13 0,05 0,03 0,00
30 0,77 0,17 0,05 0,03 0,00
31 0,67 0,22 0,08 0,05 0,00
32 0,86 0,13 0,01 0,01 0,00
33 0,81 0,18 0,02 0,01 0,00
34 0,83 0,13 0,04 0,02 0,00
35 0,73 0,22 0,04 0,03 0,00
36 0,75 0,15 0,06 0,06 0,01
37 0,84 0,15 0,02 0,01 0,00
38 0,75 0,23 0,03 0,02 0,00
39 0,73 0,21 0,03 0,04 0,01
40 0,83 0,11 0,03 0,03 0,00
87

Tabel A.3. Fitur asimetri gelombang delta hingga gamma elektroda Fp1-Fp2 dari
sampel 1 hingga 40

No Fp12_delta_p Fp12_theta_p Fp12_alpha_p Fp12_beta_p Fp12_gamma_p


1 0,12 0,07 0,03 0,03 0,00
2 0,00 0,01 0,00 0,01 0,00
3 0,16 0,07 0,04 0,04 0,00
4 0,01 0,02 0,00 0,01 0,00
5 0,01 0,01 0,01 0,00 0,00
6 0,01 0,01 0,01 0,00 0,00
7 0,00 0,00 0,00 0,00 0,00
8 0,00 0,00 0,00 0,00 0,00
9 0,05 0,00 0,01 0,04 0,01
10 0,02 0,01 0,00 0,02 0,00
11 0,05 0,01 0,01 0,03 0,00
12 0,02 0,02 0,01 0,02 0,00
13 0,08 0,06 0,03 0,04 0,00
14 0,01 0,02 0,00 0,01 0,00
15 0,06 0,03 0,02 0,02 0,00
16 0,04 0,00 0,01 0,01 0,00
17 0,01 0,03 0,01 0,03 0,01
18 0,08 0,04 0,01 0,02 0,00
19 0,05 0,02 0,01 0,03 0,00
20 0,00 0,00 0,00 0,00 0,00
21 0,04 0,01 0,01 0,01 0,00
22 0,05 0,05 0,01 0,00 0,00
23 0,02 0,01 0,00 0,02 0,00
24 0,00 0,00 0,00 0,00 0,00
25 0,02 0,01 0,01 0,01 0,00
26 0,02 0,02 0,01 0,01 0,00
27 0,08 0,01 0,02 0,06 0,01
28 0,11 0,07 0,03 0,02 0,00
29 0,07 0,02 0,02 0,02 0,00
30 0,01 0,00 0,00 0,01 0,00
31 0,02 0,00 0,02 0,00 0,00
32 0,01 0,01 0,00 0,00 0,00
33 0,00 0,00 0,00 0,00 0,00
34 0,00 0,00 0,01 0,00 0,00
35 0,05 0,01 0,01 0,02 0,01
36 0,07 0,10 0,01 0,01 0,00
37 0,02 0,01 0,00 0,00 0,00
38 0,00 0,00 0,00 0,00 0,00
39 0,00 0,00 0,00 0,00 0,00
40 0,01 0,01 0,01 0,01 0,00
88

Tabel A.4. Fitur daya gelombang delta hingga gamma elektroda Fp1 dari sampel 1
hingga 40

No Fp1_delta_p Fp1_theta_p Fp1_alpha_p Fp1_beta_p Fp1_gamma_p


1 0,84 0,12 0,01 0,01 0,00
2 0,70 0,15 0,04 0,08 0,01
3 0,72 0,14 0,03 0,07 0,01
4 0,72 0,14 0,04 0,07 0,01
5 0,78 0,11 0,03 0,05 0,01
6 0,84 0,11 0,01 0,01 0,00
7 0,67 0,15 0,05 0,09 0,02
8 0,68 0,19 0,04 0,06 0,01
9 0,68 0,18 0,04 0,08 0,01
10 0,66 0,15 0,04 0,10 0,02
11 0,85 0,11 0,01 0,01 0,00
12 0,69 0,20 0,04 0,04 0,01
13 0,69 0,20 0,04 0,04 0,01
14 0,72 0,18 0,04 0,04 0,00
15 0,77 0,11 0,02 0,04 0,01
16 0,84 0,10 0,02 0,01 0,00
17 0,72 0,15 0,06 0,05 0,00
18 0,71 0,16 0,06 0,06 0,00
19 0,71 0,16 0,06 0,05 0,00
20 0,71 0,13 0,05 0,07 0,00
21 0,84 0,11 0,02 0,01 0,00
22 0,80 0,10 0,04 0,02 0,00
23 0,82 0,11 0,02 0,02 0,00
24 0,75 0,15 0,04 0,03 0,00
25 0,61 0,18 0,07 0,11 0,01
26 0,61 0,21 0,05 0,11 0,01
27 0,59 0,19 0,06 0,14 0,01
28 0,70 0,14 0,04 0,09 0,00
29 0,65 0,19 0,09 0,05 0,00
30 0,69 0,18 0,06 0,04 0,00
31 0,68 0,19 0,07 0,04 0,00
32 0,68 0,12 0,05 0,05 0,00
33 0,51 0,18 0,08 0,18 0,03
34 0,54 0,15 0,07 0,17 0,03
35 0,53 0,20 0,07 0,15 0,02
36 0,59 0,08 0,05 0,16 0,03
37 0,64 0,25 0,03 0,05 0,00
38 0,79 0,11 0,03 0,05 0,00
39 0,53 0,19 0,06 0,17 0,02
40 0,71 0,17 0,02 0,04 0,00
89

Tabel A.5. Fitur energi gelombang delta hingga gamma elektroda Fp1 dari sampel 1
hingga 40

No Fp1_delta_e Fp1_theta_e Fp1_alpha_e Fp1_beta_e Fp1_gamma_e


1 0,87 0,13 0,02 0,01 0,00
2 0,72 0,16 0,04 0,08 0,01
3 0,75 0,16 0,04 0,07 0,01
4 0,75 0,15 0,04 0,07 0,01
5 0,79 0,12 0,03 0,05 0,01
6 0,87 0,14 0,02 0,01 0,00
7 0,69 0,16 0,05 0,10 0,02
8 0,70 0,21 0,04 0,06 0,01
9 0,70 0,19 0,04 0,08 0,01
10 0,69 0,17 0,04 0,11 0,02
11 0,87 0,13 0,02 0,01 0,00
12 0,72 0,22 0,04 0,04 0,01
13 0,71 0,22 0,05 0,05 0,01
14 0,75 0,19 0,04 0,04 0,00
15 0,80 0,13 0,02 0,04 0,01
16 0,87 0,12 0,02 0,01 0,00
17 0,75 0,17 0,06 0,05 0,00
18 0,73 0,17 0,06 0,06 0,00
19 0,73 0,17 0,06 0,05 0,00
20 0,74 0,14 0,05 0,07 0,00
21 0,86 0,12 0,02 0,01 0,00
22 0,83 0,11 0,04 0,02 0,00
23 0,85 0,13 0,02 0,02 0,00
24 0,78 0,16 0,04 0,04 0,00
25 0,64 0,19 0,07 0,11 0,01
26 0,64 0,22 0,05 0,11 0,01
27 0,61 0,20 0,06 0,14 0,01
28 0,73 0,16 0,04 0,09 0,01
29 0,67 0,21 0,09 0,05 0,00
30 0,71 0,20 0,07 0,04 0,00
31 0,71 0,21 0,07 0,04 0,00
32 0,73 0,13 0,05 0,05 0,00
33 0,53 0,19 0,08 0,19 0,03
34 0,57 0,16 0,08 0,18 0,03
35 0,56 0,22 0,08 0,15 0,02
36 0,63 0,09 0,06 0,16 0,03
37 0,66 0,26 0,03 0,05 0,00
38 0,81 0,12 0,03 0,05 0,00
39 0,55 0,20 0,07 0,17 0,02
40 0,75 0,19 0,02 0,04 0,00
90

Tabel A.6. Fitur asimetri gelombang delta hingga gamma elektroda Fp1-Fp2 dari
sampel 1 hingga 40

No Fp12_delta_p Fp12_theta_p Fp12_alpha_p Fp12_beta_p Fp12_gamma_p


1 0,07 0,02 0,03 0,02 0,00
2 0,03 0,00 0,00 0,02 0,00
3 0,03 0,00 0,01 0,03 0,00
4 0,04 0,00 0,01 0,03 0,00
5 0,01 0,01 0,00 0,02 0,00
6 0,10 0,06 0,02 0,02 0,00
7 0,08 0,02 0,02 0,04 0,01
8 0,04 0,01 0,01 0,02 0,00
9 0,03 0,01 0,01 0,03 0,00
10 0,03 0,01 0,00 0,03 0,00
11 0,17 0,09 0,04 0,04 0,00
12 0,02 0,01 0,00 0,02 0,00
13 0,00 0,02 0,00 0,01 0,00
14 0,02 0,01 0,00 0,01 0,00
15 0,01 0,03 0,00 0,01 0,00
16 0,15 0,09 0,04 0,04 0,00
17 0,04 0,01 0,02 0,01 0,00
18 0,14 0,09 0,04 0,05 0,00
19 0,03 0,02 0,02 0,03 0,00
20 0,04 0,04 0,02 0,05 0,00
21 0,03 0,00 0,00 0,00 0,00
22 0,00 0,01 0,01 0,00 0,00
23 0,03 0,02 0,00 0,01 0,00
24 0,04 0,03 0,01 0,01 0,00
25 0,06 0,05 0,03 0,03 0,00
26 0,07 0,04 0,01 0,03 0,00
27 0,04 0,00 0,02 0,02 0,00
28 0,04 0,02 0,01 0,01 0,00
29 0,01 0,02 0,02 0,01 0,00
30 0,04 0,02 0,01 0,01 0,00
31 0,03 0,00 0,01 0,01 0,00
32 0,02 0,02 0,01 0,01 0,00
33 0,01 0,03 0,00 0,03 0,01
34 0,01 0,02 0,01 0,03 0,01
35 0,00 0,05 0,01 0,04 0,02
36 0,09 0,03 0,02 0,02 0,00
37 0,18 0,12 0,02 0,03 0,00
38 0,08 0,03 0,01 0,03 0,00
39 0,26 0,11 0,04 0,10 0,01
40 0,01 0,02 0,00 0,00 0,00
91

Tabel A.7. Hasil validasi silang multi-sesi beserta hyperparameter yang digunakan

No Rerata σ Parameter
1 0,09 0,01 {’C’: 0.1, ’gamma’: 1, ’kernel’: ’rbf’}
2 0,09 0,01 {’C’: 0.1, ’gamma’: 0.1, ’kernel’: ’rbf’}
3 0,09 0,01 {’C’: 0.1, ’gamma’: 0.01, ’kernel’: ’rbf’}
4 0,09 0,01 {’C’: 0.1, ’gamma’: 0.001, ’kernel’: ’rbf’}
5 0,09 0,01 {’C’: 0.1, ’gamma’: 0.0001, ’kernel’: ’rbf’}
6 0,09 0,01 {’C’: 0.1, ’gamma’: 1e-05, ’kernel’: ’rbf’}
7 0,09 0,01 {’C’: 0.1, ’gamma’: 1e-06, ’kernel’: ’rbf’}
8 0,18 0,04 {’C’: 1, ’gamma’: 1, ’kernel’: ’rbf’}
9 0,20 0,13 {’C’: 1, ’gamma’: 0.1, ’kernel’: ’rbf’}
10 0,09 0,01 {’C’: 1, ’gamma’: 0.01, ’kernel’: ’rbf’}
11 0,09 0,01 {’C’: 1, ’gamma’: 0.001, ’kernel’: ’rbf’}
12 0,09 0,01 {’C’: 1, ’gamma’: 0.0001, ’kernel’: ’rbf’}
13 0,09 0,01 {’C’: 1, ’gamma’: 1e-05, ’kernel’: ’rbf’}
14 0,09 0,01 {’C’: 1, ’gamma’: 1e-06, ’kernel’: ’rbf’}
15 0,26 0,15 {’C’: 10, ’gamma’: 1, ’kernel’: ’rbf’}
16 0,25 0,11 {’C’: 10, ’gamma’: 0.1, ’kernel’: ’rbf’}
17 0,20 0,13 {’C’: 10, ’gamma’: 0.01, ’kernel’: ’rbf’}
18 0,09 0,01 {’C’: 10, ’gamma’: 0.001, ’kernel’: ’rbf’}
19 0,09 0,01 {’C’: 10, ’gamma’: 0.0001, ’kernel’: ’rbf’}
20 0,09 0,01 {’C’: 10, ’gamma’: 1e-05, ’kernel’: ’rbf’}
21 0,09 0,01 {’C’: 10, ’gamma’: 1e-06, ’kernel’: ’rbf’}
22 0,25 0,12 {’C’: 100, ’gamma’: 1, ’kernel’: ’rbf’}
23 0,31 0,14 {’C’: 100, ’gamma’: 0.1, ’kernel’: ’rbf’}
24 0,23 0,09 {’C’: 100, ’gamma’: 0.01, ’kernel’: ’rbf’}
25 0,20 0,13 {’C’: 100, ’gamma’: 0.001, ’kernel’: ’rbf’}
26 0,09 0,01 {’C’: 100, ’gamma’: 0.0001, ’kernel’: ’rbf’}
27 0,09 0,01 {’C’: 100, ’gamma’: 1e-05, ’kernel’: ’rbf’}
28 0,09 0,01 {’C’: 100, ’gamma’: 1e-06, ’kernel’: ’rbf’}
29 0,25 0,12 {’C’: 1000, ’gamma’: 1, ’kernel’: ’rbf’}
30 0,40 0,15 {’C’: 1000, ’gamma’: 0.1, ’kernel’: ’rbf’}
31 0,33 0,07 {’C’: 1000, ’gamma’: 0.01, ’kernel’: ’rbf’}
32 0,23 0,09 {’C’: 1000, ’gamma’: 0.001, ’kernel’: ’rbf’}
33 0,20 0,13 {’C’: 1000, ’gamma’: 0.0001, ’kernel’: ’rbf’}
34 0,09 0,01 {’C’: 1000, ’gamma’: 1e-05, ’kernel’: ’rbf’}
35 0,09 0,01 {’C’: 1000, ’gamma’: 1e-06, ’kernel’: ’rbf’}
36 0,09 0,01 {’C’: 0.1, ’kernel’: ’linear’}
37 0,23 0,07 {’C’: 1, ’kernel’: ’linear’}
38 0,26 0,10 {’C’: 10, ’kernel’: ’linear’}
39 0,33 0,15 {’C’: 100, ’kernel’: ’linear’}
40 0,33 0,15 {’C’: 1000, ’kernel’: ’linear’}
92

Tabel A.8. Hasil validasi silang sesi tunggal beserta hyperparameter yang digunakan

No Rerata σ Parameter
1 0,09 0,00 {’C’: 0,1, ’gamma’: 1, ’kernel’: ’rbf’}
2 0,09 0,00 {’C’: 0,1, ’gamma’: 0,1, ’kernel’: ’rbf’}
3 0,09 0,00 {’C’: 0,1, ’gamma’: 0,01, ’kernel’: ’rbf’}
4 0,09 0,00 {’C’: 0,1, ’gamma’: 0,001, ’kernel’: ’rbf’}
5 0,09 0,00 {’C’: 0,1, ’gamma’: 0,0001, ’kernel’: ’rbf’}
6 0,09 0,00 {’C’: 0,1, ’gamma’: 1e-05, ’kernel’: ’rbf’}
7 0,09 0,00 {’C’: 0,1, ’gamma’: 1e-06, ’kernel’: ’rbf’}
8 0,58 0,17 {’C’: 1, ’gamma’: 1, ’kernel’: ’rbf’}
9 0,46 0,20 {’C’: 1, ’gamma’: 0,1, ’kernel’: ’rbf’}
10 0,09 0,00 {’C’: 1, ’gamma’: 0,01, ’kernel’: ’rbf’}
11 0,09 0,00 {’C’: 1, ’gamma’: 0,001, ’kernel’: ’rbf’}
12 0,09 0,00 {’C’: 1, ’gamma’: 0,0001, ’kernel’: ’rbf’}
13 0,09 0,00 {’C’: 1, ’gamma’: 1e-05, ’kernel’: ’rbf’}
14 0,09 0,00 {’C’: 1, ’gamma’: 1e-06, ’kernel’: ’rbf’}
15 0,66 0,13 {’C’: 10, ’gamma’: 1, ’kernel’: ’rbf’}
16 0,58 0,19 {’C’: 10, ’gamma’: 0,1, ’kernel’: ’rbf’}
17 0,51 0,22 {’C’: 10, ’gamma’: 0,01, ’kernel’: ’rbf’}
18 0,09 0,00 {’C’: 10, ’gamma’: 0,001, ’kernel’: ’rbf’}
19 0,09 0,00 {’C’: 10, ’gamma’: 0,0001, ’kernel’: ’rbf’}
20 0,09 0,00 {’C’: 10, ’gamma’: 1e-05, ’kernel’: ’rbf’}
21 0,09 0,00 {’C’: 10, ’gamma’: 1e-06, ’kernel’: ’rbf’}
22 0,63 0,12 {’C’: 100, ’gamma’: 1, ’kernel’: ’rbf’}
23 0,63 0,15 {’C’: 100, ’gamma’: 0,1, ’kernel’: ’rbf’}
24 0,57 0,16 {’C’: 100, ’gamma’: 0,01, ’kernel’: ’rbf’}
25 0,49 0,23 {’C’: 100, ’gamma’: 0,001, ’kernel’: ’rbf’}
26 0,09 0,00 {’C’: 100, ’gamma’: 0,0001, ’kernel’: ’rbf’}
27 0,09 0,00 {’C’: 100, ’gamma’: 1e-05, ’kernel’: ’rbf’}
28 0,09 0,00 {’C’: 100, ’gamma’: 1e-06, ’kernel’: ’rbf’}
29 0,63 0,12 {’C’: 1000, ’gamma’: 1, ’kernel’: ’rbf’}
30 0,63 0,08 {’C’: 1000, ’gamma’: 0,1, ’kernel’: ’rbf’}
31 0,58 0,14 {’C’: 1000, ’gamma’: 0,01, ’kernel’: ’rbf’}
32 0,56 0,18 {’C’: 1000, ’gamma’: 0,001, ’kernel’: ’rbf’}
33 0,49 0,23 {’C’: 1000, ’gamma’: 0,0001, ’kernel’: ’rbf’}
34 0,09 0,00 {’C’: 1000, ’gamma’: 1e-05, ’kernel’: ’rbf’}
35 0,09 0,00 {’C’: 1000, ’gamma’: 1e-06, ’kernel’: ’rbf’}
36 0,29 0,14 {’C’: 0,1, ’kernel’: ’linear’}
37 0,53 0,17 {’C’: 1, ’kernel’: ’linear’}
38 0,58 0,12 {’C’: 10, ’kernel’: ’linear’}
39 0,58 0,18 {’C’: 100, ’kernel’: ’linear’}
40 0,54 0,10 {’C’: 1000, ’kernel’: ’linear’}
LAMPIRAN B

LISTING PROGRAM

B.1. Program Preprocessing dan Pemilahan Data

1 # −∗− c o d i n g : u t f −8 −∗−
2 """
3 C r e a t e d on Thu Mar 5 1 4 : 4 8 : 1 7 2020
4
5 @author : G h a z i a n
6 """
7 import o s
8 import mne
9
10 delay = [120]
11 time = [180 , 120 , 180 , 120 , 180 , 120 , 180]
12
13 # J e n i s e m o s i dan s t i m u l u s
14 emo1 = [ ’ s e d i h ’ , ’ t e n a n g ’ , ’ t a k u t ’ , ’ s e n a n g ’ ]
15 a = ’ Z1 ’
16
17 #Nama f i l e u n t u k d i b u k a
18 name = [ ’ 1 ’ , ’ 2 ’ , ’ 3 ’ , ’ 4 ’ , ’ 13 ’ , ’ 20 ’ , ’ 27 ’ ]
19
20 # Fungsi pre pr oc ess in g
21 d e f p r e p r o c e s s i n g ( raw ) :
22 raw = raw . f i l t e r ( l _ f r e q = 1 , h _ f r e q = 3 5 ,
23 l_trans_bandwidth = 1 ,
24 h_trans_bandwidth = 1 ,
25 fir_design=’ firwin ’ )
26 r e t u r n raw

93
94

27
28 # F u n g s i pembagi f i l e b e r d a s a r k a n e m o s i dan s t i m u l u s
29 d e f s p l i t _ e m o t i o n ( d e l a y , t i m e , s t i m , emo ) :
30 f o r i i n range ( l e n ( name ) ) :
31 fname = name [ i ]
32 p a t h = o s . p a t h . j o i n ( fname + ’ . BDF ’ )
33 raw = mne . i o . r e a d _ r a w _ b d f ( p a t h , p r e l o a d = T r u e )
34 raw = p r e p r o c e s s i n g ( raw )
35 raw . d r o p _ c h a n n e l s ( [ ’ A d d _ l e a d 1 ’ , ’ A d d _ l e a d 2 ’ ] )
36 a = 0
37 b = 0
38 fid = 0
39 f o r i n d e x i n range ( l e n ( t i m e ) ) :
40 b = b + time [ index ]
41 i f i n d e x % 2 == 0 :
42 s a v e _ p a t h = os . pa t h . j o i n
43 ( ’C : \ MNE\ D a t a \ Ground T r u t h \ Emosi Cut ’ ,
44 emo [ f i d ] , fname + ’ _ ’ + ’ _raw . f i f ’ )
45 raw . s a v e ( s a v e _ p a t h , t m i n = d e l a y [ 0 ] + a ,
46 tmax = d e l a y [ 0 ] + b ,
47 o v e r w r i t e = True )
48 fid = fid + 1
49 a = b
50
51 # Panggil fungsi
52 s p l i t _ e m o t i o n ( d e l a y , t i m e , a , emo1 )
95

B.2. Program Ekstraksi Fitur

1 # −∗− c o d i n g : u t f −8 −∗−
2 """
3 C r e a t e d on Thu Mar 5 1 5 : 3 0 : 2 6 2020
4
5 @author : G h a z i a n
6 """
7 import o s
8 import numpy a s np
9 from s c i p y import s i g n a l
10 from s c i p y . i n t e g r a t e import s i m p s
11 import mne
12 import c s v
13
14 # D e k l a r a s i nama v a r i a b e l k o s o n g
15 Fp1_delta_psd = [ ]
16 Fp1_theta_psd = [ ]
17 Fp1_alpha_psd = [ ]
18 Fp1_beta_psd = [ ]
19 Fp1_gamma_psd = [ ]
20
21 Fp2_delta_psd = [ ]
22 Fp2_theta_psd = [ ]
23 Fp2_alpha_psd = [ ]
24 Fp2_beta_psd = [ ]
25 Fp2_gamma_psd = [ ]
26
27 F3_delta_psd = []
28 F3_theta_psd = []
29 F3_alpha_psd = [ ]
30 F3_beta_psd = [ ]
96

31 F3_gamma_psd = [ ]
32
33 F4_delta_psd = []
34 F4_theta_psd = []
35 F4_alpha_psd = [ ]
36 F4_beta_psd = [ ]
37 F4_gamma_psd = [ ]
38
39 C3_delta_psd = [ ]
40 C3_theta_psd = [ ]
41 C3_alpha_psd = [ ]
42 C3_beta_psd = [ ]
43 C3_gamma_psd = [ ]
44
45 C4_delta_psd = [ ]
46 C4_theta_psd = [ ]
47 C4_alpha_psd = [ ]
48 C4_beta_psd = [ ]
49 C4_gamma_psd = [ ]
50
51 P3_delta_psd = []
52 P3_theta_psd = []
53 P3_alpha_psd = [ ]
54 P3_beta_psd = [ ]
55 P3_gamma_psd = [ ]
56
57 P4_delta_psd = []
58 P4_theta_psd = []
59 P4_alpha_psd = [ ]
60 P4_beta_psd = [ ]
61 P4_gamma_psd = [ ]
97

62
63 O1_delta_psd = [ ]
64 O1_theta_psd = [ ]
65 O1_alpha_psd = [ ]
66 O1_beta_psd = [ ]
67 O1_gamma_psd = [ ]
68
69 O2_delta_psd = [ ]
70 O2_theta_psd = [ ]
71 O2_alpha_psd = [ ]
72 O2_beta_psd = [ ]
73 O2_gamma_psd = [ ]
74
75 F7_delta_psd = []
76 F7_theta_psd = []
77 F7_alpha_psd = [ ]
78 F7_beta_psd = [ ]
79 F7_gamma_psd = [ ]
80
81 F8_delta_psd = []
82 F8_theta_psd = []
83 F8_alpha_psd = [ ]
84 F8_beta_psd = [ ]
85 F8_gamma_psd = [ ]
86
87 T3_delta_psd = [ ]
88 T3_theta_psd = [ ]
89 T3_alpha_psd = [ ]
90 T3_beta_psd = [ ]
91 T3_gamma_psd = [ ]
92
98

93 T4_delta_psd = [ ]
94 T4_theta_psd = [ ]
95 T4_alpha_psd = [ ]
96 T4_beta_psd = [ ]
97 T4_gamma_psd = [ ]
98
99 T5_delta_psd = [ ]
100 T5_theta_psd = [ ]
101 T5_alpha_psd = [ ]
102 T5_beta_psd = [ ]
103 T5_gamma_psd = [ ]
104
105 T6_delta_psd = [ ]
106 T6_theta_psd = [ ]
107 T6_alpha_psd = [ ]
108 T6_beta_psd = [ ]
109 T6_gamma_psd = [ ]
110
111 Fp1_delta_e = []
112 Fp1_theta_e = []
113 Fp1_alpha_e = [ ]
114 Fp1_beta_e = [ ]
115 Fp1_gamma_e = [ ]
116
117 Fp2_delta_e = []
118 Fp2_theta_e = []
119 Fp2_alpha_e = [ ]
120 Fp2_beta_e = [ ]
121 Fp2_gamma_e = [ ]
122
123 F3_delta_e = []
99

124 F3_theta_e = []
125 F3_alpha_e = [ ]
126 F3_beta_e = [ ]
127 F3_gamma_e = [ ]
128
129 F4_delta_e = []
130 F4_theta_e = []
131 F4_alpha_e = [ ]
132 F4_beta_e = [ ]
133 F4_gamma_e = [ ]
134
135 C3_delta_e = [ ]
136 C3_theta_e = [ ]
137 C3_alpha_e = [ ]
138 C3_beta_e = [ ]
139 C3_gamma_e = [ ]
140
141 C4_delta_e = [ ]
142 C4_theta_e = [ ]
143 C4_alpha_e = [ ]
144 C4_beta_e = [ ]
145 C4_gamma_e = [ ]
146
147 P3_delta_e = []
148 P3_theta_e = []
149 P3_alpha_e = [ ]
150 P3_beta_e = [ ]
151 P3_gamma_e = [ ]
152
153 P4_delta_e = []
154 P4_theta_e = []
100

155 P4_alpha_e = [ ]
156 P4_beta_e = [ ]
157 P4_gamma_e = [ ]
158
159 O1_delta_e = [ ]
160 O1_theta_e = [ ]
161 O1_alpha_e = [ ]
162 O1_beta_e = [ ]
163 O1_gamma_e = [ ]
164
165 O2_delta_e = [ ]
166 O2_theta_e = [ ]
167 O2_alpha_e = [ ]
168 O2_beta_e = [ ]
169 O2_gamma_e = [ ]
170
171 F7_delta_e = []
172 F7_theta_e = []
173 F7_alpha_e = [ ]
174 F7_beta_e = [ ]
175 F7_gamma_e = [ ]
176
177 F8_delta_e = []
178 F8_theta_e = []
179 F8_alpha_e = [ ]
180 F8_beta_e = [ ]
181 F8_gamma_e = [ ]
182
183 T3_delta_e = [ ]
184 T3_theta_e = [ ]
185 T3_alpha_e = [ ]
101

186 T3_beta_e = [ ]
187 T3_gamma_e = [ ]
188
189 T4_delta_e = [ ]
190 T4_theta_e = [ ]
191 T4_alpha_e = [ ]
192 T4_beta_e = [ ]
193 T4_gamma_e = [ ]
194
195 T5_delta_e = [ ]
196 T5_theta_e = [ ]
197 T5_alpha_e = [ ]
198 T5_beta_e = [ ]
199 T5_gamma_e = [ ]
200
201 T6_delta_e = [ ]
202 T6_theta_e = [ ]
203 T6_alpha_e = [ ]
204 T6_beta_e = [ ]
205 T6_gamma_e = [ ]
206
207 Fp12_delta_psd = [ ]
208 Fp12_theta_psd = [ ]
209 Fp12_alpha_psd = [ ]
210 Fp12_beta_psd = [ ]
211 Fp12_gamma_psd = [ ]
212
213 F34_delta_psd = [ ]
214 F34_theta_psd = [ ]
215 F34_alpha_psd = [ ]
216 F34_beta_psd = [ ]
102

217 F34_gamma_psd = [ ]
218
219 C34_delta_psd = [ ]
220 C34_theta_psd = [ ]
221 C34_alpha_psd = [ ]
222 C34_beta_psd = [ ]
223 C34_gamma_psd = [ ]
224
225 P34_delta_psd = [ ]
226 P34_theta_psd = [ ]
227 P34_alpha_psd = [ ]
228 P34_beta_psd = [ ]
229 P34_gamma_psd = [ ]
230
231 O12_delta_psd = [ ]
232 O12_theta_psd = [ ]
233 O12_alpha_psd = [ ]
234 O12_beta_psd = [ ]
235 O12_gamma_psd = [ ]
236
237 F78_delta_psd = [ ]
238 F78_theta_psd = [ ]
239 F78_alpha_psd = [ ]
240 F78_beta_psd = [ ]
241 F78_gamma_psd = [ ]
242
243 T34_delta_psd = [ ]
244 T34_theta_psd = [ ]
245 T34_alpha_psd = [ ]
246 T34_beta_psd = [ ]
247 T34_gamma_psd = [ ]
103

248
249 T56_delta_psd = [ ]
250 T56_theta_psd = [ ]
251 T56_alpha_psd = [ ]
252 T56_beta_psd = [ ]
253 T56_gamma_psd = [ ]
254
255 Fp1 = [ ]
256 Fp2 = [ ]
257 F3 = [ ]
258 F4 = [ ]
259 C3 = [ ]
260 C4 = [ ]
261 P3 = [ ]
262 P4 = [ ]
263 O1 = [ ]
264 O2 = [ ]
265 F7 = [ ]
266 F8 = [ ]
267 T3 = [ ]
268 T4 = [ ]
269 T5 = [ ]
270 T6 = [ ]
271
272 # d e k l a r a s i nama k a n a l
273 Ch = [ ’ Fp1−A1 ’ , ’ Fp2−A2 ’ , ’ F3−A1 ’ , ’ F4−A2 ’ ,
274 ’C3−A1 ’ , ’C4−A2 ’ , ’ P3−A1 ’ , ’ P4−A2 ’ ,
275 ’O1−A1 ’ , ’O2−A2 ’ , ’ F7−A1 ’ , ’ F8−A2 ’ ,
276 ’ T3−A1 ’ , ’ T4−A2 ’ , ’ T5−A1 ’ , ’ T6−A2 ’ ]
277
278 # d e k l a r a s i nama v a r i a b e l k a n a l
104

279 ChN = [ Fp1 , Fp2 , F3 , F4 , C3 , C4 , P3 , P4 , O1 , O2 , F7 ,


280 F8 , T3 , T4 , T5 , T6 ]
281
282 #nama v a r i a b e l p s d
283 psd_var = [ Fp1_delta_psd , Fp1_theta_psd , Fp1_alpha_psd ,
284 F p 1 _ b e t a _ p s d , Fp1_gamma_psd , F p 2 _ d e l t a _ p s d ,
285 Fp2_theta_psd , Fp2_alpha_psd , Fp2_beta_psd ,
286 Fp2_gamma_psd , F 3 _ d e l t a _ p s d , F 3 _ t h e t a _ p s d ,
287 F 3 _ a l p h a _ p s d , F 3 _ b e t a _ p s d , F3_gamma_psd ,
288 F4_delta_psd , F4_theta_psd , F4_alpha_psd ,
289 F 4 _ b e t a _ p s d , F4_gamma_psd , C 3 _ d e l t a _ p s d ,
290 C3_theta_psd , C3_alpha_psd , C3_beta_psd ,
291 C3_gamma_psd , C 4 _ d e l t a _ p s d , C 4 _ t h e t a _ p s d ,
292 C 4 _ a l p h a _ p s d , C 4 _ b e t a _ p s d , C4_gamma_psd ,
293 P3_delta_psd , P3_theta_psd , P3_alpha_psd ,
294 P 3 _ b e t a _ p s d , P3_gamma_psd , P 4 _ d e l t a _ p s d ,
295 P4_theta_psd , P4_alpha_psd , P4_beta_psd ,
296 P4_gamma_psd , O 1 _ d e l t a _ p s d , O 1 _ t h e t a _ p s d ,
297 O 1 _ a l p h a _ p s d , O 1 _ b e t a _ p s d , O1_gamma_psd ,
298 O2_delta_psd , O2_theta_psd , O2_alpha_psd ,
299 O 2 _ b e t a _ p s d , O2_gamma_psd , F 7 _ d e l t a _ p s d ,
300 F7_theta_psd , F7_alpha_psd , F7_beta_psd ,
301 F7_gamma_psd , F 8 _ d e l t a _ p s d , F 8 _ t h e t a _ p s d ,
302 F 8 _ a l p h a _ p s d , F 8 _ b e t a _ p s d , F8_gamma_psd ,
303 T 3 _ a l p h a _ p s d , T 3 _ b e t a _ p s d , T3_gamma_psd ,
304 T4_delta_psd , T4_theta_psd , T4_alpha_psd ,
305 T 4 _ b e t a _ p s d , T4_gamma_psd , T 5 _ d e l t a _ p s d ,
306 T5_theta_psd , T5_alpha_psd , T5_beta_psd ,
307 T5_gamma_psd , T 6 _ d e l t a _ p s d , T 6 _ t h e t a _ p s d ,
308 T 6 _ a l p h a _ p s d , T 6 _ b e t a _ p s d , T6_gamma_psd ]
309
105

310 #nama v a r i a b e l e n e r g i
311 e_var = [ Fp1_delta_e , Fp1_theta_e , Fp1_alpha_e , Fp1_beta_e ,
312 Fp1_gamma_e , F p 2 _ d e l t a _ e , F p 2 _ t h e t a _ e , F p 2 _ a l p h a _ e ,
313 F p 2 _ b e t a _ e , Fp2_gamma_e , F 3 _ d e l t a _ e , F 3 _ t h e t a _ e ,
314 F 3 _ a l p h a _ e , F 3 _ b e t a _ e , F3_gamma_e , F 4 _ d e l t a _ e ,
315 F 4 _ t h e t a _ e , F 4 _ a l p h a _ e , F 4 _ b e t a _ e , F4_gamma_e ,
316 C3_delta_e , C3_theta_e , C3_alpha_e , C3_beta_e ,
317 C3_gamma_e , C 4 _ d e l t a _ e , C 4 _ t h e t a _ e , C 4 _ a l p h a _ e ,
318 C 4 _ b e t a _ e , C4_gamma_e , P 3 _ d e l t a _ e , P 3 _ t h e t a _ e ,
319 P 3 _ a l p h a _ e , P 3 _ b e t a _ e , P3_gamma_e , P 4 _ d e l t a _ e ,
320 P 4 _ t h e t a _ e , P 4 _ a l p h a _ e , P 4 _ b e t a _ e , P4_gamma_e ,
321 O 1 _ d e l t a _ e , O 1 _ t h e t a _ e , O1_alpha_e , O1_beta_e ,
322 O1_gamma_e , O 2 _ d e l t a _ e , O 2 _ t h e t a _ e , O2_alpha_e ,
323 O2_beta_e , O2_gamma_e , F 7 _ d e l t a _ e , F 7 _ t h e t a _ e ,
324 F 7 _ a l p h a _ e , F 7 _ b e t a _ e , F7_gamma_e , F 8 _ d e l t a _ e ,
325 F 8 _ t h e t a _ e , F 8 _ a l p h a _ e , F 8 _ b e t a _ e , F8_gamma_e ,
326 T3_delta_e , T3_theta_e , T3_alpha_e , T3_beta_e ,
327 T3_gamma_e , T 4 _ d e l t a _ e , T 4 _ t h e t a _ e , T 4 _ a l p h a _ e ,
328 T 4 _ b e t a _ e , T4_gamma_e , T 5 _ d e l t a _ e , T 5 _ t h e t a _ e ,
329 T 5 _ a l p h a _ e , T 5 _ b e t a _ e , T5_gamma_e , T 6 _ d e l t a _ e ,
330 T 6 _ t h e t a _ e , T 6 _ a l p h a _ e , T 6 _ b e t a _ e , T6_gamma_e ]
331
332 #nama v a r i a b e l a s i m e t r i
333 asymmetry_var = [ Fp12_delta_psd , Fp12_theta_psd , Fp12_alpha_psd ,
334 F p 1 2 _ b e t a _ p s d , Fp12_gamma_psd , F 3 4 _ d e l t a _ p s d ,
335 F34_theta_psd , F34_alpha_psd , F34_beta_psd ,
336 F34_gamma_psd , C 3 4 _ d e l t a _ p s d , C 3 4 _ t h e t a _ p s d ,
337 C 3 4 _ a l p h a _ p s d , C 3 4 _ b e t a _ p s d , C34_gamma_psd ,
338 P34_delta_psd , P34_theta_psd , P34_alpha_psd ,
339 P 3 4 _ b e t a _ p s d , P34_gamma_psd , O 1 2 _ d e l t a _ p s d ,
340 O12_theta_psd , O12_alpha_psd , O12_beta_psd ,
106

341 O12_gamma_psd , F 7 8 _ d e l t a _ p s d , F 7 8 _ t h e t a _ p s d ,
342 F 7 8 _ a l p h a _ p s d , F 7 8 _ b e t a _ p s d , F78_gamma_psd ,
343 T34_delta_psd , T34_theta_psd , T34_alpha_psd ,
344 T 3 4 _ b e t a _ p s d , T34_gamma_psd , T 5 6 _ d e l t a _ p s d ,
345 T56_theta_psd , T56_alpha_psd , T56_beta_psd ,
346 T56_gamma_psd ]
347
348 # r a n g e f r e k u e n s i pemotongan PSD
349 freq_range = [(1 , 4) , (4 , 8) , (8 , 13) , (13 , 30) , (30 , 35)]
350
351 #nama−nama f o l d e r
352 f o l d e r s = [ ’ senang ’ , ’ t a k u t ’ , ’ sedih ’ , ’ tenang ’ ]
353
354 # jumlah f i l e s t i m u l u s 1
355 n s t i m 1 = 27
356 n s t i m 2 = 33
357 n s t i m 3 = 17
358 n s t i m 4 = 21
359
360 s = 0
361
362 # d e f i n i s i k a n f u n g s i pemisah per kanal
363 d e f s e p a r a t e ( ChName ) :
364 c h a n n e l = raw . g e t _ d a t a ( p i c k s = ChName ) . f l a t t e n
365 return channel # kembalikan channel
366
367 # definisikan fungsi ekstraksi fitur
368 d e f f e a t u r e _ e x t r a c t i o n ( s , n , low , h i g h ) :
369 n = n [0]
370 win = 4 ∗ s a m p l i n g _ f r e q
371 f _ v a l u e s , p s d _ v a l u e s = s i g n a l . welch ( n ,
107

372 fs = sampling_freq ,
373 n p e r s e g = win )
374 i d x _ d e l t a = np . l o g i c a l _ a n d ( f _ v a l u e s >= low ,
375 f _ v a l u e s <= h i g h )
376 freq_res = f_values [1] − f_values [0]
377 power = s i m p s ( p s d _ v a l u e s [ i d x _ d e l t a ] , dx = f r e q _ r e s )
378 t o t a l _ p o w e r = s i m p s ( p s d _ v a l u e s , dx= f r e q _ r e s )
379 r e l _ p o w = power / t o t a l _ p o w e r
380 f _ f f t = np . f f t . f f t f r e q ( l e n ( n ) , d = 1 / 1 0 0 )
381 df_fft = f_fft [1] − f_fft [0]
382 E_welch = ( ( 1 / ( 1 / 1 0 0 ) ∗ ( f r e q _ r e s / d f _ f f t ) ∗
383 np . sum ( p s d _ v a l u e s [ i d x _ d e l t a ] ) ) )
384 E_tot = ((1 / (1/100) ∗ ( freq_res / d f _ f f t ) ∗
385 np . sum ( p s d _ v a l u e s ) ) )
386 E _ r e l = E_welch / E _ t o t
387
388 # n . clear ()
389
390 return rel_pow , E _ r e l
391
392 def save ( n ) :
393 f o r i i n range ( l e n ( F p 1 _ d e l t a _ p s d ) ) :
394 F p 1 2 _ d e l t a _ p s d = abs ( F p 1 _ d e l t a _ p s d [ i ]− F p 2 _ d e l t a _ p s d [ i ] )
395 F p 1 2 _ t h e t a _ p s d = abs ( F p 1 _ t h e t a _ p s d [ i ]− F p 2 _ t h e t a _ p s d [ i ] )
396 F p 1 2 _ a l p h a _ p s d = abs ( F p 1 _ a l p h a _ p s d [ i ]− F p 2 _ a l p h a _ p s d [ i ] )
397 F p 1 2 _ b e t a _ p s d = abs ( F p 1 _ b e t a _ p s d [ i ]− F p 2 _ b e t a _ p s d [ i ] )
398 Fp12_gamma_psd = abs ( Fp1_gamma_psd [ i ]−Fp2_gamma_psd [ i ] )
399 F 3 4 _ d e l t a _ p s d = abs ( F 3 _ d e l t a _ p s d [ i ]− F 4 _ d e l t a _ p s d [ i ] )
400 F 3 4 _ t h e t a _ p s d = abs ( F 3 _ t h e t a _ p s d [ i ]− F 4 _ t h e t a _ p s d [ i ] )
401 F 3 4 _ a l p h a _ p s d = abs ( F 3 _ a l p h a _ p s d [ i ]− F 4 _ a l p h a _ p s d [ i ] )
402 F 3 4 _ b e t a _ p s d = abs ( F 3 _ b e t a _ p s d [ i ]− F 4 _ b e t a _ p s d [ i ] )
108

403 F34_gamma_psd = abs ( F3_gamma_psd [ i ]−F4_gamma_psd [ i ] )


404 C 3 4 _ d e l t a _ p s d = abs ( C 3 _ d e l t a _ p s d [ i ]− C 4 _ d e l t a _ p s d [ i ] )
405 C 3 4 _ t h e t a _ p s d = abs ( C 3 _ t h e t a _ p s d [ i ]− C 4 _ t h e t a _ p s d [ i ] )
406 C 3 4 _ a l p h a _ p s d = abs ( C 3 _ a l p h a _ p s d [ i ]− C 4 _ a l p h a _ p s d [ i ] )
407 C 3 4 _ b e t a _ p s d = abs ( C 3 _ b e t a _ p s d [ i ]− C 4 _ b e t a _ p s d [ i ] )
408 C34_gamma_psd = abs ( C3_gamma_psd [ i ]−C4_gamma_psd [ i ] )
409 P 3 4 _ d e l t a _ p s d = abs ( P 3 _ d e l t a _ p s d [ i ]− P 4 _ d e l t a _ p s d [ i ] )
410 P 3 4 _ t h e t a _ p s d = abs ( P 3 _ t h e t a _ p s d [ i ]− P 4 _ t h e t a _ p s d [ i ] )
411 P 3 4 _ a l p h a _ p s d = abs ( P 3 _ a l p h a _ p s d [ i ]− P 4 _ a l p h a _ p s d [ i ] )
412 P 3 4 _ b e t a _ p s d = abs ( P 3 _ b e t a _ p s d [ i ]− P 4 _ b e t a _ p s d [ i ] )
413 P34_gamma_psd = abs ( P3_gamma_psd [ i ]−P4_gamma_psd [ i ] )
414 O 1 2 _ d e l t a _ p s d = abs ( O 1 _ d e l t a _ p s d [ i ]− O 2 _ d e l t a _ p s d [ i ] )
415 O 1 2 _ t h e t a _ p s d = abs ( O 1 _ t h e t a _ p s d [ i ]− O 2 _ t h e t a _ p s d [ i ] )
416 O 1 2 _ a l p h a _ p s d = abs ( O 1 _ a l p h a _ p s d [ i ]− O 2 _ a l p h a _ p s d [ i ] )
417 O 1 2 _ b e t a _ p s d = abs ( O 1 _ b e t a _ p s d [ i ]− O 2 _ b e t a _ p s d [ i ] )
418 O12_gamma_psd = abs ( O1_gamma_psd [ i ]−O2_gamma_psd [ i ] )
419 F 7 8 _ d e l t a _ p s d = abs ( F 7 _ d e l t a _ p s d [ i ]− F 8 _ d e l t a _ p s d [ i ] )
420 F 7 8 _ t h e t a _ p s d = abs ( F 7 _ t h e t a _ p s d [ i ]− F 8 _ t h e t a _ p s d [ i ] )
421 F 7 8 _ a l p h a _ p s d = abs ( F 7 _ a l p h a _ p s d [ i ]− F 8 _ a l p h a _ p s d [ i ] )
422 F 7 8 _ b e t a _ p s d = abs ( F 7 _ b e t a _ p s d [ i ]− F 8 _ b e t a _ p s d [ i ] )
423 F78_gamma_psd = abs ( F7_gamma_psd [ i ]−F8_gamma_psd [ i ] )
424 T 3 4 _ d e l t a _ p s d = abs ( T 3 _ d e l t a _ p s d [ i ]− T 4 _ d e l t a _ p s d [ i ] )
425 T 3 4 _ t h e t a _ p s d = abs ( T 3 _ t h e t a _ p s d [ i ]− T 4 _ t h e t a _ p s d [ i ] )
426 T 3 4 _ a l p h a _ p s d = abs ( T 3 _ a l p h a _ p s d [ i ]− T 4 _ a l p h a _ p s d [ i ] )
427 T 3 4 _ b e t a _ p s d = abs ( T 3 _ b e t a _ p s d [ i ]− T 4 _ b e t a _ p s d [ i ] )
428 T34_gamma_psd = abs ( T3_gamma_psd [ i ]−T4_gamma_psd [ i ] )
429 T 5 6 _ d e l t a _ p s d = abs ( T 5 _ d e l t a _ p s d [ i ]− T 6 _ d e l t a _ p s d [ i ] )
430 T 5 6 _ t h e t a _ p s d = abs ( T 5 _ t h e t a _ p s d [ i ]− T 6 _ t h e t a _ p s d [ i ] )
431 T 5 6 _ a l p h a _ p s d = abs ( T 5 _ a l p h a _ p s d [ i ]− T 6 _ a l p h a _ p s d [ i ] )
432 T 5 6 _ b e t a _ p s d = abs ( T 5 _ b e t a _ p s d [ i ]− T 6 _ b e t a _ p s d [ i ] )
433 T56_gamma_psd = abs ( T5_gamma_psd [ i ]−T6_gamma_psd [ i ] )
109

434
435 f i t u r = ( Fp1_delta_psd [ i ] , Fp1_theta_psd [ i ] , Fp1_alpha_psd [ i ] ,
436 F p 1 _ b e t a _ p s d [ i ] , Fp1_gamma_psd [ i ] , F p 2 _ d e l t a _ p s d [ i ] ,
437 Fp2_theta_psd [ i ] , Fp2_alpha_psd [ i ] , Fp2_beta_psd [ i ] ,
438 Fp2_gamma_psd [ i ] , F 3 _ d e l t a _ p s d [ i ] , F 3 _ t h e t a _ p s d [ i ] ,
439 F 3 _ a l p h a _ p s d [ i ] , F 3 _ b e t a _ p s d [ i ] , F3_gamma_psd [ i ] ,
440 F4_delta_psd [ i ] , F4_theta_psd [ i ] , F4_alpha_psd [ i ] ,
441 F 4 _ b e t a _ p s d [ i ] , F4_gamma_psd [ i ] , C 3 _ d e l t a _ p s d [ i ] ,
442 C3_theta_psd [ i ] , C3_alpha_psd [ i ] , C3_beta_psd [ i ] ,
443 C3_gamma_psd [ i ] , C 4 _ d e l t a _ p s d [ i ] , C 4 _ t h e t a _ p s d [ i ] ,
444 C 4 _ a l p h a _ p s d [ i ] , C 4 _ b e t a _ p s d [ i ] , C4_gamma_psd [ i ] ,
445 P3_delta_psd [ i ] , P3_theta_psd [ i ] , P3_alpha_psd [ i ] ,
446 P 3 _ b e t a _ p s d [ i ] , P3_gamma_psd [ i ] , P 4 _ d e l t a _ p s d [ i ] ,
447 P4_theta_psd [ i ] , P4_alpha_psd [ i ] , P4_beta_psd [ i ] ,
448 P4_gamma_psd [ i ] , O 1 _ d e l t a _ p s d [ i ] , O 1 _ t h e t a _ p s d [ i ] ,
449 O 1 _ a l p h a _ p s d [ i ] , O 1 _ b e t a _ p s d [ i ] , O1_gamma_psd [ i ] ,
450 O2_delta_psd [ i ] , O2_theta_psd [ i ] , O2_alpha_psd [ i ] ,
451 O 2 _ b e t a _ p s d [ i ] , O2_gamma_psd [ i ] , F 7 _ d e l t a _ p s d [ i ] ,
452 F7_theta_psd [ i ] , F7_alpha_psd [ i ] , F7_beta_psd [ i ] ,
453 F7_gamma_psd [ i ] , F 8 _ d e l t a _ p s d [ i ] , F 8 _ t h e t a _ p s d [ i ] ,
454 F 8 _ a l p h a _ p s d [ i ] , F 8 _ b e t a _ p s d [ i ] , F8_gamma_psd [ i ] ,
455 T3_delta_psd [ i ] , T3_theta_psd [ i ] , T3_alpha_psd [ i ] ,
456 T 3 _ b e t a _ p s d [ i ] , T3_gamma_psd [ i ] , T 4 _ d e l t a _ p s d [ i ] ,
457 T4_theta_psd [ i ] , T4_alpha_psd [ i ] , T4_beta_psd [ i ] ,
458 T4_gamma_psd [ i ] , T 5 _ d e l t a _ p s d [ i ] , T 5 _ t h e t a _ p s d [ i ] ,
459 T 5 _ a l p h a _ p s d [ i ] , T 5 _ b e t a _ p s d [ i ] , T5_gamma_psd [ i ] ,
460 T6_delta_psd [ i ] , T6_theta_psd [ i ] , T6_alpha_psd [ i ] ,
461 T 6 _ b e t a _ p s d [ i ] , T6_gamma_psd [ i ] , F p 1 _ d e l t a _ e [ i ] ,
462 Fp1_theta_e [ i ] , Fp1_alpha_e [ i ] , Fp1_beta_e [ i ] ,
463 Fp1_gamma_e [ i ] , F p 2 _ d e l t a _ e [ i ] , F p 2 _ t h e t a _ e [ i ] ,
464 F p 2 _ a l p h a _ e [ i ] , F p 2 _ b e t a _ e [ i ] , Fp2_gamma_e [ i ] ,
110

465 F3_delta_e [ i ] , F3_theta_e [ i ] , F3_alpha_e [ i ] ,


466 F 3 _ b e t a _ e [ i ] , F3_gamma_e [ i ] , F 4 _ d e l t a _ e [ i ] ,
467 F4_theta_e [ i ] , F4_alpha_e [ i ] , F4_beta_e [ i ] ,
468 F4_gamma_e [ i ] , C 3 _ d e l t a _ e [ i ] , C 3 _ t h e t a _ e [ i ] ,
469 C 3 _ a l p h a _ e [ i ] , C 3 _ b e t a _ e [ i ] , C3_gamma_e [ i ] ,
470 C4_delta_e [ i ] , C4_theta_e [ i ] , C4_alpha_e [ i ] ,
471 C 4 _ b e t a _ e [ i ] , C4_gamma_e [ i ] , P 3 _ d e l t a _ e [ i ] ,
472 P3_theta_e [ i ] , P3_alpha_e [ i ] , P3_beta_e [ i ] ,
473 P3_gamma_e [ i ] , P 4 _ d e l t a _ e [ i ] , P 4 _ t h e t a _ e [ i ] ,
474 P 4 _ a l p h a _ e [ i ] , P 4 _ b e t a _ e [ i ] , P4_gamma_e [ i ] ,
475 O1_delta_e [ i ] , O1_theta_e [ i ] , O1_alpha_e [ i ] ,
476 O 1 _ b e t a _ e [ i ] , O1_gamma_e [ i ] , O 2 _ d e l t a _ e [ i ] ,
477 O2_theta_e [ i ] , O2_alpha_e [ i ] , O2_beta_e [ i ] ,
478 O2_gamma_e [ i ] , F 7 _ d e l t a _ e [ i ] , F 7 _ t h e t a _ e [ i ] ,
479 F 7 _ a l p h a _ e [ i ] , F 7 _ b e t a _ e [ i ] , F7_gamma_e [ i ] ,
480 F8_delta_e [ i ] , F8_theta_e [ i ] , F8_alpha_e [ i ] ,
481 F 8 _ b e t a _ e [ i ] , F8_gamma_e [ i ] , T 3 _ d e l t a _ e [ i ] ,
482 T3_theta_e [ i ] , T3_alpha_e [ i ] , T3_beta_e [ i ] ,
483 T3_gamma_e [ i ] , T 4 _ d e l t a _ e [ i ] , T 4 _ t h e t a _ e [ i ] ,
484 T 4 _ a l p h a _ e [ i ] , T 4 _ b e t a _ e [ i ] , T4_gamma_e [ i ] ,
485 T5_delta_e [ i ] , T5_theta_e [ i ] , T5_alpha_e [ i ] ,
486 T 5 _ b e t a _ e [ i ] , T5_gamma_e [ i ] , T 6 _ d e l t a _ e [ i ] ,
487 T6_theta_e [ i ] , T6_alpha_e [ i ] , T6_beta_e [ i ] ,
488 T6_gamma_e [ i ] , F p 1 2 _ d e l t a _ p s d , F p 1 2 _ t h e t a _ p s d ,
489 F p 1 2 _ a l p h a _ p s d , F p 1 2 _ b e t a _ p s d , Fp12_gamma_psd ,
490 F34_delta_psd , F34_theta_psd , F34_alpha_psd ,
491 F 3 4 _ b e t a _ p s d , F34_gamma_psd , C 3 4 _ d e l t a _ p s d ,
492 C34_theta_psd , C34_alpha_psd , C34_beta_psd ,
493 C34_gamma_psd , P 3 4 _ d e l t a _ p s d , P 3 4 _ t h e t a _ p s d ,
494 P 3 4 _ a l p h a _ p s d , P 3 4 _ b e t a _ p s d , P34_gamma_psd ,
495 O12_delta_psd , O12_theta_psd , O12_alpha_psd ,
111

496 O 1 2 _ b e t a _ p s d , O12_gamma_psd , F 7 8 _ d e l t a _ p s d ,
497 F78_theta_psd , F78_alpha_psd , F78_beta_psd ,
498 F78_gamma_psd , T 3 4 _ d e l t a _ p s d , T 3 4 _ t h e t a _ p s d ,
499 T 3 4 _ a l p h a _ p s d , T 3 4 _ b e t a _ p s d , T34_gamma_psd ,
500 T56_delta_psd , T56_theta_psd , T56_alpha_psd ,
501 T 5 6 _ b e t a _ p s d , T56_gamma_psd , n )
502
503 w i t h open ( ’ f i t u r _ e m o s i _ v 7 _ 1 0 0 _ a b s _ e a s y m . c s v ’ ,
504 mode= ’ a ’ , n e w l i n e = ’ ’ ) a s f i t u r _ e m o s i :
505 f i t u r _ w r i t e r = csv . w r i t e r ( f i t u r _ e m o s i ,
506 delimiter = ’ , ’)
507 f i t u r _ w r i t e r . writerow ( f i t u r )
508
509 # Baca semua f i l e dalam t i a p f o l d e r
510 f o r x i n range ( l e n ( f o l d e r s ) ) :
511 folder = folders [x]
512 i f f o l d e r == ’ s e n a n g ’ :
513 nstim = nstim1
514 e l i f f o l d e r == ’ t a k u t ’ :
515 nstim = nstim2
516 e l i f f o l d e r == ’ s e d i h ’ :
517 nstim = nstim3
518 e l i f f o l d e r == ’ t e n a n g ’ :
519 nstim = nstim4
520 f o r i i n range ( n s t i m ) :
521 raw = [ ]
522
523 # Buka f i l e
524 fname = o s . p a t h . j o i n ( f o l d e r , s t r ( i + 1 ) + ’ __raw . f i f ’ )
525 raw = mne . i o . r e a d _ r a w _ f i f ( fname , p r e l o a d = T r u e )
526
112

527 #CAR , b i s a d i g u n a k a n a t a u t i d a k
528 # raw . s e t _ e e g _ r e f e r e n c e ( r e f _ c h a n n e l s = ’ a v e r a g e ’ )
529 i n f o = raw . i n f o
530
531 # Dapatkan f r e k u e n s i s a m p l i n g
532 s a m p l i n g _ f r e q = raw . i n f o [ ’ s f r e q ’ ]
533 m = 0
534
535 # Buka dan masukkan d a t a t i a p k a n a l k e v a r i a b e l penampung
536 f o r a i n Ch :
537 channel_data = separate ( a )
538 idx = 0
539 for n in channel_data ( ) :
540 idx = 0
541 i f abs ( n ) >= 100 e −6:
542 c h a n n e l _ d a t a ( ) [ i d x ] = None
543 idx = idx + 1
544 ChN [m ] . a p p e n d ( c h a n n e l _ d a t a ( ) )
545 m = m + 1
546
547 n = 0
548 o = 0
549 f o r j i n ChN :
550 for f in freq_range :
551 l_freq , h_freq = f
552 psd , e n e r g y = f e a t u r e _ e x t r a c t i o n ( s , j , l _ f r e q ,
553 h_freq )
554 psd_var [ n ] . append ( psd )
555 e_var [ n ] . append ( energy )
556 n = n + 1
557 o = o + 1
113

558
559 m = 0
560 f o r a i n Ch :
561 ChN [m ] . c l e a r ( )
562 m = m + 1
563
564 i f f o l d e r == ’ s e n a n g ’ :
565 save (0)
566 e l i f f o l d e r == ’ t a k u t ’ :
567 save (1)
568 e l i f f o l d e r == ’ s e d i h ’ :
569 save (2)
570 e l i f f o l d e r == ’ t e n a n g ’ :
571 save (3)
572
573 for z in ( e_var + psd_var ) :
574 z . clear ()
114

B.3. Program SVM

1 # −∗− c o d i n g : u t f −8 −∗−
2 """
3 C r e a t e d on Thu Mar 5 1 5 : 3 0 : 2 6 2020
4
5 @author : G h a z i a n
6 """
7 import o s
8 import numpy a s np
9 from s c i p y import s i g n a l
10 from s c i p y . i n t e g r a t e import s i m p s
11 import mne
12 import c s v
13
14 # D e k l a r a s i nama v a r i a b e l k o s o n g
15 Fp1_delta_psd = [ ]
16 Fp1_theta_psd = [ ]
17 Fp1_alpha_psd = [ ]
18 Fp1_beta_psd = [ ]
19 Fp1_gamma_psd = [ ]
20
21 Fp2_delta_psd = [ ]
22 Fp2_theta_psd = [ ]
23 Fp2_alpha_psd = [ ]
24 Fp2_beta_psd = [ ]
25 Fp2_gamma_psd = [ ]
26
27 F3_delta_psd = []
28 F3_theta_psd = []
29 F3_alpha_psd = [ ]
30 F3_beta_psd = [ ]
115

31 F3_gamma_psd = [ ]
32
33 F4_delta_psd = []
34 F4_theta_psd = []
35 F4_alpha_psd = [ ]
36 F4_beta_psd = [ ]
37 F4_gamma_psd = [ ]
38
39 C3_delta_psd = [ ]
40 C3_theta_psd = [ ]
41 C3_alpha_psd = [ ]
42 C3_beta_psd = [ ]
43 C3_gamma_psd = [ ]
44
45 C4_delta_psd = [ ]
46 C4_theta_psd = [ ]
47 C4_alpha_psd = [ ]
48 C4_beta_psd = [ ]
49 C4_gamma_psd = [ ]
50
51 P3_delta_psd = []
52 P3_theta_psd = []
53 P3_alpha_psd = [ ]
54 P3_beta_psd = [ ]
55 P3_gamma_psd = [ ]
56
57 P4_delta_psd = []
58 P4_theta_psd = []
59 P4_alpha_psd = [ ]
60 P4_beta_psd = [ ]
61 P4_gamma_psd = [ ]
116

62
63 O1_delta_psd = [ ]
64 O1_theta_psd = [ ]
65 O1_alpha_psd = [ ]
66 O1_beta_psd = [ ]
67 O1_gamma_psd = [ ]
68
69 O2_delta_psd = [ ]
70 O2_theta_psd = [ ]
71 O2_alpha_psd = [ ]
72 O2_beta_psd = [ ]
73 O2_gamma_psd = [ ]
74
75 F7_delta_psd = []
76 F7_theta_psd = []
77 F7_alpha_psd = [ ]
78 F7_beta_psd = [ ]
79 F7_gamma_psd = [ ]
80
81 F8_delta_psd = []
82 F8_theta_psd = []
83 F8_alpha_psd = [ ]
84 F8_beta_psd = [ ]
85 F8_gamma_psd = [ ]
86
87 T3_delta_psd = [ ]
88 T3_theta_psd = [ ]
89 T3_alpha_psd = [ ]
90 T3_beta_psd = [ ]
91 T3_gamma_psd = [ ]
92
117

93 T4_delta_psd = [ ]
94 T4_theta_psd = [ ]
95 T4_alpha_psd = [ ]
96 T4_beta_psd = [ ]
97 T4_gamma_psd = [ ]
98
99 T5_delta_psd = [ ]
100 T5_theta_psd = [ ]
101 T5_alpha_psd = [ ]
102 T5_beta_psd = [ ]
103 T5_gamma_psd = [ ]
104
105 T6_delta_psd = [ ]
106 T6_theta_psd = [ ]
107 T6_alpha_psd = [ ]
108 T6_beta_psd = [ ]
109 T6_gamma_psd = [ ]
110
111 Fp1_delta_e = []
112 Fp1_theta_e = []
113 Fp1_alpha_e = [ ]
114 Fp1_beta_e = [ ]
115 Fp1_gamma_e = [ ]
116
117 Fp2_delta_e = []
118 Fp2_theta_e = []
119 Fp2_alpha_e = [ ]
120 Fp2_beta_e = [ ]
121 Fp2_gamma_e = [ ]
122
123 F3_delta_e = []
118

124 F3_theta_e = []
125 F3_alpha_e = [ ]
126 F3_beta_e = [ ]
127 F3_gamma_e = [ ]
128
129 F4_delta_e = []
130 F4_theta_e = []
131 F4_alpha_e = [ ]
132 F4_beta_e = [ ]
133 F4_gamma_e = [ ]
134
135 C3_delta_e = [ ]
136 C3_theta_e = [ ]
137 C3_alpha_e = [ ]
138 C3_beta_e = [ ]
139 C3_gamma_e = [ ]
140
141 C4_delta_e = [ ]
142 C4_theta_e = [ ]
143 C4_alpha_e = [ ]
144 C4_beta_e = [ ]
145 C4_gamma_e = [ ]
146
147 P3_delta_e = []
148 P3_theta_e = []
149 P3_alpha_e = [ ]
150 P3_beta_e = [ ]
151 P3_gamma_e = [ ]
152
153 P4_delta_e = []
154 P4_theta_e = []
119

155 P4_alpha_e = [ ]
156 P4_beta_e = [ ]
157 P4_gamma_e = [ ]
158
159 O1_delta_e = [ ]
160 O1_theta_e = [ ]
161 O1_alpha_e = [ ]
162 O1_beta_e = [ ]
163 O1_gamma_e = [ ]
164
165 O2_delta_e = [ ]
166 O2_theta_e = [ ]
167 O2_alpha_e = [ ]
168 O2_beta_e = [ ]
169 O2_gamma_e = [ ]
170
171 F7_delta_e = []
172 F7_theta_e = []
173 F7_alpha_e = [ ]
174 F7_beta_e = [ ]
175 F7_gamma_e = [ ]
176
177 F8_delta_e = []
178 F8_theta_e = []
179 F8_alpha_e = [ ]
180 F8_beta_e = [ ]
181 F8_gamma_e = [ ]
182
183 T3_delta_e = [ ]
184 T3_theta_e = [ ]
185 T3_alpha_e = [ ]
120

186 T3_beta_e = [ ]
187 T3_gamma_e = [ ]
188
189 T4_delta_e = [ ]
190 T4_theta_e = [ ]
191 T4_alpha_e = [ ]
192 T4_beta_e = [ ]
193 T4_gamma_e = [ ]
194
195 T5_delta_e = [ ]
196 T5_theta_e = [ ]
197 T5_alpha_e = [ ]
198 T5_beta_e = [ ]
199 T5_gamma_e = [ ]
200
201 T6_delta_e = [ ]
202 T6_theta_e = [ ]
203 T6_alpha_e = [ ]
204 T6_beta_e = [ ]
205 T6_gamma_e = [ ]
206
207 Fp12_delta_psd = [ ]
208 Fp12_theta_psd = [ ]
209 Fp12_alpha_psd = [ ]
210 Fp12_beta_psd = [ ]
211 Fp12_gamma_psd = [ ]
212
213 F34_delta_psd = [ ]
214 F34_theta_psd = [ ]
215 F34_alpha_psd = [ ]
216 F34_beta_psd = [ ]
121

217 F34_gamma_psd = [ ]
218
219 C34_delta_psd = [ ]
220 C34_theta_psd = [ ]
221 C34_alpha_psd = [ ]
222 C34_beta_psd = [ ]
223 C34_gamma_psd = [ ]
224
225 P34_delta_psd = [ ]
226 P34_theta_psd = [ ]
227 P34_alpha_psd = [ ]
228 P34_beta_psd = [ ]
229 P34_gamma_psd = [ ]
230
231 O12_delta_psd = [ ]
232 O12_theta_psd = [ ]
233 O12_alpha_psd = [ ]
234 O12_beta_psd = [ ]
235 O12_gamma_psd = [ ]
236
237 F78_delta_psd = [ ]
238 F78_theta_psd = [ ]
239 F78_alpha_psd = [ ]
240 F78_beta_psd = [ ]
241 F78_gamma_psd = [ ]
242
243 T34_delta_psd = [ ]
244 T34_theta_psd = [ ]
245 T34_alpha_psd = [ ]
246 T34_beta_psd = [ ]
247 T34_gamma_psd = [ ]
122

248
249 T56_delta_psd = [ ]
250 T56_theta_psd = [ ]
251 T56_alpha_psd = [ ]
252 T56_beta_psd = [ ]
253 T56_gamma_psd = [ ]
254
255 Fp1 = [ ]
256 Fp2 = [ ]
257 F3 = [ ]
258 F4 = [ ]
259 C3 = [ ]
260 C4 = [ ]
261 P3 = [ ]
262 P4 = [ ]
263 O1 = [ ]
264 O2 = [ ]
265 F7 = [ ]
266 F8 = [ ]
267 T3 = [ ]
268 T4 = [ ]
269 T5 = [ ]
270 T6 = [ ]
271
272 # d e k l a r a s i nama k a n a l
273 Ch = [ ’ Fp1−A1 ’ , ’ Fp2−A2 ’ , ’ F3−A1 ’ , ’ F4−A2 ’ ,
274 ’C3−A1 ’ , ’C4−A2 ’ , ’ P3−A1 ’ , ’ P4−A2 ’ ,
275 ’O1−A1 ’ , ’O2−A2 ’ , ’ F7−A1 ’ , ’ F8−A2 ’ ,
276 ’ T3−A1 ’ , ’ T4−A2 ’ , ’ T5−A1 ’ , ’ T6−A2 ’ ]
277
278 # d e k l a r a s i nama v a r i a b e l k a n a l
123

279 ChN = [ Fp1 , Fp2 , F3 , F4 , C3 , C4 , P3 , P4 , O1 , O2 , F7 ,


280 F8 , T3 , T4 , T5 , T6 ]
281
282 #nama v a r i a b e l p s d
283 psd_var = [ Fp1_delta_psd , Fp1_theta_psd , Fp1_alpha_psd ,
284 F p 1 _ b e t a _ p s d , Fp1_gamma_psd , F p 2 _ d e l t a _ p s d ,
285 Fp2_theta_psd , Fp2_alpha_psd , Fp2_beta_psd ,
286 Fp2_gamma_psd , F 3 _ d e l t a _ p s d , F 3 _ t h e t a _ p s d ,
287 F 3 _ a l p h a _ p s d , F 3 _ b e t a _ p s d , F3_gamma_psd ,
288 F4_delta_psd , F4_theta_psd , F4_alpha_psd ,
289 F 4 _ b e t a _ p s d , F4_gamma_psd , C 3 _ d e l t a _ p s d ,
290 C3_theta_psd , C3_alpha_psd , C3_beta_psd ,
291 C3_gamma_psd , C 4 _ d e l t a _ p s d , C 4 _ t h e t a _ p s d ,
292 C 4 _ a l p h a _ p s d , C 4 _ b e t a _ p s d , C4_gamma_psd ,
293 P3_delta_psd , P3_theta_psd , P3_alpha_psd ,
294 P 3 _ b e t a _ p s d , P3_gamma_psd , P 4 _ d e l t a _ p s d ,
295 P4_theta_psd , P4_alpha_psd , P4_beta_psd ,
296 P4_gamma_psd , O 1 _ d e l t a _ p s d , O 1 _ t h e t a _ p s d ,
297 O 1 _ a l p h a _ p s d , O 1 _ b e t a _ p s d , O1_gamma_psd ,
298 O2_delta_psd , O2_theta_psd , O2_alpha_psd ,
299 O 2 _ b e t a _ p s d , O2_gamma_psd , F 7 _ d e l t a _ p s d ,
300 F7_theta_psd , F7_alpha_psd , F7_beta_psd ,
301 F7_gamma_psd , F 8 _ d e l t a _ p s d , F 8 _ t h e t a _ p s d ,
302 F 8 _ a l p h a _ p s d , F 8 _ b e t a _ p s d , F8_gamma_psd ,
303 T 3 _ a l p h a _ p s d , T 3 _ b e t a _ p s d , T3_gamma_psd ,
304 T4_delta_psd , T4_theta_psd , T4_alpha_psd ,
305 T 4 _ b e t a _ p s d , T4_gamma_psd , T 5 _ d e l t a _ p s d ,
306 T5_theta_psd , T5_alpha_psd , T5_beta_psd ,
307 T5_gamma_psd , T 6 _ d e l t a _ p s d , T 6 _ t h e t a _ p s d ,
308 T 6 _ a l p h a _ p s d , T 6 _ b e t a _ p s d , T6_gamma_psd ]
309
124

310 #nama v a r i a b e l e n e r g i
311 e_var = [ Fp1_delta_e , Fp1_theta_e , Fp1_alpha_e , Fp1_beta_e ,
312 Fp1_gamma_e , F p 2 _ d e l t a _ e , F p 2 _ t h e t a _ e , F p 2 _ a l p h a _ e ,
313 F p 2 _ b e t a _ e , Fp2_gamma_e , F 3 _ d e l t a _ e , F 3 _ t h e t a _ e ,
314 F 3 _ a l p h a _ e , F 3 _ b e t a _ e , F3_gamma_e , F 4 _ d e l t a _ e ,
315 F 4 _ t h e t a _ e , F 4 _ a l p h a _ e , F 4 _ b e t a _ e , F4_gamma_e ,
316 C3_delta_e , C3_theta_e , C3_alpha_e , C3_beta_e ,
317 C3_gamma_e , C 4 _ d e l t a _ e , C 4 _ t h e t a _ e , C 4 _ a l p h a _ e ,
318 C 4 _ b e t a _ e , C4_gamma_e , P 3 _ d e l t a _ e , P 3 _ t h e t a _ e ,
319 P 3 _ a l p h a _ e , P 3 _ b e t a _ e , P3_gamma_e , P 4 _ d e l t a _ e ,
320 P 4 _ t h e t a _ e , P 4 _ a l p h a _ e , P 4 _ b e t a _ e , P4_gamma_e ,
321 O 1 _ d e l t a _ e , O 1 _ t h e t a _ e , O1_alpha_e , O1_beta_e ,
322 O1_gamma_e , O 2 _ d e l t a _ e , O 2 _ t h e t a _ e , O2_alpha_e ,
323 O2_beta_e , O2_gamma_e , F 7 _ d e l t a _ e , F 7 _ t h e t a _ e ,
324 F 7 _ a l p h a _ e , F 7 _ b e t a _ e , F7_gamma_e , F 8 _ d e l t a _ e ,
325 F 8 _ t h e t a _ e , F 8 _ a l p h a _ e , F 8 _ b e t a _ e , F8_gamma_e ,
326 T3_delta_e , T3_theta_e , T3_alpha_e , T3_beta_e ,
327 T3_gamma_e , T 4 _ d e l t a _ e , T 4 _ t h e t a _ e , T 4 _ a l p h a _ e ,
328 T 4 _ b e t a _ e , T4_gamma_e , T 5 _ d e l t a _ e , T 5 _ t h e t a _ e ,
329 T 5 _ a l p h a _ e , T 5 _ b e t a _ e , T5_gamma_e , T 6 _ d e l t a _ e ,
330 T 6 _ t h e t a _ e , T 6 _ a l p h a _ e , T 6 _ b e t a _ e , T6_gamma_e ]
331
332 #nama v a r i a b e l a s i m e t r i
333 asymmetry_var = [ Fp12_delta_psd , Fp12_theta_psd , Fp12_alpha_psd ,
334 F p 1 2 _ b e t a _ p s d , Fp12_gamma_psd , F 3 4 _ d e l t a _ p s d ,
335 F34_theta_psd , F34_alpha_psd , F34_beta_psd ,
336 F34_gamma_psd , C 3 4 _ d e l t a _ p s d , C 3 4 _ t h e t a _ p s d ,
337 C 3 4 _ a l p h a _ p s d , C 3 4 _ b e t a _ p s d , C34_gamma_psd ,
338 P34_delta_psd , P34_theta_psd , P34_alpha_psd ,
339 P 3 4 _ b e t a _ p s d , P34_gamma_psd , O 1 2 _ d e l t a _ p s d ,
340 O12_theta_psd , O12_alpha_psd , O12_beta_psd ,
125

341 O12_gamma_psd , F 7 8 _ d e l t a _ p s d , F 7 8 _ t h e t a _ p s d ,
342 F 7 8 _ a l p h a _ p s d , F 7 8 _ b e t a _ p s d , F78_gamma_psd ,
343 T34_delta_psd , T34_theta_psd , T34_alpha_psd ,
344 T 3 4 _ b e t a _ p s d , T34_gamma_psd , T 5 6 _ d e l t a _ p s d ,
345 T56_theta_psd , T56_alpha_psd , T56_beta_psd ,
346 T56_gamma_psd ]
347
348 # r a n g e f r e k u e n s i pemotongan PSD
349 freq_range = [(1 , 4) , (4 , 8) , (8 , 13) , (13 , 30) , (30 , 35)]
350
351 #nama−nama f o l d e r
352 f o l d e r s = [ ’ senang ’ , ’ t a k u t ’ , ’ sedih ’ , ’ tenang ’ ]
353
354 # jumlah f i l e s t i m u l u s 1
355 n s t i m 1 = 27
356 n s t i m 2 = 33
357 n s t i m 3 = 17
358 n s t i m 4 = 21
359
360 s = 0
361
362 # d e f i n i s i k a n f u n g s i pemisah per kanal
363 d e f s e p a r a t e ( ChName ) :
364 c h a n n e l = raw . g e t _ d a t a ( p i c k s = ChName ) . f l a t t e n
365 return channel # kembalikan channel
366
367 # definisikan fungsi ekstraksi fitur
368 d e f f e a t u r e _ e x t r a c t i o n ( s , n , low , h i g h ) :
369 n = n [0]
370 win = 4 ∗ s a m p l i n g _ f r e q
371 f _ v a l u e s , p s d _ v a l u e s = s i g n a l . welch ( n ,
126

372 fs = sampling_freq ,
373 n p e r s e g = win )
374 i d x _ d e l t a = np . l o g i c a l _ a n d ( f _ v a l u e s >= low ,
375 f _ v a l u e s <= h i g h )
376 freq_res = f_values [1] − f_values [0]
377 power = s i m p s ( p s d _ v a l u e s [ i d x _ d e l t a ] , dx = f r e q _ r e s )
378 t o t a l _ p o w e r = s i m p s ( p s d _ v a l u e s , dx= f r e q _ r e s )
379 r e l _ p o w = power / t o t a l _ p o w e r
380 f _ f f t = np . f f t . f f t f r e q ( l e n ( n ) , d = 1 / 1 0 0 )
381 df_fft = f_fft [1] − f_fft [0]
382 E_welch = ( ( 1 / ( 1 / 1 0 0 ) ∗ ( f r e q _ r e s / d f _ f f t ) ∗
383 np . sum ( p s d _ v a l u e s [ i d x _ d e l t a ] ) ) )
384 E_tot = ((1 / (1/100) ∗ ( freq_res / d f _ f f t ) ∗
385 np . sum ( p s d _ v a l u e s ) ) )
386 E _ r e l = E_welch / E _ t o t
387
388 # n . clear ()
389
390 return rel_pow , E _ r e l
391
392 def save ( n ) :
393 f o r i i n range ( l e n ( F p 1 _ d e l t a _ p s d ) ) :
394 F p 1 2 _ d e l t a _ p s d = abs ( F p 1 _ d e l t a _ p s d [ i ]− F p 2 _ d e l t a _ p s d [ i ] )
395 F p 1 2 _ t h e t a _ p s d = abs ( F p 1 _ t h e t a _ p s d [ i ]− F p 2 _ t h e t a _ p s d [ i ] )
396 F p 1 2 _ a l p h a _ p s d = abs ( F p 1 _ a l p h a _ p s d [ i ]− F p 2 _ a l p h a _ p s d [ i ] )
397 F p 1 2 _ b e t a _ p s d = abs ( F p 1 _ b e t a _ p s d [ i ]− F p 2 _ b e t a _ p s d [ i ] )
398 Fp12_gamma_psd = abs ( Fp1_gamma_psd [ i ]−Fp2_gamma_psd [ i ] )
399 F 3 4 _ d e l t a _ p s d = abs ( F 3 _ d e l t a _ p s d [ i ]− F 4 _ d e l t a _ p s d [ i ] )
400 F 3 4 _ t h e t a _ p s d = abs ( F 3 _ t h e t a _ p s d [ i ]− F 4 _ t h e t a _ p s d [ i ] )
401 F 3 4 _ a l p h a _ p s d = abs ( F 3 _ a l p h a _ p s d [ i ]− F 4 _ a l p h a _ p s d [ i ] )
402 F 3 4 _ b e t a _ p s d = abs ( F 3 _ b e t a _ p s d [ i ]− F 4 _ b e t a _ p s d [ i ] )
127

403 F34_gamma_psd = abs ( F3_gamma_psd [ i ]−F4_gamma_psd [ i ] )


404 C 3 4 _ d e l t a _ p s d = abs ( C 3 _ d e l t a _ p s d [ i ]− C 4 _ d e l t a _ p s d [ i ] )
405 C 3 4 _ t h e t a _ p s d = abs ( C 3 _ t h e t a _ p s d [ i ]− C 4 _ t h e t a _ p s d [ i ] )
406 C 3 4 _ a l p h a _ p s d = abs ( C 3 _ a l p h a _ p s d [ i ]− C 4 _ a l p h a _ p s d [ i ] )
407 C 3 4 _ b e t a _ p s d = abs ( C 3 _ b e t a _ p s d [ i ]− C 4 _ b e t a _ p s d [ i ] )
408 C34_gamma_psd = abs ( C3_gamma_psd [ i ]−C4_gamma_psd [ i ] )
409 P 3 4 _ d e l t a _ p s d = abs ( P 3 _ d e l t a _ p s d [ i ]− P 4 _ d e l t a _ p s d [ i ] )
410 P 3 4 _ t h e t a _ p s d = abs ( P 3 _ t h e t a _ p s d [ i ]− P 4 _ t h e t a _ p s d [ i ] )
411 P 3 4 _ a l p h a _ p s d = abs ( P 3 _ a l p h a _ p s d [ i ]− P 4 _ a l p h a _ p s d [ i ] )
412 P 3 4 _ b e t a _ p s d = abs ( P 3 _ b e t a _ p s d [ i ]− P 4 _ b e t a _ p s d [ i ] )
413 P34_gamma_psd = abs ( P3_gamma_psd [ i ]−P4_gamma_psd [ i ] )
414 O 1 2 _ d e l t a _ p s d = abs ( O 1 _ d e l t a _ p s d [ i ]− O 2 _ d e l t a _ p s d [ i ] )
415 O 1 2 _ t h e t a _ p s d = abs ( O 1 _ t h e t a _ p s d [ i ]− O 2 _ t h e t a _ p s d [ i ] )
416 O 1 2 _ a l p h a _ p s d = abs ( O 1 _ a l p h a _ p s d [ i ]− O 2 _ a l p h a _ p s d [ i ] )
417 O 1 2 _ b e t a _ p s d = abs ( O 1 _ b e t a _ p s d [ i ]− O 2 _ b e t a _ p s d [ i ] )
418 O12_gamma_psd = abs ( O1_gamma_psd [ i ]−O2_gamma_psd [ i ] )
419 F 7 8 _ d e l t a _ p s d = abs ( F 7 _ d e l t a _ p s d [ i ]− F 8 _ d e l t a _ p s d [ i ] )
420 F 7 8 _ t h e t a _ p s d = abs ( F 7 _ t h e t a _ p s d [ i ]− F 8 _ t h e t a _ p s d [ i ] )
421 F 7 8 _ a l p h a _ p s d = abs ( F 7 _ a l p h a _ p s d [ i ]− F 8 _ a l p h a _ p s d [ i ] )
422 F 7 8 _ b e t a _ p s d = abs ( F 7 _ b e t a _ p s d [ i ]− F 8 _ b e t a _ p s d [ i ] )
423 F78_gamma_psd = abs ( F7_gamma_psd [ i ]−F8_gamma_psd [ i ] )
424 T 3 4 _ d e l t a _ p s d = abs ( T 3 _ d e l t a _ p s d [ i ]− T 4 _ d e l t a _ p s d [ i ] )
425 T 3 4 _ t h e t a _ p s d = abs ( T 3 _ t h e t a _ p s d [ i ]− T 4 _ t h e t a _ p s d [ i ] )
426 T 3 4 _ a l p h a _ p s d = abs ( T 3 _ a l p h a _ p s d [ i ]− T 4 _ a l p h a _ p s d [ i ] )
427 T 3 4 _ b e t a _ p s d = abs ( T 3 _ b e t a _ p s d [ i ]− T 4 _ b e t a _ p s d [ i ] )
428 T34_gamma_psd = abs ( T3_gamma_psd [ i ]−T4_gamma_psd [ i ] )
429 T 5 6 _ d e l t a _ p s d = abs ( T 5 _ d e l t a _ p s d [ i ]− T 6 _ d e l t a _ p s d [ i ] )
430 T 5 6 _ t h e t a _ p s d = abs ( T 5 _ t h e t a _ p s d [ i ]− T 6 _ t h e t a _ p s d [ i ] )
431 T 5 6 _ a l p h a _ p s d = abs ( T 5 _ a l p h a _ p s d [ i ]− T 6 _ a l p h a _ p s d [ i ] )
432 T 5 6 _ b e t a _ p s d = abs ( T 5 _ b e t a _ p s d [ i ]− T 6 _ b e t a _ p s d [ i ] )
433 T56_gamma_psd = abs ( T5_gamma_psd [ i ]−T6_gamma_psd [ i ] )
128

434
435 f i t u r = ( Fp1_delta_psd [ i ] , Fp1_theta_psd [ i ] , Fp1_alpha_psd [ i ] ,
436 F p 1 _ b e t a _ p s d [ i ] , Fp1_gamma_psd [ i ] , F p 2 _ d e l t a _ p s d [ i ] ,
437 Fp2_theta_psd [ i ] , Fp2_alpha_psd [ i ] , Fp2_beta_psd [ i ] ,
438 Fp2_gamma_psd [ i ] , F 3 _ d e l t a _ p s d [ i ] , F 3 _ t h e t a _ p s d [ i ] ,
439 F 3 _ a l p h a _ p s d [ i ] , F 3 _ b e t a _ p s d [ i ] , F3_gamma_psd [ i ] ,
440 F4_delta_psd [ i ] , F4_theta_psd [ i ] , F4_alpha_psd [ i ] ,
441 F 4 _ b e t a _ p s d [ i ] , F4_gamma_psd [ i ] , C 3 _ d e l t a _ p s d [ i ] ,
442 C3_theta_psd [ i ] , C3_alpha_psd [ i ] , C3_beta_psd [ i ] ,
443 C3_gamma_psd [ i ] , C 4 _ d e l t a _ p s d [ i ] , C 4 _ t h e t a _ p s d [ i ] ,
444 C 4 _ a l p h a _ p s d [ i ] , C 4 _ b e t a _ p s d [ i ] , C4_gamma_psd [ i ] ,
445 P3_delta_psd [ i ] , P3_theta_psd [ i ] , P3_alpha_psd [ i ] ,
446 P 3 _ b e t a _ p s d [ i ] , P3_gamma_psd [ i ] , P 4 _ d e l t a _ p s d [ i ] ,
447 P4_theta_psd [ i ] , P4_alpha_psd [ i ] , P4_beta_psd [ i ] ,
448 P4_gamma_psd [ i ] , O 1 _ d e l t a _ p s d [ i ] , O 1 _ t h e t a _ p s d [ i ] ,
449 O 1 _ a l p h a _ p s d [ i ] , O 1 _ b e t a _ p s d [ i ] , O1_gamma_psd [ i ] ,
450 O2_delta_psd [ i ] , O2_theta_psd [ i ] , O2_alpha_psd [ i ] ,
451 O 2 _ b e t a _ p s d [ i ] , O2_gamma_psd [ i ] , F 7 _ d e l t a _ p s d [ i ] ,
452 F7_theta_psd [ i ] , F7_alpha_psd [ i ] , F7_beta_psd [ i ] ,
453 F7_gamma_psd [ i ] , F 8 _ d e l t a _ p s d [ i ] , F 8 _ t h e t a _ p s d [ i ] ,
454 F 8 _ a l p h a _ p s d [ i ] , F 8 _ b e t a _ p s d [ i ] , F8_gamma_psd [ i ] ,
455 T3_delta_psd [ i ] , T3_theta_psd [ i ] , T3_alpha_psd [ i ] ,
456 T 3 _ b e t a _ p s d [ i ] , T3_gamma_psd [ i ] , T 4 _ d e l t a _ p s d [ i ] ,
457 T4_theta_psd [ i ] , T4_alpha_psd [ i ] , T4_beta_psd [ i ] ,
458 T4_gamma_psd [ i ] , T 5 _ d e l t a _ p s d [ i ] , T 5 _ t h e t a _ p s d [ i ] ,
459 T 5 _ a l p h a _ p s d [ i ] , T 5 _ b e t a _ p s d [ i ] , T5_gamma_psd [ i ] ,
460 T6_delta_psd [ i ] , T6_theta_psd [ i ] , T6_alpha_psd [ i ] ,
461 T 6 _ b e t a _ p s d [ i ] , T6_gamma_psd [ i ] , F p 1 _ d e l t a _ e [ i ] ,
462 Fp1_theta_e [ i ] , Fp1_alpha_e [ i ] , Fp1_beta_e [ i ] ,
463 Fp1_gamma_e [ i ] , F p 2 _ d e l t a _ e [ i ] , F p 2 _ t h e t a _ e [ i ] ,
464 F p 2 _ a l p h a _ e [ i ] , F p 2 _ b e t a _ e [ i ] , Fp2_gamma_e [ i ] ,
129

465 F3_delta_e [ i ] , F3_theta_e [ i ] , F3_alpha_e [ i ] ,


466 F 3 _ b e t a _ e [ i ] , F3_gamma_e [ i ] , F 4 _ d e l t a _ e [ i ] ,
467 F4_theta_e [ i ] , F4_alpha_e [ i ] , F4_beta_e [ i ] ,
468 F4_gamma_e [ i ] , C 3 _ d e l t a _ e [ i ] , C 3 _ t h e t a _ e [ i ] ,
469 C 3 _ a l p h a _ e [ i ] , C 3 _ b e t a _ e [ i ] , C3_gamma_e [ i ] ,
470 C4_delta_e [ i ] , C4_theta_e [ i ] , C4_alpha_e [ i ] ,
471 C 4 _ b e t a _ e [ i ] , C4_gamma_e [ i ] , P 3 _ d e l t a _ e [ i ] ,
472 P3_theta_e [ i ] , P3_alpha_e [ i ] , P3_beta_e [ i ] ,
473 P3_gamma_e [ i ] , P 4 _ d e l t a _ e [ i ] , P 4 _ t h e t a _ e [ i ] ,
474 P 4 _ a l p h a _ e [ i ] , P 4 _ b e t a _ e [ i ] , P4_gamma_e [ i ] ,
475 O1_delta_e [ i ] , O1_theta_e [ i ] , O1_alpha_e [ i ] ,
476 O 1 _ b e t a _ e [ i ] , O1_gamma_e [ i ] , O 2 _ d e l t a _ e [ i ] ,
477 O2_theta_e [ i ] , O2_alpha_e [ i ] , O2_beta_e [ i ] ,
478 O2_gamma_e [ i ] , F 7 _ d e l t a _ e [ i ] , F 7 _ t h e t a _ e [ i ] ,
479 F 7 _ a l p h a _ e [ i ] , F 7 _ b e t a _ e [ i ] , F7_gamma_e [ i ] ,
480 F8_delta_e [ i ] , F8_theta_e [ i ] , F8_alpha_e [ i ] ,
481 F 8 _ b e t a _ e [ i ] , F8_gamma_e [ i ] , T 3 _ d e l t a _ e [ i ] ,
482 T3_theta_e [ i ] , T3_alpha_e [ i ] , T3_beta_e [ i ] ,
483 T3_gamma_e [ i ] , T 4 _ d e l t a _ e [ i ] , T 4 _ t h e t a _ e [ i ] ,
484 T 4 _ a l p h a _ e [ i ] , T 4 _ b e t a _ e [ i ] , T4_gamma_e [ i ] ,
485 T5_delta_e [ i ] , T5_theta_e [ i ] , T5_alpha_e [ i ] ,
486 T 5 _ b e t a _ e [ i ] , T5_gamma_e [ i ] , T 6 _ d e l t a _ e [ i ] ,
487 T6_theta_e [ i ] , T6_alpha_e [ i ] , T6_beta_e [ i ] ,
488 T6_gamma_e [ i ] , F p 1 2 _ d e l t a _ p s d , F p 1 2 _ t h e t a _ p s d ,
489 F p 1 2 _ a l p h a _ p s d , F p 1 2 _ b e t a _ p s d , Fp12_gamma_psd ,
490 F34_delta_psd , F34_theta_psd , F34_alpha_psd ,
491 F 3 4 _ b e t a _ p s d , F34_gamma_psd , C 3 4 _ d e l t a _ p s d ,
492 C34_theta_psd , C34_alpha_psd , C34_beta_psd ,
493 C34_gamma_psd , P 3 4 _ d e l t a _ p s d , P 3 4 _ t h e t a _ p s d ,
494 P 3 4 _ a l p h a _ p s d , P 3 4 _ b e t a _ p s d , P34_gamma_psd ,
495 O12_delta_psd , O12_theta_psd , O12_alpha_psd ,
130

496 O 1 2 _ b e t a _ p s d , O12_gamma_psd , F 7 8 _ d e l t a _ p s d ,
497 F78_theta_psd , F78_alpha_psd , F78_beta_psd ,
498 F78_gamma_psd , T 3 4 _ d e l t a _ p s d , T 3 4 _ t h e t a _ p s d ,
499 T 3 4 _ a l p h a _ p s d , T 3 4 _ b e t a _ p s d , T34_gamma_psd ,
500 T56_delta_psd , T56_theta_psd , T56_alpha_psd ,
501 T 5 6 _ b e t a _ p s d , T56_gamma_psd , n )
502
503 w i t h open ( ’ f i t u r _ e m o s i _ v 7 _ 1 0 0 _ a b s _ e a s y m . c s v ’ ,
504 mode= ’ a ’ , n e w l i n e = ’ ’ ) a s f i t u r _ e m o s i :
505 f i t u r _ w r i t e r = csv . w r i t e r ( f i t u r _ e m o s i ,
506 delimiter = ’ , ’)
507 f i t u r _ w r i t e r . writerow ( f i t u r )
508
509 # Baca semua f i l e dalam t i a p f o l d e r
510 f o r x i n range ( l e n ( f o l d e r s ) ) :
511 folder = folders [x]
512 i f f o l d e r == ’ s e n a n g ’ :
513 nstim = nstim1
514 e l i f f o l d e r == ’ t a k u t ’ :
515 nstim = nstim2
516 e l i f f o l d e r == ’ s e d i h ’ :
517 nstim = nstim3
518 e l i f f o l d e r == ’ t e n a n g ’ :
519 nstim = nstim4
520 f o r i i n range ( n s t i m ) :
521 raw = [ ]
522
523 # Buka f i l e
524 fname = o s . p a t h . j o i n ( f o l d e r , s t r ( i + 1 ) + ’ __raw . f i f ’ )
525 raw = mne . i o . r e a d _ r a w _ f i f ( fname , p r e l o a d = T r u e )
526
131

527 #CAR , b i s a d i g u n a k a n a t a u t i d a k
528 # raw . s e t _ e e g _ r e f e r e n c e ( r e f _ c h a n n e l s = ’ a v e r a g e ’ )
529 i n f o = raw . i n f o
530
531 # Dapatkan f r e k u e n s i s a m p l i n g
532 s a m p l i n g _ f r e q = raw . i n f o [ ’ s f r e q ’ ]
533 m = 0
534
535 # Buka dan masukkan d a t a t i a p k a n a l k e v a r i a b e l penampung
536 f o r a i n Ch :
537 channel_data = separate ( a )
538 idx = 0
539 for n in channel_data ( ) :
540 idx = 0
541 i f abs ( n ) >= 100 e −6:
542 c h a n n e l _ d a t a ( ) [ i d x ] = None
543 idx = idx + 1
544 ChN [m ] . a p p e n d ( c h a n n e l _ d a t a ( ) )
545 m = m + 1
546
547 n = 0
548 o = 0
549 f o r j i n ChN :
550 for f in freq_range :
551 l_freq , h_freq = f
552 psd , e n e r g y = f e a t u r e _ e x t r a c t i o n ( s , j , l _ f r e q ,
553 h_freq )
554 psd_var [ n ] . append ( psd )
555 e_var [ n ] . append ( energy )
556 n = n + 1
557 o = o + 1
132

558
559 m = 0
560 f o r a i n Ch :
561 ChN [m ] . c l e a r ( )
562 m = m + 1
563
564 i f f o l d e r == ’ s e n a n g ’ :
565 save (0)
566 e l i f f o l d e r == ’ t a k u t ’ :
567 save (1)
568 e l i f f o l d e r == ’ s e d i h ’ :
569 save (2)
570 e l i f f o l d e r == ’ t e n a n g ’ :
571 save (3)
572
573 for z in ( e_var + psd_var ) :
574 z . clear ()

Anda mungkin juga menyukai