Institutional Repository | Satya Wacana Christian University: Aplikasi untuk Pembelajaran Penggunaan Mikrokontroler bagi Pemula dengan Menggunakan Bahasa Smalltalk T1 612008059 BAB IV
BAB IV
HASIL PENGUJIAN DAN ANALISIS
Pada bab ini akan dibahas tentang pengujian alat dan analisis mengapa alat
dapat bekerja seperti yang sudah diujikan. Pengujian dan analisa sengaja dilakukan
berulang kali agar mendapatkan hasil yang maksimal. Pengujian yang dilakukan
adalah pengujian terhadap sudut yang dihasilkan ketika perintah diberikan.
Pengujian dibagi menjadi 3 bagian, yaitu pengujian terhadap Aplikasi
Avrobject, pengujian terhadap modul Avrobject dan pengujian stringcode yang
diberikan secara beruntun dari Aplikasi Avrobject. Setelah dibuat tabel hasil
percobaan diberikan juga hasil analisa bagaimana hingga bisa mendapatkan hasil
seperti demikian. Setiap pengujian mempunyai ralat busur sebesar 0,1o.
4.1 Pengujian Terhadap Aplikasi Avrobject
Pengujian ini dilakukan dengan hanya memberikan satu buah perintah pada
motor yang ingin digerakkan, dengan absis derajat awal adalah 0o. Jadi akan
terdapat dua obyek DragObject pada pada ScriptLayout, yaitu motor yang ingin
digerakkan dan perintah yang ingin dikerjakan beserta parameternya.
Tabel 4.1. Tabel Pengujian Terhadap Aplikasi Avrobject (1)
Motor
DragObject
Parameter
Putaran yang
Persentase
yang diberikan
DragObject
Dihasilkan
Keberhasilan
(putaran)
1
Turn Right
1
1
100%
1
Turn Right
10
10
100%
1
Turn Right
25
25
100%
1
Turn Right
50
50
100%
1
Turn Right
100
100
100%
2
Turn Right
1
1
100%
40
2
Turn Right
10
10
100%
2
Turn Right
25
25
100%
2
Turn Right
50
50
100%
2
Turn Right
100
100
100%
1
Turn Left
1
1
100%
1
Turn Left
10
10
100%
1
Turn Left
25
25
100%
1
Turn Left
50
50
100%
1
Turn Left
100
100
100%
2
Turn Left
1
1
100%
2
Turn Left
10
10
100%
2
Turn Left
25
25
100%
2
Turn Left
50
50
100%
2
Turn Left
100
100
100%
Berdasarkan tabel pengujian 4.1 didapatkan bahwa perintah Turn Right
berhasil memenuhi spesifikasi 100% yaitu memutar panah searah jarum jam
sebanyak parameter yang diberikan. Perintah Turn Left juga berhasil memenuhi
spesifikasi 100% yaitu memutar panah berlawanan arah jarum sebanyak parameter
yang diberikan. Perintah ini dapat berhasil karena aplikasi dan algoritma yang
diberikan untuk menggerakkan animasi sudah berfungsi sebagaimana mestinya.
Tabel 4.2. Tabel Pengujian Terhadap Aplikasi Avrobject (2)
Motor
DragObject
Parameter
Derajat yang
yang diberikan
DragObject
o
Dihasilkan ( )
Keberhasilan
1
Turn Degree
15
15o
100%
1
Turn Degree
-15
345o
100%
1
Turn Degree
45
45 o
100%
1
Turn Degree
-45
315 o
100%
1
Turn Degree
90
90 o
100%
1
Turn Degree
-90
270 o
100%
180
o
100%
1
Turn Degree
41
180
Persentase
1
Turn Degree
-180
180 o
100%
1
Turn Degree
360
0o
100%
1
Turn Degree
-360
0o
100%
2
Turn Degree
15
15o
o
100%
2
Turn Degree
-15
345
100%
2
Turn Degree
45
45 o
100%
2
Turn Degree
-45
315 o
100%
2
Turn Degree
90
90 o
100%
2
Turn Degree
-90
270 o
100%
2
Turn Degree
180
180 o
100%
2
Turn Degree
-180
180 o
100%
2
Turn Degree
360
0o
100%
2
Turn Degree
-360
0o
100%
1
Turn To
15
15o
100%
o
100%
1
Turn To
45
45
1
Turn To
90
90 o
100%
1
Turn To
180
180 o
100%
1
Turn To
360
0o
100%
2
Turn To
15
15o
100%
2
Turn To
45
45 o
100%
2
Turn To
90
90 o
100%
2
Turn To
180
180 o
100%
2
Turn To
360
0o
100%
Berdasarkan tabel pengujian 4.2 didapatkan bahwa perintah Turn Degree
berhasil memenuhi spesifikasi 100% yaitu memutar panah berlawanan arah jarum
sebanyak parameter yang diberikan tanpa tanda negatif. Perintah Turn Degree
berhasil pula memenuhi spesifikasi 100% yaitu memutar panah searah jarum jam
sebanyak parameter yang diberikan dengan tanda negatif. Perintah Turn To juga
berhasil memenuhi spesifikasi 100% yaitu memutar panah menunjuk pada derajat
yang diberikan pada parameter. Perintah ini dapat berhasil karena aplikasi dan
42
algoritma yang diberikan untuk menggerakkan animasi sudah berfungsi
sebagaimana mestinya.
Pada Squeak sendiri telah dibuat method untuk mengarahkan pandangan /
heading obyek, yaitu dengan menggunakan method heading. Method heading
menghasilkan derajat yang memiliki tipe data desimal / float. Oleh sebab itu ketika
ingin menggunakan nilai heading dalam nilai bilangan bulat, telah dibuat juga
method yang dapat mengambil nilai integer dari heading. Seperti pada method
turnTo: pada class Arrow dipakai method asInteger untuk mengambil nilai integer
dari hasil heading.
anInteger := (degree-((360-(self heading))\\360)) asInteger.
4.2 Pengujian Terhadap Modul Avrobject
Pada pengujian ini, digunakan aplikasi Arduino 1.0.5-r2 dan tool Serial
Monitor untuk mengirimkan data ke Arduino. Setiap pemberian data diberikan
pada saat keaadaan motor menunjuk ke arah absis 0o. Setiap hasil yang didapat
mempunyai ralat busur sebesar 0,1o. Stringcode yang diberikan adalah berdasarkan
dari hasil pengeksekusian StartButton pada aplikasi Avrobject dengan satu buah
DragObject motor dan satu buah DragObject perintah ditampilkan pada Transcript.
Tabel 4.3. Tabel Pengujian Terhadap Modul Arduino (1)
Motor DragObject
yang
Parameter
String yang
Putaran yang
Persentase
DragObject
dikirimkan
Dihasilkan
Keberhasilan
diberikan
(putaran)
1
Turn Right
1
m1a
1
100%
1
Turn Right
10
m2a
10
100%
1
Turn Right
25
m4a
25
100%
1
Turn Right
50
m8a
50
100%
1
Turn Right
100
m16a
100
100%
2
Turn Right
1
n1a
1
100%
2
Turn Right
10
n2a
10
100%
2
Turn Right
25
n4a
25
100%
2
Turn Right
50
n8a
50
100%
43
2
Turn Right
100
n16a
100
100%
1
Turn Left
1
m1b
1
100%
1
Turn Left
10
m2b
10
100%
1
Turn Left
25
m4b
25
100%
1
Turn Left
50
m8b
50
100%
1
Turn Left
100
m16b
100
100%
2
Turn Left
1
n1b
1
100%
2
Turn Left
10
n2b
10
100%
2
Turn Left
25
n4b
25
100%
2
Turn Left
50
n8b
50
100%
2
Turn Left
100
n16b
100
100%
Berdasarkan tabel pengujian 4.3 didapatkan bahwa perintah Turn Right
berhasil memenuhi spesifikasi 100% yaitu memutar motor searah jarum jam
sebanyak parameter yang diberikan. Perintah Turn Left juga berhasil memenuhi
spesifikasi 100% yaitu memutar motor berlawanan arah jarum jam sebanyak
parameter yang diberikan. Ini dapat terjadi karena algoritma yang ditanamkan
dalam Arduino untuk menggerakkan motor sudah berfungsi sebagaimana mestinya.
Fungsi yang diberikan untuk memutar motor stepper 2BYJ48 sebanyak 360o( 1
putaran ) yaitu melakukan perubahan bit 4076 kali berhasil 100%.
Tabel 4.4. Tabel Pengujian Terhadap Modul Arduino (2)
Motor
DragObject
Parameter
String yang
Putaran yang
Persentase
yang
DragObject
dikirimkan
Dihasilkan (o)
Keberhasilan
diberikan
1
Turn Degree
15
m15c
15o
100%
1
Turn Degree
-15
m-15c
345o
100%
1
Turn Degree
45
m45c
45 o
100%
1
Turn Degree
-45
m-45c
315 o
100%
o
1
Turn Degree
90
m90c
90
1
Turn Degree
-90
m-90c
270 o
100%
1
Turn Degree
180
m180c
180 o
100%
44
100%
1
Turn Degree
-180
m-180c
180 o
100%
1
Turn Degree
360
m360c
0o
100%
1
Turn Degree
-360
m-360c
0o
100%
2
Turn Degree
15
n15c
15o
o
100%
2
Turn Degree
-15
n15c
345
100%
2
Turn Degree
45
n45c
45 o
100%
2
Turn Degree
-45
n45c
315 o
100%
2
Turn Degree
90
n90c
90 o
100%
2
Turn Degree
-90
n90c
270 o
100%
2
Turn Degree
180
n180c
180 o
100%
2
Turn Degree
-180
n180c
180 o
100%
2
Turn Degree
360
n360c
0o
100%
2
Turn Degree
-360
n360c
0o
100%
1
Turn To
15
m15d
15o
100%
o
100%
1
Turn To
45
m45d
45
1
Turn To
90
m90d
90 o
100%
1
Turn To
180
m180d
180 o
100%
1
Turn To
360
m360d
0o
100%
2
Turn To
15
n15d
15o
100%
2
Turn To
45
n45d
45 o
100%
2
Turn To
90
n90d
90 o
100%
2
Turn To
180
n180d
180 o
100%
2
Turn To
360
n360d
0o
100%
Berdasarkan tabel pengujian 4.4 didapatkan bahwa perintah Turn Degree
berhasil memenuhi spesifikasi 100% yaitu memutar motor berlawanan arah jarum
jam sebanyak parameter yang diberikan tanpa tanda negatif. Perintah Turn Degree
juga berhasil memenuhi spesifikasi 100% yaitu memutar motor searah jarum
sebanyak parameter yang diberikan dengan tanda negatif. Perintah Turn To juga
berhasil memenuhi spesifikasi 100% yaitu memutar motor menunjuk pada derajat
yang diberikan pada parameter. Ini dapat terjadi karena algoritma yang ditanamkan
dalam Arduino untuk menggerakkan motor sudah berfungsi sebagaimana mestinya.
45
Algoritma yang ditanamkan sangat bergantung pada nilai perulangan yang
memanggil fungsi void coClockwise(). Dalam fungsi void turnDegrees() terdapat
nilai aDegree yang sangat mempengaruhi derajat yang dihasilkan saat melakukan
perubahan bit. Nilai aDegree diperoleh 1,417 dari hasil riset dan percobaan yang
dilakukan berulang kali, yaitu jika ingin memutar motor 1o perlu diperlukan
perubahan bit sebanyak 8 x 1,417 perubahan bit.
4.3 Pengujian dengan memberikan Kode Beruntun
Pengujian ini dilakukan dengan membuat script pada ScriptLayout dengan
menempatkan beberapa DragObject sehingga saat obyek StartButton ditekan akan
dihasilkan sebuah stringcode. Stringcode ini langsung dikirimkan ke Arduino,
dibaca oleh Arduino dan Arduino mengerjakan tugas berdasarkan stringcode
tersebut. Pada bagian ini setiap stringcode yang diberikan akan dijelaskan
bagaimana keadaan Animasi motor pada aplikasi Avrobject dan bagaimana
pergerakan motor asli ketika tombol “DownloadButton” ditekan.
4.3.1 Membuat Wiper Atas dan Wiper Bawah
Stringcode yang dikirimkan adalah
[1x1em30dg2em210dg10fm120c-
120c1hg] untuk membuat wiper atas dan [2x1em30dg2em210dg10fm120c120c1hg] untuk membuat wiper bawah. Program pertama kali akan membaca nilai
vaiabel x, kemudian dengan nilai variabel x dibandingkan percabangan yang akan
dilakukan. Jika nilai x bernilai 1, panah motor 1 akan menuju ke posisi 30o dan jika
bernilai 2 panah akan menuju ke posisi 210o. Kemudian program akan menjalankan
script yang berada pada blok perulangan yaitu wiper yang bergerak 120o
berlawanan arah jarum jam, kemudian bergerak 120o searah jarum jam dan berhenti
satu detik. Blok perulangan dilakukan sebanyak sepuluh kali kemudian wiper
kembali berhenti pada posisi awal 30o atau 210o.
Dengan script ini maka dapat dibuat sebuah wiper yang bisa dipilih mode
membersihkan kaca bagian bawah atau kaca bagian atas terhadap garis normal
dengan aplikasi dan modul Avrobject. Dari animasi dan pergerakan modul
Avrobject terlihat perintah percabangan If berhasil 100%
percabangan berdasarkan nilai variabel X.
46
yaitu membuat
Gambar 4.1. ScriptLayout Percobaan kode beruntun (1)
4.3.2 Jam Analog
Stringcode yang dikirimkan adalah [m90d60fm-6c1hgm0d]. Pertama kali
panah motor satu akan menuju ke sudut 90o atau arah jam 12 pada jam analog.
Kemudian motor bergerak 6o searah jarum jam sebanyak enam puluh kali.
Kemudian motor akan berhenti kembali pada sudut 90o atau arah jam 12 pada jam
analog. Kemudian dikembalikan posisi motor pada 0o.
47
Gambar 4.2. ScriptLayout Percobaan kode beruntun (2)
Dilakukan analisa pada algoritma yang dibuat untuk menggerakkan motor
pada fungsi turnDegree() yang tertanan pada mikrokontroler. variabel number
adalah parameter yang diberikan pada fungsi ini. aDegree ditetapkan 1.417
berdasarkan dari hasil riset dan percobaan yang dilakukan yaitu untuk mengubah
posisi motor sebesar 1o dibutuhkan perubahan bit sebanyak 8x1,417. Variabel
arrowDegrees adalah jumlah perubahan bit yang dilakukan oleh motor stepper.
float aDegree = 1.417;
float numberFloat = number;
aDegree = (8*aDegree*numberFloat);
int arrowDegrees = aDegree;
Jadi pada Percobaan kode beruntun (2) yang dilakukan program adalah
sebagai berikut:
number = 6
aDegree = ( 8 x 6 x 1,417 ) = 68,016
arrowDegrees = 68.
48
Untuk menjalankan jam analog selama satu menit diperlukan 60 kali
perulangan perubahan bit sebanyak 68 kali, yaitu menjalankan motor 6o sebanyak
60 kali. Jadi jumlah step yang dilakukan pada perintah ini adalah
Jumlah step = 68 x 60 = 4080 step
Sedangkan untuk memutar motor sebanyak 360o hanya dibutuhkan perubahan
step sebanyak 4076 kali. Sebab itu dianalisa bahwa setiap menit atau setiap
pemberian perintah ini akan mengalami kesalahan perubahan step sebanyak 4 step
atau 0,352o. Terlihat bahwa dapat dibuat jam analog yang berhasil bekerja 99,9%,
tetapi pengujian perintah perulangan For berhasil 100% yaitu menjalankan perintah
dalam blok perulangan sebanyak parameter yang diberikan.
Persentase keberhasilan =
=
�
�ℎ
�
� – � �
�ℎ
�
x 100%
4076 − 4
x 100% = 99,9 %
4076
Pada awal pengerjaan ada bug pada program dalam mikrokontroler, yaitu jika
modul bekerja mulai dari 0o dalam melakukan perintah ini, motor hanya akan
bergerak 5o di setiap stepnya. Tetapi setelah dilakukan pencarian bug, diketahui
bahwa perlunya menentukan bit awal yang dikirim pada driver motor. Hal ini
dikarenakan posisi motor awal adalah tidak pasti pada saat bit 0000. Pemberian nilai
awal ini bergantung pada nilai intMotor yang diberikan. Dari hasil percobaan
ditetapkan dari awal intMotor bernilai 6, sebab pada saat awal motor dijalankan dia
berada pada bit 0011.
4.4 Hasil dan Analisa Kuisioner Pembelajaran Mikrokontroler
Dari tujuh orang siswa-siswi yang mengikuti proses pembelajaran
mikrokontroler yang dilakukan, mereka memberikan tanggapan seperti pada tabel
dibawah ini. Tanda „O‟ adalah bagi siswa/siswi yang memberi nilai ya, sedangkan
tanda „X‟ adalah siswa yang memberikan nilai tidak pada pertanyaan yang
diberikan. „P‟ pada kolom nama menandakan responden seorang pria dan dan „W‟
menandakan responden seorang wanita. Pada kolom Nomor Pertanyaan Kuisioner
menujuk pada tabel 3.2. Pertanyaan Kuisioner pada halaman 39.
49
Tabel 4.5. Jawaban siswa-siswi terhadap kuisioner yang diberikan
Nomor Pertanyaan Kuisioner
Nama
(Jenis Kelamin)
1
2
3
4
5
6
7
8
9
10
M. Fauzi (P)
X
X
O
O
O
O
X
O
O
O
Rira Tyas (W)
O
X
O
O
O
O
O
O
O
O
Agus Widodo (P)
O
O
O
O
O
O
X
O
O
O
Edwan Fajar (P)
O
X
X
X
O
O
X
O
O
X
Ella Mardiana(W)
O
X
O
O
X
O
O
O
O
O
Rajuna (P)
O
X
O
O
O
O
O
O
O
O
Jusuf Nurhadi (P)
O
O
O
O
O
O
X
O
O
O
Jumlah Ya
6
2
6
6
6
7
3
7
7
6
Jumlah Tidak
1
5
1
1
1
0
4
0
0
1
Dari hasil kuisioner khususnya pertanyaan nomor 5 didapatkan bahwa 85,7%
siswa mengatakan pembelajaran pemrograman mikrokontroler dengan metode
Flowcode lebih mudah dibandingkan dengan metode Basic.
Persentase Jawaban Ya =
� �
�
� �� �
x 100% =
6
x 100% = 85,7%
7
Setelah belajar sekilas mengenai pemrograman dengan metode Flowcode,
pada pertanyaan nomor 9, 7 dari 7 orang siswa menyatakan muncul ketertarikan
untuk lebih mendalami tentang pemrograman mikrokontroler dengan metode
Flowcode. Padahal berdasarkan pertanyaan nomor dua, terdapat lima orang siswa
yang baru pertama kali mempelajari bahasa pemrograman.
50
HASIL PENGUJIAN DAN ANALISIS
Pada bab ini akan dibahas tentang pengujian alat dan analisis mengapa alat
dapat bekerja seperti yang sudah diujikan. Pengujian dan analisa sengaja dilakukan
berulang kali agar mendapatkan hasil yang maksimal. Pengujian yang dilakukan
adalah pengujian terhadap sudut yang dihasilkan ketika perintah diberikan.
Pengujian dibagi menjadi 3 bagian, yaitu pengujian terhadap Aplikasi
Avrobject, pengujian terhadap modul Avrobject dan pengujian stringcode yang
diberikan secara beruntun dari Aplikasi Avrobject. Setelah dibuat tabel hasil
percobaan diberikan juga hasil analisa bagaimana hingga bisa mendapatkan hasil
seperti demikian. Setiap pengujian mempunyai ralat busur sebesar 0,1o.
4.1 Pengujian Terhadap Aplikasi Avrobject
Pengujian ini dilakukan dengan hanya memberikan satu buah perintah pada
motor yang ingin digerakkan, dengan absis derajat awal adalah 0o. Jadi akan
terdapat dua obyek DragObject pada pada ScriptLayout, yaitu motor yang ingin
digerakkan dan perintah yang ingin dikerjakan beserta parameternya.
Tabel 4.1. Tabel Pengujian Terhadap Aplikasi Avrobject (1)
Motor
DragObject
Parameter
Putaran yang
Persentase
yang diberikan
DragObject
Dihasilkan
Keberhasilan
(putaran)
1
Turn Right
1
1
100%
1
Turn Right
10
10
100%
1
Turn Right
25
25
100%
1
Turn Right
50
50
100%
1
Turn Right
100
100
100%
2
Turn Right
1
1
100%
40
2
Turn Right
10
10
100%
2
Turn Right
25
25
100%
2
Turn Right
50
50
100%
2
Turn Right
100
100
100%
1
Turn Left
1
1
100%
1
Turn Left
10
10
100%
1
Turn Left
25
25
100%
1
Turn Left
50
50
100%
1
Turn Left
100
100
100%
2
Turn Left
1
1
100%
2
Turn Left
10
10
100%
2
Turn Left
25
25
100%
2
Turn Left
50
50
100%
2
Turn Left
100
100
100%
Berdasarkan tabel pengujian 4.1 didapatkan bahwa perintah Turn Right
berhasil memenuhi spesifikasi 100% yaitu memutar panah searah jarum jam
sebanyak parameter yang diberikan. Perintah Turn Left juga berhasil memenuhi
spesifikasi 100% yaitu memutar panah berlawanan arah jarum sebanyak parameter
yang diberikan. Perintah ini dapat berhasil karena aplikasi dan algoritma yang
diberikan untuk menggerakkan animasi sudah berfungsi sebagaimana mestinya.
Tabel 4.2. Tabel Pengujian Terhadap Aplikasi Avrobject (2)
Motor
DragObject
Parameter
Derajat yang
yang diberikan
DragObject
o
Dihasilkan ( )
Keberhasilan
1
Turn Degree
15
15o
100%
1
Turn Degree
-15
345o
100%
1
Turn Degree
45
45 o
100%
1
Turn Degree
-45
315 o
100%
1
Turn Degree
90
90 o
100%
1
Turn Degree
-90
270 o
100%
180
o
100%
1
Turn Degree
41
180
Persentase
1
Turn Degree
-180
180 o
100%
1
Turn Degree
360
0o
100%
1
Turn Degree
-360
0o
100%
2
Turn Degree
15
15o
o
100%
2
Turn Degree
-15
345
100%
2
Turn Degree
45
45 o
100%
2
Turn Degree
-45
315 o
100%
2
Turn Degree
90
90 o
100%
2
Turn Degree
-90
270 o
100%
2
Turn Degree
180
180 o
100%
2
Turn Degree
-180
180 o
100%
2
Turn Degree
360
0o
100%
2
Turn Degree
-360
0o
100%
1
Turn To
15
15o
100%
o
100%
1
Turn To
45
45
1
Turn To
90
90 o
100%
1
Turn To
180
180 o
100%
1
Turn To
360
0o
100%
2
Turn To
15
15o
100%
2
Turn To
45
45 o
100%
2
Turn To
90
90 o
100%
2
Turn To
180
180 o
100%
2
Turn To
360
0o
100%
Berdasarkan tabel pengujian 4.2 didapatkan bahwa perintah Turn Degree
berhasil memenuhi spesifikasi 100% yaitu memutar panah berlawanan arah jarum
sebanyak parameter yang diberikan tanpa tanda negatif. Perintah Turn Degree
berhasil pula memenuhi spesifikasi 100% yaitu memutar panah searah jarum jam
sebanyak parameter yang diberikan dengan tanda negatif. Perintah Turn To juga
berhasil memenuhi spesifikasi 100% yaitu memutar panah menunjuk pada derajat
yang diberikan pada parameter. Perintah ini dapat berhasil karena aplikasi dan
42
algoritma yang diberikan untuk menggerakkan animasi sudah berfungsi
sebagaimana mestinya.
Pada Squeak sendiri telah dibuat method untuk mengarahkan pandangan /
heading obyek, yaitu dengan menggunakan method heading. Method heading
menghasilkan derajat yang memiliki tipe data desimal / float. Oleh sebab itu ketika
ingin menggunakan nilai heading dalam nilai bilangan bulat, telah dibuat juga
method yang dapat mengambil nilai integer dari heading. Seperti pada method
turnTo: pada class Arrow dipakai method asInteger untuk mengambil nilai integer
dari hasil heading.
anInteger := (degree-((360-(self heading))\\360)) asInteger.
4.2 Pengujian Terhadap Modul Avrobject
Pada pengujian ini, digunakan aplikasi Arduino 1.0.5-r2 dan tool Serial
Monitor untuk mengirimkan data ke Arduino. Setiap pemberian data diberikan
pada saat keaadaan motor menunjuk ke arah absis 0o. Setiap hasil yang didapat
mempunyai ralat busur sebesar 0,1o. Stringcode yang diberikan adalah berdasarkan
dari hasil pengeksekusian StartButton pada aplikasi Avrobject dengan satu buah
DragObject motor dan satu buah DragObject perintah ditampilkan pada Transcript.
Tabel 4.3. Tabel Pengujian Terhadap Modul Arduino (1)
Motor DragObject
yang
Parameter
String yang
Putaran yang
Persentase
DragObject
dikirimkan
Dihasilkan
Keberhasilan
diberikan
(putaran)
1
Turn Right
1
m1a
1
100%
1
Turn Right
10
m2a
10
100%
1
Turn Right
25
m4a
25
100%
1
Turn Right
50
m8a
50
100%
1
Turn Right
100
m16a
100
100%
2
Turn Right
1
n1a
1
100%
2
Turn Right
10
n2a
10
100%
2
Turn Right
25
n4a
25
100%
2
Turn Right
50
n8a
50
100%
43
2
Turn Right
100
n16a
100
100%
1
Turn Left
1
m1b
1
100%
1
Turn Left
10
m2b
10
100%
1
Turn Left
25
m4b
25
100%
1
Turn Left
50
m8b
50
100%
1
Turn Left
100
m16b
100
100%
2
Turn Left
1
n1b
1
100%
2
Turn Left
10
n2b
10
100%
2
Turn Left
25
n4b
25
100%
2
Turn Left
50
n8b
50
100%
2
Turn Left
100
n16b
100
100%
Berdasarkan tabel pengujian 4.3 didapatkan bahwa perintah Turn Right
berhasil memenuhi spesifikasi 100% yaitu memutar motor searah jarum jam
sebanyak parameter yang diberikan. Perintah Turn Left juga berhasil memenuhi
spesifikasi 100% yaitu memutar motor berlawanan arah jarum jam sebanyak
parameter yang diberikan. Ini dapat terjadi karena algoritma yang ditanamkan
dalam Arduino untuk menggerakkan motor sudah berfungsi sebagaimana mestinya.
Fungsi yang diberikan untuk memutar motor stepper 2BYJ48 sebanyak 360o( 1
putaran ) yaitu melakukan perubahan bit 4076 kali berhasil 100%.
Tabel 4.4. Tabel Pengujian Terhadap Modul Arduino (2)
Motor
DragObject
Parameter
String yang
Putaran yang
Persentase
yang
DragObject
dikirimkan
Dihasilkan (o)
Keberhasilan
diberikan
1
Turn Degree
15
m15c
15o
100%
1
Turn Degree
-15
m-15c
345o
100%
1
Turn Degree
45
m45c
45 o
100%
1
Turn Degree
-45
m-45c
315 o
100%
o
1
Turn Degree
90
m90c
90
1
Turn Degree
-90
m-90c
270 o
100%
1
Turn Degree
180
m180c
180 o
100%
44
100%
1
Turn Degree
-180
m-180c
180 o
100%
1
Turn Degree
360
m360c
0o
100%
1
Turn Degree
-360
m-360c
0o
100%
2
Turn Degree
15
n15c
15o
o
100%
2
Turn Degree
-15
n15c
345
100%
2
Turn Degree
45
n45c
45 o
100%
2
Turn Degree
-45
n45c
315 o
100%
2
Turn Degree
90
n90c
90 o
100%
2
Turn Degree
-90
n90c
270 o
100%
2
Turn Degree
180
n180c
180 o
100%
2
Turn Degree
-180
n180c
180 o
100%
2
Turn Degree
360
n360c
0o
100%
2
Turn Degree
-360
n360c
0o
100%
1
Turn To
15
m15d
15o
100%
o
100%
1
Turn To
45
m45d
45
1
Turn To
90
m90d
90 o
100%
1
Turn To
180
m180d
180 o
100%
1
Turn To
360
m360d
0o
100%
2
Turn To
15
n15d
15o
100%
2
Turn To
45
n45d
45 o
100%
2
Turn To
90
n90d
90 o
100%
2
Turn To
180
n180d
180 o
100%
2
Turn To
360
n360d
0o
100%
Berdasarkan tabel pengujian 4.4 didapatkan bahwa perintah Turn Degree
berhasil memenuhi spesifikasi 100% yaitu memutar motor berlawanan arah jarum
jam sebanyak parameter yang diberikan tanpa tanda negatif. Perintah Turn Degree
juga berhasil memenuhi spesifikasi 100% yaitu memutar motor searah jarum
sebanyak parameter yang diberikan dengan tanda negatif. Perintah Turn To juga
berhasil memenuhi spesifikasi 100% yaitu memutar motor menunjuk pada derajat
yang diberikan pada parameter. Ini dapat terjadi karena algoritma yang ditanamkan
dalam Arduino untuk menggerakkan motor sudah berfungsi sebagaimana mestinya.
45
Algoritma yang ditanamkan sangat bergantung pada nilai perulangan yang
memanggil fungsi void coClockwise(). Dalam fungsi void turnDegrees() terdapat
nilai aDegree yang sangat mempengaruhi derajat yang dihasilkan saat melakukan
perubahan bit. Nilai aDegree diperoleh 1,417 dari hasil riset dan percobaan yang
dilakukan berulang kali, yaitu jika ingin memutar motor 1o perlu diperlukan
perubahan bit sebanyak 8 x 1,417 perubahan bit.
4.3 Pengujian dengan memberikan Kode Beruntun
Pengujian ini dilakukan dengan membuat script pada ScriptLayout dengan
menempatkan beberapa DragObject sehingga saat obyek StartButton ditekan akan
dihasilkan sebuah stringcode. Stringcode ini langsung dikirimkan ke Arduino,
dibaca oleh Arduino dan Arduino mengerjakan tugas berdasarkan stringcode
tersebut. Pada bagian ini setiap stringcode yang diberikan akan dijelaskan
bagaimana keadaan Animasi motor pada aplikasi Avrobject dan bagaimana
pergerakan motor asli ketika tombol “DownloadButton” ditekan.
4.3.1 Membuat Wiper Atas dan Wiper Bawah
Stringcode yang dikirimkan adalah
[1x1em30dg2em210dg10fm120c-
120c1hg] untuk membuat wiper atas dan [2x1em30dg2em210dg10fm120c120c1hg] untuk membuat wiper bawah. Program pertama kali akan membaca nilai
vaiabel x, kemudian dengan nilai variabel x dibandingkan percabangan yang akan
dilakukan. Jika nilai x bernilai 1, panah motor 1 akan menuju ke posisi 30o dan jika
bernilai 2 panah akan menuju ke posisi 210o. Kemudian program akan menjalankan
script yang berada pada blok perulangan yaitu wiper yang bergerak 120o
berlawanan arah jarum jam, kemudian bergerak 120o searah jarum jam dan berhenti
satu detik. Blok perulangan dilakukan sebanyak sepuluh kali kemudian wiper
kembali berhenti pada posisi awal 30o atau 210o.
Dengan script ini maka dapat dibuat sebuah wiper yang bisa dipilih mode
membersihkan kaca bagian bawah atau kaca bagian atas terhadap garis normal
dengan aplikasi dan modul Avrobject. Dari animasi dan pergerakan modul
Avrobject terlihat perintah percabangan If berhasil 100%
percabangan berdasarkan nilai variabel X.
46
yaitu membuat
Gambar 4.1. ScriptLayout Percobaan kode beruntun (1)
4.3.2 Jam Analog
Stringcode yang dikirimkan adalah [m90d60fm-6c1hgm0d]. Pertama kali
panah motor satu akan menuju ke sudut 90o atau arah jam 12 pada jam analog.
Kemudian motor bergerak 6o searah jarum jam sebanyak enam puluh kali.
Kemudian motor akan berhenti kembali pada sudut 90o atau arah jam 12 pada jam
analog. Kemudian dikembalikan posisi motor pada 0o.
47
Gambar 4.2. ScriptLayout Percobaan kode beruntun (2)
Dilakukan analisa pada algoritma yang dibuat untuk menggerakkan motor
pada fungsi turnDegree() yang tertanan pada mikrokontroler. variabel number
adalah parameter yang diberikan pada fungsi ini. aDegree ditetapkan 1.417
berdasarkan dari hasil riset dan percobaan yang dilakukan yaitu untuk mengubah
posisi motor sebesar 1o dibutuhkan perubahan bit sebanyak 8x1,417. Variabel
arrowDegrees adalah jumlah perubahan bit yang dilakukan oleh motor stepper.
float aDegree = 1.417;
float numberFloat = number;
aDegree = (8*aDegree*numberFloat);
int arrowDegrees = aDegree;
Jadi pada Percobaan kode beruntun (2) yang dilakukan program adalah
sebagai berikut:
number = 6
aDegree = ( 8 x 6 x 1,417 ) = 68,016
arrowDegrees = 68.
48
Untuk menjalankan jam analog selama satu menit diperlukan 60 kali
perulangan perubahan bit sebanyak 68 kali, yaitu menjalankan motor 6o sebanyak
60 kali. Jadi jumlah step yang dilakukan pada perintah ini adalah
Jumlah step = 68 x 60 = 4080 step
Sedangkan untuk memutar motor sebanyak 360o hanya dibutuhkan perubahan
step sebanyak 4076 kali. Sebab itu dianalisa bahwa setiap menit atau setiap
pemberian perintah ini akan mengalami kesalahan perubahan step sebanyak 4 step
atau 0,352o. Terlihat bahwa dapat dibuat jam analog yang berhasil bekerja 99,9%,
tetapi pengujian perintah perulangan For berhasil 100% yaitu menjalankan perintah
dalam blok perulangan sebanyak parameter yang diberikan.
Persentase keberhasilan =
=
�
�ℎ
�
� – � �
�ℎ
�
x 100%
4076 − 4
x 100% = 99,9 %
4076
Pada awal pengerjaan ada bug pada program dalam mikrokontroler, yaitu jika
modul bekerja mulai dari 0o dalam melakukan perintah ini, motor hanya akan
bergerak 5o di setiap stepnya. Tetapi setelah dilakukan pencarian bug, diketahui
bahwa perlunya menentukan bit awal yang dikirim pada driver motor. Hal ini
dikarenakan posisi motor awal adalah tidak pasti pada saat bit 0000. Pemberian nilai
awal ini bergantung pada nilai intMotor yang diberikan. Dari hasil percobaan
ditetapkan dari awal intMotor bernilai 6, sebab pada saat awal motor dijalankan dia
berada pada bit 0011.
4.4 Hasil dan Analisa Kuisioner Pembelajaran Mikrokontroler
Dari tujuh orang siswa-siswi yang mengikuti proses pembelajaran
mikrokontroler yang dilakukan, mereka memberikan tanggapan seperti pada tabel
dibawah ini. Tanda „O‟ adalah bagi siswa/siswi yang memberi nilai ya, sedangkan
tanda „X‟ adalah siswa yang memberikan nilai tidak pada pertanyaan yang
diberikan. „P‟ pada kolom nama menandakan responden seorang pria dan dan „W‟
menandakan responden seorang wanita. Pada kolom Nomor Pertanyaan Kuisioner
menujuk pada tabel 3.2. Pertanyaan Kuisioner pada halaman 39.
49
Tabel 4.5. Jawaban siswa-siswi terhadap kuisioner yang diberikan
Nomor Pertanyaan Kuisioner
Nama
(Jenis Kelamin)
1
2
3
4
5
6
7
8
9
10
M. Fauzi (P)
X
X
O
O
O
O
X
O
O
O
Rira Tyas (W)
O
X
O
O
O
O
O
O
O
O
Agus Widodo (P)
O
O
O
O
O
O
X
O
O
O
Edwan Fajar (P)
O
X
X
X
O
O
X
O
O
X
Ella Mardiana(W)
O
X
O
O
X
O
O
O
O
O
Rajuna (P)
O
X
O
O
O
O
O
O
O
O
Jusuf Nurhadi (P)
O
O
O
O
O
O
X
O
O
O
Jumlah Ya
6
2
6
6
6
7
3
7
7
6
Jumlah Tidak
1
5
1
1
1
0
4
0
0
1
Dari hasil kuisioner khususnya pertanyaan nomor 5 didapatkan bahwa 85,7%
siswa mengatakan pembelajaran pemrograman mikrokontroler dengan metode
Flowcode lebih mudah dibandingkan dengan metode Basic.
Persentase Jawaban Ya =
� �
�
� �� �
x 100% =
6
x 100% = 85,7%
7
Setelah belajar sekilas mengenai pemrograman dengan metode Flowcode,
pada pertanyaan nomor 9, 7 dari 7 orang siswa menyatakan muncul ketertarikan
untuk lebih mendalami tentang pemrograman mikrokontroler dengan metode
Flowcode. Padahal berdasarkan pertanyaan nomor dua, terdapat lima orang siswa
yang baru pertama kali mempelajari bahasa pemrograman.
50