Professional Documents
Culture Documents
1. Dari hasil tutorial pembuatan aplikasi slot game yang telah dipelajari sebelumnya pada
perkuliahan (https://youtu.be/KRFzB62J7lw), lakukan penggabungan antara project slot
game dengan project praktikum ini (tahapan Prosedur / Pelaksanaan Praktikum).Sehingga
akan didapatkan hasil aplikasi slot game namun dengan assets gambar yang didapat dari
hasil get data dari internet (link image assets :
"https://mocki.io/v1/821f1b13-fa9a-43aa-ba9a-9e328df8270e").
- Jika hasil sama
2
- Source code MainActivity.java
package com.example.slotgame;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.bumptech.glide.Glide;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
3
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnGet = findViewById(R.id.id_BtPlay);
imgSlot1 = findViewById(R.id.id_Slot1);
imgSlot2 = findViewById(R.id.id_Slot2);
imgSlot3 = findViewById(R.id.id_Slot3);
tvHasil = findViewById(R.id.tv_hasil);
btnGet.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(!roll){
roll =! roll;
execGetImage.execute(new Runnable() {
@Override
public void run() {
try {
final String txt =
loadStringFromNetwork("https://mocki.io/v1/821f1b13-fa9a-43aa-ba9a-9e328df8
270e");
try {
JSONArray jsonArray = new JSONArray(txt);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
arrayUrl.add(jsonObject.getString("url"));
4
}
} catch (JSONException e) {
e.printStackTrace();
}
while(roll){
cont1 = random.nextInt(3);
cont2 = random.nextInt(3);
cont3 = random.nextInt(3);
handler.post(new Runnable() {
@Override
public void run() {
Glide.with(MainActivity.this).load(arrayUrl.get(cont1)).into(imgSlot1);
Glide.with(MainActivity.this).load(arrayUrl.get(cont2)).into(imgSlot2);
Glide.with(MainActivity.this).load(arrayUrl.get(cont3)).into(imgSlot3);
}
});
try {
Thread.sleep(500);
}catch (InterruptedException e){
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
});
}else{
roll = false;
if ((cont1 == cont2) && (cont1 == cont3)){
tvHasil.setText("WIN");
}else{
tvHasil.setText("TRY AGAIN");
}
}
}
});
}
5
}
} catch (IOException e) {
throw new RuntimeException("Gagal mendapatkan text", e);
}
final String yourFileAsAString = out.toString();
return yourFileAsAString;
}
}
UI thread merupakan thread yang akan otomatis terikat ke dalam project karna UI thread ini
merupakan thread yang dapat kita lihat misalkan menampilkan text hello world sedangkan
Background Thread merupakan perintah yang berjalan di belakang tampilan dimana perintah
ini berjalan tanpa dapat kita lihat. Background Thread ini digunakan untuk melakukan proses
yang dimana proses ini membutuhkan waktu. Karena jika proses dilakukan di main thread
atau ui thread aplikasi tidak akan berjalan dengan benar.