Bab 27. Sinkronisasi Dengan Semafor

Ukuran: px
Mulai penontonan dengan halaman:

Download "Bab 27. Sinkronisasi Dengan Semafor"

Transkripsi

1 Bab 27. Sinkronisasi Dengan Semafor Pendahuluan Sinkronisasi dua arah adalah suatu mekanisme dimana suatu thread dapat mengendalikan sinkronisasi thread lain, begitu pula sebaliknya. Berikut ini adalah sebuah program yang menggunakan proses sinkronisasi dua arah. Program yang dibuat dalam bahasa Java ini, bernama Hompimpah. Contoh program sinkronisasi dua arah adalah semafor berjenis non-spinlock. Semafor jenis non-spinlock mengimplementasikan kelas Semafor, dimana semafor yang digunakan adalah jika ada proses yang sedang berjalan, maka proses lain akan menunggu, sampai ada thread lain yang memanggilnya. Hal ini sesuai dengan prinsip critical section yaitu mutualy exclusive, hanya satu thread yang diizinkan mengakses critical section; progress, critical section pasti ada yang mengakses; bounded waiting, setiap thread dijamin dapat meng-akses critical section. Hal ini dapat dilihat dalam program yaitu ketika sang bandar sedang berada pada critical section, pemain akan menunggu hingga bandar selesai mengaksesnya. Sedangkan kebalikannya adalah semafor jenis spinlock, yang akan melakukan infinite loop, sehingga thread tersebut tidak ada jaminan akan masuk critical section. Semafor jenis non-spinlock ini terdiri dari 2 operasi untuk proses sinkronisasi, yaitu operasi buka(),dan operasi kunci() Penggunaan Semafor Program ini berjalan layaknya permainan Hompimpah yang telah kita kenal. Adapun yang dilakukan dalam permainan hompimpah adalah sebagai berikut: 1. Peranan Gambar Peranan yang terdapat dalam permainan Dalam permainan Hompimpah kita mengenal dua peranan, yaitu pemain-pemain yang melakukan hompimpah (gambar sebelah kanan yang berjumlah 5) dan seorang bandar (gambar sebelah kiri), yang berfungsi menetukan, kapan permainan dimulai dan kapan permainan berakhir. Dalam hal ini bandar bertindak sebagai pengatur jalannya permainan. 2. Memulai permainan Gambar Bandar memulai permainan

