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

dokumen-dokumen yang mirip
TUGAS Mata Kuliah : Sistem Terdistribusi

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

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

KASUS INHERITANCE. (Window, Multithreading dan Applet)

PERBEDAAN PROSES DAN THREAD PADA SISTEM INFORMASI

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

Dimana thread digunakan?

TUGAS SISTEM OPERASI

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

Kelompok 12. Thread Java

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi. System Calls dan Thread

TUGAS SISTEM OPERASI

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

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

Artikel Perbedaan Proses Dan Thread. Disusun Oleh : Nama : Rozy Putra Pratama NIM : Prodi : Sistem Informasi

PROSES DAN THREADS DALAM SISTEM OPERASI

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

THREAD Ulir utas thread

MAKALAH SISTEM OPERASI Perbedaan Proses dan Thread. Disusun Oleh : NOVITA ANGGRAINI PUTRI

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

Processes. Processes. SISTIM OPERASI (Operating System) IKI-20230

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

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

SISTEM OPERASI. Deskripsi Proses. Multiprogramming. Istilah dalam Proses. (multitasking) MANAJEMEN PROSES. Multiprogramming.

Prio Handoko, S.Kom., M.T.I.

SISTEM OPERASI THREAD DAN MULTITHREADING

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

THREADS PADA WINDOWS Julius Bata /

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

Recap. Proses. Proses. Multiprogramming. Multiprocessing 9/16/2016. Ricky Maulana Fajri

Secara tidak langsung, proses merupakan program yang sedang dieksekusi.

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

Applet (1) Oleh: Kholid Fathoni

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

Thread. 16 th week Estu Sinduningrum ST,MT

Exception Handling and Multithreading

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

Sequential Process. Keterangan SISTEM OPERASI KOMUNIKASI ANTAR PROSES

Proses dan Threads Dalam SISTEM OPERAS

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

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

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

TUGAS SISTEM OPERASI THREAD

TUGAS SISTEM TERDISTRIBUSI MULTYTHREAD EKO SURIPTO P

Java Progamming Multithreading

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

PROSES. Sistem Terdistribusi

Bab 3. Proses Proses POKOK BAHASAN: TUJUAN BELAJAR: 3.1 KONSEP PROSES

PEMBUATAN APLIKASI DOWNLOAD ACCELERATOR PADA MOBILE PHONE BERBASIS SYMBIAN OS DENGAN MEKANISME DOWNLOAD PARSIAL

Andi Gustanto M / Kelas 22 / TI

ARTIKEL PERBEDAAN PROSES DENGAN THREAD. Di susun Oleh: Nama : Sri Wahyuni Nim :

Thread juga sering disebut Lightweight process. Proses tradisional ( Heavyweight process ) mempunyai thread tunggal

Process Control Block (PCB) Masing-masing proses Direpresentasikan oleh Sistem Operasi dengan menggunakan Process Control Block (PCB),

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

PERANCANGAN SISTEM.

Perbedaan Proses dan Program

Konsep Lanjut Pemrograman Berorientasi Obyek

Perbedaan Anatara Thread dan Proses

CONTOH PENDSTRIBUSIAN HARDWARE

Prio Handoko, S.Kom., M.T.I.

BAB V IMPLEMENTASI DAN PENGUJIAN

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4

Sistem Operasi PENGATURAN PROSES

Bab 3.Proses dan Penjadualan

Sistem Operasi Pertemuan 4 Thread, SMP & Microkernel. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Bab selanjutnya membahas tentang penggunaan thread pada java, thread bisa memiliki status new, runnable, block, dead.

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

BAB 2 COLLECTION & THREAD

Manajemen Proses. Ptputraastawa.wordpress.com. Sistem Operasi Putu Putra Astawa

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

Bab 3 - Manajemen Proses 3.1

Sistem Operasi. Proses dan Thread

THREADS WINDOWS : PEMBUATAN, PENJADWALAN DAN SINKRONISASI Julius Bata Magister Ilmu Komputer Universitas Gadjah Mada

BAB IV HASIL DAN UJI COBA

PERTEMUAN 7 MULTITHREADED PROGRAMMING

MANAJEMEN PROSES. Pointer State proses Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.

BAB I PENDAHULUAN I.1 Latar Belakang

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

SILABUS SISTEM OPERASI ( TIF204) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

Proses dan Penjadwalan

Sistem Operasi Pertemuan 3 Deskripsi & Kendali Proses. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

