Konsep Lanjut Pemrograman Berorientasi Obyek

dokumen-dokumen yang mirip
PERTEMUAN 7 MULTITHREADED PROGRAMMING

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

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

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

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

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

Thread. 16 th week Estu Sinduningrum ST,MT

Exception Handling and Multithreading

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

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

PEMROGRAMAN JAVA : THREAD

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

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

Praktikum 6 Abstract, Interface, Overloading, Overriding, dan Package

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

Java Progamming Multithreading

Jobsheet 09. Overloading and Overriding Method

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

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

Network Programming 2010 Pemrograman Multi-Thread

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

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

Kelompok 12. Thread Java

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

TUGAS Mata Kuliah : Sistem Terdistribusi

Pemrograman Berbasis Objek (Polimorfisme)

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

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

Konsep Proses. Proses adalah suatu program yang sedang diesekusi (running) Pada saat proses berlangsung :

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

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

PEMOGRAMAN JAVA. Yoannita, S.Kom. Class(ii) [Constructor] [keyword this] Modifier Passing parameter [by value] [by references]

PRAKTIKUM I Class dan Obyek

BAB 4. SINKRONISASI & DEADLOCK

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

Object Oriented Programming (OOP) --Inheritance- Saniati STMIK Teknokrat, Bandar Lampung

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

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

BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

TUGAS SISTEM TERDISTRIBUSI MULTYTHREAD EKO SURIPTO P

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

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

PRAKTIKUM OBJECT ORIENTED PROGRAMING

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

PROSES DAN THREAD. : Anggo Luthfi Yunanto. Nim : : sistem informasi

Pertemuan 11 Object Oriented Program

Abstract Class dan Interface. Viska Mutiawani, M.Sc

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

Sistem Operasi. Proses dan Thread

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Berorientasi Object

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

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

KONSEP PROSES STATUS PROSES

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

Recap. Proses. Proses. Multiprogramming. Multiprocessing 9/16/2016. Ricky Maulana Fajri

Tutorial FDM Nurul Huda 2008, bundled by samsonasik. Modul Java 1

MODUL 2 Constructor. Tujuan: Mahasiswa dapat mengenal dan memahami konsep constructor dan overloading constructor

Laporan Tugas Scheduling Pengantar Sistem Operasi

SATUAN ACARA PERKULIAHAN (SAP) Kuliah mimbar Papan tulis dan LCD Proyektor

Object Oriented Programming 1

KONTRAK KULIAH. A. Deskripsi. Mata kuliah ini menjelaskan konsep pemrograman berbasis objek, dengan menggunakan class.

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Konsep Dasar Pemrograman Berorientasi Objek

Pemrograman Berorientasi Objek

SILABUS MATA KULIAH PEMROGRAMAN JAVA

Membuat dan Menggunakan Class

INTERAKSI ANTAR OBJECT

Bahasa Pemrograman :: Polimorfism and Abstraction

BAB 2 COLLECTION & THREAD

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

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

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

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

PEMROGRAMAN BERORIENTASI OBJEK LANJUT

UNIVERSITAS GUNADARMA

1.Proses control block dalam istilah lain Taks controlling block, Taks struct, atau Switchframe. Jelaskan dan berikan gambaran proses control block?

1.Tujuan. 2. Latar Belakang

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

RENCANA PROGRAM KEGIATAN PEMBELAJARAN SEMESTER (RPKPS) BAHASA BASIC

MINGGU V : PBO (PEWARISAN)

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

LAPORAN RESMI INHERITANCE

IKG2I4 / Software Project I

Polymorphism (Polimorfisme)

Pemrograman Berorientasi Objek Danu Wira Pangestu

Bab 26. Readers/Writers

SUMBER BELAJAR PENUNJANG PLPG

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

Bahasa Pemrograman 2.

RENCANA PEMBELAJARAN SEMESTER (RPS)

Pertemuan4 Konsep Object Oriented Programming pada Python

