SlideShare a Scribd company logo
Concurrency 
Pemrgoraman 
Berorientasi Objek 
dodo@kuliahkita.com
Pendahuluan 
Concurrency pada konsep pemrograman berorientasi objek 
adalah bertujuan untuk menjalankan beberapa instruksi 
secara bersamaan (simultan). 
Dalam aplikasi atau program tertentu ada kalanya perlu 
menggunakan concurrency untuk melakukan pemrosesan 
sekaligus.
Implementasi Concurrency 
Karena bahasa yang diggunakan pada pemrograman 
berorientasi objek di materi ini adalah Java, maka 
concurrency akan berkaitan dengan process dan thread. 
Pada umumnya, diimplementasikan dengan Thread. 
Setiap thread diasosiasikan dengan sebuah instansiasi 
dari class Thread
Process dan Thread 
Thread adalah bagian dari sebuah process. 
Sebuah proses dapat memiliki banyak thread (multiple 
thread). 
Perbedaan proses dan thread adalah pada memory. Tiap 
proses memiliki memory space sendiri yang terpisah, 
sedangkan thread akan memakan memory space yang 
sama.
Interrupts 
Sebuah thread pasti akan mengeksekusi instruksi-instruksi 
tertentu. Dalam eksekusinya tidak dipastikan akan selalu 
berjalan dengan baik. 
Interrupt adalah method pada objek thread yang dipanggil 
ketika menangani kesalahan tertentu dengan mengirimkan 
interupsi. 
Interrupt perlu diimplementasi sebagai salah satu 
penanganan kesalahan (error handling)
Sinkronisasi (Syncrhonization) 
Thread-thread dapat berkomunikasi dengan objek lain yang 
sama ataupun berbeda. 
Sinkronisasi dibutuhkan untuk mencegah adanya 
interferensi thread dan memory consistency error. 
Error ini akan terjadi ketika lebih dari satu thread 
mengakses objek data yang sama dengan sinkronisasi 
yang tidak tepat.
Race Condition 
Race condition adalah sebuah kondisi yang merupakan bug 
atau error pada program karena eksekusi instruksi secara 
paralel oleh banyak thread sekaligus. 
Kondisi ini merupakan salah satu kesalahan yang sering 
terjadi pada aplikasi atau program yang konkuren, misal 
dengan menggunakan bahasa pemrograman Java.
Race Condition - 2 
Race condition terjadi apabila thread yang berbeda 
beroperasi pada objek yang sama tanpa sinkronisasi yang 
tepat (interleave) dan mengakibatkan gangguan. 
Contoh: 
Proses inkremental. Apabila 2 buah thread mengakses data yang sama secara 
bersamaan, misalkan “5”. Thread itu akan membaca data yang sama (5) dan 
keduanya menambahkannya menjadi “6”. Proses akan kehilangan 1 hitungan, 
karena seharusnya inkremen dilakukan 2 kali sehingga seharusnya nilai 
akhirnya “7”.
Deadlock dan Livelock 
Deadlock adalah proses dimana 2 atau lebih thread saling 
menunggu untuk melepas resource yang digunakan dan 
mengakibatkan stuck dalam waktu yang tak terbatas. 
Livelock adalah keadaan dimana dua atau lebih thread 
saling berbagi respon secara bergantian dan banyak 
sehingga program atau aplikasi menjadi stuck. (terlalu 
sibuk menangani respons)
Starvation 
Stravation adalah kondisi dimana salah satu thread tidak 
dapat mengakses ke shared resource dan tidak dapat 
melanjutkan prosesnya. 
Hal ini terjadi karena adanya pemakaian resource yang 
terlalu lama oleh thread lain (greedy thread), sehingga 
resource tidak dapat digunakan (unavailable).
Contoh Implementasi 
class PrintDemo { 
public void printCount(){ 
try { 
for(int i = 5; i > 0; i--) { 
System.out.println("Counter --- " + i ); 
} 
} catch (Exception e) { 
System.out.println("Thread interrupted."); 
} 
} 
} 
...
Contoh Implementasi 
class ThreadDemo extends Thread { 
private Thread t; 
private String threadName; 
PrintDemo PD; 
ThreadDemo( String name, PrintDemo pd){ 
threadName = name; 
PD = pd; 
} 
public void run() { 
synchronized(PD) { 
PD.printCount(); 
} 
System.out.println("Thread " + threadName + " exiting."); 
} 
...
Contoh Implementasi 
public void start () 
{ 
System.out.println("Starting " + threadName ); 
if (t == null) 
{ 
t = new Thread (this, threadName); 
t.start (); 
} 
} 
} 
...
Contoh Implementasi 
public class TestThread { 
public static void main(String args[]) { 
PrintDemo PD = new PrintDemo(); 
ThreadDemo T1 = new ThreadDemo( "Thread - 1 ", PD ); 
ThreadDemo T2 = new ThreadDemo( "Thread - 2 ", PD ); 
T1.start(); 
T2.start(); 
// wait for threads to end 
try { 
T1.join(); 
T2.join(); 
} catch( Exception e) { 
System.out.println("Interrupted"); 
} 
} 
}

