Senin, 11 Maret 2013

Soal Berhitung Acak (Flash)


Seteleah cukup lama tidak ada tutorial, kali ini kami membuat sebuah tutorial kuis yang berisi 10 soal berhitung. Angka-angka yang dihitung akan muncul secara acak. Tetapi tidak hanya itu saja tanda +, -, * munculnya juga ikut diacak. Kami tidak menggunakan tanda / karena angka-angka yang dihitung muncul secara acak sehingga nantinya penghitungan akan sulit dilakukan oleh pemain.
1. Buatlah sebuah flash document.
2. Buatlah sebuah static text dengan tulisan Selesaikan 10 soal berhitung berikut ini
3. Buatlah sebuah dynamic text bertuliskan Main. Seleksi dynamic text ini kemudian tekan Ctrl+F3. Pada panel properties yang muncul nonaktifkan tombol selectable dan aktifkan tombol show border around text.
4. Pastikan anda masih menyeleksi dynamic text ini kemudian tekan F8. Pada panel yang muncul masukkanmain_btn sebagai name dan button sebagai type lalu tekan ok.
5. Seleksi dynamic text di stage dan pada panel properties masukkan main_btn sebagai instance name.
6. Atur letak objek pada frame 1 seperti gambar di bawah ini :
tampilan frame 1
7. Klik kanan frame 2 dan pilih Insert Blank Keyframe.
8. Di frame 2 buatlah 6 buah dynamic text kosong dan masukkan var berikut ini pada panel properties masing-masing dynamic text : noTampilscoreTampilbilangan1bilangan2operatorcekJawaban.
9. Buatlah sebuah static text bertuliskan =
10. Buatlah sebuah input text. Seleksi input text ini dan pada panel properties masukkan bilangan3 sebagai var.
11. Buatlah sebuah static text bertulikan Cek. Gambarlah sebuah persegi panjang dengan panjang dan lebar sesuai panjang dan lebar static text bertuliskan Cek.
12. Letakkan persegi panjang tersebut ditengah-tengah static text bertuliskan Cek. Lalu seleksi static textbertuliskan Cek tadi dan tekan Ctrl+B sebanyak 2 kali hingga static text berubah menjadi shape.
13. Seleksi persegi panjang dan static text yang sudah berubah menjadi shape tadi kemudian tekan F8. Pada panel yang muncul masukkan cek_btn sebagai name dan button sebagai type lalu tekan ok.
14. Seleksi cek_btn di stage dan pada panel properties masukkan cek_btn sebagai instance name.
15. Buatlah sebuah static text bertulikan Lanjut. Gambarlah sebuah persegi panjang dengan panjang dan lebar sesuai panjang dan lebar static text bertuliskan Lanjut.
16. Letakkan persegi panjang tersebut ditengah-tengah static text bertuliskan Lanjut. Lalu seleksi static textbertuliskan Lanjut tadi dan tekan Ctrl+B sebanyak 2 kali hingga static text berubah menjadi shape.
17. Seleksi persegi panjang dan static text yang sudah berubah menjadi shape tadi kemudian tekan F8. Pada panel yang muncul masukkan lanjut_btn sebagai name dan button sebagai type lalu tekan ok.
18. Seleksi lanjut_btn di stage dan pada panel properties masukkan lanjut_btn sebagai instance name.
19. Atur letak objek yang dibuat di frame 2 seperti gambar di bawah ini :
tampilan frame 2
20. Klik kanan frame 3 dan pilih Insert Blank Keyframe. Di frame 3 buatlah sebuah dynamic text kosong. Seleksi dynamic text ini dan pada panel properties nonaktifkan tombol selectable dan masukkan scoreTampilsebagai var.
21. Buatlah sebuah dynamic text bertuliskan Ulang. Seleksi dynamic text ini dan pada panel properties non aktifkan tombol selectable dan aktifkan tombol show border around text.
22. Seleksi dynamic text bertuliskan Ulang tadi kemudian tekan F8. Pada panel yang muncul masukkanulang_btn sebagai name dan button sebagai type lalu tekan ok.
23. Seleksi ulang_btn di stage kemudian pada panel properties masukkan ulang_btn sebagai instance name.
24. Atur letak objek yang dibuat di frame 3 seperti gambar di bawah ini :
tampilan frame 3
25. Klik frame 1 dan tekan F9. Pada panel actions yang muncul masukkan script berikut :
1
2
3
4
5
6
7
//menghentikan agar frame berikutnya tidak dimainkan
stop();
//ketika button main_btn ditekan
main_btn.onPress = function() {
 //mainkan frame 2
 gotoAndStop(2);
};
26. Klik frame 2 dan pada panel actions masukkan script berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
//menghentikan agar frame berikutnya tidak dimainkan
stop();
//membuat fungsi jawabanBenar
function jawabanBenar() {
 //tampilkan tulisan Jawaban Benar pada dynamic text dengan var cekJawaban
 cekJawaban = "Jawaban Benar";
 //nilai variable score ditambah 10
 score += 10;
 //nilai variable no ditambah 1
 no += 1;
 //ubah nilai transparansi lanjut_btn menjadi 100
 lanjut_btn._alpha = 100;
 //lanjut_btn dapat ditekan
 lanjut_btn.enabled = true;
 //ubah nilai transparansi lanjut_btn menjadi 20
 cek_btn._alpha = 20;
 //lanjut_btn tidak dapat ditekan
 cek_btn.enabled = false;
}
//membuat fungsi jawabanSalah
function jawabanSalah() {
 //tampilkan tulisan Jawaban Salah pada dynamic text dengan var cekJawaban
 cekJawaban = "Jawaban Salah";
 //nilai variable no ditambah 1
 no += 1;
 //ubah nilai transparansi lanjut_btn menjadi 100
 lanjut_btn._alpha = 100;
 //lanjut_btn dapat ditekan
 lanjut_btn.enabled = true;
 //ubah nilai transparansi lanjut_btn menjadi 20
 cek_btn._alpha = 20;
 //lanjut_btn tidak dapat ditekan
 cek_btn.enabled = false;
}
//membuat fungsi reset
function reset() {
 //membuat varable noOperator dengan nilai acak 0 sampai 2 yang ditambah 1
 noOperator = random(3)+1;
 //tampilkan tulisan Soal : +nilai variable no pada dynamic text dengan var noTampil
 noTampil = "Soal "+no;
 //tampilkan tulisan Score : +nilai variable score pada dynamic text dengan var scoreTampil
 scoreTampil = "Score : "+score;
 //tampilkan nilai acak 0 sampai 20 pada dynamic text dengan var bilangan1
 bilangan1 = random(21);
 //tampilkan nilai acak 0 sampai 20 pada dynamic text dengan var bilangan2
 bilangan2 = random(21);
 //kosongkan input text dengan var bilangan3
 bilangan3 = "";
 //kosongkan dynamic text dengan var cekJawaban
 cekJawaban = "";
 //jika variable noOperator bernilai 1
 if (noOperator == 1) {
  //tampilkan tanda + pada dynamic text dengan var operator
  operator = "+";
 }
 //jika variable noOperator bernilai 2       
 if (noOperator == 2) {
  //tampilkan tanda - pada dynamic text dengan var operator
  operator = "-";
 }
 //jika variable noOperator bernilai 3       
 if (noOperator == 3) {
  //tampilkan tanda * pada dynamic text dengan var operator
  operator = "*";
 }
 //ubah nilai transparansi lanjut_btn menjadi 20      
 lanjut_btn._alpha = 20;
 //lanjut_btn tidak dapat ditekan
 lanjut_btn.enabled = false;
 //ubah nilai transparansi cek_btn menjadi 100 
 cek_btn._alpha = 100;
 //cek_btn dapat ditekan
 cek_btn.enabled = true;
}
//mebuat variable no dengan nilai 1
no = 1;
//membuat variable score dengan nilai 0
score = 0;
//jalankan fungsi reset
reset();
//ketika button cek_btn ditekan
cek_btn.onPress = function() {
 //jika variable noOperator bernilai 1
 if (noOperator == 1) {
  //jika penjumlahan nilai yang terdapat pada dynamic text dengan var bilangan1 dan bilangan 2 sama dengan nilai pada inpu text bilangan 3
  if (bilangan3 == bilangan1+bilangan2) {
   //jalankan fungsi jawabanBenar
   jawabanBenar();
  }
  //jika penjumlahan nilai yang terdapat pada dynamic text dengan var bilangan1 dan bilangan 2 tidak sama dengan nilai pada inpu text bilangan 3    
  if (bilangan3 != bilangan1+bilangan2) {
   //jalankan fungsi jawabanSalah
   jawabanSalah();
  }
 }
 //jika variable noOperator bernilai 2  
 if (noOperator == 2) {
  //jika pengurangan nilai yang terdapat pada dynamic text dengan var bilangan1 dan bilangan 2 sama dengan nilai pada inpu text bilangan 3
  if (bilangan3 == bilangan1-bilangan2) {
   //jalankan fungsi jawabanBenar
   jawabanBenar();
  }
  //jika pengurangan nilai yang terdapat pada dynamic text dengan var bilangan1 dan bilangan 2 tidak sama dengan nilai pada inpu text bilangan 3    
  if (bilangan3 != bilangan1-bilangan2) {
   //jalankan fungsi jawabanSalah
   jawabanSalah();
  }
 }
 //jika variable noOperator bernilai 3 
 if (noOperator == 3) {
  //jika perkalian nilai yang terdapat pada dynamic text dengan var bilangan1 dan bilangan 2 sama dengan nilai pada inpu text bilangan 3
  if (bilangan3 == bilangan1*bilangan2) {
   //jalankan fungsi jawabanBenar
   jawabanBenar();
  }
  //jika perkalian nilai yang terdapat pada dynamic text dengan var bilangan1 dan bilangan 2 tidak sama dengan nilai pada inpu text bilangan 3    
  if (bilangan3 != bilangan1*bilangan2) {
   //jalankan fungsi jawabanSalah
   jawabanSalah();
  }
 }
};
//ketika button lanjut_btn ditekan
lanjut_btn.onPress = function() {
 //jika nilai variable no kurang dari 11
 if (no<11) {
  //jalankan fungsi reset
  reset();
  //jika tidak
 } else {
  //mainkan frame 3
  gotoAndStop(3);
 }
};
27. Klik frame 3 dan pada panel actions masukkan script berikut :
1
2
3
4
5
6
7
8
9
//menghentikan agar frame berikutnya tidak dimainkan
stop();
//tampilkan tulisan Score : + nilai variable score pada dynamic text dengan var scoreTampil
scoreTampil = "Score : "+score;
//ketika button ulang_btn ditekan
ulang_btn.onPress = function() {
 //mainkan frame 1
 gotoAndStop(1);
};
28. Tekan Ctrl+Enter untuk melihat hasilnya.
Sourcenya dapat di download di sini

1 komentar:

  1. gan mau tanya.

    saya buat frame 1 -20 itu materi, lalu frame 21 itu halaman awal soal, frame 22-30 halaman soal. Pas dijalankan frame 1-20 nya masih terikut, bagaimana agar yg terbaca dan dirandom itu dari frame 22-30 saja.

    terima kasih gan sebelumnya

    BalasHapus