Transkripsi:

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 2. Konsep Dasar Pemrograman Berorientasi Obyek: Kelas (Class), Obyek (Object), Pengkapsulan (Encapsulation), Pewarisan (Inheritance), Polymorphisme 3. Konsep Lanjut Pemrograman Berorientasi Obyek: Constructor, Destructor, Overloading, Overriding, Keyword This,, Package, Interface, Exception By : Sendi Novianto, S.Kom, M.T. 2 Konsep Lanjut Pemrograman Berorientasi Obyek By : Sendi Novianto, S.Kom, M.T. 3 By : Sendi Novianto, S.Kom, M.T. 4? Keuntungan Thread bersifat lightweight, sedangkan proses lebih berat. Perlu diketahui bahwa proses adalah program yang sedang berada di memory atau processor, sedang dieksekusi. Thread dapat diartikan sebagai anak dari proses. Thread-thread berbagi pakai ruang alamat yang sama dan karena itu dapat berbagi pakai data dan kode (instruksi) Context switching antar thread biasanya lebih murah daripada antar proses. Biaya komunikasi antar thread relatif lebih rendah daripada komunikasi antar proses. Thread memungkinkan task-task berbeda dikerjakan secara konkuren. Ada dua macam thread dalam Java, yaitu : Daemon thread, merupakan thread yang siklus hidupnya tergantung pada thread utama. Apabila thread utama berakhir maka otomatis threadthread daemon juga berakhir. Untuk menjadikan suatu thread menjadi daemon thread, gunakan method setdaemon(true) User thread, apabila thread utama berakhir maka user thread akan terus dijalankan. By : Sendi Novianto, S.Kom, M.T. 5 By : Sendi Novianto, S.Kom, M.T. 6 1

Daur Hidup Thread Newborn Runnable Running Blocked Dead Newborn thread diinstantiasi, sebuah ruangan di telah dialokasikan untuk thread ini dan telah menyelesaikan tahap inisialisasi. Pada state ini, timerthread belum masuk dalam skema penjadwalan. Thread coba = new Thread ( ); By : Sendi Novianto, S.Kom, M.T. 7 By : Sendi Novianto, S.Kom, M.T. 8 Runnable Sebuah thread berada dalam skema penjadwalan akan tetapi dia tidak sedang beraksi.. coba.start() Running Pada state ini, thread sedang beraksi. Jatah waktu beraksi ditentukan oleh thread scheduler. Thread yang berada dalam state ini dapat juga lengser secara sukarela, dan masuk kembali ke status runnable, sehingga thread lain yang sedang menunngu giliran memperoleh kesempatan untuk beraksi. Tindakan thread yang lengser secara sukarela disebut dengan yield-ing. public void run ( ){ Thread.yield(); } By : Sendi Novianto, S.Kom, M.T. 9 By : Sendi Novianto, S.Kom, M.T. 10 Blocked Pada tahap ini thread sedang tidak beraksi dan diabaikan dalam penjadwalan. Suatu thread terblok jika : Thread itu tidur untukjangka waktu tertentu. Thread.sleep(3000); // tidur selama 3000milisecond = 3 menit. Thread itu di-suspend( ) Thread yang ter-suspend bisa masuk kembali ke ruunable bila ia di resume. timerthread.suspend( ); // thread memasuki state blok timerthread.resume( ); // thread memasuki state runnable Thread tersebut memanggil method wait( ) dari suatu objek yang sedang ia kunci. Thread tersebutbisa kembalike ruunablebila ada thread lain yang memanggil method notify( ) ataunotifyall( ) dariobjektersebut. Bila thread ini menunggu selesainyaaktivitasyang berhubungandengani/o. Bila thread mencobamengaksescritical section darisuatu objekyang sedangdikunci oleh thread lain. Critical section adalah segmen dalam kode, bisa berupa method maupun blok dimana beberapa thread yang berbeda mengakses objek yang sama. By : Sendi Novianto, S.Kom, M.T. 11 Dead Suatu thread secara otomatis disebut mati bila method run()-nya sudah diselesaikan. Suatu thread juga bisa dead bila ia di stop( ). By : Sendi Novianto, S.Kom, M.T. 12 2

