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

dokumen-dokumen yang mirip
Kelompok 12. Thread Java

Java Progamming Multithreading

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

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();

Thread. 16 th week Estu Sinduningrum ST,MT

PEMROGRAMAN JAVA : THREAD

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

TUGAS SISTEM TERDISTRIBUSI MULTYTHREAD EKO SURIPTO P

BAB 2 COLLECTION & THREAD

Exception Handling and Multithreading

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

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

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

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

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

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

PEMROGRAMAN SOCKET LANJUTAN

TUGAS Mata Kuliah : Sistem Terdistribusi

IF PEMROGRAMAN LANJUT EXCEPTION. Oleh : Andri Heryandi, M.T.

Mengunci sebuah object: Untuk memastikan bahwa hanya satu thread yang mendapatkan hak akses kedalam method tertentu

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

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

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

Network Programming 2010 Pemrograman Multi-Thread

Thread Proses merupakan sebuah program yang mengeksekusi THREAD tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk menjalankan satu t

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

public class Test { int i = 6; int j = 3; System.out.println(i/j); } Output :

SISTEM OPERASI THREAD DAN MULTITHREADING

Definisi (1) ready, dll.) Sering disebut dengan lightweight process. register set, dan stack. sama.

Konsep Lanjut Pemrograman Berorientasi Obyek

2 TIPE DATA DAN VARIABEL

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

Pemrograman Berorientasi. Class dan Obyek 2

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

PEMROGRAMAN JAVA : ARRAY

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

Proses dan Threads Dalam SISTEM OPERAS

KASUS INHERITANCE. (Window, Multithreading dan Applet)

ILUSTRASI KLASIK: BOUNDED BUFFER

PERTEMUAN 7 MULTITHREADED PROGRAMMING

BAB II VARIABEL DAN TIPE DATA

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Thread. pada satu waktu. menjalankan banyak tugas/thread. yang sama

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

Tutorial FDM Nurul Huda 2008, bundled by samsonasik. Modul Java 1

Bab 26. Readers/Writers

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

1.Tujuan. 2. Latar Belakang

PERTEMUAN 3 OBJEK DAN CLASS

TUGAS SISTEM OPERASI THREAD

BAHASA PEMROGRAMAN JAVA

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

IKG2I4 / Software Project I

PROSES. Sistem Terdistribusi

Contoh (3) Solusinya adalah dengan membuat web server menjadi multi-threading. Dengan ini maka sebuah web server akan membuat thread yang akan mendeng

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Secara tidak langsung, proses merupakan program yang sedang dieksekusi.

TUGAS SISTEM OPERASI

PRAKTIKUM 6 EXCEPTION

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

Percabangan & Perulangan

Pengenalan JavaScript

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

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

Exception Handling. Oleh : Agus Priyanto, M.Kom

Tujuan Intruksional. Mampu menjelaskan tentang event handling Mampu menjelaskan tentang method Mampu menggunakan event handling Mampu membuat method

Modul 4 Exception, I/O, dan Operasi File

Exception Handling. Prepared by Viska Mutiawani. 1

Array Sebagai Parameter Method

Definisi: unit dasar dari penggunaan CPU. Thread terdiri dari: thread ID, program counter, register, dan stack.

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Laporan Tugas Scheduling Pengantar Sistem Operasi

BAB VIII CLASS ABSTRACT & CLASS INTERFACE. //abstract class bisa, kelas biasa bisa System.out.println("Ini nama");

OPERATOR JAVA. g = x + y; System.out.println("Penjumlahan (x+y) : " + g); g = y - x; System.out.println("Pengurangan (y-x) : " + g);

IF PEMROGRAMAN LANJUT PERULANGAN. Oleh : Andri Heryandi, M.T.

CONTOH PENDSTRIBUSIAN HARDWARE

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

Bahasa Pemrograman 2.

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Abstract Class dan Interface. Viska Mutiawani, M.Sc

BAB III IMPLEMENTASI. Sistem pada server pengendali lampu dengan Raspberry Pi ini. kemudian server akan menunggu klien melakukan request permintaan

SUMBER BELAJAR PENUNJANG PLPG

PEMOGRAMAN JAVA. Yoannita, S.Kom. Class(ii) [Constructor] [keyword this] Modifier Passing parameter [by value] [by references]

PERCOBAAN 6 EXCEPTION

Pemrograman Berorientasi. Exception Handling

Monitor. Process Synchronization. SISTIM OPERASI (IKI-20230) ProcessSynchronization Ch. 6. Johny Moningka

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

PEMAHAMAN DASAR DASAR JAVA

Pemrograman Berorientasi Object

Bahasa Pemrograman :: Dasar Pemrograman Java

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

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Input Nilai tanpa Case String di Java

1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception? Menuliskan exception sebagai start method

Definisi Eksepsi (exception)

Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum

Transkripsi:

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

Thread adalah sebuah pengontrol aliran program dengan menggunakan kendali tunggal. Suatu proses dikontrol oleh paling sedikit satu thread. Namun, sebagian besar proses yang ada sekarang biasanya dijalankan oleh beberapa buah thread.

