Tuesday, December 20, 2016

Android code soal pilihan ganda

Tags

LAYOUT

soalsoal.xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
tools:context=".MainActivity" >

    <
ScrollView
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
       
android:layout_marginBottom="50dip"
       
android:background="#999999" >

        <
TableLayout
           
android:id="@+id/TableLayout01"
           
android:layout_width="fill_parent"
           
android:layout_height="fill_parent"
           
android:background="#fff" >

            <
TableRow
               
android:id="@+id/TableRow04"
               
android:layout_width="wrap_content"
               
android:layout_height="wrap_content" >

                <
ImageView
                   
android:id="@+id/myGambar"
                    
android:layout_width="100dp"
                   
android:layout_height="100dp"
                   
android:layout_centerHorizontal="true"
                   
android:src="@drawable/user" />
            </
TableRow>

            <
TableRow
                
android:id="@+id/TableRow00"
               
android:layout_width="wrap_content"
               
android:layout_height="wrap_content" >

                <
TextView
                   
android:id="@+id/txtTanya"
                   
android:layout_width="wrap_content"
                   
android:layout_height="wrap_content"
                   
android:text="1.Apakah Anda mengalami gejala Pusing2" />
            </
TableRow>

            <
RadioGroup
               
android:id="@+id/RadioGroup01"
                
android:layout_width="wrap_content"
               
android:layout_height="wrap_content" >

                <
RadioButton
                   
android:id="@+id/radA"
                   
android:layout_width="wrap_content"
                   
android:layout_height="wrap_content"
                   
android:text="A. Pilihan A"
                   
android:textColor="#000" >
                </
RadioButton>

                <
RadioButton
                   
android:id="@+id/radB"
                   
android:layout_width="wrap_content"
                   
android:layout_height="wrap_content"
                   
android:text="B. Pilihan B"
                   
android:textColor="#000" >
                </
RadioButton>

                <
RadioButton
                    
android:id="@+id/radC"
                   
android:layout_width="wrap_content"
                   
android:layout_height="wrap_content"
                   
android:text="C. Pilihan C"
                   
android:textColor="#000" >
                </
RadioButton>

                <
RadioButton
                   
android:id="@+id/radD"
                   
android:layout_width="wrap_content"
                   
android:layout_height="wrap_content"
                   
android:text="D. Pilihan D"
                    
android:textColor="#000" >
                </
RadioButton>
            </
RadioGroup>

            <
TableRow
               
android:id="@+id/TableRow02"
               
android:layout_width="wrap_content"
               
android:layout_height="wrap_content" >

                <
TextView
                   
android:id="@+id/txtTanyaKe"
                   
android:layout_width="wrap_content"
                   
android:layout_height="wrap_content"
                   
android:text="Pertanyaan ke-1" />
            </
TableRow>
        </
TableLayout>
    </
ScrollView>

</
RelativeLayout>

------------------------------------------------------------
Soal_soal.java

package com.example.soalsoal;

import java.util.Timer;
import java.util.TimerTask;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Handler.Callback;
import java.util.Calendar;

import android.media.MediaPlayer;
import android.app.Activity;
import android.app.AlertDialog;

import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.TextView;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;

public class SoalActivity extends Activity {
   
int seconds = 0;
   
int ike=0;
    MediaPlayer
mp;
   
int[] arRandom;
   
long starttime = 0;
    Timer
timer = new Timer();
    myDbHelper
helper = null;
    RadioButton
radA, radB, radC, radD;
    String
sNama = "", sUsia = "", sJk = "", sCatatan = "";
   
int ke = 0, jumsoal = 10, jumBenar = 0;
   
int jd = 10;
    String[]
arr_idsoal;
    String[]
arr_pertanyaan;
    String[]
arr_jawabA;
    String[]
arr_jawabB;
    String[]
arr_jawabC;
    String[]
arr_jawabD;
    String[]
arr_jawabBenar;

   
int[] arr_gambar;
   
int[] arr_suara;

    ImageView
imgGambar;
    TextView
txtTanya, txtTanyake;

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(R.layout.soal_layout);
       
helper = new myDbHelper(this);
        Intent i =
this.getIntent();
       
sNama = i.getStringExtra("nama");
       
sJk = i.getStringExtra("jk");
       
sUsia = i.getStringExtra("usia");