Untuk mendefinisikan thread ada dua cara Membuat subclass dari Thread Mengimplementasikan Interface Runnable. Thread dengan membuat subclass dari java.lang.thread : Out program diatas Program akan memberikan kluaran yang berbeda tiap kali eksekusi. Misal : Thread[main,5,main] Thread[Threadku,5,main] AAAAAAAABBCCCCBCABBCCABBBBCCBC AABBBB By : Sendi Novianto, S.Kom, M.T. 13 By : Sendi Novianto, S.Kom, M.T. 14 By : Sendi Novianto, S.Kom, M.T. 15 Thread dengan mengimplementasikaninterface Runnable Bentuk : Thread objek = new Thread(Objekrunnable,<String name>); Objek.start(); atau new Thread(Objekrunnable,<String name>).start(); Contoh : Output sama dengan contoh program pertama. ket : untuk menjalankan thread, lakukan dengan memanggil method start(). Saat start() dijalankan maka sebenarnya mehod run() dari class dijalankan. By : Sendi Novianto, S.Kom, M.T. 16 By : Sendi Novianto, S.Kom, M.T. 17 Sinkronisasi Satu atau lebih thread membutuhkan akses yang hampir bersamaan ke suatu sumber daya terbagi, maka thread-thread tersebut perlu sangat memperhatikan agar hanya ada satu yang mengakses dalam satu saat. Java menyediakan dukungan tingkat bahasa yang unik untuk sinkronisasi yang disebut monitor. Monitor adalah suatu objek yang digunakan sebagai kunci eksklusif untuk kepentingan bersama. Cara untuk memasuki suatu monitor objek adalah dengan memanggil suatu method yang ditandai dengan kata kunci synchronize. Bentuk : synchronize(<object>) { //satemen yang akan disinkronisasikan } By : Sendi Novianto, S.Kom, M.T. 18 3

Contoh Synchronized pertama out : ABC1 2 3 By : Sendi Novianto, S.Kom, M.T. 19 By : Sendi Novianto, S.Kom, M.T. 20 By : Sendi Novianto, S.Kom, M.T. 21 Contoh Synchronized pertama Ini disebabkan tidak adanya sesuatu yang menghentikan ketiga thread untuk memanggil method yang sama pada objek yang sama. Bila kita tambahkan kata kunci synchronized menjadi : class hasil { synchronized static void cetak (String srt1,string str2) { } Out menjadi : A1 B2 C3 By : Sendi Novianto, S.Kom, M.T. 22 Komunikasi Thread Java memasukkan suatu mekanisme antar-proses yang elegan berupa method wait, notify, dan notifyall. Method-method ini diimplementasikan sebagai method-method final pada objek sehingga semua class memilikinya. Ketiga method tersebut hanya boleh dipanggil dari dalam method synchronized. wait : memberitahukan thread yang berlaku untuk menyerahkan monitor dan beristirahat sampai suatu jalinan lain memasuki monitor. notify: membangunkan jalinan pertama yang memanggil wait pada objek yang sama. notifyall:membangunkan semua objek yang memanggil wait pada objek yang sama. Thread dengan prioritas tertinggi yang bangun akan jalan terlebih dahulu. By : Sendi Novianto, S.Kom, M.T. 23 By : Sendi Novianto, S.Kom, M.T. 24 4

Method class thread : Thread.currentThread() menghasilkan objek thread berupa thread yang sedang berjalan. Thread.yield() Menyebabkan runtime mengalihkan konteks dari thread yang berlaku ke thread lain yang tersedia dan dapat dijalankan. Thread.sleep(int n) Menyebabkan thread yang berlaku beristirahat selama n milidetik. By : Sendi Novianto, S.Kom, M.T. 25 Method instans : start() Memberitahukanruntime java untukmenciptakankonteksjalinan dan menjalankannya. run() Metod run adalahbadanthread yang berjalan. stop() Menyebabkan thread segera berhenti. suspend() Suspend mengambilthread tertentu dan menyebabkanyaberhentitanpamenghancurkan thread system yang berjalan sebelumnya. resume() Digunakan untuk menghidupkan method yang di-suspend. setpriority(int p) mengisiprioritassuatuthread denganbesaraninteger. Ada beberapakonstantapriority, yaitu MIN_PRIORITY, NORM_PRIORITY, dan MAX_PRIORITY, secara berurutan bernilai 1,5,10. getpriority() mengjhasilkanprioritasthread, berupasuatu nilaiantara1 sampai10. setname(string name) Mengulang pemberian nama thread sesuai dengan argument name. By : Sendi Novianto, S.Kom, M.T. 26 Java Desktop By : Sendi Novianto, S.Kom, M.T. 27 By : Sendi Novianto, S.Kom, M.T. 28 5