Lab Activity Modul2-Collection & Thread

Embed Size (px)

Citation preview

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    1/12

    1.Tujuan

    Setelah mempelajari modul ini peserta diharapkan dapat: Memahami tentang interface Collection pada Java Mengerti tentang pembuatan Vector, ArrayList dan LinkedList. Membuat dan mengelola Thread Memahami proses sinkronisasi data Menggunakan method Wait dan Notify

    2. Latar Belakang

    Didalam pembuatan game java sering kali kita mendefinisikan banyak object sepertigambar, dan grafik geometri yang begitu banyak, untuk itu dibutuhkan suatu manajemenyang menangani hal tersebut atau lebih tepatnya sebuah object untuk menangani object-object dari gambar atau grafik yang dibuat. Java telah menyediakan sebuah container ataucollection yang digunakan untuk menangani hal tersebut. Selain itu, seiring denganbanyaknya object gambar atau grafik geometri yang dibuat maka proses yang dibutuhkan

    juga memakan waktu yang cukup lama dimana dalam java penggambaran object itu

    dilakukan 1000 kali per detik yang sangat memberatkan kinerja dari procesor, oleh sebab itukita membutuhkan thread untuk menangani hal terebut agar komputer kita berjalan dengannormal sesuai dengan keinginan.

    Distributed by Meruvian Education

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    2/12

    3. Percobaan

    Percobaan 1: Membuat Class PercobaanVektor

    import java.awt.Graphics;

    import java.util.Vector;

    import javax.swing.JFrame;

    publicclass PercobaanVektor extends JFrame{

    publicstaticvoid main(String args[]){

    new PercobaanVektor();

    }

    Vector vk;

    PercobaanVektor(){

    vk = new Vector ();

    vk.add("test Vektor");

    vk.addElement("Coba Add Lagi");

    this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);this.setSize(500, 500);

    this.setVisible(true);

    setTitle("Test Vector");

    }

    publicvoid paint(Graphics g){

    g.drawString("Jumlah Elemen Vektor : "+String.valueOf(vk.size()),

    10, 50);

    g.drawString("Elemen Vektor Ke-0 : "+vk.elementAt(0), 10, 100);

    g.drawString("Elemen Vektor Ke-1 : "+vk.elementAt(1), 10, 150);

    g.drawString("Elemen Pertama : "+vk.firstElement(), 10, 200);

    g.drawString("Elemen Terakhir : "+vk.lastElement(), 10, 250);

    g.drawString("Method isEmpty : "+vk.isEmpty(), 10, 300);vk.clear();

    g.drawString("Method isEmpty : "+vk.isEmpty(), 10, 350);

    }

    Distributed by Meruvian Education

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    3/12

    Percobaan 2: Membuat Class ArrayListCoba

    import java.awt.Graphics;

    import java.util.ArrayList;

    import javax.swing.JFrame;

    publicclass ArrayListCoba extends JFrame{

    publicstaticvoid main(String args[]){

    new ArrayListCoba();

    }

    //membuat object arraylist

    ArrayList al=new ArrayList();

    ArrayListCoba(){

    al.add("Test Array List"); // Object String

    al.add(1); // Object Integer

    this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

    this.setSize(500, 500);

    this.setVisible(true);

    setTitle("Test ArrayList");

    }

    publicvoid paint(Graphics g){

    g.drawString("Banyaknya Elemen di ArrayList adalah :

    "+String.valueOf(al.size()), 10, 50);

    g.drawString("Isinya Adalah Sebagai berikut : ", 10, 100);

    g.drawString("Elemen Ke-0 : "+(String) al.get(0), 10, 150);

    g.drawString("Elemen Ke-1 : "+String.valueOf( al.get(1)), 10, 200);

    al.remove(0); // menghapus elemen ke-0

    al.add(1, "Tets");

    g.drawString("Banyaknya Elemen di ArrayList Setelah di Hapus adalah

    : "+String.valueOf(al.size()), 10, 250);

    g.drawString("Elemen Ke-1 : "+String.valueOf( al.get(1)), 10, 300);

    al.clear(); // menghapus semua elemen

    g.drawString("Method isEmpty() : "+String.valueOf( al.isEmpty()),10, 350);

    }

    }

    Distributed by Meruvian Education

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    4/12

    Percobaan 3: Pembuatan class PercobaanLinkedList

    import java.awt.Graphics;

    import java.util.LinkedList;

    import javax.swing.JFrame;

    publicclass PercobaanLinkedList extends JFrame {

    publicstaticvoid main(String args[]){

    new PercobaanLinkedList();}

    LinkedList ll=new LinkedList();

    PercobaanLinkedList(){

    ll.add("Test LinkedList");

    ll.add("Coba Lagi");

    ll.add(10243);

    this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

    this.setSize(500, 500);

    this.setVisible(true);

    setTitle("Test LinkedList");

    }

    publicvoid paint(Graphics g){

    g.drawString("Jumlah Elemen : "+String.valueOf(ll.size()), 10,

    50);

    g.drawString("Elemen Ke-1 : "+ll.get(0), 10, 100);

    g.drawString("Elemen Ke-2 : "+ll.get(1), 10, 150);

    g.drawString("Elemen Ke-3 : "+ll.get(2), 10, 200);

    g.drawString("Method getFirst() : "+ll.getFirst(), 10, 250);

    g.drawString("Method getLast() : "+ll.getLast(), 10, 300);

    ll.addLast("Terakhir");

    g.drawString("Method getLast() : "+ll.getLast(), 10, 350);

    ll.remove();g.drawString("Jumlah Elemen Sekarang :

    "+String.valueOf(ll.size()), 10, 400);

    }

    }

    Distributed by Meruvian Education

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    5/12

    Percobaan 4: Pembuatan class TestThread

    public class TestThread implements Runnable {

    private Thread th;

    private boolean running;

    private long endTime;

    public TestThread(){

    running=true;

    th = new Thread(this);

    endTime= System.currentTimeMillis()+10000;

    }

    public void run() {

    int i=0;

    while(running){

    try{

    Thread.sleep(1000);

    }catch(Exception e){}

    System.out.println("Run "+i);

    if(System.currentTimeMillis()>endTime)

    running=false;

    i++;

    }

    }

    public void start(){

    th.start();

    }

    public static void main(String [] agr){

    new TestThread().start();

    }

    }

    Distributed by Meruvian Education

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    6/12

    Percobaan 5: Pembuatan class TestSynchronizedThread

    import java.util.*;

    public class TestSynchronizedThread {

    private ArrayList messageList;

    private ThreadA ta;

    private ThreadB tb;

    public TestSynchronizedThread(){

    messageList = new ArrayList();

    ta = new ThreadA();

    tb = new ThreadB();

    }

    class ThreadA implements Runnable{

    Thread th= new Thread(this);

    public ThreadA(){

    th.start();

    }

    public void run() {

    int i=0;

    while(i

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    7/12

    }

    public void run() {

    int i=0;

    while(i

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    8/12

    Distributed by Meruvian Education

    Thread th= new Thread(this);

    public ThreadA(){

    th.start();

    }

    public void run() {

    int i=0;

    while(i

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    9/12

    }

    }

    public static void main(String arg[]){

    new TestWaitnNotifyThread();

    }

    }

    Distributed by Meruvian Education

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    10/12

    Kunci Jawaban :

    Percobaan 1

    Distributed by Meruvian Education

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    11/12

    Percobaan 2

    Distributed by Meruvian Education

  • 8/2/2019 Lab Activity Modul2-Collection & Thread

    12/12

    Percobaan 3

    Distributed by Meruvian Education