Thread. 16 th week Estu Sinduningrum ST,MT

Ukuran: px
Mulai penontonan dengan halaman:

Download "Thread. 16 th week Estu Sinduningrum ST,MT"

Transkripsi

1 Thread 16 th week Estu Sinduningrum ST,MT

2 Multitasking dan Multithreading

3 Multitasking Multitasking adalah suatu istilah yang menjelaskan bahwa sebuah komputer dapat menjalankan bebeiapa aktiviias (yang sama maupun berbeda) secara simultan/bersamaan. Multitasking itu sendiri dibedakan menjadi dua macam, yaitu sebagai berikut: Process-based multitasking. Thread-based multitasking Estu Sinduningrum, ST, MT

4 Estu Sinduningrum, ST, MT Multitasking Istilah process-based multitasking digunakan untuk menyatakan aktivitas-aktivitas yang dikerjakan secara bersama-sama dan aktivitas tersebut berbasis pada sebuah proses (dalam hal ini, program atau aplikasi). Ini artinya, pada saat yang bersamaan, kita dapat menjalankan lebih dari satu program atau aplikasi dalam satu komputer. Sebagai contoh, ketika kita sedang menjalankan sebuah aplikasi pengolah kala (word processor), kita juga dapat menjalankan aplikasi lainnya, misalnya: aplikasi yang digunakan untuk memainkan: musik/lagu.

5 Estu Sinduningrum, ST, MT thread-based multitasking Adapun istilah thread-based multitasking digunakan untuk aktivitas-aktivitas yang berbasis pada thread. Hal ini berararti dalam satu program atau aplikasi tertentu, kita dapat menjalankan lebih dari satu thread secara bersamaan. Sebagai contoh, asumsikan kita sedang menggunakan aplikasi word processor. Pada saat yang bersamaan kita dapat melakukan formatting teks dan sekaligus melakukan proses pencetakan dokumen. Hal ini, bisa terjadi karena pekerjaan/ormatting teks dan proses pencetakan disimpan di dalam thread yang terpisah.

6 Estu Sinduningrum, ST, MT thread-based multitasking Process-based multitasking membutuhkan ruang memori yang berbeda untuk mengeksekusi setiap aktivitas (dalam hal ini). proses yang ada. Setiap program atau aplikasi akan berjalan secara independen satu sama lain. Data dan elemen-elemen program lainnya pun akan tersimpan pada masing-masing stack yang terpisah untuk setiap program.

7 Estu Sinduningrum, ST, MT thread-based multitasking Adapun pada thread-based multitasking, satu ruang memori digunakan secara bersama-sama oleh setiap thread yang ada. Gambar di bawah ini akan mengilustrasikan konsep thread-based multitasking di dalam Java.

8 Estu Sinduningrum, ST, MT Catatan bagi Anda: dalam referensi lain ada juga yang menyebutkan bahwa istilah multita.sking hanya digunakan untuk menyatakan process-based multitasking, sedangkan thread-based multitasking dinyatakan dalam istilah lain, yaitu multithreading.

9 Estu Sinduningrum, ST, MT Apa ltu Thread? Thread adalah suatu bagian program (berupa runtunan kode) yang tidak tergantung pada bagian lain dan dapat dijalankan secara simultan. Ini artinya, suatu threod dapat diistirahatkan (paused) tanpa harus menghentikan bagian lain atau keseluruhan program. Hal ini disebabkan setiap thread mendefinisikan sebuah lokasi eksekusi yang berbeda. Sebuah program yang ditulis dengan menggunakan Java dapat memiliki lebih dari satu thread. Dan, seperti yang telah disinggung sebelumnya, pada saat runtime, semua threadyang ada di dalam program akan menempati ruang memori yang sama sehingga thread-thread tersebut dapat berbagi data dan kode satu sama lain.

10 Estu Sinduningrum, ST, MT Apa ltu Thread? Meskipun thread utama (main thread) dibuat secara otomatis pada saat program dijalankan, akan tetapi kita dapat mengontrolnya melalui objek dari kelas thread. Adapun thread-thread lain yang ada biasanya disebut dengan thread anak (child thread). Untuk melakukan hal ini, kita harus memanggil method currentthread() yang didefinisikan pada kelas Thread. Adapun bentuk umum deklarasinya sebagai berikut:

11 Latihan 99