SISTEM OPERASI (MANAJEMEN PROSES)

Struktur Sistem Operasi

4 Implementasi Proses

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

KONSEP PROSES (CONT.)

BAB 2 LANDASAN TEORI

Bab 3: Proses-Proses. Konsep Proses

KONSEP PROSES STATUS PROSES

Rahmady Liyantanto liyantanto.wordpress.com

SMK BATIK 2 SURAKARTA

29 Februari Introduction Of Java

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

PROSES & THREADS 2 AGUS PAMUJI. SISTEM OPERASI - Proses & Threads

Arsitektur Komputer Sistem Operasi

MODUL 1 INSTALASI PAKET JAVA DAN PROGRAM SEDERHANA

A. Deskripsi Singkat. B. Tujuan Instruksional Umum (TIU) C. Bahasan. SILABUS MATA KULIAH Kode MK: Semester: Bobot SKS: 3. Matakuliah : SISTEM OPERASI

Sistem Operasi Komputer

Transkripsi:

PRAKTIKUM 5 MULTITHREADING 1 A. TUJUAN PEMBELAJARAN 1. Mampu mengimplementasikan thread dalam sebuah aplikasi 2. Memahami kegunaan thread dalam aplikasi B. DASAR TEORI Saat ini komputer bukan hanya dituntut untuk dapat melakukan banyak pekerjaan dalam waktu yang cepat. Tapi juga dituntut untuk dapat melakukan beberapa pekerjaan sekaligus dalam satu waktu. Kita sering melakukan aktifitas browsing internet atau office work pada komputer. Disaat bersamaan kita juga mendengarkan music dengan media player di komputer, melakukan proses printing, melakukan download, dan pekerjaan lainnya. Pekerjaan tersebut dapat dilakukan secara bersamaan karena komputer memiliki kemampuan multitasking. Multitasking adalah proses mengeksekusi beberapa tugas secara simultan (bersamaan). Multitasking dapat dilakukan dengan dua cara: - Proses-based Multitasking (Multiprocessing) - Thread-based Multitasking (Multithreading) Multiprocessing adalah menjalankan beberapa proses dalam waktu bersamaan. Yang di maksud proses disini adalah heavyweight process. Setiap proses memiliki alamat sendiri di memori (Setiap proses mengalokasikan area memori terpisah). Biaya komunikasi antar proses tinggi. Perpindahan dari satu proses ke proses yang lain membutuhkan beberapa waktu untuk saving dan loading register, pemetaan memori, update list, dan proses lain. Multithreading menjalankan beberapa thread dalam waktu bersamaan. Beberapa thread berbagi alamat memori yang sama. Thread merupakan sub-proses yang ringan (lightweight). 113

Biaya komunikasi antar thread rendah. Perpindahan dari satu thread ke thread lain berlangsung cepat. Thread berjalan didalam sebuah proses. Dalam sebuah OS dapat berjalan beberapa proses sekaligus. Dalam Sebuah proses dapat berjalan beberapa thread. Gambar berikut adalah ilustrasinya. Thread memiliki 5 state dalam thread life cycle (new, runnable, running, non-runnable, terminated). Namun menurut dokumentasi Sun, hanya ada 4 state dalam thread life cycle dalam java (new, runnable, non-runnable, terminated). Tetapi untuk lebih memahami thread, dalam modul ini dijelaskan dengan 5 state. 1. New Kondisi ketika kita telah membuat instance dari class Thread namun belum memanggil method start() 2. Runnable Kondisi ketika method start() telah dipanggil, tetapi thread scheduler belum memilih thread tersebut untuk menjadi thread berjalan 3. Running Kondisi ketika thread telah di start dan thread scheduler telah memilih thread tersebut untuk berjalan 4. Non-Runnable (blocked) Kondisi ketika thread masih aktif, namun tidak memenuhi syarat untuk running. Contohnya ketika method sleep() sedang dipanggil 114

