Collection & Threads
Target: Mhs mampu Memahami tentang interface Collection pada Java Mhs Mengerti tentang pembuatan Vector, ArrayList dan LinkedList Mhs mampu Membuat dan mengelolah Thread Mhs mampu Memahami proses sinkronisasi data Mhs bisa Menggunakan method Wait dan Notify
Collection/Container
Pengantar Mrksebuah object sederhana yang menampung lebih dari satu elemen di dalam satu kesatuan. Fungsi: u/ menyimpan data u/ Mengambildata u/ memanipulasi data u/ mentransmisikan data dari satu method ke method lain merepresentasikan data item dari bentukspt : Poker (kumpulan dari kartu) direktori (kumpulan dari file atau folder) kotak surat (kumpulan dari surat-surat), dll
Set mrk collection yang tidak dipesan dan tidak ada penggandaan didalamnya. List mrk collection yang dipesan dari elemen-elemen dimana juga diperbolehkannya penggandaan. HashSet, LinkedHashSet dan TreeSet mrk implementasi class dari Set interfaces. ArrayList, LinkedList dan Vector mrk implementasi class dari List interfaces.
Vektor Mrkimplementasi dari dinamis array Sintak Vector(); konstruktor default yang menginialisasikan ukuran sebanyak 10 elemen Vector(int size); menentukan jumlah elemen yang akan digunakan Vector(int size,int incr); menentukan ukuran awal dan apabila ukurannya full maka akan ditambah lagi sebanyak incr
Method class vector
ArrayList Method Sintak ArrayList al=new ArrayList(); Method: add(<object>) menambah data objek ke ArrayList add(<index>,<object>) untuk menambahkan sebuah object dengan menentukan nomor index elemennya get(<index>) untuk mengambil sebuah object berdasarkan nomor indexnya remove(<index>) untuk menghapus elemen ArrayList berdasarkan nomor indexnya. isEmpty() untuk memeriksa apakah object ArayList yang dibuat kosong atau tidak. clear() Menghapus semua elemen yang ada di dalam object ArrayList.
LinkedList Method SintakLinkedList ll=new LinkedList(); Method: add(<object>) untuk menambahkan data object ke dalam LinkedList size() Mengambil jumlah elemen pada object LinkedList get(<index>) Mengambil nilai elemen berdasarkan nomor index yang ada pada object LinkedList addFirst() Menambahkan object pada elemen awal addLast() Menambahkan object pada elemen akhir getFirst() Mengambil nilai elemen pertama getLast() Mengambil nilai elemen terakhir clear() Menghapus semua nilai elemen pada object LinkedList remove() Method remove tanpa parameter akan menghapus elemen pertama remove(<index>) Parameter akan menunjukan elemen mana yang akan dihapus
Thread
Pengantar Mrkpengontrol aliran proses program untuk berjalan bersama” c/ pd SO pada saat kita mengetik sebuah dokumen di text editor, dalam waktu yang bersamaan Anda juga dapat mendengarkan musik, dan surfing lewat internetSO berjalan scr multitaskting c/ Threadsmengeksekusi beberapa proses secara bersama-sama c/ aplikasi HotJava browser yang memperbolehkan Anda untuk browsing terhadap suatu page, bersamaan dengan mendownload object yang lain, misalnya gambar, memainkan animasi, dan juga file audio pada saat yang bersamaan
Pengantar
State/Kondisi dari Thread Running thread yang sedang dieksekusi dan didalam control dari CPU Ready to run Thread yang siap dieksekusi, tetapi masih menunggu giliran Resumed Setelah di block atau diberhentikan sementara, state ini siap untuk dijalankan Suspended thread berhenti sementaramengijinkan CPU untuk menjalankan thread lain bekerja Blocked thread yang tidak mampu berjalan, karena ia menunggu sebuah resource tersedia or sebuah event terjadi.
Prioritas setiap thread akan diberikan sebuah prioritas Untuk menentukan thread mana yang akan menerima control dari CPUu/ dieksekusi pertama kali d/ nilai prioritas integer 1-10 semakin tinggi prioritas dari sebuah thread semakin besar kesempatan dari thread untuk dieksekusi dahulu
Prioritas c/: skenariocontext switch. dua buah thread berjalan bersama-sama Thread 1diberi prioritas 5 Thread 2diberi prioritas 10 Anggaplah bahwa thread 1 telah berjalan pada saat thread 2 dijalankan Thread 2 akan menerima control dari CPU dan akan dieksekusi pada saat thread 2 memiliki prioritas > dibanding thread 1yang pada saat itu tengah berjalan
Class Thread1. Constructor
Class Thread2.Constants U/ Menentukan nilai prioritas
Class Thread3.Methods
Next Aplikasi CountDownGui.java
Membuat Thread Sendiri d/ menurunkan extend class Thread Next Aplikasip2d/ output berbeda” d/ mengimplementasikan interface Runnable d/ method run method utama dari thread y/ akan kita buat Next apliasip3
Method Join pd Thread method yang dipanggil tanpa argumen menyebabkan thread yang sedang bekerja saat ini menungggu s/d thread yang memanggil method ini selesai dieksekusi Next aplikasip4
Rangkuman: Aplikasi thread berjalan bersama” tetapi tidak bergantung satu dengan yang lainnya Thread tersebutmrk thread yang berjalan sendiri tanpa memperhatikan status dan aktifitas dari thread lain yang sedang berjalan setiap thread tidak membutuhkan resource or method dari luar sehingga ia tidak membutuhkan komunikasi dengan thread lain
Sinkronisasi bagaimanapun sebuah thread yang berjalan bersama”, kadang” membutuhkan resource or method dari luar Mk butuh komunikasi satu dengan yang lain sehingga dapat mengetahui status dan aktifitas mereka c/ studi kasusprodusen-konsumen Butuh dua object utamaprodusen & konsumen Kewajiban produsenuntuk membangkitkan nilai atau stream data yang diinginkan oleh konsumen
Next Aplikasi P5 1. c/ yang tidak disinkronisasi Program ini diharapkan dapat mencetak dua argument object Runnable secaraberurutan Permasalahannyapendeklarasian method sleep akan menyebabkan thread yang lain akan dieksekusi walaupun thread yang pertama belum selesai dijalankan pada saat eksekusi method print dari class TwoStrings Contoh ini Bukan permasalahan yang seriusAkan tetapi pada aplikasi yang lain akan timbul exception
Next Aplikasi p6, p7 Mengunci Object FungsiUntuk memastikan bahwa hanya satu thread yang mendapatkan hak akses kedalam method tertentu 7an object dari method tersebut hanya dapat dipanggil oleh 1 thread pada 1 waktu Sintaks synchronized (<object>) { //statements yang akan disinkronisasikan }
Komunikasi Antar thread(InterThread)
c/ Skenario:Pelayan-Pelanggan Next aplikasip5-p7p8,p9