More Related Content

What's hot

Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linier
Izhan Nassuha
 
5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar KriptografiRoziq Bahtiar
 
Jenis dan proses interupsi
Jenis dan proses interupsiJenis dan proses interupsi
Jenis dan proses interupsi
laurensius08
 
DISTRIBUSI PROBABILITAS
DISTRIBUSI PROBABILITASDISTRIBUSI PROBABILITAS
DISTRIBUSI PROBABILITAS
Husna Sholihah
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristik
Baguss Chandrass
 
4 diagram relasi antar entitas (ERD)
4 diagram relasi antar entitas (ERD)4 diagram relasi antar entitas (ERD)
4 diagram relasi antar entitas (ERD)
Simon Patabang
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
Asep Jaenudin
 
Sistem Waktu Nyata (Real Time System)
Sistem Waktu Nyata (Real Time System)Sistem Waktu Nyata (Real Time System)
Sistem Waktu Nyata (Real Time System)
rein sahren
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
Siti Khotijah
 
Jaringan Syaraf Tiruan (JST)
Jaringan Syaraf Tiruan (JST)Jaringan Syaraf Tiruan (JST)
Jaringan Syaraf Tiruan (JST)
Farichah Riha
 
Thread di Sistem Operasi
Thread di Sistem OperasiThread di Sistem Operasi
Thread di Sistem Operasi
eddie Ismantoe
 
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRITBAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
Cabii
 
Sistem terdistribusi
Sistem terdistribusiSistem terdistribusi
Sistem terdistribusi
Surya Prasetya Shaleem
 
8 logika predikat
8  logika predikat8  logika predikat
8 logika predikat
Yulinda Nurhafina
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
Nila Aulia
 
Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)
Meycelino A. T
 
Materi 6. perulangan
Materi 6. perulanganMateri 6. perulangan
Materi 6. perulangan
Melva Amma Kalian
 
Deadlock
DeadlockDeadlock

What's hot (20)

Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linier
 
5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi
 
Jenis dan proses interupsi
Jenis dan proses interupsiJenis dan proses interupsi
Jenis dan proses interupsi
 
DISTRIBUSI PROBABILITAS
DISTRIBUSI PROBABILITASDISTRIBUSI PROBABILITAS
DISTRIBUSI PROBABILITAS
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristik
 
4 diagram relasi antar entitas (ERD)
4 diagram relasi antar entitas (ERD)4 diagram relasi antar entitas (ERD)
4 diagram relasi antar entitas (ERD)
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
 
Sistem Waktu Nyata (Real Time System)
Sistem Waktu Nyata (Real Time System)Sistem Waktu Nyata (Real Time System)
Sistem Waktu Nyata (Real Time System)
 