2 Permainan mulai ketika bandar menyerukan Hompimpah. Ketika itu bandar akan meminta pemain untuk melakukan hompimpah satu per satu(tidak serentak). Dalam program ini, pemain tidak gambreng secara bersamaan seperti gambreng pada umumnya, melainkan satu per satu dengan pengaturan dari Semafor.Kemudian bandar akan menyerukan gambreng sebagai penanda hompimpah berhenti, sehingga pemain pun menghentikan hompimpah dan masing-masing akan menunjukan tangannya, apakah telapak atau punggung. 3. Pengecekan pemenang Gambar Bandar memeriksa pemenang Terlihat pada gambar, setelah bandar menyerukan gambreng dan hompimpah berhenti, bandar akan melakukan perhitungan banyaknya telapak dan punggung. Apabila bandar menemukan ada diantara telapak atau punggung yang berjumlah satu, maka satu-satunya pemain itu akan keluar sebagai pemenang. Namun apabila tidak ada diantara telapak atau punggung yang berjumlah satu, seperti pada gambar maka bandar akan mengulang permainan dengan menyerukan gambreng. Hal tersebut akan berulang terus-menerus hingga terdapat 1 tangan yang berbeda Dengan kata lain, bandar akan terus menyerukan gambreng dan mengulang permainan hingga menemukan pemenang. Gambar Bandar mengulang gambreng Seperti halnya permainan Hompimpah yang diilustrasikan di atas, program Hompimpah juga berjalan demikian layaknya permainan Hompimpah sebenarnya. Tetapi, ada perbedaan terhadap jumlah bandarnya. Program Hompimpah memiliki jumlah bandar yang sama dengan jumlah pemainnya, sehingga setiap pemain memiliki satu bandar. Adapun tujuan sinkronisasi dua arah adalah mengendalikan thread-thread sesuai dengan keinginan kita melalui kendali bandargambreng() yang diimplementasikan pada program Hompimpah Program Contoh Program yang menggunakan proses sinkronisasi dua arah 001 public class Hompimpah 002 { private static final int JUMLAH_PEMAIN=6; 005 public static void main(string args[])throws Exception 006 { 007 Gambreng gamserver=new Gambreng(JUMLAH_PEMAIN); 008 Thread[] pemain=new Thread[JUMLAH_PEMAIN]; 009 for (int ii=0; ii<jumlah_pemain; ii++) 010 {

3 011 pemain[ii]= new Thread (new Pemain(gamserver, ii)); 012 pemain[ii].start(); } 015 gamserver.bandargambreng(); 017 } } class Pemain implements Runnable 022 { 023 Pemain(Gambreng gserver, int nomer) 024 { 025 gamserver=gserver; 026 no_pemain=nomer; 027 } public void run() 030 { 031 gamserver.pemaingambreng(no_pemain); 032 } private Gambreng gamserver; 035 private int no_pemain; } class Gambreng 040 { 041 private boolean adapemenang; 042 private int truepemain, truecount, iterasigambreng; 043 private int falsepemain, falsecount; 044 private int nomorpemenang, jumlahpemain; 045 private Semafor[] bandar, pemain; 046 private Semafor mutex; public Gambreng(int jumlah) 049 { 050 bandar=new Semafor[jumlah]; 051 pemain=new Semafor[jumlah]; 052 for(int ii=0; ii<jumlah;ii++) 053 { 054 bandar[ii]=new Semafor(); 055 pemain[ii]=new Semafor(); } mutex=new Semafor(1); 061 jumlahpemain=jumlah; 062 iterasigambreng=0; 063 resetgambreng(); 064 } 065 public void bandargambreng() 066 { 067 syncbandar(); 068 while(!menanggambreng()) 069 { 070 resetgambreng(); 071 syncpemainbandar();

4 072 hitunggambreng(); 073 iterasigambreng++; 074 } 075 syncpemain(); 076 System.out.println("Nomor Peserta Pemain [0] - ["+ (jumlahpemain-1)+"] Pemenang Pemain nomor["+ nomorpemenang +"] Jumlah Iterasi["+ iterasigambreng +"]"); 077 } 078 public void pemaingambreng (int nomor) 079 { 080 syncbandarpemain(nomor); 081 while(!menanggambreng()) 082 { 083 mutex.kunci(); if((int)(math.random()*2)==1) 086 { 087 truepemain=nomor; 088 truecount++; } 091 else 092 { 093 falsepemain=nomor; 094 falsecount++; 095 } 096 mutex.buka(); 097 syncbandarpemain(nomor); 098 } 099 } 100 public void resetgambreng() 101 { 102 mutex.kunci(); 103 adapemenang=false; 104 truepemain=0; 105 truecount=0; 106 falsepemain=0; 107 falsecount=0; mutex.buka(); 110 } private boolean menanggambreng() 113 { 114 return adapemenang; 115 } 116 private void hitunggambreng() 117 { 118 mutex.kunci(); if(truecount==1) 121 { 122 adapemenang=true; 123 nomorpemenang=truepemain; 124 } 125 else if(falsecount==1) 126 { 127 adapemenang=true; 128 nomorpemenang=falsepemain;

5 129 } 130 mutex.buka(); 131 } 132 private void syncpemainbandar() 133 { 134 for(int ii=0; ii<jumlahpemain;ii++) 135 { 136 pemain[ii].buka(); 137 bandar[ii].kunci(); 138 } 139 } private void syncbandar() 142 { 143 for(int ii=0;ii<jumlahpemain;ii++) 144 { 145 bandar[ii].kunci(); 146 } 147 } 148 private void syncpemain() 149 { 150 for(int ii=0;ii<jumlahpemain;ii++) 151 { 152 pemain[ii].buka(); 153 } 154 } 155 private void syncbandarpemain(int ii) 156 { 157 bandar[ii].buka(); 158 pemain[ii].kunci(); 159 } } class Semafor 165 { 166 public Semafor() 167 { 168 value=0; 169 } 170 public Semafor(int val) 171 { 172 value=val; 173 } 174 public synchronized void kunci() 175 { 176 while(value==0) 177 { 178 try 179 { 180 wait(); } 183 catch(interruptedexception e) 184 { 185 } 186 value--; 187 }

6 } 190 public synchronized void buka() 191 { 192 value++; 193 notify(); 194 } 195 private int value; 196 } Penjelasan Program Program Hompimpah terdiri dari 4 class yaitu class Hompimpah, class Pemain, class Gambreng,class Semafor. Masing-masing class berfungsi sebagai berikut: 1. Class Hompimpah: dalam kelas ini program Hompimpah dapat dijalankan 2. Class Gambreng: dalam kelas ini seluruh proses permainan Hompimpah dijalankan. 3. Class Semafor: kelas ini menjalankan proses sinkronisasi. 4. Class Hompimpah: dalam kelas terdapat fungsi run() dengan fungsi ini tiap-tiap pemain akan dihidupkan. Penjelasan selengkapnya sebagai berikut: Contoh Class Hompimpah 001 public class Hompimpah 002 { private static final int JUMLAH_PEMAIN=6; 005 public static void main(string args[])throws Exception 006 { 007 Gambreng gamserver=new Gambreng(JUMLAH_PEMAIN); 008 Thread[] pemain=new Thread[JUMLAH_PEMAIN]; 009 for (int ii=0; ii<jumlah_pemain; ii++) 010 { 011 pemain[ii]= new Thread (new Pemain(gamserver, ii)); 012 pemain[ii].start(); } 015 gamserver.bandargambreng(); 017 } } 020 Pada class Hompimpah, dibuat objek baru dari class Gambreng (baris 7), dimana dalam kelas tersebut dibuat 2 jenis thread yaitu thread bandar dan thread pemain. Masing-masing thread adalah array dari objek Semafor, yang berkapasitas JUMLAH_PEMAIN, yaitu 6. Kemudian kedua jenis thread di set value-nya sebagai 0 (terdapat pada class Gambreng). Hal ini mengindikasikan bahwa thread bandar dan pemain sedang tidur. Dalam kelas Gambreng, mutex sebagai objek dari class Semafor, di set 1,yang berarti bahwa critical section sedang dalam keadaan available atau tidak ada thread yang sedang memakai. Kemudian iterasigambreng di set 0 dan pemanggilan method resetgambreng() pada class Gambreng sebagai penanda awal permainan Pada baris ke 8 class Hompimpah dibuat array object baru dari class Thread yaitu pemain sebanyak JUMLAH_PEMAIN yang di set 6. Tiap-tiap thread memiliki no_pemain dan memiliki objek dari class Gambreng. Selanjutnya thread- thread tersebut menjalankan method run()-nya, dimana dalam method tersebut tiap-tiap thread pemain mengirimkan nomornya untuk diakses dalam method pemaingambreng(int) yang berada pada class Gambreng.

