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

dokumen-dokumen yang mirip
Pemrograman Berorientasi Objek Collection dan Multithreading. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Pemrograman Berorientasi. Array dan Collections

BAB 2 COLLECTION & THREAD

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

03/04/2018. Collection set List Map. Pemrograman Berorientasi Object

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

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

INSTITUT TEKNOLOGI SUMATERA COLLECTION: SET DAN MAP

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

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

MODUL III ARRAYLIST TUGAS PENDAHULUAN

TUGAS Mata Kuliah : Sistem Terdistribusi

Pemrograman Berbasis Objek. Collections. Politeknik Elektronika Negeri Surabaya

Thread. 16 th week Estu Sinduningrum ST,MT

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

Collections. Collections Framework

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

Exception Handling and Multithreading

PERTEMUAN 7 MULTITHREADED PROGRAMMING

Kelompok 12. Thread Java

Java Generic & Collection

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

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

Java Collections Framework

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

PEMROGRAMAN JAVA : THREAD

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; } }

Konsep Lanjut Pemrograman Berorientasi Obyek

Grouping Object. Viska Mutiawani, M.Sc

Java Progamming Multithreading

TUGAS SISTEM TERDISTRIBUSI MULTYTHREAD EKO SURIPTO P

Gambar 1. Single Linked List

SISTEM OPERASI THREAD DAN MULTITHREADING

KOLEKSI OBJECT. Farah Zakiyah Rahmanti, M.T Universitas Dian Nuswantoro

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

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

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

Network Programming 2010 Pemrograman Multi-Thread

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

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

Gambar 1. Single Linked List

SATUAN ACARA PERKULIAHAN MATA KULIAH: Algoritma & Pemrograman 3 Strata/Jurusan : S1/Sistem Komputer

IMPLEMENTASI STRUKTUR DATA LIST, QUEUE DAN STACK DALAM JAVA

Jobsheet 16 String dan Collection (List, Set, Map)

PRAKTIKUM 20 JAVA COLLECTION FRAMEWORK : MAP

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

Dimana thread digunakan?

Gambar 1. Single Linked List

Gambar 1. Single Linked List

Pemrograman Berbasis Objek. Collections. Politeknik Elektronika Negeri Surabaya

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

PERBEDAAN PROSES DAN THREAD PADA SISTEM INFORMASI

IKG2I4 / Software Project I

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

SATUAN ACARA PERKULIAHAN MATA KULIAH: Algoritma & Pemrograman 3 Strata/Jurusan : D3/Teknik Komputer

Processes vs. Threads

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Pemrograman Berorientasi. Inheritance

Pertemuan 4 Array pada Java

Praktikum Stack. A. Stack Collection di java.util.collection. Percobaan 1. Percobaan 2. import java.util.iterator; import java.util.

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

TUGAS SISTEM OPERASI

THREAD Ulir utas thread

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

Generics. Prepared by Viska Mutiawani. 1

PROSES DAN THREADS DALAM SISTEM OPERASI

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

KASUS INHERITANCE. (Window, Multithreading dan Applet)

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

Pemrograman Berorientasi Objek Polimorphisme dan Serious Polimorphisme. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Percobaan 6 Exception

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Boxing & AutoBoxing Java Collection Framework. Collection List Map Set. Generics vs Inheritance

BAB IV PERANCANGAN. IV.1 Evaluasi Usulan untuk Perancangan Iteratif

Exception Handling. Prepared by Viska Mutiawani. 1

TUGAS SISTEM OPERASI

PERCOBAAN 6 EXCEPTION

Array Sebagai Parameter Method

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

PRAKTIKUM 6 EXCEPTION

Algoritma dan Struktur Data. Queue

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

Konsep Dasar Pemrograman Berorientasi Objek

Jobsheet 09. Overloading and Overriding Method

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

LAB02 : KODING PROGRAM

KUM 3 IMPLEMENTASI LIST

Andi Gustanto M / Kelas 22 / TI

THREADS PADA WINDOWS Julius Bata /

Algoritma & Struktur Data. Array. Oleh : Nur Hayatin, M.Kom

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

Pemrograman Berorientasi. Abstract & Interface

Gambar 1: Hirarki class

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

GENERICS. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya. Topik

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