Graf pohon (bagian ke 6)
Graf pohon (bagian ke 6)Graf pohon (bagian ke 6)
Graf pohon (bagian ke 6)
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
Jaringan Syaraf Tiruan (JST)
Jaringan Syaraf Tiruan (JST)Jaringan Syaraf Tiruan (JST)
Jaringan Syaraf Tiruan (JST)
 
Thread di Sistem Operasi
Thread di Sistem OperasiThread di Sistem Operasi
Thread di Sistem Operasi
 
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRITBAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
 
Sistem terdistribusi
Sistem terdistribusiSistem terdistribusi
Sistem terdistribusi
 
8 logika predikat
8  logika predikat8  logika predikat
8 logika predikat
 
circular linked list
circular linked listcircular linked list
circular linked list
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
 
Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)
 
Materi 6. perulangan
Materi 6. perulanganMateri 6. perulangan
Materi 6. perulangan
 
Deadlock
DeadlockDeadlock
Deadlock
 

Viewers also liked

Matematika Diskrit - 10 pohon - 03
Matematika Diskrit - 10 pohon - 03Matematika Diskrit - 10 pohon - 03
Matematika Diskrit - 10 pohon - 03
KuliahKita
 
Catálogos de productos 02: balanzas, módulos y plataformas de pesaje
Catálogos de productos 02: balanzas, módulos y plataformas de pesajeCatálogos de productos 02: balanzas, módulos y plataformas de pesaje
Catálogos de productos 02: balanzas, módulos y plataformas de pesaje
LAUMAS
 
Kriptografi - Advanced Encryption Standard
Kriptografi - Advanced Encryption StandardKriptografi - Advanced Encryption Standard
Kriptografi - Advanced Encryption Standard
KuliahKita
 
Pengenalan Teknologi Informasi 7 - Input Output
Pengenalan Teknologi Informasi   7 - Input OutputPengenalan Teknologi Informasi   7 - Input Output
Pengenalan Teknologi Informasi 7 - Input Output
KuliahKita
 
Umesh Bali-Updated Profile new (1)
Umesh Bali-Updated Profile new (1)Umesh Bali-Updated Profile new (1)
Umesh Bali-Updated Profile new (1)
umesh bali
 
Algoritma dan Struktur Data - Pendahuluan
Algoritma dan Struktur Data - PendahuluanAlgoritma dan Struktur Data - Pendahuluan
Algoritma dan Struktur Data - Pendahuluan
KuliahKita
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 03
Matematika Diskrit - 05 rekursi dan relasi rekurens  - 03Matematika Diskrit - 05 rekursi dan relasi rekurens  - 03
Matematika Diskrit - 05 rekursi dan relasi rekurens - 03
KuliahKita
 
Tugas PPT ICT kelompok 3 IV F
Tugas PPT ICT kelompok 3 IV FTugas PPT ICT kelompok 3 IV F
Tugas PPT ICT kelompok 3 IV F
Selvameidha
 
Ppt ict newwww
Ppt ict newwwwPpt ict newwww
Ppt ict newwww
WAFFAK
 
Pemrograman SQL - Join
Pemrograman SQL - JoinPemrograman SQL - Join
Pemrograman SQL - Join
KuliahKita
 
Algoritma dan Struktur Data - Konstruktor dan Destruktor
Algoritma dan Struktur Data - Konstruktor dan DestruktorAlgoritma dan Struktur Data - Konstruktor dan Destruktor
Algoritma dan Struktur Data - Konstruktor dan Destruktor
KuliahKita
 
Gloria Hernández - CV
Gloria Hernández - CVGloria Hernández - CV
Gloria Hernández - CV
elen1202
 
PPT ICT KELOMPOK 3 KELAS 4F
PPT ICT KELOMPOK 3 KELAS 4FPPT ICT KELOMPOK 3 KELAS 4F
PPT ICT KELOMPOK 3 KELAS 4F
Selvameidha
 
Pengenalan Teknologi Informasi - 2 - Pemanfaatan Teknologi Informasi
Pengenalan Teknologi Informasi - 2 - Pemanfaatan Teknologi InformasiPengenalan Teknologi Informasi - 2 - Pemanfaatan Teknologi Informasi
Pengenalan Teknologi Informasi - 2 - Pemanfaatan Teknologi Informasi
KuliahKita
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - Stack
KuliahKita
 