7 Contoh method pemaingambreng 078 public void pemaingambreng (int nomor) 079 { 080 syncbandarpemain(nomor); 081 while(!menanggambreng()) 082 { 083 mutex.kunci(); if((int)(math.random()*2)==1) 086 { 087 truepemain=nomor; 088 truecount++; } 091 else 092 { 093 falsepemain=nomor; 094 falsecount++; 095 } 096 mutex.buka(); 097 syncbandarpemain(nomor); 098 } 099 } 100 public void resetgambreng() 101 { 102 mutex.kunci(); 103 adapemenang=false; 104 truepemain=0; 105 truecount=0; 106 falsepemain=0; 107 falsecount=0; mutex.buka(); 110 } 111 Pada fungsi tersebut tiap-tiap thread akan mengakses critical section secara bergantian, sesuai dengan prinsip mutual exclusion. Di dalam critical section, thread-thread akan dicek apakah truepemain(telapak) atau falsepemain(punggung) kemudian dihitung berapa jumlah telapak dan punggungnya. Proses ini akan terus me-loop sampai ada pemenang. Sebelum memasuki critical section dan melakukan pengecekan, sistem melakukan proses sinkronisasi bandar dan pemain, dengan memangil fungsi syncbandarpemain() Contoh syncbandarpemain 155 private void syncbandarpemain(int ii) 156 { 157 bandar[ii].buka(); 158 pemain[ii].kunci(); 159 } 160 dalam fungsi tersebut bandar melepaskan kunci, dan memanggil thread pemain dengan notify() yang merupakan bagian dari fungsi buka() dari class Semafor, untuk kemudian thread tersebut dapat mengakses critical section. Setelah seluruh thread pemain mengakses critical section dan melakukan pengecekan, program memanggil fungsi bandargambreng() pada class Gambreng,untuk melakukan proses sinkronisasi bandar yaitu memanggil fungsi syncbandar()

