BAB 2. Class Thread. Setelah mempelajari modul ini peserta diharapkan dapat: Mengenal Kelas Thread Menggunakan Kelas Thread dalam aplikasi

dokumen-dokumen yang mirip
Score: Persentase: % ~ u ~ Generated by Foxit PDF Creator Foxit Software For evaluation only.

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs.

1. Mampu mengimplementasikan thread dalam sebuah aplikasi 2. Memahami kegunaan thread dalam aplikasi

Exception Handling and Multithreading

Thread. 16 th week Estu Sinduningrum ST,MT

Kelompok 12. Thread Java

Java Progamming Multithreading

BAB 2 COLLECTION & THREAD

PERTEMUAN VII Multithreaded Programming. Praktikan mampu membuat program sederhana mengenai threading

GameCanvas digunakan untuk memperluas fungsi yang dimiliki oleh class Canvas

Pada pembuatan game di java, sering kali para programer. mendefinisikan banyak object seperti suara, gambar, dan grafik geometri yang

Class Thread juga menyediakan beberapa constants sebagai nilai prioritas. Tabel berikut ini adalah rangkuman dari class Thread.

BAB IX THREAD Thread ClassThread namavar = new ClassThread(); Namavar.start(); New ClassThread().start();

Konsep Lanjut Pemrograman Berorientasi Obyek

BONUS. Dasar Java Mobile. Mengenal Java Mobile Mengenal MIDlet Mobile Grafis Mobile Animasi Latihan Soal

TUGAS Mata Kuliah : Sistem Terdistribusi

PEMROGRAMAN JAVA : THREAD

Membuat dan Menggunakan Class

EXCEPTION HANDLING. 1. Mampu menangani eksepsi 2. Mengetahui dan memahami tentang multithreading 3. Dapat membuat program tentang exception handling

PENANGANAN EKSEPSI. class Exc0 { public static void main (String args[]) { int d = 0; int a = 42 / d; } }

PERTEMUAN 7 MULTITHREADED PROGRAMMING

PRAKTIKUM OBJECT ORIENTED PROGRAMING

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Network Programming 2010 Pemrograman Multi-Thread

MENGENAL JAVA SEBAGAI PEMROGRAMAN BERORIENTASI OBJEK DAN IMPLEMENTASI THREAD DI LINGKUNGAN UNIX/ LINUX. Hary Cahyono

Object Oriented Programming (OOP) --Inheritance- Saniati STMIK Teknokrat, Bandar Lampung

KONSEP PROSES STATUS PROSES

29 Februari Introduction Of Java

JOBSHEET POLIMORFISME

Sistem terdistribusi Processes, Threads and Virtualization pertemuan 3. Albertus Dwi Yoga Widiantoro, M.Kom.

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

KASUS INHERITANCE. (Window, Multithreading dan Applet)

Pengantar Pemrograman dengan Bahasa Java

1. Latar Belakang Didalam pembuatan game java sering kali kita mendefinisikan banyak object seperti gambar, dan grafik geometri yang begitu banyak,

Pengenalan JavaScript

PEMROGRAMAN BERORIENTASI OBJEK COLLECTION DAN MULTITHREADING. ADAM MUKHARIL BACHTIAR TEKNIK INFORMATIKA UNIKOM

Pemrograman Berorientasi Objek Collection dan Multithreading. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

PRAKTIKUM 6 EXCEPTION

Applet (1) Oleh: Kholid Fathoni

Diperkenalkan pertama oleh tim Sun System yang dipimpin Patrick Naughton dan James Gosling tahun 1991 dengan code

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Rahmady Liyantanto liyantanto.wordpress.com

GARIS-GARIS BESAR PROGRAM PERKULIAHAN (GBPP)

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

BAHASA PEMROGRAMAN JAVA

Pengantar Pemrograman dengan Bahasa Java

MODUL 2 Constructor. Tujuan: Mahasiswa dapat mengenal dan memahami konsep constructor dan overloading constructor

PENGEMBANGAN APLIKASI MOBILE

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

Pengenalan JAVA. Farhat, ST., MMSI., MSc

PROSES DAN THREAD. : Anggo Luthfi Yunanto. Nim : : sistem informasi

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

TUGAS AKHIR MINGGU APLIKASI KALKULATOR BERBASIS JAVA

Konsep I/O Programming

PERCOBAAN 6 EXCEPTION

Tabel 1. Instruksi untuk menampilkan teks No. Bahasa Pemrograman Instruksi 1. Pascal WRITE ( Bahasa pemrograman itu mudah );

Processes vs. Threads