Pasar Saham - 19 Indikator
Pasar Saham - 19 IndikatorPasar Saham - 19 Indikator
Pasar Saham - 19 Indikator
KuliahKita
 
Paul McCartney and Nancy Shevell wedding: Official portrait by daughter Mary
Paul McCartney and Nancy Shevell wedding: Official portrait by daughter MaryPaul McCartney and Nancy Shevell wedding: Official portrait by daughter Mary
Paul McCartney and Nancy Shevell wedding: Official portrait by daughter Mary
observantnecess59
 

Viewers also liked (20)

Matematika Diskrit - 10 pohon - 03
Matematika Diskrit - 10 pohon - 03Matematika Diskrit - 10 pohon - 03
Matematika Diskrit - 10 pohon - 03
 
Catálogos de productos 02: balanzas, módulos y plataformas de pesaje
Catálogos de productos 02: balanzas, módulos y plataformas de pesajeCatálogos de productos 02: balanzas, módulos y plataformas de pesaje
Catálogos de productos 02: balanzas, módulos y plataformas de pesaje
 
Kriptografi - Advanced Encryption Standard
Kriptografi - Advanced Encryption StandardKriptografi - Advanced Encryption Standard
Kriptografi - Advanced Encryption Standard
 
Pengenalan Teknologi Informasi 7 - Input Output
Pengenalan Teknologi Informasi   7 - Input OutputPengenalan Teknologi Informasi   7 - Input Output
Pengenalan Teknologi Informasi 7 - Input Output
 
Umesh Bali-Updated Profile new (1)
Umesh Bali-Updated Profile new (1)Umesh Bali-Updated Profile new (1)
Umesh Bali-Updated Profile new (1)
 
Algoritma dan Struktur Data - Pendahuluan
Algoritma dan Struktur Data - PendahuluanAlgoritma dan Struktur Data - Pendahuluan
Algoritma dan Struktur Data - Pendahuluan
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 03
Matematika Diskrit - 05 rekursi dan relasi rekurens  - 03Matematika Diskrit - 05 rekursi dan relasi rekurens  - 03
Matematika Diskrit - 05 rekursi dan relasi rekurens - 03
 
Tugas PPT ICT kelompok 3 IV F
Tugas PPT ICT kelompok 3 IV FTugas PPT ICT kelompok 3 IV F
Tugas PPT ICT kelompok 3 IV F
 
Ppt ict newwww
Ppt ict newwwwPpt ict newwww
Ppt ict newwww
 
Pemrograman SQL - Join
Pemrograman SQL - JoinPemrograman SQL - Join
Pemrograman SQL - Join
 
Algoritma dan Struktur Data - Konstruktor dan Destruktor
Algoritma dan Struktur Data - Konstruktor dan DestruktorAlgoritma dan Struktur Data - Konstruktor dan Destruktor
Algoritma dan Struktur Data - Konstruktor dan Destruktor
 
Test
TestTest
Test
 
Gloria Hernández - CV
Gloria Hernández - CVGloria Hernández - CV
Gloria Hernández - CV
 
CAP DE SETMANA SEMPRE
CAP DE SETMANA SEMPRECAP DE SETMANA SEMPRE
CAP DE SETMANA SEMPRE
 
PPT ICT KELOMPOK 3 KELAS 4F
PPT ICT KELOMPOK 3 KELAS 4FPPT ICT KELOMPOK 3 KELAS 4F
PPT ICT KELOMPOK 3 KELAS 4F
 
Dolina Będkowska
Dolina BędkowskaDolina Będkowska
Dolina Będkowska
 
Pengenalan Teknologi Informasi - 2 - Pemanfaatan Teknologi Informasi
Pengenalan Teknologi Informasi - 2 - Pemanfaatan Teknologi InformasiPengenalan Teknologi Informasi - 2 - Pemanfaatan Teknologi Informasi
Pengenalan Teknologi Informasi - 2 - Pemanfaatan Teknologi Informasi
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - Stack
 