5. Terminated (dead) Kondisi ketika thread berhenti berjalan. Yaitu ketika keluar dari run() method Thread Life Cycle Java menyediakan class Thread dan interface Runnable untuk melakukan Multithreading. Untuk membuat sebuah thread kita dapat meng-extends class Thread atau dengan implements interface Runnable. Kita juga bisa membuat thread dengan langsung membuat instance dari class Thread. Dengan menggunakan thread, aplikasi tidak akan memblokir pengguna (doesn t block the user) karena thread bersifat independen dan kita dapat melakukan banyak proses dalam secara bersamaan. Kita dapat melakukan banyak sub-proses secara bersamaan sehingga mempercepat waktu proses. Threads bersifat independent, exception yang terjadi dalam sebuah thread tidak mempengaruhi thread lain. Thread dapat diimplementasikan untuk proses-proses seperti proses download/upload data ke server, proses read/write data dari file yang membutuhkan waktu lama, proses looping yang membutuhkan waktu lama, proses training/learning data, serta proses komputasi lain yang membutuhkan waktu cukup lama. 115

C. TUGAS PENDAHULUAN 1. Apa perbedaan multiprocessing dan multithreading? 2. Apa yang dimaksud dengan thread di dalam java? 3. Jelaskan keuntungan penggunaan thread! 4. Sebutkan contoh proses yang membutuhkan thread! D. PERCOBAAN Percobaan 1 : Implementasi thread dengan Thread Class sebagai parent Salah satu cara untuk membuat thread adalah dengan meng-extend class Thread. Program berikut adalah contoh cara membuat thread dengan meng-extend class thread. Percobaan 2 : Implementasi thread dengan Interface Runnable Selain dengan meng-extend class thread kita juga dapat membuat thread dengan cara mengimplementasikan interface runnable. Berikut adalah contoh program untuk membuat thread dengan interface runnable. 116

Percobaan 3 : Implementasi thread dengan membuat instance dari Class Thread Selain mengimplementasikan interface runnable atau meng-extend class Thread, kita juga bisa membuat thread dengan cara langsung membuat instance dari class thread. Percobaan 4 : Start Thread Twice Apakah sebuah thread dapat dijalankan lebih dari satu kali? Untuk menjawab pertanyaan tersebut silahkan jalankan program berikut ini. 117

Percobaan 5 : Menjalankan Thread dengan memanggil method run() Dapatkah kita menjalankan thread dengan hanya memanggil method run() saja? Percobaan 6 : Permasalahan ketika memanggil method run() Apa yang terjadi jika kita menjalankan thread dengan memanggil method run? Apa perbedaan memanggil method run() dan start()? Untuk menjawab pertanyaan tersebut silahkan jalankan dua program berikut. Buatlah analisa untuk perbedaan pemanggilan method run() dan start(). 118

E. LATIHAN Latihan 1 : Aplikasi Client-Server tanpa thread - Buatlah JFrame dengan nama ServerFrame.java seperti berikut. - Tambahkan variable dan method berikut ke dalam class ServerFrame.java - Tambahkan code berikut dalam button Start - Tambahkan code berikut dalam button Shutdown - Buatlah JFrame dengan nama ClientFrame.java seperti berikut. 119

- Tambahkan variable dan method berikut pada class ClientFrame.java - Tambahkan code berikut dalam button Connect Latihan 2 : Aplikasi Client-Server dengan thread - Buatlah JFrame dengan nama ServerFrameThread.java seperti berikut. 120

- Tambahkan variable dan method berikut ke dalam class ServerFrame.java - Tambahkan code berikut dalam button Start - Tambahkan code berikut dalam button Shutdown - Untuk aplikasi Client menggunakan ClientFrame.java. F. TUGAS 1. Lakukan percobaan berikut: 121

- Jalankan class ServerFrame.java (tanpa thread) kemudian aktifkan server. - Amatilah yang terjadi pada window aplikasi server. - Catatlah hasil pengamatan anda dalam laporan! 2. Lakukan percobaan berikut: - Jalankan class ServerFrame.java (tanpa thread) kemudian aktifkan server. - Setelah server aktif, lalu jalankan class ClientFrame.java - Amati window aplikasi server sebelum dan setelah aplikasi client berjalan. - Catatlah hasil pengamatan anda dalam laporan! 3. Lakukan percobaan berikut: - Jalankan class ServerFrameThread.java (dengan thread) kemudian aktifkan server. - Setelah server aktif, lalu jalankan class ClientFrame.java - Amati window aplikasi server sebelum dan setelah aplikasi client berjalan. - Catatlah hasil pengamatan anda dalam laporan! 4. Buatlah analisa dari hasil pengamatan dari percobaan yang telah anda lakukan! G. LAPORAN RESMI Buatlah laporan untuk hasil percobaan dan latihan. Tambahkan analisa dari hasil percobaan tersebut. 122