PEMROGRAMAN JAVA. Yoannita, S.Kom. Class & Method sederhana Konsep Pemrograman Berorientasi Objek. Company LOGO

PROSES. Sistem Terdistribusi

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Object Oriented Programming (OOP) --Polimorphisme-- Saniati STMIK Teknokrat, Bandar Lampung

Dengan method diatas, berapa byte data yang terdapat pada stream dout? 3

I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java.

SISTEM OPERASI TERDISTRIBUSI

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

PERBEDAAN PROSES DAN THREAD PADA SISTEM INFORMASI

INTERAKSI ANTAR OBJECT

Polymorphism (Polimorfisme)

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Dalam pembahasan tentang chatting menggunakan J2ME ini

Percobaan 6 Exception

IF5093 Java ME. Achmad Imam Kistijantoro Semester II 2006/2007. IF-ITB/AI/Mar 07. IF5093 Java ME

Modul Pelatihan : Pembuatan Game Animasi Menggunakan Greenfoot

MODUL 3 Inheritance. Tujuan: Mahasiswa dapat mengenal dan memahami konsep inheritance dan cara menerapkan inheritance dengan constructor

SUMBER BELAJAR PENUNJANG PLPG

Pemrograman Berbasis Objek. Pengenalan Java. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya

Konsep Pemrograman Berbasis Obyek

DASAR PEMROGRAMAN. Konsep Pemrograman Berorientasi Objek. Yoannita

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

Konsep Proses. Proses adalah suatu program yang sedang diesekusi (running) Pada saat proses berlangsung :

Gambar 1: Hirarki class

Pemrograman dengan Java

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

MINGGU VII : RELASI ANTAR KELAS

Pemrograman Berbasis Objek. Pengenalan Java. Entin Martiana. Politeknik Elektronika Negeri Surabaya

JAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS

TUGAS SISTEM TERDISTRIBUSI MULTYTHREAD EKO SURIPTO P

OBJECT ORIENTED PROGRAMMING

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

Konsep Dasar Pemrograman Berorientasi Obyek I JAVA. Anugrah Kusuma Seno Adi Putra

Dasar Pemograman Java

BAB 8 PENGENALAN KONTROL INPUT/OUTPUT

CLASS, METHOD DAN MODIFIER

BAB I PERSYARATAN PRODUK

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

MODUL 1 INSTALASI PAKET JAVA DAN PROGRAM SEDERHANA

Operating System. Thread. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Transkripsi:

2.1 Tujuan: BAB 2 Class Thread Setelah mempelajari modul ini peserta diharapkan dapat: Mengenal Kelas Thread Menggunakan Kelas Thread dalam aplikasi 2.2 Mengenal Kelas Thread Salah satu fitur yang tertanam pada environment Java yaitu dukungan untuk menggunakan thread. Thread memungkinkan sebuah aplikasi Java untuk melakukan banyak aktifitas/operasi secara simultan (serentak). Dengan menggunakannya secara benar, thread memungkinkan User Interface sebuah aplikasi tetap responsif saat aplikasi tersebut melakukan operasi yang memakan waktu lama seperti komunikasi networking atau perhitunganperhitungan yang kompleks. Thread adalah unit fundamental dari eksekusi program. Setiap aplikasi minimal memiliki sebuah thread untuk menjalankan kode. Aplikasi yang memiliki dua thread atau lebih, biasa disebut dengan multithreaded application. Fungsi seperti ini sering kita butuhkan dalam membuat program aplikasi/game nantinya. Misalnya, sebuah thread yang bertugas menjalankan operasi penghitungan nilai/skor game, kemudian thread yang lainnnya menjalankan operasi pendeteksi tabrakan antara obyek-obyek pada game. Kedua thread tersebut berjalan bersamaan dalam melakukan tugasnya masing-masing. Setiap thread memiliki sebuah konteks yang berhubungan dengannya. Konteks tersebut memuat informasi tentang thread, seperti alamat dari instruksi yang sedang dieksekusi dan storage untuk variabel-variabel lokal. Konteks tersebut akan terupdate begitu thread dieksekusi. Konteks juga menyimpan state dari thread. Thread bisa dalam state sebagai berikut: Running, saat dimana thread sedang menjalankan kode. Ready, saat dimana thread siap untuk mengeksekusi kode. Pengembangan Mobile Game 1