Pasar Saham - 19 Indikator
Pasar Saham - 19 IndikatorPasar Saham - 19 Indikator
Pasar Saham - 19 Indikator
 
Paul McCartney and Nancy Shevell wedding: Official portrait by daughter Mary
Paul McCartney and Nancy Shevell wedding: Official portrait by daughter MaryPaul McCartney and Nancy Shevell wedding: Official portrait by daughter Mary
Paul McCartney and Nancy Shevell wedding: Official portrait by daughter Mary
 

Similar to OOP - Konkurensi

9_Multithreading.pdf
9_Multithreading.pdf9_Multithreading.pdf
9_Multithreading.pdf
Jurnal IT
 
9_Multithreading.pdf
9_Multithreading.pdf9_Multithreading.pdf
9_Multithreading.pdf
Jurnal IT
 
Konsep I/O pada Pemrograman Berorientasi Obyek
Konsep I/O pada Pemrograman Berorientasi ObyekKonsep I/O pada Pemrograman Berorientasi Obyek
Konsep I/O pada Pemrograman Berorientasi Obyek
drmjaya
 
Chapter9.os
Chapter9.osChapter9.os
Chapter9.os
PhOo JuTek
 
Konsep dasar thread programming
Konsep dasar thread programmingKonsep dasar thread programming
Konsep dasar thread programming
cyberbebek
 
Tugas Pendahuluan Praktikum PBO Modul 8 - Multithread
Tugas Pendahuluan Praktikum PBO Modul 8 - MultithreadTugas Pendahuluan Praktikum PBO Modul 8 - Multithread
Tugas Pendahuluan Praktikum PBO Modul 8 - Multithread
meiditiarani
 
4. Thread
4. Thread4. Thread
4. Thread
Haddad Sammir
 
MULTITHREADING 613120023 PBO_d3if_36-01
MULTITHREADING 613120023 PBO_d3if_36-01MULTITHREADING 613120023 PBO_d3if_36-01
MULTITHREADING 613120023 PBO_d3if_36-01
ghifari husnul
 
Jeni Intro2 Bab09 Threads
Jeni Intro2 Bab09 ThreadsJeni Intro2 Bab09 Threads
Jeni Intro2 Bab09 Threads
Individual Consultants
 
Threading
ThreadingThreading
Threading
KikiSupendi
 
Sistem Operasi_Thread campur sari
Sistem Operasi_Thread campur sariSistem Operasi_Thread campur sari
Sistem Operasi_Thread campur sari
Eka Ariyansyah
 
Tugas Rekayasa Web instilah pada pemrograman java
Tugas Rekayasa Web instilah pada pemrograman javaTugas Rekayasa Web instilah pada pemrograman java
Tugas Rekayasa Web instilah pada pemrograman java
Ajat Sudrajat
 
Tugas 4
Tugas 4Tugas 4
Tugas 4
Novita Sari
 
Asynchronous Progamming.pptx
Asynchronous Progamming.pptxAsynchronous Progamming.pptx
Asynchronous Progamming.pptx
NurBudiNugroho
 
Pertemuan 4 MoProg.pptx
Pertemuan 4 MoProg.pptxPertemuan 4 MoProg.pptx
Pertemuan 4 MoProg.pptx
HanivaSitiVathinah
 
Pemrograman java
Pemrograman javaPemrograman java
Pemrograman java
Mutiara Ayu
 
Tugas 4 rekayasa web 0316
Tugas 4 rekayasa web 0316Tugas 4 rekayasa web 0316
Tugas 4 rekayasa web 0316
art david
 
Pengenalan pemrograman java
Pengenalan pemrograman javaPengenalan pemrograman java
Pengenalan pemrograman java
WiEn SHipiet
 
Pengenalan pemrograman java
Pengenalan pemrograman javaPengenalan pemrograman java
Pengenalan pemrograman java
WiEn SHipiet
 