8 Contoh syncbandar 141 private void syncbandar() 142 { 143 for(int ii=0;ii<jumlahpemain;ii++) 144 { 145 bandar[ii].kunci(); 146 } 147 }, sehingga bandar terkunci dalam critical section dan memegang kekuasaan dalam Gambreng untuk melakukan perulangan fungsi-fungsi berikut, yang masing-masing akan dipanggil dalam fungsi bandargambreng() : 1. Me-reset permainan gambreng dengan memanggil fungsi resetgambreng(). Contoh resetgambreng 100 public void resetgambreng() 101 { 102 mutex.kunci(); 103 adapemenang=false; 104 truepemain=0; 105 truecount=0; 106 falsepemain=0; 107 falsecount=0; mutex.buka(); 110 } 111 Dalam fungsi resetgambreng(), truepemain, falsepemain, truecount dan falsecount = 0, kemudian ada pemenang diset false, sebagai tanda awal dari permainan. 2. Melakukan sinkronisasi pemain dan bandar dengan memanggil fungsi syncpemainbandar(). Contoh syncpemainbandar 132 private void syncpemainbandar() 133 { 134 for(int ii=0; ii<jumlahpemain;ii++) 135 { 136 pemain[ii].buka(); 137 bandar[ii].kunci(); 138 } 139 } Ketika melakukan pemanggilan fungsi ini, seluruh pemain dibangunkan kemudian tiap-tiap bandar akan tidur. Dengan fungsi ini, bandar akan tetap menunggu sampai semua pemain membangunkannya. Dan ketika bandar bangun, pemain akan ditidurkan kembali. 3. Melakukan penghitungan dengan fungsi hitunggambreng() Contoh hitunggambreng 116 private void hitunggambreng() 117 { 118 mutex.kunci(); if(truecount==1) 121 {

9 122 adapemenang=true; 123 nomorpemenang=truepemain; 124 } 125 else if(falsecount == 1) 126 { 127 adapemenang=true; 128 nomorpemenang=falsepemain; 129 } 130 mutex.buka(); 131 } Dengan fungsi ini, kembali melakukan pengaksesan variable. Dengan melakukan pengecekan, apabila salah satu diantara truecount atau falsecount bernilai 1, maka adapemenang. Nilai ini akan diproses oleh fungsi menanggambreng(), yang akan mengembalikan nilai boolean(true atau false). Jika fungsi tersebut bernilai true maka proses loop berhenti. 4. Menghitung iterasi perulangan, sampai fungsi menanggambreng() mengembalikan nilai true, yang menandakan adanya pemenang. Saat proses perulangan berhenti, pemain melepaskan kunci kemudian sistem menampilkan output saat execute, berupa no_pemain yang keluar sebagai pemenang. Setiap proses execute akan menampilkan nomor pemain yang berbeda-beda, karena proses random dan urutan pengaksesan critical section oleh thread pada tiap pengexecute-an berbeda-beda. Contoh Keluaran Program Nomor Peserta Pemain [0] - [5] Pemenang Pemain nomor[3] Jumlah Iterasi[12] Nomor Peserta Pemain [0] - [5] Pemenang Pemain nomor[2] Jumlah Iterasi[1] Nomor Peserta Pemain [0] - [5] Pemenang Pemain nomor[0] Jumlah Iterasi[6] Nomor Peserta Pemain [0] - [5] Pemenang Pemain nomor[4] Jumlah Iterasi[2] Nomor Peserta Pemain [0] - [5] Pemenang Pemain nomor[1] Jumlah Iterasi[14] Nomor Peserta Pemain [0] - [5] Pemenang Pemain nomor[3] Jumlah Iterasi[9] Nomor Peserta Pemain [0] - [5] Pemenang Pemain nomor[5] Jumlah Iterasi[3] Nomor Peserta Pemain [0] - [5] Pemenang Pemain nomor[3] Jumlah Iterasi[2] Nomor Peserta Pemain [0] - [5] Pemenang Pemain nomor[4] Jumlah Iterasi[5] Nomor Peserta Pemain [0] - [5] Pemenang Pemain nomor[0] Jumlah Iterasi[11] Contoh di atas menunjukkan hasil Hompimpah tidak selalu sama. Jumlah iterasi menunjukkan berapa kali bandar menyerukan gambreng dan mengulang permainan Rangkuman Program Hompimpah merupakan ilustrasi dimana sebuah thread memegang kendali sinkronisasi thread lainnya. Seperti yang dijelaskan dalam program masing-masing dari pemain saling mengendalikan satu sama lain, dengan menggunakan alat sinkronisasi yang bernama semafor. Semafor dalam program adalah semafor buatan berupa class Semafor yang dibuat dalam bahasa Java. Adapun di dalamnya terdapat 2 fungsi yaitu fungsi buka() dan fungsi kunci() dengan fungsi-fungsi inilah masing-masing thread dapat mengendalikan satu sama lain Rujukan [Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne Operating Systems Concepts. Seventh Edition. John Wiley & Sons.

10 Appendix Penjelasan Alur Program 1. Mula - mula semua bandar dan pemain tidur 2. Dibuat thread Pemain sebanyak JUMLAH_PEMAIN yang kemudian akan menjalankan run() secara terpisah. 3. Setiap thread Pemain yang memanggil pemaingambreng akan terhambat pada method syncbandarpemain(nomor), ketika semua pemain sudah menjalankan method ini, semua bandar dalam keadaan bangun(buka). 4. bandargambreng (baris 15) dijalankan 5. Karena syncpemainbandar() dijalankan maka thread Pemain yang tadinya terhambat dapat jalan. 6. Setelah semua Pemain sudah gambreng (yang kemudian akan terhambat di syncbandarpemain(nomor) di bawah), maka akan hitunggambreng(). 7. Jika!MenangGambreng, Pemain akan di buka lagi. 8. Jika MenangGambreng, keluar dari loop dan di print hasilnya.

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

Bab 19. Solusi Critical Section

Bab 19. Solusi Critical Section Bab 19. Solusi Critical Section Anggota Kelompok (A) Dwi Priyanto 0606101295 (B) Nico Anandito 0606101793 (B) Sactio Swastioyono 0606101944 Komentar Umum Bab ini membahas tentang cara kerja solusi untuk

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

BAB 4. SINKRONISASI & DEADLOCK

BAB 4. SINKRONISASI & DEADLOCK BAB 4. SINKRONISASI & DEADLOCK Sinkronisasi Perangkat Keras dan Semafor Oleh Muhammad Irfan Nasrullah Email : ewoh@gawab.com 1 Sinkronisasi Perangkat Keras Mengapa perlu sinkronisasi perangkat keras? 2

Lebih terperinci

DEADLOCK & ALGORITMA OSTRICH

DEADLOCK & ALGORITMA OSTRICH DEADLOCK & ALGORITMA OSTRICH DIAJUKAN UNTUK MEMENUHI TUGAS MATA KULIAH Sistem Operasi Dosen Pengampu Bapak Adi Sucipto, Ir., M.Kom. oleh : Damas Fahmi Assena NIM : 161240000500 PROGRAM STUDI TEKNIK INFORMATIKA

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

Sinkronisasi dan Deadlock Sistem Operasi

Sinkronisasi dan Deadlock Sistem Operasi Sinkronisasi dan Deadlock Sistem Operasi Muhammad Iqbal Jurusan Sistem Komputer Fakultas Ilmu Komputer Universitas Sriwijaya Email:qiodaimi@gmail.com ABSTRAK Saat menggunakan komputer, notebook, netbook

Lebih terperinci

REVIEW DAN REVISI BUKU

REVIEW DAN REVISI BUKU REVIEW DAN REVISI BUKU Anggota Kelompok Fani Jasmine Bahar(0606101326, Kelas B) Fatimah(0606104246, Kelas A) Muhammad Ghafur AWS(0606031515, Kelas B) Winda Sagita (0606104353, Kelas A) Komentar Umum Bab

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

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

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

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

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

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

Laporan Tugas Scheduling Pengantar Sistem Operasi

Laporan Tugas Scheduling Pengantar Sistem Operasi Laporan Tugas Scheduling Pengantar Sistem Operasi Kelas E Anggota Kelompok: Cindy Alicia Sahara (5214100172) Ratih Kinanti A (5214100174) Patricia Hanna S (5214100177) Indriarti Kusumanita (5214100178)

Lebih terperinci

CRITICAL REGIONS DAN MONITORS

CRITICAL REGIONS DAN MONITORS CRITICAL REGIONS DAN MONITORS Oleh Sergio (1203001052) - Tedi Kurniadi (1203001109) - Copyright 2004 Sergio - Tedi Kurniadi silahkan menggunakan, memodifikasi,

Lebih terperinci

Aplikasi Graf dalam Pendeteksian Deadlock

Aplikasi Graf dalam Pendeteksian Deadlock Aplikasi Graf dalam Pendeteksian Deadlock Tina Yuliani Ayuningsih NIM : 13505057 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail : if15057@students.if.itb.ac.id

Lebih terperinci

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; } I. Bahan Kajian 1. Perulangan (Iterasi) Perulangan(iterasi), menyatakan bahwa suatu instruksi tertentu akan diulang sampai tercapai kondisi tertentu, tanpa kita harus menulis perintah tersebut secara berulang.

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