Suspended, saat dimana thread sedang menunggu external event. Contohnya: menunggu data yang datang dari device lain. Begitu data datang dan event terjadi (dilakukan), maka thread kembali ke state ready. Terminated, saat dimana thread selesai mengeksekusi kode. Thread yang dalam keadaan (state) running, ready atau suspended, adalah thread yang hidup (live thread). Sedangkan thread yang berstatus terminated adalah thread mati (dead thread). Meskipun sebuah aplikasi boleh memiliki banyak thread, namun perlu memperhatikan kemampuan device yang ada (mobile device). Yang pada umumnya hanya memiliki kemampuan dan jumlah prosesor yang kecil (biasanya hanya mampu satu atau dua saja) untuk melakukan eksekusi kode. 2.2.1 Obyek Thread Thread hanya bisa digunakan dalam sebuah aplikasi tidak bisa berdiri menjadi sebuah obyek tersendiri. Java runtime menghubungkan setiap live thread sebagai instance dari kelas java.lang.thread. Kelas inilah yang digunakan untuk menjalankan thread baru serta mengambil dan mengeset prioritas dari thread itu sendiri. Pada J2ME Thread hanya mendukung methodmethod berikut: activecount() Mengembalikan nilai sekarang yang aktif pada virtual mesin. currentthread() Akan mengembalikan nilai object uang sekarang. getpriority() Akan mengembalikan Prioritas thread. isalive() Mengecek aktifnya thread. join() Menuggu hingga thread ini selesai. Pengembangan Mobile Game 2

run() jika thread ini dibangun harus menggunakan implementasi Runnable dan menyantumkan object run maka otomatis object Runable akan memanggil method run. setpriority() Merubah prioritas pada thread ini. sleep() Untuk melaksanakan berhenti sementara dalam betuk milidetik. start() Thread ini mengawali eksekusi. yield() Thread ini untuk menunda dan mengijinkan thread lain untuk mengeksekusi. 2.2.2 Menggunakan Thread Untuk diketahui, ada 2 cara dalam menggunakan class Thread ini: - Mendeklarasikan sebuah kelas yang menjadi turunan dari kelas Thread. Sub kelas yang dibuat harus mengoverride method run dari kelas Thread, baru kemudian kita bisa membuat sebuah instance dari kelas tersebut untuk dialokasikan dan dijalankan. Berikut contoh Thread yang akan melakukan penghitungan scoring. Pendeklarasian kelas: class ThreadSkoring extends Thread { ThreadSkoring() { public void run() { // operasi menghitung skor game... Membuat obyek ThreadSkoring dan menjalankannya: ThreadSkoring p = new ThreadSkoring(); p.start(); Pengembangan Mobile Game 3

- Mendeklarasikan sebuah kelas yang mengimplementasikan interface Runnable. Kelas baru yang dibuat harus mengoverride method run dari kelas Runnable, baru kemudian sebuah instance dari kelas tersebut bisa dialokasikan dan dijalankan melalui argumen saat membuat obyek baru dari kelas Thread. Pendeklarasian kelas: class RunSkoring extends Thread { RunSkoring() { public void run() { // operasi menghitung skor game... Membuat obyek RunSkoring dan menjalankannya: RunSkoring p = new RunSkoring(); new Thread(p).start(); 2.2.3 Menghentikan Thread Setelah melihat daftar method-method Thread yang didukung pada J2ME di atas, tampak tidak terdapat method stop() dan interrupt(). Keduanya didukung pada J2SE, namun karena konfigurasi J2ME yang minim, keduanya tidak didukung. Method stop() telah dihilangkan karena inherently unreliable dan tidak bisa diimplementasikan pada semua platform dengan aman dan konsisten. Sedangkan method interrupt() sudah diperkenalkan lagi pada CLDC versi 1.1 dan sepertinya akan segera diperkenalkan juga pada CDC revisi berikutnya. Oleh karena itu, agar thread yang kita buat dan jalankan bisa berhenti, maka kita perlu memberikan flag agar tiap-tiap live thread bisa menghentikan dirinya sendiri. Flag ini sangat penting didefinisikan untuk setiap thread pada sebuah aplikasi agar bisa menghentikan dirinya sendiri. Cara paling mudah ialah agar thread secara periodik memeriksa sebuah variabel flag untuk menentukan dirinya berjalan terus atau sudah harus berhenti. Misalnya dengan mendefinisikan sebuah kelas MyThread sebagai berikut: Pengembangan Mobile Game 4

public class MyThread implements Runnable { private boolean selesai = false; public void run(){ while(!selesai ){ // lakukan operasi yang diperlukan public void selesai(){ selesai = true; Kelas di atas akan terus melakukan operasi pada method run() sampai kita memanggil method selesai() yang sudah kita definisikan di dalam kelas itu. Pengembangan Mobile Game 5