Similar to OOP - Konkurensi (20)

9_Multithreading.pdf
9_Multithreading.pdf9_Multithreading.pdf
9_Multithreading.pdf
 
9_Multithreading.pdf
9_Multithreading.pdf9_Multithreading.pdf
9_Multithreading.pdf
 
Konsep I/O pada Pemrograman Berorientasi Obyek
Konsep I/O pada Pemrograman Berorientasi ObyekKonsep I/O pada Pemrograman Berorientasi Obyek
Konsep I/O pada Pemrograman Berorientasi Obyek
 
Chapter9.os
Chapter9.osChapter9.os
Chapter9.os
 
Konsep dasar thread programming
Konsep dasar thread programmingKonsep dasar thread programming
Konsep dasar thread programming
 
Tugas Pendahuluan Praktikum PBO Modul 8 - Multithread
Tugas Pendahuluan Praktikum PBO Modul 8 - MultithreadTugas Pendahuluan Praktikum PBO Modul 8 - Multithread
Tugas Pendahuluan Praktikum PBO Modul 8 - Multithread
 
4. Thread
4. Thread4. Thread
4. Thread
 
MULTITHREADING 613120023 PBO_d3if_36-01
MULTITHREADING 613120023 PBO_d3if_36-01MULTITHREADING 613120023 PBO_d3if_36-01
MULTITHREADING 613120023 PBO_d3if_36-01
 
Jeni Intro2 Bab09 Threads
Jeni Intro2 Bab09 ThreadsJeni Intro2 Bab09 Threads
Jeni Intro2 Bab09 Threads
 
Threading
ThreadingThreading
Threading
 
Sistem Operasi_Thread campur sari
Sistem Operasi_Thread campur sariSistem Operasi_Thread campur sari
Sistem Operasi_Thread campur sari
 
Sister 05 - proses
Sister   05 - prosesSister   05 - proses
Sister 05 - proses
 
Tugas Rekayasa Web instilah pada pemrograman java
Tugas Rekayasa Web instilah pada pemrograman javaTugas Rekayasa Web instilah pada pemrograman java
Tugas Rekayasa Web instilah pada pemrograman java
 
Tugas 4
Tugas 4Tugas 4
Tugas 4
 
Asynchronous Progamming.pptx
Asynchronous Progamming.pptxAsynchronous Progamming.pptx
Asynchronous Progamming.pptx
 
Pertemuan 4 MoProg.pptx
Pertemuan 4 MoProg.pptxPertemuan 4 MoProg.pptx
Pertemuan 4 MoProg.pptx
 
Pemrograman java
Pemrograman javaPemrograman java
Pemrograman java
 
Tugas 4 rekayasa web 0316
Tugas 4 rekayasa web 0316Tugas 4 rekayasa web 0316
Tugas 4 rekayasa web 0316
 
Pengenalan pemrograman java
Pengenalan pemrograman javaPengenalan pemrograman java
Pengenalan pemrograman java
 
Pengenalan pemrograman java
Pengenalan pemrograman javaPengenalan pemrograman java
Pengenalan pemrograman java
 

More from KuliahKita

CSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup MenuCSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup Menu
KuliahKita
 
CSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup KonfirmasiCSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup Konfirmasi
KuliahKita
 
CSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding DoorCSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding Door
KuliahKita
 
CSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card FlipCSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card Flip
KuliahKita
 
CSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordionCSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordion
KuliahKita
 
CSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tabCSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tab
KuliahKita
 
CSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side MenuCSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side Menu
KuliahKita
 
CSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 BreadcrumbCSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 Breadcrumb
KuliahKita
 
CSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasarCSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasar
KuliahKita
 
CSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox GridCSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox Grid
KuliahKita
 
Eksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layoutEksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layout
KuliahKita
 
Eksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 PendahuluanEksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 Pendahuluan
KuliahKita
 
07 equity research (bagian 2)
07 equity research (bagian 2)07 equity research (bagian 2)
07 equity research (bagian 2)
KuliahKita
 
Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)
KuliahKita
 
Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)
KuliahKita
 
Pasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due DilligencePasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due Dilligence
KuliahKita
 
Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03
KuliahKita
 
Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02
KuliahKita
 
Pasar Saham -27 financial ratio 01
Pasar Saham -27 financial ratio  01Pasar Saham -27 financial ratio  01
Pasar Saham -27 financial ratio 01
KuliahKita
 
Pasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow StatementPasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow Statement
KuliahKita
 

More from KuliahKita (20)

CSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup MenuCSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup Menu
 
CSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup KonfirmasiCSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup Konfirmasi
 
CSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding DoorCSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding Door
 
CSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card FlipCSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card Flip
 
CSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordionCSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordion
 
CSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tabCSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tab
 
CSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side MenuCSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side Menu
 
CSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 BreadcrumbCSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 Breadcrumb
 
CSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasarCSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasar
 
CSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox GridCSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox Grid
 
Eksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layoutEksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layout
 
Eksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 PendahuluanEksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 Pendahuluan
 
07 equity research (bagian 2)
07 equity research (bagian 2)07 equity research (bagian 2)
07 equity research (bagian 2)
 
Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)
 
Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)
 
Pasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due DilligencePasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due Dilligence
 
Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03
 
Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02
 
Pasar Saham -27 financial ratio 01
Pasar Saham -27 financial ratio  01Pasar Saham -27 financial ratio  01
Pasar Saham -27 financial ratio 01
 
Pasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow StatementPasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow Statement
 

Recently uploaded

1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
ymikhael4
 
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdfANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
narayafiryal8
 
Paparan Pengawasan Bangunan Gedung.pptx
Paparan  Pengawasan Bangunan Gedung.pptxPaparan  Pengawasan Bangunan Gedung.pptx
Paparan Pengawasan Bangunan Gedung.pptx
RifkiAbrar2
 
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptxBAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
ssuser5e48eb
 
Sistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu indukSistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu induk
ssuser0b6eb8
 
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdfDAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
benediktusmaksy
 
111078825-Nilai-Maksimum-Dan-Minimum-Turunan-Fungsi.pptx
111078825-Nilai-Maksimum-Dan-Minimum-Turunan-Fungsi.pptx111078825-Nilai-Maksimum-Dan-Minimum-Turunan-Fungsi.pptx
111078825-Nilai-Maksimum-Dan-Minimum-Turunan-Fungsi.pptx
RobiahIqlima
 
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdfPROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
afifsalim12
 

Recently uploaded (8)

1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
 
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdfANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
 
Paparan Pengawasan Bangunan Gedung.pptx
Paparan  Pengawasan Bangunan Gedung.pptxPaparan  Pengawasan Bangunan Gedung.pptx
Paparan Pengawasan Bangunan Gedung.pptx
 
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptxBAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
 
Sistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu indukSistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu induk
 
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdfDAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
 
111078825-Nilai-Maksimum-Dan-Minimum-Turunan-Fungsi.pptx
111078825-Nilai-Maksimum-Dan-Minimum-Turunan-Fungsi.pptx111078825-Nilai-Maksimum-Dan-Minimum-Turunan-Fungsi.pptx
111078825-Nilai-Maksimum-Dan-Minimum-Turunan-Fungsi.pptx
 
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdfPROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
 

