7 BAB II
LANDASAN TEORI
Dalam landasan teori ini menjelaskan singkat teori terkait pembuatan TA dengan beberapa referensi yang didapat.
2.1 Sistem Bahasa Isyarat Indonesia (SIBI)
Di Indonesia terdapat dua bahasa isyarat yang digunakan yaitu Sistem Bahasa Isyarat Indonesia (SIBI) dan Bahasa Isyarat Indonesia (BISINDO).
Perbedaan mendasar antara SIBI dan BISINDO adalah SIBI menggunakan abjad sebagai panduan bahasa isyarat tangan satu, sementara BISINDO menggunakan gerakan tangan (dua tangan) sebagai upaya komunikasi antar pengguna bahasa isyarat. SIBI dibuat hanya dengan mengubah Bahasa Indonesia lisan menjadi Bahasa Isyarat namun kosa kata isyaratnya banyak diambil dari bahasa isyarat Amerika. Tata bahasa yang digunakan dalam Bahasa Isyarat mengikuti bahasa Indonesia yang mengandalkan urutan kalimat dan satu isyarat untuk kata-kata berhomonim. Penerjemahan SIBI berupa kalimat lengkap dengan awalan dan akhiran[6].
Sistem Isyarat Bahasa Indonesia (SIBI) merupakan bahasa isyarat yang diciptakan oleh Alm. Anton Widyatmoko mantan kepala sekolah SLB/B Widya Bakti Semarang bekerjasama dengan mantan kepala sekolah SLB/B di Jakarta dan Surabaya tanpa melalui musyawarah dan persetujuan dari Gerakan Kesejahteraan Tunarungu Indonesia atau GERKATIN yang pada akhirnya mengeluarkan sebuah produk kamus bernama SIBI[6].
SIBI dirasa tidak efektif dikarenakan SIBI dibuat oleh pemerintah tanpa melibatkan orang tuli itu sendiri dan dasar pembuatannya mengacu pada Bahasa Indonesia lisan [6].
2.2 Scikit-learn: Machine Learning in Python
Bahasa pemrograman python merupakan salah satu bahasa yang paling populer untuk scientific computing. Memiliki sifat high-level interactive dan
memiliki ecosystem of scientific libraries yang semakin matang, scikit-learn merupakan pilihan yang menarik untuk pengembangan algorithmic development and exploratory data analysis (Dubois, 2007; Milmann dan Avaizis, 2011)[4].
Scikit-learn memaparkan berbagai macam machine learning algorithms, baik yang diawasi maupun yang tidak diawasi (supervised and unsupervised), sehingga dapat dengan mudah diintegrasikan kedalam analisis data statistic[4].
Secara umum, learning problem mempertimbangkan set dari n sampel data dan kemudian mencoba memprediksi properti data yang tidak diketahui. Jika setiap sampel lebih dari satu angka, misalnya multi-dimensional entry (alias data multivariat), maka dapat dikatakan sampel tersebut memiliki beberapa atribut atau fitur. Masalah pembelajaran terbagi dalam beberapa kategori[14] :
1. Supervised learning, di mana datanya dilengkapi dengan atribut tambahan yang ingin di prediksi. Jenis permasalahan seperti ini dapat berupa:
a. Classification : sampel milik dua kelas atau lebih dan proses pembelajaran akan dilakukan dari data yang sudah diberi label agar dapat memprediksi kelas data yang tidak berlabel. Contoh masalah klasifikasi adalah pengenalan digit tulisan tangan, di mana tujuannya adalah untuk menetapkan setiap vektor input ke salah satu dari sejumlah kategori diskrit.
b. Regression : jika output yang diinginkan terdiri dari satu atau lebih variabel kontinu (continuous variables), maka task tersebut dapat disebut sebagai regresi. Contoh permasalahan regresi adalah prediksi panjang salmon sebagai function dari umur dan beratnya.
2. Unsupervised learning, di mana data training terdiri dari serangkaian input vektor x tanpa nilai target yang sesuai. Tujuan dari permasalahan tersebut untuk membentuk kelompok dari contoh data yang serupa, proses tersebut disebut sebagai clustering.
1.3 Support Vector Machines (SVMs)
Support Vector Machines (SVMs) adalah seperangkat metode supervised learning yang digunakan untuk classification, regression dan outliers detection.
Beberapa keuntungan dari SVM adalah [15] : 1. Efektif dalam ruang dimensi tinggi.
2. Masih efektif dalam kasus di mana jumlah dimensi lebih besar dari jumlah sampel.
3. Menggunakan subset poin pelatihan dalam fungsi keputusan (disebut vektor dukungan), sehingga juga hemat memori.
Sedangkan, kekurangan dari SVM dapat meliputi:
1. Jika jumlah fitur jauh lebih besar daripada jumlah sampel, hindari pemasangan yang berlebihan dalam memilih fungsi Kernel dan istilah regularisasi sangat penting.
2. SVM tidak secara langsung memberikan estimasi probabilitas, ini dihitung menggunakan validasi silang lima kali lipat yang expensive.
SVM memiliki beberapa class estimators yang sudah dikelompokkan berdasarkan algoritma classification, regression maupun outlier detection[16].
Tabel 2.1 ESTIMATORS [16]
Estimators
svm.LinearSVC([penalty, loss, dual, tol, C,..) Linear Support Vector Classification.
svm.LinearSVR([epsilon, tol, C, loss, …]) Linear Support Vector Regression.
svm.NuSVC([nu, kernel, degree, gamma, ]) Nu-Support Vector Classification.
svm.NuSVR([nu, C, kernel, degree, gamma,..])
Nu Support Vector Regression.
svm.OneClassSVM([kernel, degree, gamma, ..])
Unsupervised Outlier Detection.
svm.SVC([C, kernel, degree, gamma, coef0,])
C-Support Vector Classification.
svm.SVR([kernel, degree, gamma, coef0, tol,]
Epsilon-Support Vector Regression.
svm.l1_min_c(X, y[, loss, fit_intercept, …]) Return the lowest bound for C such that for C in (l1_min_C, infinity) the model is guaranteed not to be empty.
Support Vector Classification (SVC) merupakan salah satu kelas SVM yang mampu melakukan klasifikasi multi-kelas pada dataset. Berikut adalah mathematical formulation pada SVC[15] :
Training vectors 𝑥𝑖∈ ℝ𝑝 , i = 1,…, n, dan 𝑦 ∈ {1, −1}𝑛 SVC memecahkan masalah primal berikut ini :
𝑚𝑖𝑛𝑤,𝑏,𝜁 1
2𝑤𝑇𝑤 + 𝐶 ∑𝑛𝑖=1 𝜁𝑖
subject to 𝑦𝑖(𝑤𝑇𝜙(𝑥𝑖) + 𝑏) ≥ 1 − 𝜁𝑖, 𝜁𝑖 ≥ 0, 𝑖 = 1, . . . , 𝑛
(2.1)
Bentuk dualnya adalah : 𝑚𝑖𝑛𝛼
1
2𝛼𝑇𝑄𝛼 − 𝑒𝑇𝛼 subject to 𝑦𝑇𝛼 = 0
0 ≤ 𝛼𝑖≤ 𝐶, 𝑖 = 1, . . . , 𝑛
(2.2)
Decision function SVC :
sgn(∑𝑛𝑖=1 𝑦𝑖𝛼𝑖𝐾(𝑥𝑖, 𝑥) + 𝜌) (2.3)
Terdapat beberapa parameter yang perlu dimasukan pada class SVC, seperti pengaturan kernel, gamma, degree, dll. Berikut adalah beberapa default value dari parameter class SVC.
Tabel 2.2 SVC PARAMETER [15]
Parameter Description
C : float, optional (default=1.0) Penalty parameter C of the error term.
kernel : string, optional (default=’rbf’) Specifies the kernel type to be used in the algorithm. It must be one of
‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’,
‘precomputed’ or a callable. If none is given, ‘rbf’ will be used. If a callable is given it is used to pre-compute the kernel matrix from data matrices; that matrix should be an array of shape (n_samples, n_samples).
degree : int, optional (default=3) Degree of the polynomial kernel function (‘poly’). Ignored by all other kernels.
Parameter Description gamma : float, optional
(default=’auto’)
Kernel coefficient for ‘rbf’, ‘poly’ and
‘sigmoid’.
Current default is ‘auto’ which uses 1 / n_features, if gamma='scale' is passed then it uses 1 / (n_features * X.var()) as value of gamma. The current default of gamma, ‘auto’, will change to ‘scale’ in version 0.22.
‘auto_deprecated’, a deprecated version of ‘auto’ is used as a default indicating that no explicit value of gamma was passed.
coef0 : float, optional (default=0.0) Independent term in kernel function. It is only significant in ‘poly’ and
‘sigmoid’.
shrinking : boolean, optional (default=True)
Whether to use the shrinking heuristic.
probability : boolean, optional (default=False)
Whether to enable probability
estimates. This must be enabled prior to calling fit, and will slow down that method.
tol : float, optional (default=1e-3) Tolerance for stopping criterion.
cache_size : float, optional Specify the size of the kernel cache (in MB).
class_weight : {dict, ‘balanced’}, optional
Set the parameter C of class i to class_weight[i]*C for SVC. If not given, all classes are supposed to have weight one. The “balanced” mode uses the values of y to automatically adjust weights inversely proportional to class frequencies in the input data as n_samples / (n_classes *
np.bincount(y))
verbose : bool, default: False Enable verbose output. Note that this setting takes advantage of a per- process runtime setting in libsvm that, if enabled, may not work properly in a multithreaded context.
max_iter : int, optional (default=-1) Hard limit on iterations within solver, or -1 for no limit.
Berikut ini adalah beberapa jenis kernel yang terdapat pada class SVC :
Gambar 2.1 SVC CLASSIFICATION [15]
LinearSVC adalah implementasi lain dari Support Vector Classification untuk kasus kernel linier. Sedangkan kernel Radial Basis Function (RBF), memiliki dua parameter yang harus dipertimbangkan: C dan gamma. Parameter C, yang umum untuk semua kernel SVM. Nilai C yang rendah membuat permukaan keputusan menjadi smooth, sedangkan nilai C yang tinggi bertujuan untuk mengklasifikasikan semua contoh pelatihan dengan benar. Parameter gamma menentukan seberapa besar pengaruh yang dimiliki contoh single training.
Semakin besar gamma, semakin dekat contoh lain yang akan terpengaruh[15].
2.4 Game Edukasi
Permainan (games) adalah setiap kontes antara pemain yang berinteraksi satu sama lain dengan mengikuti aturan-aturan tertentu untuk mencapai tujuan tertentu pula[7]. Menurut pendapat Mayke Tedjasaputro (dalam Anggani Sudono, 2000:15) menyatakan bahwa belajar dengan bermain memberikan kesempatan kepada anak untuk memanipulasi, mempraktekkan, dan mendapatkan bermacam- macam konsep serta pengertian yang tak terhitung banyaknya[8]. Adapun prinsip- prinsip permainan adalah sebagai berikut :
a. Dimainkan dua orang atau lebih secara interaktif b. Mempunyai tujuan-tujuan tertentu
c. Adanya pemenang dalam setiap permainan
Menurut Sadiman (2009:76), menyatakan bahwa setiap permainan harus mempunyai empat komponen utama, yaitu[7]:
a. Adanya pemain, biasanya lebih dari dua orang b. Adanya lingkungan dimana para pemain berinteraksi c. Adanya aturan-aturan main
d. Adanya tujuan tertentu yang ingin dicapai
Game edukasi merupakan sebuah perangkat game/permainan yang dikemas dalam konteks pendidikan. Berikut ini adalah definisi game edukasi menurut para ahli:
1 Menurut Papert (1993) mengemukakan bahwa notes that software games teach children that some forms of learning are fast-paced, immensely compelling and rewarding where as by comparison school strikes many young people as slow and boring[9].
2 Menurut Boyle (1997) mengemukakan bahwa points out that games can produce engagement and delight in learning; they thus offer a powerful format for educational environments. Moreover, there are studies that have shown that the use of carefully selected computer games may improve thinking[10].
3 Menurut Wahono mengemukakan bahwa game merupakan aktifitas terstruktur atau semi terstruktur yang biasanya bertujuan untuk hiburan dan kadang dapat digunakan sebagai sarana pendidikan[11].
2.5 Leap Motion
Leap motion sudah digunakan oleh lebih dari 300.000 developer di dunia untuk menciptakan sebuah simulasi realita untuk dunia nyata yang dapat memudahkan orang dalam pekerjaan atau membangun sebuah permainan yang interaktif. Leap motion merupakan sebuah hand tracking technology yang berjalan pada mobile processors dengan fast, accurate dan powerful[5].
Gambar 2.2 LEAP MOTION [5]
Leap motion merupakan alat sensor untuk mengenali pergerakan dan pola pada tangan dan jari dalam ruang 3D sekitar 8 cubic feet dengan meletakan tangan diatas device. Data di transmisi ke computer melalui USB. Ada pun API Reference yang sudah disediakan secara detail yang dibagi ke dalam beberapa classes[5].
Tabel 2.3 API REFERENCE [5]
Arm FailedDeviceList ImageList
Bone Finger InteractionBox
Config FingerList Listener
Controller Frame Matrix
Device Hand Pointable
DeviceList HandList PointableList
FailedDevice Image Vector
Mininum system requirements untuk menggunakan leap motion adalah sebagai berikut :
1. Windows® 7+ or Mac® OS X 10.7+
2. AMD Phenom™ II or Intel® Core™ i3/i5/i7 processor 3. 2 GB RAM
4. USB 2.0 port
Sedangkan untuk keperluan VR, minimum system requirements adalah sebagai berikut :
1. NVIDIA GTX 970 / AMD R9 290 equivalent or greater 2. Intel i5-4590 equivalent or greater
3. 8GB+ RAM
4. Compatible HDMI 1.3 video output 5. 2x USB 3.0 ports
6. Windows 7 SP1 or newer