12 class DemoThreadUtama { public static void main(string[] args) throws InterruptedException { // mendapatkan thread yang sedang aktif Thread tutama = Thread.currentThread(); // menampilkan informasi tentang thread System.out.print("Informasi awal: "); System.out.println(tUtama.toString()); // mengganti nama thread tutama.setname("thread utama"); // menampilkan kembali informasi tentang thread System.out.print("Informasi setelah diubah namanya: "); System.out.println(tUtama.toString()); for (int i=0; i<5; i++) { System.out.println("Detik ke-" + (i+1)); Thread.sleep(1000); // membuat delay selama 1 detik Estu Sinduningrum, ST, MT } } }

13 Estu Sinduningrum, ST, MT Java mendefinisikan dua cara untuk membuat sebuah thread, yaitu: Dengan membuat kelas baru yang mengimplementasikan interface Runnable atau dengan membuat kelas baru yang merupakan turunan dari kelas Thread. Baik kelas Thread maupun interface Runnable, keduanya tersimpan dalam paket java. Tang. Membuat dan Menjalankan Thread Kita tahu bahwa paket java.lang secara otomatis akan diimpor ke dalam setiap program Java yang kita tulis sehingga kelas dan interface tersebut akan langsung dikenali oleh program

14 Estu Sinduningrum, ST, MT Interfoce Runnable mendefinisikan sebuah method, yaitu run() ; yang harus diimplementasi oleh kelas-kelas yang mengimplementasikan interface tersebut. Method run() digunakan untuk mengisi kode yang akan dilakukan pada saatthread dijalankan. Thread akan dihentikan pada saat program selesai mengeksekusi method run (). Berikut ini deklarasi interface Runnable. public interface Runnable { public void run(); } Cara I: Mengimplementasikan Interface Runnable

15 Estu Sinduningrum, ST, MT Cara I: Mengimplementasikan Interface Runnable Di dalam method run() inilah kita mengisikan kode untuk proses yang akan dijalankan oleh thread bersangkutan. Sama seperti method Lain, dalam method run g kita juga untuk memanggil method lain, mendeklarasikan kelas lain maupun variabel-variabel yang bersifat lokal. Setelah kita membuat kelas yang mengimplementasikan interface Runnable dan membuat objek atau instance dari kelas tersebut, maka objek itu sudah daftar digunakan untuk membentuk thread. Caranya adalah dengan melewatkannya ke dalam constructor kelas thread, yang memiliki bentuk umum seperti berikut: Thread (Runnable objthread) Thread(Runnable objthread, String namathread)

16 Estu Sinduningrum, ST, MT Cara I: Mengimplementasikan Interface Runnable objthread. adalah objek dari kelas yang mengimplementasikan interface Runnable. Dengan kata lain, objthread adalah objek pemilik method run () ; yang kodenya akan dieksekusi pada saat thread dijalankan. Apabila kita ingin memberi nama default untuk thread yang akan dibuat, maka kita juga dapat menyertakan nama ke dalam parameter namathread. Nama yang ditentukan pada saat pembuatan thread ini dapat kita ubah dengan menggunakan method setname () maupun dipanggil namanya dengan menggunakan method getname().

17 Estu Sinduningrum, ST, MT Cara I: Mengimplementasikan Interface Runnable Objek thread yang terbuat tidak secara otomatis dijalankan. Agar thread tersebut dijalankan, kita harus memanggil method start() ( dari objek thread tersebut. Sebenarnya, method start() secara otomatis akan memanggil run() yang terdapat pada kelas yang mengimplementasikan interface Runnable. Dengan demikian, kita tidak pernah memanggil method run() secara langsung. Adapun bentuk umum deklarasi dari method start() yang didefinisikan pada kelas thread sebagai berikut: void start()

18 Latihan 100

19 class MyRunnable implements Runnable { // mengimplementasikan method run() yang dideklarasikan // di dalam interface Runnable public void run() { System.out.println("Thread anak dieksekusi"); } } class DemoImplementRunnable1 { public static void main(string[] args) { // (LANGKAH KE-1) // membuat objek Runnable MyRunnable obj = new MyRunnable(); // (LANGKAH KE-2) // membuat objek Thread dengan melewatkan objek Runnable Thread t = new Thread(obj); // (LANGKAH KE-3) // menjalankan thread t.start(); System.out.println("Thread utama dieksekusi"); Estu Sinduningrum, ST, MT } }

20 Pada latihan 100, mula-mula kita membuat objek dari kelas MyRunnable, yaitu kelas yang telah mengimplementasikan interface Runnable. Selanjutnya, objek dari kelas tersebut digunakan untuk membentuk sebuah thread baru dengan cara melewatkannya ke dalam constructor kelas threaa, setelah thread terbentuk, kemudian kita menjalankan thread tersebut. Ini artinya, kita perlu menuliskan tiga buah langkah untuk membentuk sebuah threai baru dan untuk menjalankannya. Bentuk ini sebenarnya dapat disingkat dengan membungkus ketiga buah langkah tersebut ke dalam constructor kelas MyRunnable. Dengan demikian, pada saat kita membuat objek dari kelas MyRunnable, maka secara otomatis thread juga telah terbuat dan akan langsung dijalankan Estu Sinduningrum, ST, MT

21 Latihan 101

22 class MyRunnable implements Runnable { private Thread t; // constructor kelas MyRunnable MyRunnable() { t = new Thread(this); // melewatkan objek MyRunnable t.start(); // menjalankan thread } public void run() { System.out.println("Thread baru dieksekusi"); } } class DemoImplementRunnable2 { public static void main(string[] args) { // HANYA SATU LANGKAH MyRunnable obj = new MyRunnable(); System.out.println("Thread utama dieksekusi"); Estu Sinduningrum, ST, MT } }

23 Cara ll: Menurunkan Kelas Thread Cara lain yang dapat digunakan untuk membuat thread di dalam Java adalah dengan membuat kelas baru yang merupakan turunan dari kelas thread. Selanjutnya, kita harus membuat objek atau instance dari kelas baru tersebut. Sama seperti yang terdapat pada cara sebelumnya, disini, objek thread juga dijalankan melalui pemanggilan method start(). Maka dari itu, kelas baru yang mempakan turunan dari kelas thread harus melakukan ouerride terhadap method run() yang didefinisikan pada kelas thread. Estu Sinduningrum, ST, MT

24 Cara ll: Menurunkan Kelas Thread Apabila dikaji secara lebih mendalam, sebenarnya kelas thread itu sendiri juga merupakan suatu kelas yang mengimplementasikan interface Runnable, sehingga kelas tersebut memiliki method run(). Namun, di dalam kelas thread, method run() yang didefinisikan tidak memiliki kode implementasi (tidak melakukan apa-apa). Dengan demikian, kelas turunan dari kelas thread yang harus mengimplementasikan method tersebut. Berikut ini contoh program yang akan menunjukkan bagaimana cara membentuk sebuah thread dengan membuat kelas turunan dari kelas rhread. Estu Sinduningrum, ST, MT

25 Latihan 102

26 // membuat kelas turunan dari kelas Thread class MyThread extends Thread { // melakukan override terhadap method run() public void run() { System.out.println("Thread baru dieksekusi"); } } class DemoExtendsThread { public static void main(string[] args) { MyThread t = new MyThread(); t.start(); System.out.println("Thread utama dieksekusi"); } } Estu Sinduningrum, ST, MT

27 Estu Sinduningrum, ST, MT Cara Mana yang Lebih Direkomendasikan? Dari kedua cara yang telah kita pelajari di atas, mungkin Anda bingung dan bertanya: "Cara mana yang lebih direkomendasikan untuk membuat sebuah thread di dalam Java?". Jawabnya sebenarnya terserah kepada Anda sendiri. Namun, pada kenyataan di lapangan, kebanyakan programmer Java menggunakan cara yang pertama (Cara I), yaitu dengan mengimplementasikan interface Runnable. Berikut ini alasannya:

28 Estu Sinduningrum, ST, MT Cara Mana yang Lebih Direkomendasikan? Kelas baru yang diperankan sebagai thread mungkin hanya perlu bersifat runnable (hanya dapat dijalankan secara simultan), tidak membutuhkan semua method turunan dari kelas Thread. Oleh karena itu, apabila kita memilih Cara II, maka hal ini akan menjadi sesuatu yang berlebihan atau boros. Apabila ditinjau dari sisi desain, kelas baru yang diturunkan dari kelas Thread mungkin tidak dapat diturunkan lagi menjadi kelas turunan (subclass) lainnya. Hal ini disebabkan karena kelas tersebut sudah "terpatok" pada sifat-sifat dari kelas Thread.

29 Menghentikan Thread Thread yang telah dijalankan secara otomatis akan dihentikan ketika semua proses (dalam hal ini kode yang terdapat dalam method run() telah selesai dieksekusi. Meskipun demikian, kita diizinkan untuk menghentikan thread secara manual. Kelas thread sebenarnya mendefinisikan method stop() untuk mengatasi keperluan ini. Namun, method ini sudah bersifat deprecated (tidak direkomendasikan lagi untuk digunakan). Estu Sinduningrum, ST, MT

30 Menghentikan Thread Sebagai gantinya, gunakan variabel bertipe boolean untuk mengontrol pengulangan yang terdapat di dalam method run(). Berikut ini contoh program yang akan menunjukkan hal tersebut. Estu Sinduningrum, ST, MT

31 Latihan 103

32 class MyThread extends Thread { // mendeklarasikan variabel boolean untuk mengontrol pengulangan private boolean selesai = false; public void run() { int counter = 0; System.out.println("Thread anak dijalankan"); while (!selesai) { System.out.print((++counter) + " "); } System.out.println("Thread anak selesai"); } public void stopthread() { selesai = true; } } class DemoStopThread { public static void main(string[] args) throws InterruptedException { System.out.println("Thread utama dijalankan"); MyThread t = new MyThread(); // menjalankan thread anak t.start(); // mengistirahatkan thread utama selama 1/40 detik Thread.sleep(25); // menghentikan thread anak t.stopthread(); // JANGAN GUNAKAN: t.stop(); Estu Sinduningrum, ST, MT System.out.println("\nThread utama selesai"); } }

33 Multiple Thread Sejauh ini, jumlah thread maksimal yang kita gunakan dalam program hanya dua, yaitu yang terdiri dari satu thread utama dan satu thread anak. Namun, sesuai dengan namanya multithreaded programming, kita diizinkan untuk memiliki lebih dari dua thread anak yang dapat dijalankan secara simultan dalam satu program yang kita buat. Bagian ini akan menunjukkan cara pembuatan beberapa buah thread anak dan cara menjalankan thread-thread tersebut. Estu Sinduningrum, ST, MT

34 Latihan 104

35 class MyThread1 extends Thread { public void run() { try { for (int i=0; i<10; i++) { System.out.println("Thread pertama: detik ke-" + (i+1)); if (i!= 9) { sleep(1000); } else { System.out.println("Thread pertama selesai...\n"); } } } catch (InterruptedException ie) { System.out.println(ie.getMessage()); } } } class MyThread2 extends Thread { public void run() { try { for (int i=0; i<5; i++) { System.out.println("Thread kedua: detik ke- Estu Sinduningrum, ST, MT " + (i+1)); if (i!= 4) { System.out.println(); sleep(1000); } else { System.out.println("Thread kedua selesai...\n"); } } } catch (InterruptedException ie) { System.out.println(ie.getMessage()); } } } class DemoMultipleThread { public static void main(string[] args) { MyThread1 t1 = new MyThread1(); t1.start(); MyThread2 t2 = new MyThread2(); t2.start(); } }

36 Mengenal Method is Alive() dan join() Menghentikan Thread, kita telah melihat bahwa thread utama dihentikan sebelum thread anak selesai dieksekusi. Terkadang, pada kasus-kasus pemrograman tertentu, kita ingin menjadikan thread utama sebagai thread yang terakhir dihentikan. Untuk melakukan hal tersebut, kita perlu memanggil method join() pada semua thread anak. Estu Sinduningrum, ST, MT

37 Mengenal Method is Alive() dan join() Apabila kita ingin mengetahui apakah suatu thread masih dalam keadaan aktif atau tidak, kita dapat memanggil method isalive(). Baik method join() maupun isalive(), keduanya didefinisikan di dalam kelas thread. Berikut ini bentuk umum deklarasi dari method isarive(). final boolean isalive() Estu Sinduningrum, ST, MT

38 Estu Sinduningrum, ST, MT Mengenal Method is Alive() dan join() Method ini dideklarasikan sebagai final, yang berarti tidak dapat dioverride oleh kelas-kelas turunan. Nilai yang dikembalikan berupa boolean. Apabila threed masih dalam keadaan aktif (masih berjalan) maka method ini mengembalikan nilai true; bila sebaliknya, maka nilai yang dikembalikan adalah false. Final void join() throws InterruptedException Method join() digunakan untuk menunggu sampai objek thread pemanggil benar-benar selesai dieksekusi.

39 Latihan 105

40 class MyThread implements Runnable { private Thread t; private int n; MyThread(String nama, int n) { t = new Thread(this, nama); this.n = n; } public void run() { try { for (int i=0; i<n; i++) { System.out.println("Thread " + t.getname() + ": detik ke-" + (i+1)); Thread.sleep(1000); } System.out.println("Thread " + t.getname() + " selesai..."); } catch (InterruptedException ie) { System.out.println(ie.getMessage()); } } public void start() { t.start(); } public Thread getthread() { return t; } } class DemoIsAliveJoin { public static void main(string[] args) throws InterruptedException { System.out.println("Thread utama dijalankan\n"); MyThread t1 = new MyThread("pertama", 2); MyThread t2 = new MyThread("kedua", 3); MyThread Estu Sinduningrum, t3 = new ST, MyThread("ketiga", MT 4); t1.start(); t2.start(); t3.start(); // pada saat thread t1, t2, dan t3 aktif System.out.println("t1.getThread().isAlive() : " + t1.getthread().isalive()); System.out.println("t2.getThread().isAlive() : " + t2.getthread().isalive()); System.out.println("t3.getThread().isAlive() : " + t3.getthread().isalive()); System.out.println(); // menunggu sampai thread t1, t2, dan t3 selesai dieksekusi t1.getthread().join(); t2.getthread().join(); t3.getthread().join(); // setelah thread t1, t2, dan t3 selesai System.out.println(); System.out.println("t1.getThread().isAlive() : " + t1.getthread().isalive()); System.out.println("t2.getThread().isAlive() : " + t2.getthread().isalive()); System.out.println("t3.getThread().isAlive() : " + t3.getthread().isalive()); System.out.println("\nThread utama selesai"); } }

41 Menentukan Prioritas Thread Prioritas thread digunakan oleh penjadwal thread (thread scheduler) untuk menentukan thread mana yang seharusnya dikerjakan terlebih dahulu. Secara teori, thread dengan prioritas lebih tinggi akan mendapatkan waktu CPU yang lebih apabila dibandingkan dengan thread yang memiliki prioritas lebih rendah. Namun, pada praktiknya, jumlah waktu CPU yang didapatkan oleh thread terkadang tergantung pula pada beberapa faktor lain, selain dari prioritasnya. Sebagai contoh, bagaimana sistem operasi mengimplementasikan proses multitasking juga akan mempengaruhi ketersediaan waktu CPU. Estu Sinduningrum, ST, MT

42 Menentukan Prioritas Thread Thread dengan prioritas lebih tinggi juga dapat mengesampingkan thread dengan prioritas lebih rendah. Sebagai contoh, apabila terdapat thread dengan prioritas rendah sedang berjalan dan kemudian thread dengan prioritas tinggi diresume atau dijalankan ulang (dari keadaan wait maupun sleep), maka thread dengan prioritas rendah tersebut akan dikesampingkan. Estu Sinduningrum, ST, MT

43 Menentukan Prioritas Thread Untuk menentukan prioritas suatu threcd, kita harus memanggil method setpriority ( ) yang didefinisikan pada kelas thread. Method tersebut memiliki bentuk umum seperti berikut: final void setpriority (int level) Dalam hal ini, level digunakan untuk menentukan prioritas thread, dan nilainya harus berada dalam rentang MIN_PRIORITY sampai MAX_PRIORITY yaitu dari 1 sampai 10. Prioritas default ditentukan dengan NORM_PRIORITY yang memiliki nilai 5. Estu Sinduningrum, ST, MT

44 Menentukan Prioritas Thread Kita dapat rnemperoleh informasi tentang prioritas suatu thread dengan memanggil method setpriority(), yang juga didefinisikan pada kelas thread. Berikut ini bentuk umum dari method tersebut. final int getpriority () Estu Sinduningrum, ST, MT

45 Contoh Program Contoh program berikut ini akan mendemonstrasikan cara kerja dua buah thread yang memiliki prioritas berbeda. Prioritas dari thread pertama akan di-set dengan nilai dua di atas prioritas normal (Thread.NORM_PRIORITY), sedangkan prioritas thread kedua di-set dengan nilai dua di bawah prioritas normal. Masing-masing thread akan mengeksekusi sebuah pengulangan, dan keduanya akan dijalankan selama 5 detik serta dihentikan secara bersama-sama. Melalui cara ini, kita akan melihat bahwa thread dengan prioritas lebih tinggi akan menghasilkan jumlah pengulangan yang lebih banyak dibandingkan dengan jumlah pengulangan yang dihasilkan Estu Sinduningrum, ST, MT

46 Latihan 106

47 class MyThread implements Runnable { private Thread t; private long n; // jumlah pengulangan yang dihasilkan private boolean selesai = false; MyThread(String nama, int prioritas) { t = new Thread(this, nama); t.setpriority(prioritas); n = 0; } public void run() { while (!selesai) { n++; } } public void start() { t.start(); } public void stop() { selesai = true; } public long getn() { return n; } public Thread getthread() { return t; } Estu } Sinduningrum, ST, MT class DemoPrioritasThread { public static void main(string[] args) throws InterruptedException { MyThread t1 = new MyThread("prioritas-tinggi", Thread.NORM_PRIORITY + 2); MyThread t2 = new MyThread("prioritas-rendah", Thread.NORM_PRIORITY - 2); t1.start(); t2.start(); // mengistirahatkan thread utama selama 5 detik Thread.sleep(5000); t1.stop(); t2.stop(); t1.getthread().join(); t2.getthread().join(); System.out.println("Jumlah pengulangan pada " + t1.getthread().getname() + ": " + t1.getn()); System.out.println("Jumlah pengulangan pada " + t2.getthread().getname() + ": " + t2.getn()); } }

48 Estu Sinduningrum, ST, MT Sinkronisasi Thread-thread dalam sebuah program saling membagi ruang memori,ini artinya thread-threod tersebut juga dapat saling berbagi resource. Pada saat dua atau lebih thread perlu mengakses resource yang di share, maka dibutuhkan suatu cara untuk meyakinkan bahwa, resource tersebut hanya akan digunakan oleh satu buah thread pada satu waktu tertentu. Cara atau proses yang digunakan untuk mengatasi hal ini disebut dengan sinkronisasi.

49 Sinkronisasi Apabila method dari suatu objek hanya ingin dieksekusi oleh satu thread dalam suatu waktu tertentu, maka kita harus mendeklarasikan method tersebut dengan kata kunci synchronizea. Berikut ini contoh bentuk deklarasinya: public synchronized void test() { // kode yang akan dilakukan } Estu Sinduningrum, ST, MT

50 Latihan 107

51 class TestKelas { public synchronized void test(string s) { System.out.print("[" + s); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printstacktrace(); } System.out.println("]"); } } class MyThread implements Runnable { private TestKelas obj; private Thread t; private String msg; MyThread(TestKelas obj, String msg) { t = new Thread(this); this.obj = obj; this.msg = msg; t.start(); } Estu Sinduningrum, ST, MT public void run() { obj.test(msg); } } class DemoSinkronisasiMethod { public static void main(string[] args) throws InterruptedException { TestKelas tk = new TestKelas(); MyThread t1 = new MyThread(tk, "Contoh"); MyThread t2 = new MyThread(tk, "Sinkronisasi"); MyThread t3 = new MyThread(tk, "Method"); } }

52 BIok untuk Sinkronisasi Meskipun pembuatan method yang di-sinkronisasi (synchronized method) mudah diimplementasikan untuk melakukan proses sinkronisasi antar-thread, akan tetapi cara tersebut tidak selalu dapat diterapkan ke dalam setiap kasus. Sebagai contoh kasus, Anda ingin menggunakan kelas yang Anda download dari internet, sedangkan kode dari kelas tersebut tidak diberikan. Estu Sinduningrum, ST, MT

53 BIok untuk Sinkronisasi Bagaimana Anda dapat melakukan sinkronisasi terhadap suatu method yang terdapat pada kelas tersebut dari thread-thread yang kita buat? Untuk menambahkan kata kunci synchronized pada deklarasi method di dalam kelas tersebut, ini jelas tidak mungkin karena tidak ada kode program untuk kelas tersebut. Lantas, apa solusinya? Estu Sinduningrum, ST, MT

54 Estu Sinduningrum, ST, MT BIok untuk Sinkronisasi Lantas, apa solusinya? Untuk menjawab kasus semacam ini, Java telah menyediakan cara yang mungkin lebih bersifat fleksibel, yaitu dengan membuat sebuah blok sinkronisasi. Anda hanya perlu meletakkan method dari kelas tersebut di dalam blok sinkronisasi. Adapun bentuk umum dari pembuatan blok sinkronisasi sebagai berikut : synchronized(object) { / / statemen- statemen y ang akan di- sinkronisasi }

55 Latihan 108

56 class TestKelas { // di sini, method test() tidak di-sinkronisasi public void test(string s) { System.out.print("[" + s); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printstacktrace(); } System.out.println("]"); } } class MyThread implements Runnable { private TestKelas obj; private Thread t; private String msg; MyThread(TestKelas obj, String msg) { t = new Thread(this); this.obj = obj; this.msg = msg; Estu Sinduningrum, ST, MT t.start(); } public void run() { // membuat blok sinkronisasi synchronized(obj) { // di sini, method test() akan disinkronisasi obj.test(msg); } } } class DemoBlokSinkronisasi { public static void main(string[] args) throws InterruptedException { TestKelas tk = new TestKelas(); MyThread t1 = new MyThread(tk, "Contoh"); MyThread t2 = new MyThread(tk, "Sinkronisasi"); MyThread t3 = new MyThread(tk, "Method"); } }

57 TERIMA KASIH

Java Progamming Multithreading

Java Progamming Multithreading Java Progamming Multithreading Disampaikan pada mata kuliah Object Oriented Programming Eddy Muntina Dharma,ST,MT Jurusan Teknik Informatika STT Telkom aguseddy@stttelkom.ac.id Konsep Dasar Multitasking

Lebih terperinci

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

PERTEMUAN VII Multithreaded Programming. Praktikan mampu membuat program sederhana mengenai threading PERTEMUAN VII Multithreaded Programming TUJUAN PRAKTIKUM Praktikan mampu membuat program sederhana mengenai threading 7.1 Pengertian Multithreading dan Thread Multithreading adalah suatu kemampuan yang

Lebih terperinci

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

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs. Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs. Thread adalah sebuah pengontrol aliran program dengan menggunakan kendali tunggal. Suatu proses dikontrol oleh paling sedikit satu thread.

Lebih terperinci

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

BAB IX THREAD Thread ClassThread namavar = new ClassThread(); Namavar.start(); New ClassThread().start(); BAB IX THREAD Thread merupakan kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan tugas tersendiri. Dengan adanya thread, dapat membuat

Lebih terperinci

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

Class Thread juga menyediakan beberapa constants sebagai nilai prioritas. Tabel berikut ini adalah rangkuman dari class Thread. Thread Programming di Java Thread merupakan kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan tugas tersendiri. Dengan adanya thread,

Lebih terperinci

Exception Handling and Multithreading

Exception Handling and Multithreading Pertemuan 7 Halaman 1/1 Pengertian Exception Suatu program apabila mengalami kesalahan akan menghasilkan suatu runtime errors seperti gagal membuka file, suatu program melakukan akses diatas range array

Lebih terperinci

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

BAB 2. Class Thread. Setelah mempelajari modul ini peserta diharapkan dapat: Mengenal Kelas Thread Menggunakan Kelas Thread dalam aplikasi 2.1 Tujuan: BAB 2 Class Thread Setelah mempelajari modul ini peserta diharapkan dapat: Mengenal Kelas Thread Menggunakan Kelas Thread dalam aplikasi 2.2 Mengenal Kelas Thread Salah satu fitur yang tertanam

Lebih terperinci

MENGENAL JAVA SEBAGAI PEMROGRAMAN BERORIENTASI OBJEK DAN IMPLEMENTASI THREAD DI LINGKUNGAN UNIX/ LINUX. Hary Cahyono

MENGENAL JAVA SEBAGAI PEMROGRAMAN BERORIENTASI OBJEK DAN IMPLEMENTASI THREAD DI LINGKUNGAN UNIX/ LINUX. Hary Cahyono MENGENAL JAVA SEBAGAI PEMROGRAMAN BERORIENTASI OBJEK DAN IMPLEMENTASI THREAD DI LINGKUNGAN UNIX/ LINUX Hary Cahyono System Administrator, tifosilinux.wordpress.com Fakultas Manajemen, Universitas Persada

Lebih terperinci

PEMROGRAMAN JAVA : THREAD

PEMROGRAMAN JAVA : THREAD PEMROGRAMAN JAVA : THREAD Asep Herman Suyanto info@bambutechno.com http://www.bambutechno.com Thread merupakan kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam

Lebih terperinci

BAB 2 COLLECTION & THREAD

BAB 2 COLLECTION & THREAD BAB 2 COLLECTION & THREAD 2.1 Pendahuluan Didalam pembuatan game java sering kali kita mendefinisikan banyak object seperti gambar, dan grafik geometri yang begitu banyak, untuk itu dibutuhkan suatu manajemen

Lebih terperinci

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

Mengunci sebuah object: Untuk memastikan bahwa hanya satu thread yang mendapatkan hak akses kedalam method tertentu Sinkronisasi Mengapa menggunakan sinkronisasi threads? Bagaimanapun juga sebuah thread yang berjalan bersama-sama kadang-kadang membutuhkan resource atau method dari luar Butuh untuk berkomunikasi satu

Lebih terperinci

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

Pada pembuatan game di java, sering kali para programer. mendefinisikan banyak object seperti suara, gambar, dan grafik geometri yang BAB 2 COLLECTION & THREAD 2.1 Pendahuluan Pada pembuatan game di java, sering kali para programer mendefinisikan banyak object seperti suara, gambar, dan grafik geometri yang begitu banyak, untuk itu dibutuhkan

Lebih terperinci

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM 1. Praktikan memahami perbedaan objek dan class pada Java. 2. Praktikan memahami konsep berorientasi objek. 3. Praktikan dapat membuat program sederhana dengan

Lebih terperinci

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

PENANGANAN EKSEPSI. class Exc0 { public static void main (String args[]) { int d = 0; int a = 42 / d; } } PENANGANAN EKSEPSI Eksepsi adalah keadaan tidak normal yang muncul pada suatu bagian program pada saat dijalankan. Penanganan eksepsi pada java membawa pengelolaan kesalahan program saat dijalankan kedalam

Lebih terperinci

Kelompok 12. Thread Java

Kelompok 12. Thread Java Kelompok 12 Thread Java Anggota Kelompok Irene Ully Havsa (0606101515 / Kelas B) Mario Ray Mahardika (0606101686 / Kelas A) Salman Salsabila (0606031566 / Kelas B) Komentar umum Secara umum, bab 12 membahas

Lebih terperinci

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

Score: Persentase: % ~ u ~ Generated by Foxit PDF Creator Foxit Software  For evaluation only. Score: 62.666669 Persentase: 78.33 % Generated by Foxit PDF Creator Foxit Software 1. Mengapa terjadi error pada potongan kode berikut ini : ~ u ~ Method setname(string a) tidak dideklarasikan oleh MIDP

Lebih terperinci

PERTEMUAN 7 MULTITHREADED PROGRAMMING

PERTEMUAN 7 MULTITHREADED PROGRAMMING Obyektif Praktikum : Mendefiniskan threads Mengerti perbedaan state dalam threads Mengerti konsep prioritas dalam threads PERTEMUAN 7 MULTITHREADED PROGRAMMING Mengetahui bagaimana menggunakan method didalam

Lebih terperinci

1.Tujuan. 2. Latar Belakang

1.Tujuan. 2. Latar Belakang 1.Tujuan Mendefiniskan threads Mengerti perbedaan state dalam threads Mengerti konsep prioritas dalam threads Mengetahui bagaimana menggunakan method didalam class Thread Membuat sendiri sebuah thread

Lebih terperinci

Network Programming 2010 Pemrograman Multi-Thread

Network Programming 2010 Pemrograman Multi-Thread Network Programming 2010 Pemrograman Multi-Thread Husni husni@if.trunojoyo.ac.id Husni.trunojoyo.ac.id Komputasi.wordpress.com MultiThreading Menurut Free Online Dictionary of Computing (FOLDOC) Berbagi-pakai

Lebih terperinci

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

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo. Waktu Sisa : 2:14:53 1. Dari pilihan berikut ini, item manakah yang memiliki atribut dan behaviour? object class attribute data type method behavior 2. Pilih instruksi yang dapat digunakan dalam method

Lebih terperinci

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

EXCEPTION HANDLING. 1. Mampu menangani eksepsi 2. Mengetahui dan memahami tentang multithreading 3. Dapat membuat program tentang exception handling EXCEPTION HANDLING Obyektif : 1. Mampu menangani eksepsi 2. Mengetahui dan memahami tentang multithreading 3. Dapat membuat program tentang exception handling PENANGANAN EKSEPSI Eksepsi adalah keadaan

Lebih terperinci

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

1. Latar Belakang Didalam pembuatan game java sering kali kita mendefinisikan banyak object seperti gambar, dan grafik geometri yang begitu banyak, 1. Latar Belakang Didalam pembuatan game java sering kali kita mendefinisikan banyak object seperti gambar, dan grafik geometri yang begitu banyak, untuk itu dibutuhkan suatu manajemen yang menangani hal

Lebih terperinci

PERTEMUAN 3 OBJEK DAN CLASS

PERTEMUAN 3 OBJEK DAN CLASS PERTEMUAN 3 OBJEK DAN CLASS Obyektif: Praktikan memahami perbedaan objek dan class pada Java. Praktikan memahami konsep berorientasi objek. Praktikan dapat membuat program sederhana dengan menggunakan

Lebih terperinci

Membuat dan Menggunakan Class

Membuat dan Menggunakan Class Pertemuan 3 Halaman 1/1 Membuat class pada java : Untuk mendefinisikan suatu class pada java digunakan : class ClassName { suatu class dapat terdiri dari - attribute / data field - method Attribute Attribute

Lebih terperinci

Konsep Lanjut Pemrograman Berorientasi Obyek

Konsep Lanjut Pemrograman Berorientasi Obyek Pemrograman Berorientasi Obyek By : Sendi Novianto, S.Kom, M.T Email : to_sendi@yahoo.com Materi Diskusi 1. Konsep Pemrograman dan Paradigmanya Tingkat Bahasa Pemrograman, Paradigma Pemrograman, Tool Pemrograman

Lebih terperinci

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

PEMROGRAMAN BERORIENTASI OBJEK COLLECTION DAN MULTITHREADING. ADAM MUKHARIL BACHTIAR TEKNIK INFORMATIKA UNIKOM PEMROGRAMAN BERORIENTASI OBJEK COLLECTION DAN MULTITHREADING. ADAM MUKHARIL BACHTIAR TEKNIK INFORMATIKA UNIKOM Pemrograman Berorientasi Objek Collection dan Multithreading Adam Mukharil Bachtiar Teknik

Lebih terperinci

Penjebakan Eksepsi. Nur hasanah, M.Cs

Penjebakan Eksepsi. Nur hasanah, M.Cs Penjebakan Eksepsi Nur hasanah, M.Cs Pendahuluan Dalam Java, runtime error (kesalahan-kesalahan yang terjadi pada saat program sedang berjalan) disebut eksepsi. Terdapat 5 buah kata kunci : try,catch,

Lebih terperinci

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

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

Lebih terperinci

PENYELEKSIAN /PERCABANGAN & PERULANGAN Part II. 5 th week Estu Sinduningrum ST,MT

PENYELEKSIAN /PERCABANGAN & PERULANGAN Part II. 5 th week Estu Sinduningrum ST,MT PENYELEKSIAN /PERCABANGAN & PERULANGAN Part II 5 th week Estu Sinduningrum ST,MT Review last week Percabangan Pada java terdapat beberapa percabangan, yaitu : 1. if 2. if-else 3. switch 4. case Penyeleksian

Lebih terperinci

BAB II VARIABEL DAN TIPE DATA

BAB II VARIABEL DAN TIPE DATA BAB II VARIABEL DAN TIPE DATA Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai atau data. Sedangkan Java sendiri dikenal sebagai bahasa pemrograman dengan

Lebih terperinci

2 TIPE DATA DAN VARIABEL

2 TIPE DATA DAN VARIABEL BAB 2 TIPE DATA DAN VARIABEL Kompetensi Dasar dan Indikator : Setelah mengikuti materi kuliah ini mahasiswa mampu menggunakan tipe data dan variable yang ada dalam Java, dengan indikator mahasiswa mampu:

Lebih terperinci

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Abstract Class dan Interface. Viska Mutiawani, M.Sc Abstract Class dan Interface Viska Mutiawani, M.Sc Konsep Penting Abstract class Abstract method Interface Implements Final Static Exception Contoh Polimorfisme Lihat contoh program yang disediakan pada

Lebih terperinci

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

1. Mampu mengimplementasikan thread dalam sebuah aplikasi 2. Memahami kegunaan thread dalam aplikasi 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

Lebih terperinci

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom E-Book PEMROGRAMAN BERORIENTASI OBJEK Disusun Oleh: Arfian Hidayat, S.Kom http://arfianhidayat.com FAKULTAS ILMU KOMPUTER UNIVERSITAS DIAN NUSWANTORO SEMARANG 2013 Daftar Isi Daftar Isi... i Daftar Gambar...

Lebih terperinci

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

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN SEKOLAH TINGGI MANAJEMEN INFORMAA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN Mata Kuliah : KAPITA SELEKTA BAHASA PEMROGRAMAN Kode Mata Kuliah : MI - 15310 Jurusan / Jenjang : S1 SISTEM INFORMASI

Lebih terperinci

PEMAHAMAN DASAR DASAR JAVA

PEMAHAMAN DASAR DASAR JAVA MODUL 1 PEMAHAMAN DASAR DASAR JAVA A. PENGANTAR JAVA Java Standard Development Kit (JDK/SDK) merupakan alat-alat utama bagi programmer untuk membuat dan menjalankan java. Development Kit dapat didownload

Lebih terperinci

Percabangan & Perulangan

Percabangan & Perulangan Struktur Dasar Java Percabangan & Perulangan Object-oriented Programming (OOP) with JAVA 2011/2012 Macam-macam Percabangan if (...) if ( ) else ( ) if ( ) else if ( ) else ( ) switch ( ) Percabangan :

Lebih terperinci

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA Asep Herman Suyanto info@bambutechno.com http://www.bambutechno.com Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai

Lebih terperinci

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM 1 INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM INHERITANCE Pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang direferensi sebagai induk

Lebih terperinci

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar? 1 of 14 2/21/2008 2:34 PM Waktu Sisa : 0:43:58 1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar? 2 of 14 2/21/2008 2:34 PM 2. Pernyataan manakah yang benar mengenai

Lebih terperinci

Elemen Dasar Dalam Bahasa Java

Elemen Dasar Dalam Bahasa Java Elemen Dasar Dalam Bahasa Java 1. Kata Kunci Kata kunci adalah kata-kata yang didefenisikan oleh compiler dan memiliki arti dan tujuan spesifik. Java tidak mengizinkan kata-kata tersebut dipakai sebagai

Lebih terperinci

BONUS. Dasar Java Mobile. Mengenal Java Mobile Mengenal MIDlet Mobile Grafis Mobile Animasi Latihan Soal

BONUS. Dasar Java Mobile. Mengenal Java Mobile Mengenal MIDlet Mobile Grafis Mobile Animasi Latihan Soal BONUS Dasar Java Mobile Mengenal Java Mobile Mengenal MIDlet Mobile Grafis Mobile Animasi Latihan Soal Mengenal Java Mobile Dasar Java Mobile Java Mobile (J2ME) atau singkatan dari Java 2 Mobile Edition

Lebih terperinci

Gambar 1: Hirarki class

Gambar 1: Hirarki class BAB 11 Pewarisan, Polimorfisme, dan Interface 11.1 Tujuan Dalam bagian ini, kita akan membicarakan bagaimana suatu class dapat mewariskan sifat dari class yang sudah ada. Class ini dinamakan subclass dan

Lebih terperinci

IKG2I4 / Software Project I

IKG2I4 / Software Project I IKG2I4 / Software Project I Mahmud Imrona, M.T. Izzatul Ummah, M.T. Kelompok Keahlian Algoritma dan Komputasi LECTURE NOTE WEEK 6 1 3/11/2015 WEEK 6 Abstract Class Interface Exception 2 3/11/2015 ABSTRACT

Lebih terperinci

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if Struktur kontrol keputusan pernyata-an dari Java yang mengijinkan user untuk memilih dan mengeksekusi blok kode spesifik dan mengabaikan blok kode yang lain. Tipe : If switch Tipe if : If tanpa else (if)

Lebih terperinci

Obyektif : KONTROL ALUR PROGRAM

Obyektif : KONTROL ALUR PROGRAM KONTROL ALUR PROGRAM Obyektif : 1. Mengetahui dan memahami tentang percabangan (seleksi) 2. Mengetahui dan memahami tentang perulangan (iterasi) 3. Dapat membuat program tentang control alur program PERCABANGAN

Lebih terperinci

Bahasa Pemrograman :: Inheritance

Bahasa Pemrograman :: Inheritance Bahasa Pemrograman :: Inheritance Julio Adisantoso ILKOM IPB 17 Mei 2010 Class Person Class Student Class Person public class Person { private String name; private String address; private int age; //constructors

Lebih terperinci

PRAKTIKUM 7 DASAR INPUT OUTPUT

PRAKTIKUM 7 DASAR INPUT OUTPUT PRAKTIKUM 7 DASAR INPUT OUTPUT A. TUJUAN 1. Memahami dasar-dasar input-ouput dalam pemrograman Java 2. Memahami prinsip kerja stream 3. Memahami penggunaan console dalam proses input-output B. DASAR TEORI

Lebih terperinci

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

Pewarisan Sifat Objek. Nur Hasanah, M.Cs Pewarisan Sifat Objek Nur Hasanah, M.Cs Membuat Kelas Turunan (Subclass) Java menyediakan kata kunci extends yang digunakan untuk penurunan terhadap kelas. Dalam terminologi Java, kelas induk yang diturunkan

Lebih terperinci

Inheritance dan Kata Kunci static

Inheritance dan Kata Kunci static Inheritance dan Kata Kunci static PEWARISAN (INHERITANCE) Salah satu fitur yang paling kuat dalam OOP adalah penggunaan kode kembali (code reuse). Sekali sebuah prosedur dibuat, maka kita bisa menggunakannya

Lebih terperinci

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

IF PEMROGRAMAN LANJUT EXCEPTION. Oleh : Andri Heryandi, M.T. IF34348 - PEMROGRAMAN LANJUT EXCEPTION 09 Oleh : Andri Heryandi, M.T. MATERI HARI INI Exception Penanganan Exception Penanganan Exception satu catch Penanganan Exception dengan banyak catch Pengaganan

Lebih terperinci

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO Ramos Somya Identifier Merupakan nama yang digunakan untuk menamai class, variabel, method dan interface. Aturan: - Tidak ada batasan

Lebih terperinci

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final 1.Tujuan Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final 2. Latar Belakang Dalam bagian ini, kita akan membicarakan bagaimana suatu class

Lebih terperinci

Pewarisan, Polimorfisme, dan Interface

Pewarisan, Polimorfisme, dan Interface Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, Anda

Lebih terperinci

TUGAS SISTEM TERDISTRIBUSI MULTYTHREAD EKO SURIPTO P

TUGAS SISTEM TERDISTRIBUSI MULTYTHREAD EKO SURIPTO P TUGAS SISTEM TERDISTRIBUSI MULTYTHREAD EKO SURIPTO P. 33301 Konsep thread Sebuah proses adalah suatu program yang sedang dieksekusi. Proses lebih dari sebuah kode program tetapi juga mencakup program counter,

Lebih terperinci

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK BAB 1 PEMROGRAMAN BERORIENTASI OBJEK Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan

Lebih terperinci

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan Tujuan JAVA Education Network Indonesia Inheritance,,& Interfaces Pengenalan Pemrograman 1 Pada akhir bab, Anda diharapkan mampu untuk Menjelaskan super class dan subclass Meng-override method dari superclass

Lebih terperinci

PRAKTIKUM 6 EXCEPTION

PRAKTIKUM 6 EXCEPTION PRAKTIKUM 6 EXCEPTION A. TUJUAN Memahami konsep, tipe, dan cara penanganan eksepsi. Memahami cara melontar dan menangkap eksepsi. Memahami konsep try catch dan catch secara bertingkat. Memahami klausa

Lebih terperinci

BAHASA PEMROGRAMAN JAVA

BAHASA PEMROGRAMAN JAVA MI1274 Algoritma & Pemrograman Lanjut Genap 2015-2016 BAHASA PEMROGRAMAN JAVA Disusun Oleh: Reza Budiawan Untuk: Tim Dosen Algoritma & Pemrograman Lanjut Hanya dipergunakan untuk kepentingan pengajaran

Lebih terperinci

Pengenalan JavaScript

Pengenalan JavaScript Pengenalan JavaScript Tujuan - Mahasiswa memahami konsep dasar Javascript - Mahasiswa mampu memahami cara menggunakan Javascript - Mahasiswa mampu memahami dasar variabel di Javascript - Mahasiswa mampu

Lebih terperinci

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class Tessy Badriyah, SKom. MT. http://lecturer.eepis-its.edu/~tessy Pendahuluan Pada bagian ini, kita akan membuat program berbasis obyek menggunakan

Lebih terperinci

Cara Membaca File Text di JAVA

Cara Membaca File Text di JAVA Cara Membaca File Text di JAVA Memanipulasi file teks adalah keterampilan yang akan melayani Anda dengan baik dalam karir pemrograman Anda. Pada bagian ini, Anda akan belajar bagaimana untuk membuka dan

Lebih terperinci

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR BAB 3 TYPE DATA, VARIABLE DAN OPERATOR Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai atau data. Sedangkan Java sendiri dikenal sebagai bahasa pemrograman

Lebih terperinci

OBJECT ORIENTED PROGRAMMING (OOP)

OBJECT ORIENTED PROGRAMMING (OOP) IF34348 - PEMROGRAMAN LANJUT OBJECT ORIENTED PROGRAMMING (OOP) 06 Oleh : Andri Heryandi, M.T. LATIHAN MEMBUAT CLASS Oleh : Andri Heryandi, M.T. 2 CLASS KARAKTER Class ini digunakan untuk objek-objek yang

Lebih terperinci

BAB VII. CLASS DAN OBJECT

BAB VII. CLASS DAN OBJECT BAB VII. CLASS DAN OBJECT 7.1. Pengertian Class dan Object 7.1.1. Class Class adalah struktur dasar dari OOP (Object Oriented Programming). Terdiri dari dua tipe yaitu : field (attribute/property) dan

Lebih terperinci

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni Enkapsulasi u Dapat dikatakan sebagai penyembunyian data/informasi (Information hiding). u Implementasi ke bahasa Pemrograman

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK

PEMROGRAMAN BERORIENTASI OBJEK PEMROGRAMAN BERORIENTASI OBJEK Materi III Class dan Object Maksud dan tujuan Memahami Pembuatan Kelas, Objek dan method Dapat menerapkan kelas, objek, dan method kedalam bahasa pemrograman java Apapun

Lebih terperinci

Pemrograman Berorientasi. Abstract & Interface

Pemrograman Berorientasi. Abstract & Interface Pemrograman Berorientasi Obyek Abstract & Interface anton@ukdw.ac.id Latar Belakang Kita sudah mengenal pewarisan, bahwa class anak akan selalu mendapat warisan atribut dan behavior dari class induk Class

Lebih terperinci

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

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance MODUL 3 Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM 1. Praktikan dapat memahai bagaimana suatu class dapat mewariskan sifat dari class yang sudah ada. 2. Praktikan mampu mendefinisikan superclass

Lebih terperinci

Bab Tujuan. 9.2 Definisi dan dasar-dasar thread Definisi Thread

Bab Tujuan. 9.2 Definisi dan dasar-dasar thread Definisi Thread Bab 9 Threads 9.1 Tujuan Pada bab-bab sebelumnya Anda terbiasa untuk membuat program yang berururutan/sekuensial. Sebuah program sekuensial berarti sebuah program yang hanya memiliki satu aliran eksekusi.

Lebih terperinci

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD Disusun oleh : Nama : Ach Fauzan NIM : 135150201111002 Asisten 1 : Fadel Trivandi Dipantara Asisten 2 : Karid Nurvenus Asisten 3 : Apiladosi

Lebih terperinci

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan) Pertemuan VI Inheritance (Pewarisan) 6.1. Tujuan Mahasiswa diharapkan dapat: 1. Memahami konsep inheritance dalam pemecahan permasalahan. 2. Mengimplementasikan konsep inheritance dalam bentuk program.

Lebih terperinci

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

Monitor. Process Synchronization. SISTIM OPERASI (IKI-20230) ProcessSynchronization Ch. 6. Johny Moningka Monitor SISTIM OPERASI (IKI-20230) ProcessSynchronization Ch. 6 Johny Moningka (moningka@cs.ui.ac.id) Fakultas Ilmu Komputer Universitas Indonesia Semester 2000/2001 Process Synchronization Background

Lebih terperinci

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs Object Oriented Programming (OOP) adalah inti dari pemrograman Java. Dalam OOP, setiap objek didefinisikan sebagai

Lebih terperinci

Bab 26. Readers/Writers

Bab 26. Readers/Writers Bab 26. Readers/Writers Achmad Hariyadi 0606031433 Indra Firmancahya 0606101502 Komentar Umum: Secara umum bab ini sudah menjelaskan tentang readers/writers bahwa semafor tetap akan digunakan dalam program

Lebih terperinci

DASAR PEMOGRAMAN JAVA

DASAR PEMOGRAMAN JAVA DASAR PEMOGRAMAN JAVA Pertemuan ke-2 Oleh: Winda Aprianti Tipe Data Bilangan Karakter Kata atau Kalimat Boolean Literal merepresentasikan nilai suatu tipe, dimana tipe itu sendiri menjelaskan bagaimana

Lebih terperinci

SUMBER BELAJAR PENUNJANG PLPG

SUMBER BELAJAR PENUNJANG PLPG SUMBER BELAJAR PENUNJANG PLPG 2017 [TIK] BAB VIII PEMROGRAMAN BERORIENTASI OBJEK [Alfa Faridh Suni] KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN DIREKTORAT JENDERAL GURU DAN TENAGA KEPENDIDIKAN 2017 BAB VIII

Lebih terperinci

ILUSTRASI KLASIK: BOUNDED BUFFER

ILUSTRASI KLASIK: BOUNDED BUFFER ILUSTRASI KLASIK: BOUNDED BUFFER Oleh kelompok 54.4: Reza Lesmana (1203000978) Suryamita Harindrari (1203001087) Fitria Rahma Sari (1203007034) Kritik dapat dikirimkan melalui rezalesmana@mhs.cs.ui.ac.id

Lebih terperinci

Percobaan 6 Exception

Percobaan 6 Exception Percobaan 6 Exception Pokok Bahasan Penanganan Eksepsi Menangkap Eksepsi Catch Secara bertingkat Melontarkan Eksepsi Melontarkan kembali Eksepsi Klausa Throws Tujuan Belajar Dengan praktikum ini mahasiswa

Lebih terperinci

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK Deskripsi Singkat Praktikum pemrograman berorientasi objek adalah praktikum yang menggunakan bahasa Java sebagai bantuan dalam memahami konsep pemrograman

Lebih terperinci

ARRAY. 7 th week Estu Sinduningrum ST,MT

ARRAY. 7 th week Estu Sinduningrum ST,MT ARRAY 7 th week Estu Sinduningrum ST,MT Aplikasi 2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida bilangan. Puncak piramida

Lebih terperinci

PERCOBAAN 6 EXCEPTION

PERCOBAAN 6 EXCEPTION PERCOBAAN 6 EXCEPTION Pokok Bahasan Penanganan Eksepsi Menangkap Eksepsi Catch Secara bertingkat Melontarkan Eksepsi Melontarkan kembali Eksepsi Klausa Throws Tujuan Belajar Dengan praktikum ini mahasiswa

Lebih terperinci

Praktikum 3 Konsep Class, Attribute dan Method

Praktikum 3 Konsep Class, Attribute dan Method Praktikum 3 Konsep Class, Attribute dan Method Dosen : Ir. Nanang Syahroni M.Kom Pokok Bahasan Konsep pemprograman bahasa Java Konsep Object Oriented Programming (OOP) Deklarasi pemprograman OOP dengan

Lebih terperinci

Pemrograman Berorientasi. Class dan Obyek 2

Pemrograman Berorientasi. Class dan Obyek 2 Pemrograman Berorientasi Obyek Class dan Obyek 2 anton@ukdw.ac.id Method main pada Java public static void main(string[] args) Merupakan bagian yang dieksekusi oleh program Java Sifat: public, static,

Lebih terperinci

Bahasa Pemrograman :: Polimorfism and Abstraction

Bahasa Pemrograman :: Polimorfism and Abstraction Bahasa Pemrograman :: and Abstraction Julio Adisantoso ILKOM IPB 24 Mei 2010 Access Modifiers Access Modifiers Accessor Methods Mutator Methods Inheritance Akses Default (Package Accessibility) Tidak terdapat

Lebih terperinci

I. Tujuan Instruksional Umum Komunikasi antar objek pada kelas yang berbeda Memahami berbagai macam modifier dan karakteristiknya II.

I. Tujuan Instruksional Umum Komunikasi antar objek pada kelas yang berbeda Memahami berbagai macam modifier dan karakteristiknya II. I. Tujuan Instruksional Umum Komunikasi antar objek pada kelas yang berbeda Memahami berbagai macam modifier dan karakteristiknya II. Bahan Kajian Setelah kita berproses dalam belajar Algoritma dan pemrograman

Lebih terperinci

Pemrograman Berorientasi Object

Pemrograman Berorientasi Object Pemrograman Berorientasi Object Apa itu Exception? Singkatan dari Exceptional Events. Kesalahan (errors) yang terjadi saat runtime, menyebabkan gangguan pada alur eksekusi program. Contoh Error pembagian

Lebih terperinci

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut: KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut: a. Abstraksi (abstraction) b. Pembungkusan (encapsulation) c. Pewarisan (inheritence)

Lebih terperinci

Polymorphism (Polimorfisme)

Polymorphism (Polimorfisme) Polymorphism (Polimorfisme) Pemrograman Berorientasi Objek Minggu 7 Alfa Faridh Suni Polymorphisme * Poly + morph = banyak + bentuk * Polymorphism yang berarti satu objek dapat memiliki banyak bentuk yang

Lebih terperinci

Inheritance (Pewarisan) Pengertian dasar inheritance

Inheritance (Pewarisan) Pengertian dasar inheritance Inheritance (Pewarisan) Pengertian dasar inheritance Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP. Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat

Lebih terperinci

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita PEMROGRAMAN JAVA Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita Education is not the filling of a pail, but the lighting of a fire. (William

Lebih terperinci

//PROGRAM 9-8. int[] A = new int[5]; // SALAH, karena tidak terdapat. class BanyakEksepsi { indeks ke-5. public static void test(int a, int b) { try {

//PROGRAM 9-8. int[] A = new int[5]; // SALAH, karena tidak terdapat. class BanyakEksepsi { indeks ke-5. public static void test(int a, int b) { try { //PROGRAM 9-8 int[] A = new int[5]; class BanyakEksepsi { public static void test(int a, int b) { int c = a / b; A[5] = 100; indeks ke-5 // SALAH, karena tidak terdapat System.out.println("Hasil bagi:

Lebih terperinci

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

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini: 1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini: Program dapat di-compile dan output-nya adalah 5 Program dapat di-compile dan output-nya adalah 6 Program akan

Lebih terperinci

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi TPI4202 e-tp.ub.ac.id Lecture 4 Mas ud Effendi Menampilkan informasi kepada user lewat display Dengan perintah print dan println print: menampilkan output (kursor tetap di baris yang sama) println: menampilkan

Lebih terperinci

TUGAS Mata Kuliah : Sistem Terdistribusi

TUGAS Mata Kuliah : Sistem Terdistribusi TUGAS Mata Kuliah : Sistem Terdistribusi OLEH : Nama : TARSO NIM : 090103193 Kelas : C (Week End) Dosen : Ardy Mulya Iswardani, S.Kom Prodgi : S1 Teknik Informatika SEKOLAH TINGGI MANAJEMEN INFORMATIKA

Lebih terperinci

1. Tujuan. 2. Latar Belakang. 3. Percobaan. Modul Praktikum TiledLayer

1. Tujuan. 2. Latar Belakang. 3. Percobaan. Modul Praktikum TiledLayer 1. Tujuan Menggambar dan Mengetahui fungsi TiledLayer Membuat object dari class TiledLayer Menyusun graphics dari TiledLayer dan di masukkan dalam LayerManager Memanipulasi graphics dengan menggunakan

Lebih terperinci

MODUL III ARRAYLIST TUGAS PENDAHULUAN

MODUL III ARRAYLIST TUGAS PENDAHULUAN MODUL III ARRAYLIST TUGAS PENDAHULUAN 1. Jelaskan pengertian ArrayList? 2. Jelaskan perbedaan Array dan ArrayList? 3. Tuliskan contoh sintak ArrayList! 1. TUJUAN Mahasiswa dapat memahami konsep ArrayList

Lebih terperinci

Badiyanto, S.Kom., M.Kom. PBO java

Badiyanto, S.Kom., M.Kom. PBO java Badiyanto, S.Kom., M.Kom PBO java Apa yang Disebut Java? Bahasa pemrograman berorientasi objek murni yang dibuat berdasarkan kemampuankemampuan terbaik bahasa pemrograman objek sebelumnya (C++, Ada, Simula).

Lebih terperinci

Modul Praktikum 3 Pemograman Berorientasi Objek

Modul Praktikum 3 Pemograman Berorientasi Objek Modul Praktikum 3 Pemograman Berorientasi Objek 1. Judul : Kontrol Keputusan dan Pengulangan 2. Tujuan Percobaan : Diakhir praktikum, mahasiswa diharapkan mampu : Menggunakan struktur kontrol keputusan

Lebih terperinci

PRAKTIKUM 5 PAKET, IMPORT DAN INTERFACE

PRAKTIKUM 5 PAKET, IMPORT DAN INTERFACE A TUJUAN PRAKTIKUM 5 PAKET, IMPORT DAN INTERFACE Memahami konsep dan cara mendeklarasikan paket pada bahasa pemrograman java Memahami cara menggunakan Import Memahami pengertian, cara mendeklarasikan,

Lebih terperinci