Bab 24. Diagram Graf Pendahuluan

Bab 24. Diagram Graf Pendahuluan Bab 24. Diagram Graf 24.1. Pendahuluan Berdasarkan penjelasan sebelumnya mengenai deadlock, diperlukan suatu penggambaran tentang bentuk deadlock. Dalam hal ini graf digunakan untuk merepresentasikan hal

Lebih terperinci

Permainan Remi Sederhana

Permainan Remi Sederhana Permainan Remi Sederhana Permainan Remi ini dimainkan oleh n orang dan masing-masing menerima sebanyak m kartu. Nilai n dan m ini diinputkan oleh user. Pada permainan remi terdapat : KartuAcuan Masing-masing

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

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

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN Obektif: Praktikan mengetahui arra, percabangan, dan perulangan pada Java. Praktikan mengetahui bentuk umum

Lebih terperinci

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta Sekolah Tinggi Teknologi Adisutjipto Yogyakarta Materi Kuliah : Sistem Operasi / OS Semester Genap E.N. Tamatjita 1 Review Pertemuan Ke-7 Thread Bagian terkecil dari proses (program yang dieksekusi) yang

Lebih terperinci

Operator, Statement kondisional, dan Iterasi pada Java

Operator, Statement kondisional, dan Iterasi pada Java Operator, Statement kondisional, dan Iterasi pada Java Operator Operator Aritmatika Operator ini digunakan pada operasi-operasi aritmatika seperti penjumlahan, pengurangan, pembagian dll. Jenis Operator

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

Jobsheet 09. Overloading and Overriding Method

Jobsheet 09. Overloading and Overriding Method Jobsheet 09 Overloading and Overriding Method 1. Kompetensi Setelah menempuh pokok bahasan ini, mahasiswa mampu : 1) Memahami konsep overloading dan overriding, 2) Memahami perbedaan overloading dan overriding,

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

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

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

Perulangan / Looping

Perulangan / Looping PEMROGRAMAN DASAR Sistem Informasi PTIIK UB Semester Ganjil 2013/2014 Perulangan / Looping Dr. Eng. Herman Tolle, ST., MT Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya 7 Aspek Dasar

Lebih terperinci

The Critical Section Problem Algorithm III

The Critical Section Problem Algorithm III The Critical Section Problem Algorithm III Di dalam suatu sistem terdapat n proses yang saling bersaing untuk menggunakan data. Masing-masing proses tersebut mempunyai kode segmen yang disebut Critical

Lebih terperinci

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