        callData();
        bacaRandom();
       
txtTanya = (TextView) findViewById(R.id.txtTanya);
       
txtTanyake = (TextView) findViewById(R.id.txtTanyaKe);
       
imgGambar = (ImageView) findViewById(R.id.myGambar);

        
radA = (RadioButton) findViewById(R.id.radA);
       
radA.setOnClickListener(new View.OnClickListener() {
           
@Override
           
public void onClick(View v) {
               
seconds = 0;
                cekJawaban(
"A");
               
ke = ke + 1;
               
if (ke >= jumsoal) {
                    selesai();
                }
else {
                    lihat();
                }
            }
        });

       
radB = (RadioButton) findViewById(R.id.radB);
       
radB.setOnClickListener(new View.OnClickListener() {
           
@Override
           
public void onClick(View v) {
               
seconds = 0;
                cekJawaban(
"B");
               
ke = ke + 1;
               
if (ke >= jumsoal) {
                    selesai();
                }
else {
                    lihat();
                }
            }
        });
       
radC = (RadioButton) findViewById(R.id.radC);
       
radC.setOnClickListener(new View.OnClickListener() {
           
@Override
            
public void onClick(View v) {
               
seconds = 0;
                cekJawaban(
"C");
               
ke = ke + 1;
               
if (ke >= jumsoal) {
                    selesai();
                }
else {
                    lihat();
                }
            }
        });
       
radD = (RadioButton) findViewById(R.id.radD);
       
radD.setOnClickListener(new View.OnClickListener() {
           
@Override
           
public void onClick(View v) {
               
seconds = 0;
                cekJawaban(
"D");
               
ke = ke + 1;
               
if (ke >= jumsoal) {
                    selesai();
                }
else {
                    lihat();
                }
            }
        });
        lihat();
    }

   
void cekJawaban(String pil) {
       
if (arr_jawabBenar[ike].equals(pil)) {
           
jumBenar = jumBenar + 10;
           
sCatatan = sCatatan + "Soal-" + (ke + 1) + " Benar,";

        }
else {
           
sCatatan = sCatatan + "Soal-" + (ke + 1) + " Salah,";

        }
       
if (mp.isPlaying()) {
           
mp.pause();
           
mp.stop();
        }

       
try {
           
mp.pause();
           
mp.stop();
        }
catch (Exception ee) {
        }

    }

   
void bacaRandom() {
       
arRandom = uniqueRandomArray(jd);
       
for (int i = 0; i < jd; i++) {
            Log.v(
"Rnd", i + "." + arRandom[i]);
        }
    }

   
public static int[] uniqueRandomArray(int n) {
       
int[] A = new int[n];
       
for (int i = 0; i < A.length;) {
           
if (i == A.length) {
               
break;
            }
           
int b = (int) (Math.random() * n) + 1;
           
if (f(A, b) == false) {
                A[i++] = b;
            }
        }
       
return A;
    }

   
public static boolean f(int[] A, int n) {
       
for (int i = 0; i < A.length; i++) {
           
if (A[i] == n) {
               
return true;
            }
        }
       
return false;
    }

   
void lihat() {

       
radA.setChecked(false);
       
radB.setChecked(false);
        
radC.setChecked(false);
       
radD.setChecked(false);
       
ike = arRandom[ke] - 1;
        Log.v(
"Random", ke + "=" + ike + "");
       
txtTanya.setText((ke + 1) + "." + arr_pertanyaan[ike]);
       
radA.setText(arr_jawabA[ike]);
       
radB.setText(arr_jawabB[ike]);
       
radC.setText(arr_jawabC[ike]);
       
radD.setText(arr_jawabD[ike]);
       
txtTanyake.setText("Pertanyaan ke " + (ke + 1) + " dari " + jumsoal
               
+ " pertanyaan");
       
imgGambar.setImageResource(arr_gambar[ike]);

       
mp = MediaPlayer.create(this, arr_suara[ike]);
       
if (!mp.isPlaying()) {
           
mp.start();
        }

       
final Handler h = new Handler(new Callback() {
           
@Override
           
public boolean handleMessage(Message msg) {
               
long millis = System.currentTimeMillis() - starttime;
               
seconds = (int) (millis / 1000);
               
if (seconds >= 10) { // lama waktunya per soal 10 detik
                   
cekJawaban("?");
                   
ke = ke + 1;
                   
if (ke >= jumsoal) {

                       
seconds = 0;
                        selesai();
                       
try {
                           
timer.cancel();
                           
timer.purge();
                        }
catch (Exception ee) {
                        }
                    }
else {
                       
seconds = 0;
                        lihat();
                    }
                }
               
return false;
            }
        });

       
class firstTask extends TimerTask {
           
@Override
           
public void run() {
                h.sendEmptyMessage(
0);
            }
        }
        ;

       
starttime = System.currentTimeMillis();
       
timer.schedule(new firstTask(), 0, 1000);

    }

   