Multithreading adalah sebuah mekanisme di mana dalam suatu proses, ada beberapa thread yang mengerjakan tugasnya masing-masing pada waktu yang bersamaan. Contoh: Web Browser.

Thread merupakan kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan tugas tersendiri. Dengan adanya thread, dapat membuat program yang lebih efisien dalam hal kecepatan maupun penggunaan sumber daya, karena kita dapat membagi proses dalam aplikasi kita pada waktu yang sama. Thread umumnya digunakan untuk pemrograman multitasking, networking, yang melibatkan pengaksesan ke sumber daya secara konkuren

Responsif Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar.

Berbagi Sumber Daya Beberapa thread yang melakukan proses yang sama akan berbagi sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

Ekonomis Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan menggunakan thread, karena thread membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis

Synchronous: mengharuskan object menunggu masing-masing request memberikan respon sebelum melanjutkan ke proses dan kemudian request selanjutnya. Asynchronous: memungkinkan untuk mengirimkan request dan melakukan hal lainnya sementara response belum dikirim. Setelah response dikirim, sebuah event akan ter-invoke dan object dapat melakukan proses terhadap response itu.

Java tidak mempunyai konsep asynchronous. Sebagai contohnya kalau program java mencoba untuk melakukan koneksi ke server maka ia akan berada dalam keadaan block state sampai koneksinya jadi (bisa dibayangkan apa yang terjadi apabila servernya mati).

Karena java tidak memiliki konsep asynchronous maka solusinya adalah dengan membuat thread yang mencoba untuk melakukan koneksi ke server dan thread lain yang pertamanya tidur selama beberapa waktu (misalnya 60 detik) kemudian bangun. Ketika waktu tidurnya habis maka ia akan bangun dan memeriksa apakah thread yang melakukan koneksi ke server masih mencoba untuk melakukan koneksi ke server, kalau thread tersebut masih dalam keadaan mencoba untuk melakukan koneksi ke server maka ia akan melakukan interrupt dan mencegah thread tersebut untuk mencoba melakukan koneksi ke server.

Saat sebuah program Java dieksekusi, yaitu saat main() dijalankan, ada sebuah thread utama yang bekerja. Java adalah bahasa pemrograman yang mendukung adanya pembentukan thread tambahan selain thread utama tersebut. Thread dalam Java diatur oleh Java Virtual Machine (JVM) sehingga sulit untuk menentukan apakah thread Java berada di user-level atau kernel-level.

New Thread yang berada di status ini adalah objek dari kelas Thread yang baru dibuat, yaitu saat instansiasi objek dengan statement new. Saat thread berada di status new, belum ada sumber daya yang dialokasikan, sehingga thread belum bisa menjalankan perintah apapun.

Runnable Agar thread bisa menjalankan tugasnya, method start() dari kelas Thread harus dipanggil. Ada dua hal yang terjadi saat pemanggilan method start(), yaitu alokasi memori untuk thread yang dibuat dan pemanggilan method run(). Saat method run() dipanggil, status thread berubah menjadi runnable, artinya thread tersebut sudah memenuhi syarat untuk dijalankan oleh JVM. Thread yang sedang berjalan juga berada di status runnable.

Blocked Sebuah thread dikatakan berstatus blocked atau terhalang jika terjadi blocking statement, misalnya pemanggilan method sleep(). sleep() adalah suatu method yang menerima argumen bertipe integer dalam bentuk milisekon. Argumen tersebut menunjukkan seberapa lama thread akan "tidur". Thread akan menjadi runnable kembali jika interval method sleep()-nya sudah berakhir, atau pemanggilan method resume() jika untuk menghalangi thread tadi digunakan method suspend().

Dead Sebuah thread berada di status dead bila telah keluar dari method run(). Hal ini bisa terjadi karena thread tersebut memang telah menyelesaikan pekerjaannya di method run(), maupun karena adanya pembatalan thread. Status jelas dari sebuah thread tidak dapat diketahui, tetapi method isalive() mengembalikan nilai boolean untuk mengetahui apakah thread tersebut dead atau tidak.

Ada dua cara untuk membuat thread di program Java, yaitu: Extends kelas Thread Implements interface Runnable

public class CountDown extends Thread{ public void run(){ for (int i = 30; i > 0; i--) { try { System.out.println("Nilai i saat ini: " + i); Thread.sleep(1000); catch (InterruptedException ex) { Logger.getLogger(CountDown.class.getName()).log(Level.SEVERE, null, ex);

public class Tester { public static void main(string[] args) { Thread t = new CountDown(); t.start();

public class CountDown2 implements Runnable{ public void run() { for (int i = 30; i > 0; i--) { try { System.out.println("Nilai i saat ini: " + i); Thread.sleep(1000); catch (InterruptedException ex) { Logger.getLogger(CountDown.class.getName()).log(Level.SEVERE, null, ex);

public class Tester2 { public static void main(string[] args) { CountDown2 t = new CountDown2(); t.run();