OOP - Konkurensi

  • 1. Concurrency Pemrgoraman Berorientasi Objek dodo@kuliahkita.com
  • 2. Pendahuluan Concurrency pada konsep pemrograman berorientasi objek adalah bertujuan untuk menjalankan beberapa instruksi secara bersamaan (simultan). Dalam aplikasi atau program tertentu ada kalanya perlu menggunakan concurrency untuk melakukan pemrosesan sekaligus.
  • 3. Implementasi Concurrency Karena bahasa yang diggunakan pada pemrograman berorientasi objek di materi ini adalah Java, maka concurrency akan berkaitan dengan process dan thread. Pada umumnya, diimplementasikan dengan Thread. Setiap thread diasosiasikan dengan sebuah instansiasi dari class Thread
  • 4. Process dan Thread Thread adalah bagian dari sebuah process. Sebuah proses dapat memiliki banyak thread (multiple thread). Perbedaan proses dan thread adalah pada memory. Tiap proses memiliki memory space sendiri yang terpisah, sedangkan thread akan memakan memory space yang sama.
  • 5. Interrupts Sebuah thread pasti akan mengeksekusi instruksi-instruksi tertentu. Dalam eksekusinya tidak dipastikan akan selalu berjalan dengan baik. Interrupt adalah method pada objek thread yang dipanggil ketika menangani kesalahan tertentu dengan mengirimkan interupsi. Interrupt perlu diimplementasi sebagai salah satu penanganan kesalahan (error handling)
  • 6. Sinkronisasi (Syncrhonization) Thread-thread dapat berkomunikasi dengan objek lain yang sama ataupun berbeda. Sinkronisasi dibutuhkan untuk mencegah adanya interferensi thread dan memory consistency error. Error ini akan terjadi ketika lebih dari satu thread mengakses objek data yang sama dengan sinkronisasi yang tidak tepat.
  • 7. Race Condition Race condition adalah sebuah kondisi yang merupakan bug atau error pada program karena eksekusi instruksi secara paralel oleh banyak thread sekaligus. Kondisi ini merupakan salah satu kesalahan yang sering terjadi pada aplikasi atau program yang konkuren, misal dengan menggunakan bahasa pemrograman Java.
  • 8. Race Condition - 2 Race condition terjadi apabila thread yang berbeda beroperasi pada objek yang sama tanpa sinkronisasi yang tepat (interleave) dan mengakibatkan gangguan. Contoh: Proses inkremental. Apabila 2 buah thread mengakses data yang sama secara bersamaan, misalkan “5”. Thread itu akan membaca data yang sama (5) dan keduanya menambahkannya menjadi “6”. Proses akan kehilangan 1 hitungan, karena seharusnya inkremen dilakukan 2 kali sehingga seharusnya nilai akhirnya “7”.
  • 9. Deadlock dan Livelock Deadlock adalah proses dimana 2 atau lebih thread saling menunggu untuk melepas resource yang digunakan dan mengakibatkan stuck dalam waktu yang tak terbatas. Livelock adalah keadaan dimana dua atau lebih thread saling berbagi respon secara bergantian dan banyak sehingga program atau aplikasi menjadi stuck. (terlalu sibuk menangani respons)
  • 10. Starvation Stravation adalah kondisi dimana salah satu thread tidak dapat mengakses ke shared resource dan tidak dapat melanjutkan prosesnya. Hal ini terjadi karena adanya pemakaian resource yang terlalu lama oleh thread lain (greedy thread), sehingga resource tidak dapat digunakan (unavailable).
  • 11. Contoh Implementasi class PrintDemo { public void printCount(){ try { for(int i = 5; i > 0; i--) { System.out.println("Counter --- " + i ); } } catch (Exception e) { System.out.println("Thread interrupted."); } } } ...
  • 12. Contoh Implementasi class ThreadDemo extends Thread { private Thread t; private String threadName; PrintDemo PD; ThreadDemo( String name, PrintDemo pd){ threadName = name; PD = pd; } public void run() { synchronized(PD) { PD.printCount(); } System.out.println("Thread " + threadName + " exiting."); } ...
  • 13. Contoh Implementasi public void start () { System.out.println("Starting " + threadName ); if (t == null) { t = new Thread (this, threadName); t.start (); } } } ...
  • 14. Contoh Implementasi public class TestThread { public static void main(String args[]) { PrintDemo PD = new PrintDemo(); ThreadDemo T1 = new ThreadDemo( "Thread - 1 ", PD ); ThreadDemo T2 = new ThreadDemo( "Thread - 2 ", PD ); T1.start(); T2.start(); // wait for threads to end try { T1.join(); T2.join(); } catch( Exception e) { System.out.println("Interrupted"); } } }