public void selesai() {
       
new AlertDialog.Builder(this).setTitle("NILAI ANDA")
                .setMessage(
jumBenar + " Point")
                .setNeutralButton(
"Coba Lagi", new OnClickListener() {
                   
public void onClick(DialogInterface dlg, int sumthin) {

                        Calendar cal = Calendar.getInstance();
                       
int jam = cal.get(Calendar.HOUR);
                       
int menit = cal.get(Calendar.MINUTE);
                       
int detik = cal.get(Calendar.SECOND);

                       
int tgl = cal.get(Calendar.DATE);
                       
int bln = cal.get(Calendar.MONTH);
                       
int thn = cal.get(Calendar.YEAR);

                        String stgl = String.valueOf(tgl) +
"-"
                               
+ String.valueOf(bln) + "-"
                               
+ String.valueOf(thn);
                        String sjam = String.valueOf(jam) +
":"
                                
+ String.valueOf(menit) + ":"
                               
+ String.valueOf(detik);

                       
helper.insertDb(sNama, sUsia, sJk, jumBenar + "", stgl
                                +
" " + sjam, sCatatan);

                        finish();

                       
try {
                           
timer.cancel();
                           
timer.purge();
                        }
catch (Exception ee) {
                        }

                        finish();
                    }
                }).show();
    }

   
public void keluarYN() {
        AlertDialog.Builder ad =
new AlertDialog.Builder(SoalActivity.this);
        ad.setMessage(
"Apakah anda yakin ingin kembali?");

        ad.setPositiveButton(
"YA", new OnClickListener() {
           
@Override
           
public void onClick(DialogInterface dialog, int which) {

               
if (mp.isPlaying()) {
                   
mp.pause();
                   
mp.stop();
                }

               
try {
                    
mp.pause();
                   
mp.stop();
                }
catch (Exception ee) {
                }
                finish();

            }
        });

        ad.setNegativeButton(
"TIDAK", new OnClickListener() {
           
public void onClick(DialogInterface arg0, int arg1) {
            }
        });

        ad.show();
    }

   
public boolean onKeyDown(int keyCode, KeyEvent event) {
       
if (keyCode == KeyEvent.KEYCODE_BACK) {
            keluarYN();
           
timer.cancel();
            ;

           
return true;
        }
       
return super.onKeyDown(keyCode, event);
    }

   