Modul 3: Tipe Data Abstrak Dinamis List, LinkList dan Model Antrian Stack & Queue

MODUL PRAKTIKUM BASIS DATA PENGENALAN STRUKTUR DATA DAN KOMPLEKSITAS WAKTU

Transkripsi:

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

Pemrograman Berorientasi Objek Collection dan Multithreading Adam Mukharil Bachtiar Teknik Informatika UNIKOM Generic Programming, Collection, dan Multithreading 1. Definisi dan konsep Collection 2. Iterator 3. Pembahasan collection 4. Definisi dan konsep multithreading 5. Pembahasan multithreading COLLECTION Definisi Collection Kumpulan data yang dimanipulasi sebagai single objek. Collection lebih dikenal sebagai struktur data. Jenis-Jenis Collection Operasi Umum Collection Adding Sorting Removing Iterating Searching Kegunaan Collection Program yang menggunakan konsep collection tidak terikat pada implementasi. Penggunaan generic dan Object memungkinkan penggunaan tipe data yang bebas. Format Dasar Collection Definisi Iterator Class yang digunakan untuk menyeleksi elemen dari sebuah collection. Tujuanny adalah menyembuyikan collection agar tidak diakses secara sembarangan. Konsep Iterator Format Umum Iterator LIST Definisi List List merupakan interface yang berkoresponden terhadap kumpulan objek. Duplikasi diperbolehkan pada list. Penerapan yang sering digunakan adalah ArrayList dan LinkedList. Format Interface List Struktur List