PEMOGRAMAN JAVA. Yoannita, S.Kom. Class(ii) [Constructor] [keyword this] Modifier Passing parameter [by value] [by references] PEMOGRAMAN JAVA Yoannita, S.Kom Class(ii) [Constructor] [keyword this] Modifier Passing parameter [by value] [by references] Class Dalam pendefinisian class, dituliskan : class { *

Lebih terperinci

THREADS PADA WINDOWS Julius Bata /

THREADS PADA WINDOWS Julius Bata / THREADS PADA WINDOWS Julius Bata / 309012 THREADS Threads dapat dikatakan sebagai suatu atau beberapa kegiatan dalam suatu proses. Threads merupakan unit terkecil dari suatu proses yang dapat dijadwalkan

Lebih terperinci

Metode Binnary Searching di Java Console

Metode Binnary Searching di Java Console Metode Binnary Searching di Java Console Oleh: Yudi Setiawan Dalam pemrograman, pencarian data merupakan suatu hal yang sangat gampang dilakukan. Anda sebagai programmer bisa menggunakan beberapa teknik

Lebih terperinci

Bab 22. Perangkat Sinkronisasi II

Bab 22. Perangkat Sinkronisasi II Bab 22. Perangkat Sinkronisasi II kelompok 113.22 Femphy Pisceldo 1204000335 Hendra Dwi Hadmanto 1204000416 Zoni Yuki Haryanda 1204000955 Sebagian dibuat dengan SoftWare Bayar yang dibajak (MS. PowerPoint),

Lebih terperinci

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai 5 buah nilai dengan tipe yang sama dapat saja disimpan dalam 5 buah variabel, tetapi bagaimana dengan 100 nilai? Disimpan dengan 100 variabel?

Lebih terperinci

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

Thread. 16 th week Estu Sinduningrum ST,MT

Thread. 16 th week Estu Sinduningrum ST,MT Thread 16 th week Estu Sinduningrum ST,MT Multitasking dan Multithreading Multitasking Multitasking adalah suatu istilah yang menjelaskan bahwa sebuah komputer dapat menjalankan bebeiapa aktiviias (yang

Lebih terperinci

Bab 10. Konsep Proses

Bab 10. Konsep Proses Bab 10. Konsep Proses 10.1. Pendahuluan Proses didefinisikan sebagai program yang sedang dieksekusi. Menurut Silberschatz proses tidak hanya sekedar suatu kode program ( text section), melainkan meliputi

Lebih terperinci

THREADS WINDOWS : PEMBUATAN, PENJADWALAN DAN SINKRONISASI Julius Bata Magister Ilmu Komputer Universitas Gadjah Mada

THREADS WINDOWS : PEMBUATAN, PENJADWALAN DAN SINKRONISASI Julius Bata Magister Ilmu Komputer Universitas Gadjah Mada THREADS WINDOWS : PEMBUATAN, PENJADWALAN DAN SINKRONISASI Julius Bata Magister Ilmu Komputer Universitas Gadjah Mada juliusbata@gmail.com Abtraksi Sistem operasi bertugas untuk melakukan manajemen proses.

Lebih terperinci

Apa yang akan dipelajari?

Apa yang akan dipelajari? Concurrency: Mutual Exclusion dan Sinkronisasi (Pertemuan ke-8) Pendahuluan Apa yang akan dipelajari? Ruang lingkup concurrency Contoh kasus perlunya concurrency Jenis interaksi antar proses Mekanisme

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

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

PEMROGRAMAN SOCKET LANJUTAN

PEMROGRAMAN SOCKET LANJUTAN Praktikum 11 PEMROGRAMAN SOCKET LANJUTAN A. TUJUAN PEMBELAJARAN 1. Siswa memahami konsep aplikasi client server di jaringan. 2. Siswa memahami konsep pemprograman socket lanjut. 3. Siswa mampu melakukan

Lebih terperinci

The Critical Section Problem Algorithm III. Muhammad Fikry Hazmi (143) Kresna Ridwan (145) Guntur Kondang Prakoso (153)

The Critical Section Problem Algorithm III. Muhammad Fikry Hazmi (143) Kresna Ridwan (145) Guntur Kondang Prakoso (153) The Critical Section Problem Algorithm III Muhammad Fikry Hazmi (143) Kresna Ridwan (145) Guntur Kondang Prakoso (153) Definisi Critical Section adalah bagian dari suatu proses yang akan melakukan akses

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

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan. KENDALI PROSES Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan. PERINTAH KONDISIONAL Pemrograman Java memiliki 2 Decision-making

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

BAB VIII CLASS ABSTRACT & CLASS INTERFACE. //abstract class bisa, kelas biasa bisa System.out.println("Ini nama");

BAB VIII CLASS ABSTRACT & CLASS INTERFACE. //abstract class bisa, kelas biasa bisa System.out.println(Ini nama); BAB VIII CLASS ABSTRACT & CLASS INTERFACE A. ABSTRACT CLASS class merupakan sebuah kelas yang di dalamnya bisa terdapat method abstract dan method biasa. Method abstract adalah method yang tidak memiliki

Lebih terperinci

BAB V PENYELEKSIAN KONDISI DAN PERULANGAN

BAB V PENYELEKSIAN KONDISI DAN PERULANGAN BAB V PENYELEKSIAN KONDISI DAN PERULANGAN Untuk menghasilkan suatu program, sangat penting untuk mengatur agar program dapat berjalan dengan aliran atau susunan yang baik, sehingga dapat memecahkan masalah

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

Gambar 1. Single Linked List

Gambar 1. Single Linked List PRAKTIKUM 16 SINGLE LINKED LIST 2 A. TUJUAN PEMBELAJARAN Mahasiswa diharapkan mampu : 1. Memahami konsep SingleLinkedList untuk menghapus sebuah node 2. Memahami konsep SingleLinkedList untuk mencari index

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN 42 BAB IV IMPLEMENTASI DAN PENGUJIAN 1.1 Implementasi. Pada bagian ini akan dijelaskan mengenai implementasi program, implementasi konektifitas Bluetooth dan pergerakan robot mobil pada sistem. Proses

Lebih terperinci

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1) MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1) Deskripsi Singkat Struktur data array memang sederhana namun unsur-unsur pada array terkait rapat sehingga proses menggeser data di dalam

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

Bab 7. TiledLayer. Menyusun graphics dari TiledLayer dan di masukkan dalam LayerManager

Bab 7. TiledLayer. Menyusun graphics dari TiledLayer dan di masukkan dalam LayerManager Bab 7 TiledLayer 7.1 Tujuan Setelah mempelajari bab ini, Pelajar diharapkan mampu untuk : Memahami dan menggunakan class TiledLayer Menggambar dan menyusun TiledLayer Menyusun graphics dari TiledLayer

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

Operator dan Assignment

Operator dan Assignment Operator dan Assignment Macam-macam Operator Arithmetic Op. : + - * / % Relational Op. : > >= < >>> Conditional Op.

