Professional Documents
Culture Documents
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
1 dari 35
8/8/2015 4:19 PM
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
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
2 dari 35
8/8/2015 4:19 PM
3 dari 35
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
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
8/8/2015 4:19 PM
4 dari 35
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
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
<TextView
android:id="@+id/textViewTanggal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="TextView" />
<TextView
android:id="@+id/textViewWaktu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/textViewTanggal"
android:text="TextView" />
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewSoal2"
android:layout_marginTop="5dp" >
<RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="RadioButton" />
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
</RadioGroup>
<TextView
8/8/2015 4:19 PM
5 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
android:id="@+id/textViewSoal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/gambarKuis"
android:layout_centerHorizontal="true"
android:layout_marginTop="52dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="@+id/gambarKuis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewWaktu"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
4.Buat kelas baru beri nama Soal.java, lalu ketikkan kode program berikut ini:
8/8/2015 4:19 PM
6 dari 35
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
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
package com.datetimepicker;
public class Soal {
private String soal;
private String pil_a;
private String pil_b;
private String pil_c;
private int jwban;
private int gambar;
public Soal() {
super();
}
public String getSoal() {
return soal;
}
public void setSoal(String soal) {
this.soal = soal;
}
public String getPil_a() {
return pil_a;
}
public void setPil_a(String pil_a) {
this.pil_a = pil_a;
}
public String getPil_b() {
return pil_b;
}
public void setPil_b(String pil_b) {
this.pil_b = pil_b;
}
public String getPil_c() {
return pil_c;
}
public void setPil_c(String pil_c) {
this.pil_c = pil_c;
}
8/8/2015 4:19 PM
7 dari 35
60
61
62
63
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
5.Buat kelas baru beri nama Database.java, lalu ketikkan kode program berikut ini:
8/8/2015 4:19 PM
8 dari 35
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
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
package com.datetimepicker;
import java.util.ArrayList;
import java.util.List;
import
import
import
import
import
android.content.ContentValues;
android.content.Context;
android.database.Cursor;
android.database.sqlite.SQLiteDatabase;
android.database.sqlite.SQLiteOpenHelper;
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE IF NOT EXISTS tbl_soal(id INTEGER PRIMARY K
db.execSQL(sql);
ContentValues values = new ContentValues();
values.put("soal", "Apa nama latin dari gambar di samping?");
values.put("pil_a", "Punica granatum L.");
values.put("pil_b","Durio zibethinus L.");
values.put("pil_c", "Lansium domesticum Correa.");
values.put("jwban","1");
values.put("img", R.drawable.durian);
db.insert("tbl_soal", "soal", values);
values.put("soal", "Apa nama latin dari gambar di samping?");
values.put("pil_a", "Punica granatum L.");
values.put("pil_b","Durio zibethinus L.");
values.put("pil_c", "Lansium domesticum Correa.");
values.put("jwban","2");
values.put("img", R.drawable.langsat);
db.insert("tbl_soal", "soal", values);
8/8/2015 4:19 PM
9 dari 35
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
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
8/8/2015 4:19 PM
10 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
8/8/2015 4:19 PM
11 dari 35
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
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
package com.datetimepicker;
import
import
import
import
java.util.ArrayList;
java.util.Arrays;
java.util.Calendar;
java.util.List;
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
android.app.Activity;
android.app.AlertDialog;
android.content.DialogInterface;
android.os.Bundle;
android.os.CountDownTimer;
android.util.Log;
android.view.LayoutInflater;
android.view.View;
android.view.View.OnClickListener;
android.widget.Button;
android.widget.EditText;
android.widget.ImageView;
android.widget.RadioButton;
android.widget.RadioGroup;
android.widget.TextView;
android.widget.Toast;
8/8/2015 4:19 PM
12 dari 35
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
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
8/8/2015 4:19 PM
13 dari 35
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
@Override
public void onClick(View v)
{
if(inputUser.getText().toString().equals("")){
Toast.makeText(getBaseContext(), "Isi dulu", Toast.LENGTH
}else{
txtnama.setText(inputUser.getText().toString());
mulaiKuis();
dialog.dismiss();
}
}
});
dialog.show();
}
protected void mulaiKuis() {
setUpWaktu();
setUpSoal();
}
private void setUpSoal() {
this.tunjukanPertanyaan(0, cekPertanyaan);
}
private void tunjukanPertanyaan(int urutan_soal_soal, boolean review) {
try {
rg.clearCheck();
Soal soal = new Soal();
soal = listSoal.get(urutan_soal_soal);
String pertanyaan = soal.getSoal();
if (jawabanYgBenar[urutan_soal_soal] == -1) {
jawabanYgBenar[urutan_soal_soal] = soal.getJwban();
}
8/8/2015 4:19 PM
14 dari 35
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
rdB.setText(jwb_b.toCharArray(), 0,
jwb_b.length());
String jwb_c = soal.getPil_c();
rdC.setText(jwb_c.toCharArray(), 0,
jwb_c.length());
Log.d("", jawabanYgDiPilih[urutan_soal_soal] + "");
if (jawabanYgDiPilih[urutan_soal_soal] == 0)
rg.check(R.id.radio0);
if (jawabanYgDiPilih[urutan_soal_soal] == 1)
rg.check(R.id.radio1);
if (jawabanYgDiPilih[urutan_soal_soal] == 2)
rg.check(R.id.radio2);
pasangLabelDanNomorUrut();
if (urutan_soal_soal == (listSoal.size() - 1))
btnNext.setEnabled(false);
if (urutan_soal_soal == 0)
btnPrev.setEnabled(false);
if (urutan_soal_soal > 0)
btnPrev.setEnabled(true);
if (urutan_soal_soal < (listSoal.size() - 1))
btnNext.setEnabled(true);
} catch (Exception e) {
Log.e(this.getClass().toString(), e.getMessage(), e.getCause());
}
}
private void setUpWaktu() {
mCountDownTimer = new CountDownTimer(detik, 1000)
{
@Override
public void onTick(long millisUntilFinished)
{
// TODO Auto-generated method stub
txtwaktu.setText("Sisa waktu: " +(int) (millisUntilFinished /
" menit");
}
8/8/2015 4:19 PM
15 dari 35
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
@Override
public void onFinish()
{
// TODO Auto-generated method stub
txtwaktu.setText("Sisa waktu: 0 menit");
Toast.makeText(Kuis.this, "Waktu Habis",
Toast.LENGTH_SHORT).show();
}
};
mCountDownTimer.start();
}
8/8/2015 4:19 PM
16 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
finish();
}
});
tampilKotakAlert.show();
}
};
private void aturJawaban_nya() {
if (rdA.isChecked())
jawabanYgDiPilih[urutanPertanyaan] = 0;
if (rdB.isChecked())
jawabanYgDiPilih[urutanPertanyaan] = 1;
if (rdC.isChecked())
jawabanYgDiPilih[urutanPertanyaan] = 2;
Log.d("", Arrays.toString(jawabanYgDiPilih));
Log.d("", Arrays.toString(jawabanYgBenar));
}
private OnClickListener klikBerikut = new OnClickListener() {
public void onClick(View v) {
aturJawaban_nya();
urutanPertanyaan++;
if (urutanPertanyaan >= listSoal.size())
urutanPertanyaan = listSoal.size() - 1;
tunjukanPertanyaan(urutanPertanyaan, cekPertanyaan);
}
};
private OnClickListener klikSebelum = new OnClickListener() {
public void onClick(View v) {
aturJawaban_nya();
urutanPertanyaan--;
if (urutanPertanyaan < 0)
urutanPertanyaan = 0;
tunjukanPertanyaan(urutanPertanyaan, cekPertanyaan);
}
};
private void pasangLabelDanNomorUrut() {
8/8/2015 4:19 PM
17 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
8/8/2015 4:19 PM
18 dari 35
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
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
8/8/2015 4:19 PM
19 dari 35
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
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
<TextView
android:id="@+id/textViewTanggal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="TextView" />
<TextView
android:id="@+id/textViewWaktu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/textViewTanggal"
android:text="TextView" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textViewWaktu"
android:src="@drawable/nangka" />
<TextView
android:id="@+id/textViewSoal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageView1"
android:layout_toRightOf="@+id/imageView1"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView1" >
<RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
8/8/2015 4:19 PM
20 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
android:text="RadioButton" />
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
</RadioGroup>
</RelativeLayout>
9. Running dan lihat hasilnya. Selamat mencoba semoga bermanfaat.
8. Teman-teman bisa download source code-nya di sini (h>p://www.etnik-tas.com/downloadtutorial/). Screenshoot hasilnya:
(h>ps://kholisilkom45.les.wordpress.com/2014/05/kuis1.png)
Tampilan awal aplikasi
h>p://www.etnik-tas.com (h>p://www.etnik-tas.com)
8/8/2015 4:19 PM
21 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
(h>ps://kholisilkom45.les.wordpress.com/2014/05/kuis2.png)
Tampilan soal ke-1
h>p://www.etnik-tas.com (h>p://www.etnik-tas.com)
(h>ps://kholisilkom45.les.wordpress.com/2014/05/kuis3.png)
Tampilan soal ke-2
h>p://www.etnik-tas.com (h>p://www.etnik-tas.com)
(h>ps://kholisilkom45.les.wordpress.com/2014/05/kuis4.png)
Tampilan soal terakhir
8/8/2015 4:19 PM
22 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
h>p://www.etnik-tas.com (h>p://www.etnik-tas.com)
(h>ps://kholisilkom45.les.wordpress.com/2014/05/kuis5.png)
Tampilan ketika tombol Selesai ditouch
h>p://www.etnik-tas.com (h>p://www.etnik-tas.com)
Gravity is
1.
personalizing the internet. Discover
how they do it. a year ago
gravity.com Gravity.com Gravity.com
(sponsored)
MAY 4, 2014 BY KHOLIS ILKOM 45 ANDROID ANDROID, DATABASE SQLITE, GAMBAR,
GAMBAR BUAH, KUIS, KUIS PILIHAN GANDA, RADIOBUTTON, RADIOGROUP, SOAL
8/8/2015 4:19 PM
23 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
Reply
kholisilkom45 says:
MAY 8, 2014 AT 3:20 PM
aplikasi yang di android diuninstall dulu sampai selesai, lalu programnya running lagi,
atau kamu cari aja tutorial cara upgrade database sqlite di android
Reply
Admin says:
OCTOBER 29, 2014 AT 4:21 AM
nanya lagi bang untuk Soal.java dan private void tunjukanPertanyaan .. itu juga kayak
gimana kalo radiobuton nya di ganti texteld??
Admin says:
OCTOBER 23, 2014 AT 6:12 AM
bang , kalo jawabannya pake radiobu>on diganti text eld gmna ya??
Reply
kholisilkom45 says:
OCTOBER 23, 2014 AT 1:26 PM
Kalo jawabannya diganti texteld berarti jawaban soalnya diganti text nggak usah
pilihan, terus di source code tambahin variabel List listjwb untuk menyimpan jawaban
yg menjawab soal, List listjwbBnr untuk menyimpan jawaban yang benar.
klikSelesai seperti berikut ini:
private OnClickListener klikSelesai = new OnClickListener() {
public void onClick(View v) {
aturJawaban_nya();
// hitung berapa yg benar
int jumlahJawabanYgBenar = 0;
for (int i = 0; i < listjwbBnr.size(); i++) {
if (listjwb.get(i).equalsIgnoreCase(listjwbBnr.get(i)) )
jumlahJawabanYgBenar++;
}
AlertDialog tampilKotakAlert;
tampilKotakAlert = new AlertDialog.Builder(TextQuiz.this).create();
tampilKotakAlert.setTitle(Score);
tampilKotakAlert.setIcon(R.drawable.ic_launcher);
//tampilKotakAlert.setMessage(Score +jumlahJawabanYgBenar);
tampilKotakAlert.setMessage(Your score is + jumlahJawabanYgBenar*10+.);
tampilKotakAlert.setBu>on(AlertDialog.BUTTON_NEUTRAL, Try Again,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mCountDownTimer.cancel();
cekPertanyaan = false;
urutanPertanyaan = 0;
listjwb.clear();
listjwbBnr.clear();
java.util.Arrays.ll(jawaban, -1);
TextQuiz.this.tunjukanPertanyaan(0,
cekPertanyaan);
}
});
8/8/2015 4:19 PM
24 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
tampilKotakAlert.setBu>on(AlertDialog.BUTTON_NEGATIVE, Exit,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mCountDownTimer.cancel();
cekPertanyaan = false;
nish();
}
});
tampilKotakAlert.show();
}
};
aturJawaban_nya seperti berikut ini:
private void aturJawaban_nya() {
listjwb.add(edtJwb.getText().toString());
Log.d(, Arrays.toString(jawaban));
}
2. syatria says:
MAY 8, 2014 AT 3:48 PM
Bisa, ternyata emang harus diuninstal dulu aplikasi nya
Terima kasih banyak gan!
Reply
syatria says:
MAY 15, 2014 AT 9:13 AM
kalo biar soalnya di random bagaimana ya gan?
Reply
kholisilkom45 says:
MAY 19, 2014 AT 2:46 PM
coba kamu tambahin Collections.shue(listSoal); setelah listSoal = db.getSoal(); pada
baris ke-67 untuk mengacak soal.
3. eli says:
MAY 19, 2014 AT 11:25 AM
kq kuis minta di buat class ,tp ga ada di tampilkan class kuis
tolong bantuanya
Reply
kholisilkom45 says:
MAY 19, 2014 AT 2:36 PM
Maaf, class kuis ganti dengan MainActivity (Kuis.this menjadi MainActivity.this)
Reply
4. Dimas Wibowo says:
MAY 31, 2014 AT 2:29 AM
terima kasih gan atas infonya yang sangat bermanfaat :)
Reply
kholisilkom45 says:
8/8/2015 4:19 PM
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
8/8/2015 4:19 PM
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
8/8/2015 4:19 PM
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
kholisilkom45 says:
JULY 3, 2014 AT 9:34 AM
itu di activity_main.xml ada yg error, kamu benerin dulu errornya di le drawable imagenya.
Reply
14. jamet says:
JULY 5, 2014 AT 4:55 AM
klo mw buat soal 50 kemudian yg ditampilkan 10,,,perintah sqly seperti apa..??
Reply
kholisilkom45 says:
JULY 5, 2014 AT 7:01 AM
menurut saya seperti ini:
select * from tbl_soal limit 10
Reply
15. ady nata says:
JULY 14, 2014 AT 4:23 AM
gan mau tanya ne
jika ingin menghilangkan check pada radiobu>on di saat mengklik bu>on lagi
bagaimana y???
saya sudah coba dengan menambahkan coding
rg,clearCheck(); pada bu>on lagi tetapi hanya 1 soal saja yang hilang check nya
mohon pencerahannya gan??
Reply
kholisilkom45 says:
JULY 18, 2014 AT 7:45 AM
saya belum mencobanya, nanti kalo bisa saya kabrin.
Reply
kholisilkom45 says:
JULY 19, 2014 AT 4:15 PM
tambahkan java.util.Arrays.ll(jawabanYgDiPilih, -1); pada klikSelesai sehingga menjadi
seperti ini
tampilKotakAlert.setBu>on(AlertDialog.BUTTON_NEUTRAL, Lagi,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
cekPertanyaan = false;
urutanPertanyaan = 0;
java.util.Arrays.ll(jawabanYgDiPilih, -1);
MainActivity.this.tunjukanPertanyaan(0,
cekPertanyaan);
27 dari 35
8/8/2015 4:19 PM
28 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
}
});
Reply
kholisilkom45 says:
JULY 20, 2014 AT 4:15 AM
untuk menampilkan no yg salah ketika di klik selesai, tambahkan variabel String noSalah
lalu ganti sourcode klikSelesai seperti ini:
private OnClickListener klikSelesai = new OnClickListener() {
public void onClick(View v) {
aturJawaban_nya();
// hitung berapa yg benar
int jumlahJawabanYgBenar = 0;
for (int i = 0; i < jawabanYgBenar.length; i++) {
if ((jawabanYgBenar[i] != -1) && (jawabanYgBenar[i] ==
jawabanYgDiPilih[i]))
jumlahJawabanYgBenar++;
if(jawabanYgBenar[i] != jawabanYgDiPilih[i])
noSalah = noSalah+" " + Integer.toString(i+1);
}
if(noSalah == ""){
noSalah = "Benar semua";
}
else{
noSalah = "No yang salah"+noSalah;
}
AlertDialog tampilKotakAlert;
tampilKotakAlert = new AlertDialog.Builder(MainActivity.this).create();
tampilKotakAlert.setTitle("Nilai");
tampilKotakAlert.setMessage("Benar " +jumlahJawabanYgBenar + " dari "
+ (listSoal.size() +" soal. "+noSalah));
tampilKotakAlert.setButton(AlertDialog.BUTTON_NEUTRAL, "Lagi",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
cekPertanyaan = false;
urutanPertanyaan = 0;
noSalah="";
java.util.Arrays.fill(jawabanYgDiPilih, -1);
MainActivity.this.tunjukanPertanyaan(0,
cekPertanyaan);
}
});
tampilKotakAlert.setButton(AlertDialog.BUTTON_NEGATIVE, "Keluar",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
cekPertanyaan = false;
finish();
}
});
tampilKotakAlert.show();
8/8/2015 4:19 PM
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
}
};
Reply
16. Billy Moezanx says:
JULY 14, 2014 AT 7:06 AM
mas kalau image yang ditaruh di drawble itu extensinya harus jgep ya?
Reply
Koi says:
JULY 18, 2014 AT 6:24 AM
sambil menunggu mas nya jwb, setau saya tidak, .png juga bisa..
Reply
kholisilkom45 says:
JULY 18, 2014 AT 7:47 AM
iya, .png juga bisa.
17. Koi says:
JULY 18, 2014 AT 6:04 AM
mas kalo untuk database my sql kodingnya bagaimana?
Reply
kholisilkom45 says:
JULY 18, 2014 AT 7:47 AM
belum saya buat, belum sempat, ditunggu aja.
Reply
18. junardi says:
JULY 20, 2014 AT 8:34 AM
salam kenal mas kholis..saya sudah mengikuti tutorial mas yang pembuatan kuis pilihan ganda
yang diatas, dan saya sudah berhasil membuatny..yang ingin saya tanyakan bagaimana misal
soal ada 3 materi, contoh 1. materi word, 2. materi excel, 3. materi p.point..nah bagaimana
caranya agar jika dklik sola word maka yang akan tampil dilayout soal word..begitu juga jika
dklik soal excel maka akan tampil soal excel dilayout..apakah harus dtambah 3 layout dan
dbuatkan class perlayout sperti tutorial mas diatas..mohon solusinya mas..
Reply
kholisilkom45 says:
JULY 21, 2014 AT 2:13 AM
kalo menurutku, di tbl soal tambahkan kolom kategori soal, dan slum mulai kuis,
tambahkan menu pilihan kuis (word, excel, dan p.point)
Reply
Egie says:
AUGUST 18, 2014 AT 8:47 AM
Bisa dicontohin gimana gan? Ane mau bikin 5 kategori soal (b.inggris, b.indo,
biologi,kimia,sika)
kholisilkom45 says:
AUGUST 19, 2014 AT 1:29 AM
maksudnya di soal-soalnya terdapat 5 kategori, atau di soal-soalnya b. ingriss sendiri,
b.indo sendiri, biologi sendiri, kimia sndiri, sika sndiri?
29 dari 35
8/8/2015 4:19 PM
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
Egie says:
AUGUST 19, 2014 AT 2:05 AM
itu b. ingriss sendiri, b.indo sendiri, biologi sendiri, kimia sendiri, sika sendiri gan, jadi
ada 5 menu pilihan kuis nantinya
19. Irfan Prasetya says:
JULY 21, 2014 AT 9:03 AM
Mas kan disuruh masukin nama yah, terus abis masukin nama kok gak bisa di klik OKnya ya?
itu kenapa ya?? Mohon bantuannya
Reply
kholisilkom45 says:
JULY 21, 2014 AT 10:35 AM
ada keterangan error nggak?
Reply
20. darib says:
AUGUST 21, 2014 AT 3:07 AM
nuwus infoe gansangat bermanfaat
Reply
kholisilkom45 says:
AUGUST 21, 2014 AT 9:20 AM
sami-sami gan
Reply
21. ki says:
OCTOBER 14, 2014 AT 2:34 AM
Mas itu kalo setiap di klik tombol next terus otomatis mengecek jawaban yang dipilih benar
ato salah gman mas.. ? saya nyoba code di selesai tak copykan ke tombol next bisa tapi
berulang-ulang sampai jumlah yang ada di perulangan ini mas.. for (int i = 0; i <
jawabanYgBenar.length; i++)..
Reply
kholisilkom45 says:
OCTOBER 23, 2014 AT 1:32 PM
Coba difungsi klikBerikut ganti seperti berikut ini:
private OnClickListener klikBerikut = new OnClickListener() {
public void onClick(View v) {
aturJawaban_nya();
if ((jawabanYgBenar[urutanPertanyaan] != 0) && (jawabanYgBenar[urutanPertanyaan] ==
jawabanYgDiPilih[urutanPertanyaan])){
//jawaban benar
}
else{
//jawaban salah
}
urutanPertanyaan++;
if (urutanPertanyaan >= listSoal.size())
urutanPertanyaan = listSoal.size() 1;
tunjukanPertanyaan(urutanPertanyaan, cekPertanyaan);
30 dari 35
8/8/2015 4:19 PM
31 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
}
};
Reply
22. Aziz Suhendra says:
OCTOBER 15, 2014 AT 3:52 AM
sebelumnya terimakasih gan :D
masalahnya, saya telah mengkombinaksikan aplikasi kuis ini kedalam aplikasi saya.. namun
ketika saya masuk ke aplikasi ini tedapat error di logcat, keteranganya seperti ini gan :
NullPointerException, saya rasa errornya terdapat pada MainActivity.java yang telah saya
ganti namanya menjadi Kuis.java
mohon pencerahanya gan?
Reply
23. setyawan says:
OCTOBER 15, 2014 AT 6:56 AM
mas kholis saya mau nanya, kalau membuat soal dan jawabannya diacak/shue, bagaimana
caranya ya?
Reply
24. echa says:
NOVEMBER 30, 2014 AT 11:19 PM
mas bagaimana kok pas radio bu>on gak bisa memilih salah satu?
Reply
kholisilkom45 says:
DECEMBER 1, 2014 AT 1:52 AM
Ada keterangan error?
Reply
25. echa says:
DECEMBER 3, 2014 AT 9:25 PM
gak ada cman bisa di klik semua radio bu>onnya
Reply
26. echa says:
DECEMBER 3, 2014 AT 9:28 PM
mas kalau fungsi untuk radio bu>onnya itu codingannya di .xml atau .java yg mana yah mas?
Reply
27. dodik says:
DECEMBER 6, 2014 AT 1:22 AM
gan yang activity_main.xml gk ada coding nya?
Reply
28. echa says:
DECEMBER 19, 2014 AT 1:34 AM
mas gmana itu gak bisa d pilih radionya
Reply
29. doninetwork says:
MARCH 6, 2015 AT 3:02 PM
gan, klo biar langsung masuk ke soal pertama yang diubah apanya ya??
8/8/2015 4:19 PM
32 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
Reply
kholisilkom45 says:
MARCH 7, 2015 AT 4:29 AM
yang nampilin pop up dihapus, dan source code-nya dirubah dikit, biar tahu caranya
pahami source code-nya.
Reply
doninetwork says:
MARCH 7, 2015 AT 8:17 AM
masih belajar gan, jadi blm begitu paham. :)
30. taka says:
APRIL 24, 2015 AT 1:18 PM
sabar bgt adminnya jwbin prtanyaan, jd pgn bljr jg nih.bisa mnt source codenya gan..
Reply
Kholis Ilkom 45 says:
APRIL 24, 2015 AT 2:05 PM
Ikutin aja source code yang tertulis, kalo ada kesulitan bisa tanya lewat email
majidkholis45@gmail.com atau _ atau WA 085 213 299 078
Reply
31. gemblonx says:
MAY 3, 2015 AT 5:23 PM
gan ane mau nanya buat nentuin bner gaknya jawaban dimna ya?? bngung
Reply
Kholis Ilkom 45 says:
MAY 4, 2015 AT 1:58 AM
jawaban benernya disimpan di database, lalu di sourcecode-nya jawaban bener dan jawaban
yang dipilih disimpan di variabel dgn tipe arraylist. Proses pencocokannya ketika selesai.
Reply
32. Suprayono says:
MAY 22, 2015 AT 9:13 AM
assalamualaikum mas kholis .. :D .
saya ingin bertanya dan saya minta bantuan banget ya mas ..
katakannlah saya sudah membuat database dan tabel untuk nilai ..
saya masih bingung dan muter2 belum ketemu gimana cara masukkan nilai yang sudah di
kerjakan ke dalam tabel nilai ,
dan saya sudah mencoba , tapi tetap eror dan gak brhasil ..
kira kira bagaimana mas source codenya yang ini mas .:
aturJawaban_nya();
// hitung berapa yg benar
int jumlahJawabanYgBenar = 0;
for (int i = 0; i < jawabanYgBenar.length; i++) {
if ((jawabanYgBenar[i] != -1) && (jawabanYgBenar[i] == jawabanYgDiPilih[i]))
jumlahJawabanYgBenar++;
}
AlertDialog tampilKotakAlert;
tampilKotakAlert = new AlertDialog.Builder(MainActivity.this).create();
tampilKotakAlert.setTitle(Nilai);
tampilKotakAlert.setMessage(Benar +jumlahJawabanYgBenar + dari
8/8/2015 4:19 PM
33 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
+ (listSoal.size() + soal));
tampilKotakAlert.setBu>on(AlertDialog.BUTTON_NEUTRAL, Lagi,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
cekPertanyaan = false;
urutanPertanyaan = 0;
MainActivity.this.tunjukanPertanyaan(0,
cekPertanyaan);
}
});
apa yang perlu di tambahkan disini .. terima kasih :D .
sekali lagi , mohon bantuannya mas kholis .. salam kenal
Reply
Kholis Ilkom 45 says:
MAY 25, 2015 AT 10:36 AM
Waalaikumsalam
variabel jumlahJawabanYgBenar disimpan ke database ketika ditekan bu>on
pilihannya(terserah di bu>on apa), misalnya di
tampilKotakAlert.setBu>on(AlertDialog.BUTTON_NEUTRAL, Lagi,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//kasih aksi utuk nyimpan data ke database
}
});
Bu>onnya sesuai yang diinginkan
Reply
Suprayono says:
JUNE 2, 2015 AT 4:28 AM
oh, gitu ,, oke mas, coba saya praktikan dulu ,,
terima kasih mas kholis :D
33. gemblonx says:
MAY 23, 2015 AT 3:48 PM
mas spaya kalau kita back atau keluar dari aplikasi tapi game itu masih nyimpan dimana kita
mengisi soal tsb.. model kata lain mah kaya pause bgtu.. gmna ya??
Reply
Kholis Ilkom 45 says:
MAY 25, 2015 AT 10:38 AM
coba perintah pause-nya taruh di onStop() dan onResume(), pelajari siklus activity di
android
Reply
34. Wahyu Nurhidayat says:
MAY 26, 2015 AT 9:02 AM
oia mas knpa ya setiap kita klik activty yang mmbaca dtabase agak lama apa memang bgtu
8/8/2015 4:19 PM
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
tpi klw kita manggi class yang tidak ada dtabsenya lancar.. mhon pencerahannya..
Reply
35. gemblonx says:
MAY 26, 2015 AT 1:03 PM
oia gan bisa tidak menggunakan \n dan \t di datbase sqlite??
dan knapa klw kita memanggil class yang membaca data base agak lama ya.. tapi klw kita
memanggil class yang tidak membaca dtbase lancar.. apa memang bgtu?? mhon bantuaannya.
Reply
Kholis Ilkom 45 says:
MAY 28, 2015 AT 2:24 PM
saya kurang tahu, mungkin karena proses load gambar.
Reply
36. panji says:
JULY 2, 2015 AT 5:04 PM
mas kalau mau menambahakan pembahasan caranya bagaimana ya?
misal dalam pembahasan tersebut hanya menampilkan jawaban yang dipilih dan kunci
jawabannya saja
terimakasih
Reply
Kholis Ilkom 45 says:
JULY 3, 2015 AT 6:24 AM
Mungkin maksudnya mirip yang ada di h>ps://kholisilkom45.wordpress.com/2014/08
/17/membuat-aplikasi-kuis-di-android-dengan-database-mysql/, bukan?
Reply
37. anggreans96 says:
JULY 26, 2015 AT 5:25 AM
mas kenapa waktunya nggak jalan countdownnya ya ?
Reply
Kholis Ilkom 45 says:
AUGUST 4, 2015 AT 3:34 AM
Dicek aja source code-nya, sudah sama persis?
Reply
38. Ganis N says:
AUGUST 4, 2015 AT 3:28 AM
Assalamualaikum mas.
saya mau tanya.. gimana membuat value radio bu>onnya itu diacak, tapi tetap dari database?
Reply
Kholis Ilkom 45 says:
AUGUST 4, 2015 AT 3:34 AM
Waalaikumsalam kelihatannya bisa, tapi saya belum mencobanya.
Reply
39. Ganis N says:
AUGUST 4, 2015 AT 5:02 AM
logikanya itu gimana mas?
34 dari 35
8/8/2015 4:19 PM
35 dari 35
https://kholisilkom45.wordpress.com/2014/05/04/membuat-aplikasi-ku...
Reply
40. wasikun says:
AUGUST 4, 2015 AT 12:43 PM
ass wr wb
saya ingin bertanya, quiz ini kan radiobu>onnya cuma sampai C, nah kalo saya ingin
menambahkan radio bu>onnya sampai E bagian coding mana saja yang harus di edit?
Reply
Kholis Ilkom 45 says:
AUGUST 6, 2015 AT 1:47 AM
Waalaikumsalam di tabel ditambahkan pilihan D & E, lalu di Soal.java ditambahkan
variabel pil D & E, dan di tampilan xml ditambahkan radio bu>on. Cara menampilkan
perhatikan di source code yg menampilkan soal, caranya mirip.
Reply
8/8/2015 4:19 PM