Laporan Praktikum Distributed System (Multithread Programming)
Laporan Praktikum Distributed System (Multithread Programming)
MULTITHREAD PROGRAMMING
LAPORAN PRATIKUM
Nim : 1890343020
Kelas : 2.B
DISTRIBUTED SYSTEM
Tabel Penilaian :
A. Tujuan
Laptop
C. Dasar Teori
Proses thread yaitu sebuah intruksi atau alur dalam setiap urutan kerja yang
sesuai dengan proses yang telah ditentukan. Dalam pemrosesan terbagi menjadi 3
secara bersamaan dan memori yang digunakan oleh setiap statement ketika
sama seperti pada multiprocess yang membedakan hanya dalam memori yang
dilakukan dengan perintah extend dan melakukan override method run(). Untuk
tertidur atau dalam posisi idle. Stop digunakan untuk memerintahkan berhenti
kepada thread yang lain. Suspend yang digunakan untuk memberhentikan kerja
thread pada program untuk sementara dan resume yang berfungsi untuk
dapat digunakan untuk pengecekan atau pemantauan aktif dan tidak aktifnya
thread.
Referensi : http://informatika.uin-malang.ac.id/wp-content/uploads/2019/09/Distributed-
System-and-Security-practicum-2017-2018.pdf
D. Langkah Kerja
Langkah awal yang dilakukan yaitu menyediakan laptop dan install aplikasi
NetBeans IDE.
Selanjutnya buka buka applikasi tersebut dan akan keluar penampilan awal
Selanjutnya Klik pada bagian file dan pilih new project atau bisa klik Ctrl +
Shift + N
Dan pada bagian selanjutnya akan keluar tampilan seperi berikut untuk
2
Jadi, pada gambar diatas menjelaskan urutan yang harus kita klik terlebih
dahulu.
Pada bagian Project Name dapat kita isi nama project yang akan kita buat dan
Setelah itu, langsung ketikkan program yang pertama yaitu program untuk
berikut.
E. Analisa
Pada program pertama hal-hal yang dapat dianalisa sebagai berikut ini :
Dalam java netbeans terdapat 3 unsur utama yaitu package,class, dan method
utama yaitu main() dimana main() berfungsi untuk menjalankan semua fungsi
atau program yang di inputkan, nama package, clas,dan method pada program ini
adalah:
package counter;
merupakan class utama dalam program kali ini, dan pada program pertama
implements Runnable
tersebut
adalah sebuah kode akses yang bertipe data integer yang terdapat dalam
class pertama, yang berarti sebuah akses beserta method didalamnya hanya
dapat dilakukan oleh class pertama. Dan countValue yang digunakan untuk
menghitung data
public Counter(){ dan countValue = 0;
Yaitu pendeklarasian pada class yang pertama public counter yang berarti
dapat diakses oleh kedua class dan counter adalah sebuah method yang dapat
countValue = start;
Variabel countValue akan menampung nilai yang dimiliki oleh variable start
blok yang apabila dijalankan maka hanya ada satu thread dalam satu waktu
yang dijalannkan.
Yaitu sebuah variabel count yang bertipe data integer yang dideklasi dan
try{}catch{}
Thread.sleep(5);
milidetik.
tersebut
yaitu class Counter dan variabel countAmount yang bertipe data integer
Yaitu sintaks dengan kode akse akses public yang memiliki parameter nilai
dipanggil maka status thread akan berubah menjadi runnable yang berarti
System.out.println(""+myCounter.getCount());
class pertama tadi. Yang kemudian akan menampilkan output dari nilai count
getCount
Yaitu membuat objek baru c yang menampung nilai dari method Counter
Sintaks tersebut yaitu pembuatan object baru runner yang menampung nilai
t1.start();t2.start();t3.start();
t1.join();t2.join();t3.join();
Yaitu variabel t1,t2 dan t3 memanggil fungsi start yang digunakan untuk
menjalankan tugas dari thread , dan fungsi join yang digunakan untuk
mengawasi kapan program thread akan mati, dan ketika program telah mati
maka akan tampil tulisan pemberitahuan bahwa program telah mati atau
selesai.
beberapa fungsi atau sintaks yang sama dengan program pertama, berikut ini
analisis untuk source code yang memiliki fungsi yang berbeda pada program
waitnotify
notificationThread.start();
menjalankan program
synchronized (notificationThread){
notificationThread
notificationThread.wait();
System.in.read();
Yaitu untuk menulis dan membaca argument pada output yang dihasilkan
synchronized (this)
this.notifyAll();
memberitahu kepada semua thread yang sedang menunggu kunci pada objek
F. Kesimpulan
Synchronized adalah sebuah blok yang apabila dijalankan maka hanya ada
Counter adalah sebuah method yang dapat dijalankan secara otomatis pada
pembuatan sebuah objek
Wait merupakan sebuah fungsi yang apabila dijalankan maka kunci pada
semua thread yang sedang menunggu kunci pada objek sekarang atau dapat
dijalankan.