Lebih terperinci

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN Obyektif: Praktikan mengetahui array, percabangan, dan perulangan pada Java. Praktikan mengetahui bentuk umum dari array, percabangan, dan perulangan dalam

Lebih terperinci

A. TUJUAN PEMBELAJARAN 1. Mengenal berbagai macam bentuk operator 2. Memahami penggunaan berbagai macam jenis operator yang ada di Java

A. TUJUAN PEMBELAJARAN 1. Mengenal berbagai macam bentuk operator 2. Memahami penggunaan berbagai macam jenis operator yang ada di Java PRAKTIKUM 3 OPERATOR A. TUJUAN PEMBELAJARAN 1. Mengenal berbagai macam bentuk operator 2. Memahami penggunaan berbagai macam jenis operator yang ada di Java B. DASAR TEORI Operator dapat diklasifikasikan

Lebih terperinci

PEMOGRAMAN JAVA. Yoannita. Class(iii) [Constructor] [keyword this] Passing parameter [by value] [by references]

PEMOGRAMAN JAVA. Yoannita. Class(iii) [Constructor] [keyword this] Passing parameter [by value] [by references] PEMOGRAMAN JAVA Yoannita Class(iii) [Constructor] [keyword this] Passing parameter [by value] [by references] Constructor Constructor merupakan method khusus yang berfungsi untuk inisialisi atau menciptakan

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

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA 1 BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA IDENTIFIER Identifier adalah suatu tanda yang mewakili nama-nama variabel, method, class, dsb. Ingat : Bahasa

Lebih terperinci

2.1 if Jenis-jenis Percabangan if adalah if, if else, If else if else if - else

2.1 if Jenis-jenis Percabangan if adalah if, if else, If else if else if - else I. Bahan Kajian Sebagai bahasa pemrograman, java memiliki cara untuk mengontrol alur eksekusi program bergantung pada kondisi yang telah ditetapkan Secara garis besar alur eksekusi ini dapat dikelompokan

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

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

Nama : Putra Adi Nugraha dan Priska Kalista Kelas : B

Nama : Putra Adi Nugraha dan Priska Kalista Kelas : B Nama : Putra Adi Nugraha 0606104321 dan Priska Kalista 0606101842 Kelas : B Pada kesempatan kali ini, kami membahas bab 21 mengenai Transaksi Atomik. Adapun bab ini berbicara tenang sifat keatomikan suatu

Lebih terperinci

Pemrograman Berbasis Objek Operator dan Assignment

Pemrograman Berbasis Objek Operator dan Assignment Operator dan Assignment Macam-macam macam Operator Arithmetic Op. : + - * / % Relational Op. : > >= < >>> Conditional

Lebih terperinci

I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java.

