Jumat, 23 Desember 2016

Membuat Kuis Random Android



package com.lp2maray.kamusfiqihagamaislam;

import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.text.Html;
import android.text.TextUtils;
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.widget.Toast;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;

public class SoalFiqih extends Activity {
int []arRandom;
RadioButton radA,radB,radC,radD;
String sNama="",sUsia="",sJK="",sCatatan="";
int ke=0,jumsoal=5,jumBenar=0;

int jd;
String[]arr_pertanyaan;
String[]arr_jawabA;
String[]arr_jawabB;
String[]arr_jawabC;
String[]arr_jawabD;
String[]arr_jawabBenar;
int[]arr_gambar;

ImageView imgGambar;
TextView txtTanya,txtTanyake;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.soalsoal);
       
        Intent i = this.getIntent();
        sNama=i.getStringExtra("nama");
        sUsia=i.getStringExtra("usia");
        sJK=i.getStringExtra("jk");
       
        callMarquee();
        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) {
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) {
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) {
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) {
cekJawaban("D");
ke=ke+1;
if(ke>=jumsoal){selesai();}
else{lihat();}
}
});
        lihat();
    }
   
    void bacaRandom(){
    arRandom = uniqueRandomArray(jumsoal);
        for(int i = 0; i<jd; i++){
            Log.v("R",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 cekJawaban(String pil){
if(arr_jawabBenar[ke].equals(pil)){
jumBenar=jumBenar+1;
sCatatan=sCatatan+"Soal ke-"+(ke+1)+" Benar\n";
Toast.makeText(getBaseContext()," Pilihan Anda "+pil+" : Benar!", Toast.LENGTH_LONG).show();
}
else{
sCatatan=sCatatan+"Soal ke-"+(ke+1)+" Salah\n";
Toast.makeText(getBaseContext()," Pilihan Anda "+pil+" : Salah!", Toast.LENGTH_LONG).show();
}
}  

void lihat(){  
    radA.setChecked(false);
    radB.setChecked(false);
    radC.setChecked(false);
    radD.setChecked(false);
    int ike=arRandom[ke];//random!
    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]);
     
    }
 
    void callMarquee(){
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);

TextView  txtMarquee=(TextView)findViewById(R.id.txtMarquee);
txtMarquee.setSelected(true);
String kata="Selamat Datang di Aplikasi Android  Selamat Mengerjakan /"+stgl+"/"+sjam+" #";
String kalimat=String.format("%1$s",TextUtils.htmlEncode(kata));
txtMarquee.setText(Html.fromHtml(kalimat+kalimat+kalimat));
}

    public void selesai(){
    new AlertDialog.Builder(this)
.setTitle("Hasil QUIZ")
.setMessage("Yth: "+sNama+"\nUsia:"+sUsia+" thn\nSkor anda : "+jumBenar+" Point")
.setNeutralButton("INFO SKOR", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
finish();
Intent put= new Intent(getBaseContext(), Hasil.class);
put.putExtra("nama", sNama);
put.putExtra("usia", sUsia);
put.putExtra("jk", sJK);
put.putExtra("nilai", String.valueOf(jumBenar));
put.putExtra("catatan", sCatatan);
startActivity(put);
}})
.show();
    }
    public void keluar(){
    new AlertDialog.Builder(this)
.setTitle("Menutup Aplikasi")
.setMessage("Terimakasih... Anda Telah Menggunakan Aplikasi Ini")
.setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
finish();
}})
.show();
    }
    public void keluarYN(){
    AlertDialog.Builder ad=new AlertDialog.Builder(SoalFiqih.this);
            ad.setTitle("Konfirmasi");
            ad.setMessage("Apakah benar ingin keluar?");
           
            ad.setPositiveButton("OK",new OnClickListener(){
        @Override
    public void onClick(DialogInterface dialog, int which) {
    keluar();
    }});
           
            ad.setNegativeButton("No",new OnClickListener(){
        public void onClick(DialogInterface arg0, int arg1) {
        }});
           
            ad.show();
    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
        keluarYN();
                return true;
        }
    return super.onKeyDown(keyCode, event);
}  
    void callData(){
   
jd=5;
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_pertanyaan[0]="Siapakah Nama Presiden RI 1 pertama kali ?";
arr_jawabA[0]="BJ Habibie";
arr_jawabB[0]="Ir Soekarno";
arr_jawabC[0]="Soeharto";
arr_jawabD[0]="Abdurrahman Wahid";
arr_jawabBenar[0]="B";
arr_gambar[0]=R.drawable.soekarno;

arr_pertanyaan[1]="Siapakah Nama Presiden RI 3 pertama kali ?";
arr_jawabA[1]="BJ Habibie";
arr_jawabB[1]="Ir Soekarno";
arr_jawabC[1]="Soeharto";
arr_jawabD[1]="Abdurrahman Wahid";
arr_jawabBenar[1]="A";
arr_gambar[1]=R.drawable.habibie;

arr_pertanyaan[2]="Siapakah Nama Presiden RI dengan sebutan bapak pembangunan ?";
arr_jawabA[2]="BJ Habibie";
arr_jawabB[2]="Ir Soekarno";
arr_jawabC[2]="Soeharto";
arr_jawabD[2]="Abdurrahman Wahid";
arr_jawabBenar[2]="C";
arr_gambar[2]=R.drawable.soeharto;

arr_pertanyaan[3]="Siapakah Nama Presiden RI kita yang sekarang ?";
arr_jawabA[3]="BJ Habibie";
arr_jawabB[3]="Ir Soekarno";
arr_jawabC[3]="Soeharto";
arr_jawabD[3]="Ir Jokowi";
arr_jawabBenar[3]="D";
arr_gambar[3]=R.drawable.soekarno;

arr_pertanyaan[4]="Siapakah Nama Presiden RI kita yang akan datang ?";
arr_jawabA[4]="BJ Habibie";
arr_jawabB[4]="Ir Soekarno";
arr_jawabC[4]="Prabowo Subianto";
arr_jawabD[4]="Ir Jokowi";
arr_jawabBenar[4]="C";
arr_gambar[4]=R.drawable.soeharto;
    }
}

+++++++++++++++
<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_marginBottom="50dip" 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#999999"
>

<TableLayout android:id="@+id/TableLayout01" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#fff">

<TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content" android:layout_height="wrap_content">
    
<TextView
android:id="@+id/txtMarquee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="14sp"
android:layout_x="3px"
android:layout_y="4px"
android:typeface="sans"
android:textColor="#0000ff"
android:background="#000000"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever">
</TextView>
</TableRow>  

<TableRow android:id="@+id/TableRow04" android:layout_width="wrap_content" android:layout_height="wrap_content">
    <ImageView 
   android:id="@+id/myGambar" android:layout_centerHorizontal="true"
   android:src="@drawable/user"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   />
</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:text="A. Pilihan A" 
android:id="@+id/radA" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:textColor="#000">
</RadioButton>
<RadioButton android:text="B. Pilihan B" 
android:id="@+id/radB" 
android:layout_width="wrap_content" 
android:textColor="#000" 
android:layout_height="wrap_content">
</RadioButton>
<RadioButton android:text="C. Pilihan C" 
android:id="@+id/radC" 
android:layout_width="wrap_content" 
android:textColor="#000" 
android:layout_height="wrap_content">
</RadioButton>
<RadioButton android:text="D. Pilihan D" 
android:id="@+id/radD" 
android:layout_width="wrap_content" 
android:textColor="#000" 
android:layout_height="wrap_content">
</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>

++++++++++++++++++

Tidak ada komentar:

Posting Komentar