Definisi ArrayList Collection yang memiliki sifat yang memiliki sifat dan bentuk yang mirip array tapi tidak terikat pada suatu ukuran yang spesifik. Biasa disebut array dinamis. Operasi ArrayList add equal clear get remove set size isempty Contoh Penggunaan ArrayList public class ArrayListTester { public static void main(string[] args) { ArrayList nama=new ArrayList(); String nama1="adam"; String nama2="mira"; nama.add(nama1); nama.add(nama2); //for each for(string name:nama){ System.out.println(name); } } } Definisi LinkedList Collection yang memiliki kemampuan untuk add dan remove yang lebih baik dibandingkan list pada umumnya. Bisa dikembangkan menjadi stack maupun queue. Operasi LinkedList addfirst removefirst addlast removelast getfirst push getlast pop Contoh Penggunaan LinkedList Contoh Iterator List MAP Definisi Map Map merupakan objek yang memetakan kunci terhadap suatu value. Sering disebut

sebagai associative array atau kamus. Penerapan yang sering digunakan adalah HashMap dan TreeMap. Format Interface Map Struktur Umum Map Definisi HashMap Implementasi HashMap berdasarkan pada sebuah hash table. Nilai diakses melalui kunci. Apabila ada value yang memiliki kunci yang sama maka akan terjadi penimpaan value. Format Class HashMap Contoh Penggunaan HashMap public class ContohIteratorTester { public static void main(string[] args) { HashMap alat=new HashMap(); alat.put(1,"palu"); alat.put(2,"bor"); System.out.println(alat.get(1)); System.out.println(alat.get(2)); alat.put(1,"paku"); System.out.println(alat.get(1)); } } Definisi TreeMap Pasangan kunci disimpan dalam sebuah pohon yang berurutan. Pengurutan pohon didasarkan pada kunci. Kunci yang digunakan harus merupakan turunan dari kelas yang bisa dibandingkan (interface comparable dan comparator). Perbedaan HashMap dan TreeMap public class HashMapTreeMapTester { public static void main(string[] args) { Map alat=new HashMap(); alat.put("palu",3); alat.put("bor",2); alat.put("gergaji",3); alat.put("obeng",1); System.out.println(alat); TreeMap perkakas=new TreeMap(alat); System.out.println(perkakas); } } Perbedaan HashMap dan TreeMap SET Definisi Set Set merupakan collection yang tidak mengizinkan ada elemen yang duplikat. Dua penerapan yang sering digunakan adalah HashSet dan TreeSet Struktur Umum Set Operasi Set add remove addall equal Perbedaan HashSet dan TreeSet public class HashSetTreeSetTester { public static void main(string[] args) { Set alat=new HashSet(); alat.add("palu"); alat.add("bor"); alat.add("gergaji"); alat.add("obeng"); alat.add("bor"); System.out.println(alat); TreeSet perkakas=new TreeSet(alat); System.out.println(perkakas);

} } Perbedaan HashSet dan TreeSet MULTITHREAD Single Thread Program class ABC {. public void main(..) {.. } } begin body end Multithreaded Program Main Thread start Thread A start Thread B start Thread C Threads memungkinkan pertukaran atau pergantian data/hasil Single Thread VS. Multithread Thread adalah proses yang ringan di dalam sebuah proses Single-threaded Process Threads of Execution Single instruction stream Multiplethreaded Process Multiple instruction stream Common Address Space 42 Definisi Thread Kode program yang berjalan secara konkuren dengan kode program lain. Penggunaan thread memungkinkan lebih dari satu kode program dijalankan secara bersamaan. Cara Multithread di JAVA

Meng-extend class Thread Mengimplementasi interface Runnable Meng-extend Class Thread Buat sebuah kelas yang meng-extend class Thread dan override method run(). Buat sebuah thread (membuat objek dari kelas tersebut). Eksekusi thread dengan memanggil method start(). Create and Execute: new MyClass().start(); Contoh Penggunaan public class Something extends Thread{ @Override public void run(){ System.out.println("Thread berjalan di sini"); } } public class Thread1 { public static void main(string[] args) { Something thread=new Something(); thread.start(); } } Mengimplementasi Interface Runnable Buat sebuah class yang mengimplementasi interface Runnable dan override method run(). Buat objek dari kelas tersebut (misal: obj). Buat objek thread: Thread thr1=new Thread(obj); Mulai eksekusi thread: thr1.start(); Contoh Penggunaan public class Something implements Runnable{ @Override public void run(){ System.out.println("Thread berjalan di sini"); } } public class Thread1 { public static void main(string[] args) { Something sm=new Something(); Thread thr1=new Thread(sm); thr1.start(); } } Siklus Hidup Thread new start() I/O completed ready notify() waiting Time expired/ interrupted sleeping resume() blocked dispatch

sleep() wait() suspend() running completion stop() Block on I/O dead Contoh Three Thread public class A extends Thread{ @Override public void run(){ for(int i=1;i<=5;i++){ System.out.println("Thread A } System.out.println("Selesai dari } } public class B extends Thread{ @Override public void run(){ for(int j=1;j<=5;j++){ System.out.println("Thread B } System.out.println("Selesai dari } } : "+i); thread A"); : "+j); thread B"); Contoh Three Thread public class C extends Thread{ @Override public void run(){ for(int k=1;k<=5;k++){ System.out.println("Thread C : "+k); } System.out.println("Selesai dari thread C"); } } public class ThreeThread { public static void main(string[] args) { new A().start(); new B().start(); new C().start(); } } Prioritas Thread Sebuah thread dapat ditentukan prioritasnya. Prioritas akan menentukan penjadwalan sebuah thread. Panggil method setpriority(int number); : 1. MIN_PRIORITY = 1 2. NORM_PRIORITY = 5 DEFAULT 3. MAX_PRIORITY = 10 Contoh Prioritas Thread public class A extends Thread{ @Override public void run(){ for(int i=1;i<=5;i++){ System.out.println("Thread A } System.out.println("Selesai dari } } public class B extends Thread{ @Override public void run(){ for(int j=1;j<=5;j++){ System.out.println("Thread B } System.out.println("Selesai dari } } : "+i); thread A"); : "+j); thread B"); Contoh Prioritas Thread public class C extends Thread{ @Override public void run(){ for(int k=1;k<=5;k++){ System.out.println("Thread C : "+k); } System.out.println("Selesai dari thread C"); } } Contoh Prioritas Thread public class ThreeThread { public static void main(string[] args) { // TODO code application logic here A a=new A(); B b=new B(); C c=new C();

c.setpriority(thread.max_priority); b.setpriority(a.getpriority()+1); a.setpriority(thread.min_priority); System.out.println("Thread A dimulai"); a.start(); System.out.println("Thread B dimulai"); b.start(); System.out.println("Thread C dimulai"); c.start(); System.out.println("Akhir dari thread"); } }