I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java. I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java II. Bahan Kajian 1. Kelas(Class) Kelas adalah definisi umum (pola,

Lebih terperinci

Pertemuan 3 Struktur Perulangan pada Java

Pertemuan 3 Struktur Perulangan pada Java Pertemuan 3 Struktur Perulangan pada Java Objektif : 1. Mahasiswa dapat memahami konsep struktur kontrol perulangan dalam pemrograman. 2. Mahasiswa dapat menggunakan struktur kontrol perulangan (while,

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

BAB 3 ANALISIS DAN PERANCANGAN

BAB 3 ANALISIS DAN PERANCANGAN BAB 3 ANALISIS DAN PERANCANGAN 3.1 Analisis Sistem yang Berjalan Sesuai dengan rekomendasi ICAO (International Civil Aviation Organization) pada tahun 2002 untuk memilih teknologi ADS-B sebagai prioritas

Lebih terperinci

TUGAS PROGRAM DIAGONAL, VETIKAL, DAN HORIZONTAL OPENGL (MENGGUNAKAN JAVA) NAMA : SYIFA MUTIARA SARI KELAS : 3KA23 NPM :

TUGAS PROGRAM DIAGONAL, VETIKAL, DAN HORIZONTAL OPENGL (MENGGUNAKAN JAVA) NAMA : SYIFA MUTIARA SARI KELAS : 3KA23 NPM : TUGAS PROGRAM DIAGONAL, VETIKAL, DAN HORIZONTAL OPENGL (MENGGUNAKAN JAVA) NAMA : SYIFA MUTIARA SARI KELAS : 3KA23 NPM : 16115784 Untuk membuat program garis vertikal, horizontal, dan diagonal kita membutuhkan

Lebih terperinci

Gambar 1. Single Linked List

Gambar 1. Single Linked List PRAKTIKUM 16 ITERATOR PADA SINGLE LINKED LIST A. TUJUAN PEMBELAJARAN Mahasiswa diharapkan mampu : 1. Memahami konsep Iterator pada SingleLinkedList 2. Mengimplementasikan konsep Iterator pada SingleLinkedList

Lebih terperinci

IT210 Pemrograman Visual. Ramos Somya

IT210 Pemrograman Visual. Ramos Somya IT210 Pemrograman Visual Ramos Somya Variabel adalah tempat untuk menyimpan data yang memiliki suatu tipe data. Variabel ini akan ditempatkan dalam suatu alamat memori pada komputer. C# mengharuskan setiap

Lebih terperinci

Array Sebagai Parameter Method

Array Sebagai Parameter Method Array Sebagai Parameter Method Penggunaan Elemen Array Sebagai Aktual Parameter 1. public class MP2 { 2. public static void main(string[] args) { 3. int nilai=10; 4. int[] listnilai={7,1,5,3}; 5. System.out.println("Sebelum

Lebih terperinci

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

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program. Class & Objek Pengenalan OOP Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program. Object tersebut dikarakterisasi oleh property dan behavior. Pengenalan

Lebih terperinci

Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya Politeknik Elektronika Negeri Surabaya PRAKTIKUM 28 BINARY SEARCH TREE 2 A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami konsep menghapus node pada Binary Search Tree. Node yang dihapus adalah node

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

if (ekspresi_boolean) { Pernyataan1; } else { Pernyataan2; }

if (ekspresi_boolean) { Pernyataan1; } else { Pernyataan2; } PRAKTIKUM 4 PERCABANGAN DAN PERULANGAN A. TUJUAN PEMBELAJARAN 1. Memahami logika percabangan 2. Memahami logika perulangan 3. Memakai percabangan dan perulangan yang tepat 4. Memahami pemberian kondisi

Lebih terperinci

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello { Sekarang, kita akan mencoba untuk menganalisa program Java pertama : /** * My first j ava program */ public static void main(string[] args) //menampilkan string Hello world pada layar System. out. println("hello

Lebih terperinci

Menangkap Kesalahan (Error Handling)

Menangkap Kesalahan (Error Handling) Menangkap Kesalahan (Error Handling) Untuk membuat penangkap kesalahan ( error handler), Java menyediakan Class Exception. dengan adanya Exception ini, kesalahan tidak akan menyebabkan program keluar dari

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 2 1 3/11/2015 WEEK 2 Class Driver Constructor Public vs private Get dan set

Lebih terperinci

BAB 4 SPRITE. Contoh sebuah Sprite

BAB 4 SPRITE. Contoh sebuah Sprite BAB 4 SPRITE 4.1 PENGENALAN SPRITE Salah satu faktor yang membuat keberhasilan game adalah grafis yang unggul. Sebagian besar objek pada sebuah game dikategorikan sebagai grafis khusus yang disebut sprites.

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

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom BAB III DASAR-DASAR PEMROGRAMAN Tipe Data Data adalah sekumpulan kejadian/fakta yang dipresentasikan dengan huruf, angka,

Lebih terperinci

OBJECT, CLASS DAN METHOD. 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class

OBJECT, CLASS DAN METHOD. 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class OBJECT, CLASS DAN METHOD Obyektif : 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class Object dan Class class Dalam dunia nyata,

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

Pertemuan III [STRUKTUR KONTROL] CariGrade.java Program mencari grade nilai menggunakan struktur control if-else

Pertemuan III [STRUKTUR KONTROL] CariGrade.java Program mencari grade nilai menggunakan struktur control if-else Pertemuan III [STRUKTUR KONTROL] Materi : 1. Struktur kontrol if 2. Struktur kontrol if-else 3. Operator kondisi (?:) 4. Struktur kontrol switch 5. Struktur kontrol for 6. Struktur kontrol while 7. Struktur

Lebih terperinci

MODUL 6 PERULANGAN. A. String. 1. Instansiasi dan Inisialisasi. M0601xxyyy.jar

MODUL 6 PERULANGAN. A. String. 1. Instansiasi dan Inisialisasi. M0601xxyyy.jar MODUL 6 PERULANGAN Topik-topik yang dibahas pada modul ini adalah mengenai kelas String, kelas Random, dan konsep perulangan. Pertanyaan-pertanyaan yang dijawab dalam bentuk teks harus Anda kumpulkan dengan

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

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch.

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch. Modul 2 Percabangan dan Loop Tujuan : 1. Praktikan mengetahui macam macam percabangan pada Java 2. Praktikan mengetahui macam macam loop pada Java 3. Praktikan mampu memahami logika percabangan dan loop

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

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK Deskripsi Singkat merupakan bentuk struktur data seperti tumpukan yang memiliki konsep Last In First Out (LIFO). Bermakna data yang terakhir masuk merupakan

Lebih terperinci

Critical Section Mutual Exclusion Semaphore Tugas. Sinkronisasi Thread. Praktikum Sistem Operasi. Ilmu Komputer IPB. Sinkronisasi Thread

Critical Section Mutual Exclusion Semaphore Tugas. Sinkronisasi Thread. Praktikum Sistem Operasi. Ilmu Komputer IPB. Sinkronisasi Thread 2017 Critical Section Critical Section A critical section is a section of code that can be executed by at most one process at a time. The critical section exists to protect shared resources from multiple

Lebih terperinci

Pertemuan 2 Struktur Kontrol Percabangan

Pertemuan 2 Struktur Kontrol Percabangan Pertemuan 2 Struktur Kontrol Percabangan Objektif : 1. Mahasiswa dapat memahami konsep struktur kontrol percabangan dalam pemrograman. 2. Mahasiswa dapat menggunakan struktur kontrol pemilihan (if, else,

Lebih terperinci

Bab 13. Konsep Penjadwalan

Bab 13. Konsep Penjadwalan * Anggota Kelompok - A 0606101912 Rifqi Fuadi - A 0606101906 Ridho Budiharto - B 0606101345 Faruk Candra Farabi Bab 13. Konsep Penjadwalan * Komentar Umum Penjadwalan merupakan bagian yang sangat menarik

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