void callData() {
       
jd = 10;
       
arr_idsoal = new String[jd];
       
arr_pertanyaan = new String[jd];
       
arr_jawabA = new String[jd];
       
arr_jawabB = new String[jd];
       
arr_jawabC = new String[jd];
       
arr_jawabD = new String[jd];
       
arr_jawabBenar = new String[jd];
       
arr_gambar = new int[jd];
       
arr_suara = new int[jd];

       
// soal-soal
       
arr_idsoal[0] = "S01";
        arr_pertanyaan[
0] = " Rumah Adat Dari Provinsi Manakah ini?";
        arr_jawabA[
0] = "A. Aceh";
        arr_jawabB[
0] = "B. Jambi";
        arr_jawabC[
0] = "C. Bengkulu";
        arr_jawabD[
0] = "D. DKI Jakarta";
        arr_jawabBenar[
0] = "A";
        arr_gambar[
0] = R.drawable.r_krong_bade;
        arr_suara[
0] = R.raw.button_song;

        arr_idsoal[
1] = "S02";
        arr_pertanyaan[
1] = " Alat Musik Berasal Dari Provinsi Manakah ini?";
        arr_jawabA[
1] = "A. Nusa Tenggara Timur";
        arr_jawabB[
1] = "B. Nusa Tenggara Barat";
        arr_jawabC[
1] = "C. Banten";
        arr_jawabD[
1] = "D. Jawa Tengah";
        arr_jawabBenar[
1] = "C";
        arr_gambar[
1] = R.drawable.a_gendang_banten;
        arr_suara[
1] = R.raw.button_song;

        arr_idsoal[
2] = "S03";
        arr_pertanyaan[
2] = " Apakah Nama Lagu Daerah ini?";
        arr_jawabA[
2] = "A. Bebilin";
        arr_jawabB[
2] = "B. Potong Bebek Angsa";
        arr_jawabC[
2] = "C. Bindhe Biluhuta";
        arr_jawabD[
2] = "D. Cangget Agung";
        arr_jawabBenar[
2] = "D";
        arr_gambar[
2] = R.drawable.ic_lagu;
        arr_suara[
2] = R.raw.cangget_agung;

        arr_idsoal[
3] = "S04";
        arr_pertanyaan[
3] = " Pakaian Adat Berasal Dari Provinsi Manakah ini?";
        arr_jawabA[
3] = "A. DKI Jakarta";
        arr_jawabB[
3] = "B. Papua";
        arr_jawabC[
3] = "C. Kalimantan Tengah";
        arr_jawabD[
3] = "D. Jambi";
        arr_jawabBenar[
3] = "D";
        arr_gambar[
3] = R.drawable.p_melayu_jambi;
        arr_suara[
3] = R.raw.button_song;

        arr_idsoal[
4] = "S05";
        arr_pertanyaan[
4] = " Apakah Nama Pakaian Adat Daerah ini?";
        arr_jawabA[
4] = "A. Manteren Lamo";
        arr_jawabB[
4] = "B. Cele";
        arr_jawabC[
4] = "C. Sangkarut";
        arr_jawabD[
4] = "D. Ulee Balang";
        arr_jawabBenar[
4] = "D";
        arr_gambar[
4] = R.drawable.p_ulee_balang;
        arr_suara[
4] = R.raw.button_song;

        arr_idsoal[
5] = "S06";
        arr_pertanyaan[
5] = " Lagu Daerah Berasal Dari Provinsi Manakah ini?";
        arr_jawabA[
5] = "A. Jambi";
        arr_jawabB[
5] = "B. DKI Jakarta";
        arr_jawabC[
5] = "C. Riau";
        arr_jawabD[
5] = "D. Nusa Tenggara Barat";
        arr_jawabBenar[
5] = "C";
        arr_gambar[
5] = R.drawable.ic_lagu;
        arr_suara[
5] = R.raw.soleram;

        arr_idsoal[
6] = "S07";
        arr_pertanyaan[
6] = " Apakah Nama Rumah Adat ini?";
        arr_jawabA[
6] = "A. Rumah Lamin";
        arr_jawabB[
6] = "B. Rumah Betang";
        arr_jawabC[
6] = "C. Rumah Kebaya";
        arr_jawabD[
6] = "D. Rumah Kasepuhan";
        arr_jawabBenar[
6] = "C";
        arr_gambar[
6] = R.drawable.r_kebaya;
        arr_suara[
6] = R.raw.button_song;

       
arr_idsoal[7] = "S08";
       
arr_pertanyaan[7] = " Rumah Adat Dari Provinsi Manakah ini?";
       
arr_jawabA[7] = "A. Sumatera Barat";
       
arr_jawabB[7] = "B. Banten";
       
arr_jawabC[7] = "C. Maluku";
       
arr_jawabD[7] = "D. Papua Barat";
       
arr_jawabBenar[7] = "D";
       
arr_gambar[7] = R.drawable.r_kaki_seribu;
       
arr_suara[7] = R.raw.button_song;

       
arr_idsoal[8] = "S09";
       
arr_pertanyaan[8] = " Apakah Nama Alat Musik Daerah ini?";
       
arr_jawabA[8] = "A. Kolintang";
       
arr_jawabB[8] = "B. Tifa";
       
arr_jawabC[8] = "C. Angklung";
       
arr_jawabD[8] = "D. Tehyan";
       
arr_jawabBenar[8] = "A";
       
arr_gambar[8] = R.drawable.a_kolintang;
       
arr_suara[8] = R.raw.button_song;

       
arr_idsoal[9] = "S10";
       
arr_pertanyaan[9] = " Alat Musik Dari Provinsi Manakah ini?";
       
arr_jawabA[9] = "A. Kalimantan Utara";
       
arr_jawabB[9] = "B. Kalimantan Tengah";
       
arr_jawabC[9] = "C. Maluku";
       
arr_jawabD[9] = "D. Maluku Utara";
       
arr_jawabBenar[9] = "A";
        
arr_gambar[9] = R.drawable.a_babun;
       
arr_suara[9] = R.raw.button_song;
    }
}


---------------------------------------------------------------------------------------------------------------
Catatan

Di dalam soal tersebut sudah Include :
1. random soal
2. timer (persoal 10 sec) lalu benar atau salah langsung next ke soal berikutnya dan hasil akhir save ke SQL LITE, dan mendapatkan poin dari jumlah benar soal +10
3. Rasio button berbunyi ketika di klik

Untuk lokasi Suara / musik di letakkan pada folder (res/raw)
Untuk Lokasi Gambar di lekan pada folde (Drawable)

-------------------Thanks for all--------------------------
maaf baru di update ...

 

 


EmoticonEmoticon