Java Thread Games Series
|
|
|
- Suhendra Kusnadi
- 9 tahun lalu
- Tontonan:
Transkripsi
1 Java Thread Games Series Amru Rosyada Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com. Multithreading sangat diperlukan dalam games engineering, karena dalam sebuah games diperlukan adanya pemrosesan yang berjalan bersama2 misalnya ketika kita membuat games realtime strategi seperti red alert, berapa banyak thread yang dibutuhkan??, apalagi kalo membuat games seperti football manager (my favourite) dimana setiap club bahkan setiap pemain akan mempunyai perubahan perilaku, skill, usia, mood, technique dll dalam siklus tertentu. Dalam dunia nyata-pun tak dapat dipisahkan, simpelnya saja nih... ketika kita browsing browser membuka banyak tab dan tiap2 tab mengkses halaman web yang berbeda itu juga merupakan proses multithreading, sedangkan disisi server seperti webserver akan membuat thread jika ada request yang masuk. Pendahuluan Dalam java untuk membuat thread ada 3 cara : 1. Menurunkan class Thread (Extends) 2. Mengimplementasikan interface Runnable 3. Menggunakan anonymous inner class Isi Sekarang kita akan bahas satu persatu bagaimana ketiga cara itu digunakan : ex, dengan menurunkan class thread : public class MyThread extends Thread { System.out.println("Ini threading lho!!!"); Thread mythread = new MyThread(); mythread.start(); ex, dengan mengimplementasikan interface Runnable: dengan menggunakan cara ini mempunyai keuntungan class yang kita buat masih bisa menurunkan class yang lain, karena java tidak mengijinkan multiple inharitance 1
2 public class MyThread extends SomeOthersClass implements Runnable { public MyThread() { System.out.println("threading pake implementd Runnable"); Thread mythread = new Thread(new MyThread); mythread.start(); ex, menggunakan anonymous class: dengan ini kita tidak perlu untuk menurunkan class Thread dan mengimplementasikan interface Runnable. new Thread() { System.out.println("menggunakan anonymous class");.start(); keruagian menggunakan cara ini adalah membuat code yang kita bikin menjadi sulit untuk dibaca dan dipahami. gunakan method join agar thread yang kita gunakan masuk keantrian dan mengunggu sampai thread yang lain selesai. myhtread.join(); method ini sangat berguna ketika kita membuat games dan player ingin keluar dari permainan, untuk memastikan bahwa semua thread telah selesai sebelum menjalankan cleanup. Kita juga melakukan sleep untuk thread yang sedang berjalan dengan presisi waktu dalam milidetik. mythread.sleep(1000); Sinkronisasi Misalkan kita mau membuat maze game (games untuk mencari jalan keluar). Thread manapun bisa mengubah posisi pemain/player, dan thread manapun bisa melakukan pemeriksaan apakah ada pemain yang sudah menemukan pintu keluar. Untuk mempermudah mari kita lihat pada ilustrasi berikut, kita asumsikan bahwa jalan keluar/exit berada di x=0, y=0 : public class Maze { private int playerx; 2
3 private int playery; public boolean isatexit() { return (playerx==0 && playery==0); public void setposition(int x, int y) { playerx=x; playery=y; secara garis besar code diatas tidak akan bermasalah, tapi bagai mana jika terjadi preemtive (banyak thread yang mengakses dan mana yang didahulukan untuk dapat mengubah resource). Misalkan kita ambil sekenario sebagai berikut, pamain berpindah tempat dari (1,0) ke (0,1): 1. Dimulai dari posisi (1,0), variabel playerx=1 dan playery=0 2. Thread A memanggil setposition(0,1) 3. Ketika line playerx=x dieksekusi maka playerx bernilai 0 4. Tiba-tiba Thread B melakukan pengecekan pada isatexit() sebelum A sempat mengubah nilai playery maka B akan mendapatkan kembalian bernilai true, karena playerx dan playery sedang dalam keadaan yang sama yaitu bernilai 0. sekarang kita akan melakukan sinkronisasi untuk mencegah terjadinya hal diatas. Kodenya akan berubah menjadi sebagai berikut : public class Maze { private int playerx; private int playery; public synchronized boolean isatexit() { return (playerx == 0 && playery == 0); public synchronized void setposition(int x, int y) { playerx = x; playery = y; ketika JVM mengeksekusi method yang beratribut sinchronized, maka akan terjadi ackquire lock pada method tersebut dan hanya akan mengijinkan untuk dieksekusi oleh satu object pada suatu waktu. Jadi jika suatu sinchronized method belum selesai dieksekusi maka method sinchronized lain tidak akan bisa dieksekusi. public synchronized void setposition(int x, int y) { playerx = x; playery = y; code diatas bisa juga ditulis dalam bentuk berikut: 3
4 public void setposition(int x, int y) { synchronized(this) { playerx = x; playery = y; pada code mempunyai jumlah bytecode yang lebih banyak. Sinkronisasi object seperti kode kedua diatas berguna jika kita mengijinkan lebih dari satu lock, dan tidak membutuhkan untuk sinkronisasi untuk methodnya. Lock bisa dilakukan pada object apapun kecuali pada tipe primitive, berikut adalah contoh bagaimana lock dilakukan pada object : Object mylock = new Object();... synchronized (mylock) {... Saat bagaimanakah diperlukan sinkronisasi? Jawabannya adalah setiap waktu ketika ada dua atau lebih thread melakukan akses pada suatu object/field. Hal yang perlu diingat jangan pernah melakukan oversinkronisasi (melakukan sinkronisasi pada object/method/field yang telah disinkronisasi). Sebagai contoh jangan lakukan sinkronisasi pada sebuah method jika hanya field tertentu saja yang akan disinkronisasi dalam method tersebut. Sebagai contoh method berikut, lakukan sinkronisasi pada block yang diperlukan saja. public void mymethod() { synchronized(this) { // code that needs to be synchronized // code that is already thread-safe jangan lakukan sinkronisasi pada method yang hanya menggunakan local variable, karena local variable akan ditaruh di stack, sedangkan thread punya stack untuk tiap2 thread, jadi tidak perlu untuk dilakukan sinkronisasi. Berikut adalah contoh method yang tidak perlu dilakukan sinkronisasi karena hanya menggunakan variable local. public int square(int n) { int s = n * n; return s; jika kita tidak yakin thread mana yang sedang mengakses kode kita, kita bisa mendapatkan nama dari thread tersebut dengan : 4
5 Thread.currentThread().getName(); Perlu diwaspadai juga adanya deadlock, deadlock adalah adanya thread yang tidak bisa melanjutkan proses karena thread saling menunggu thread lain sampai melepaskan resource. Misalkan pada contoh berikut : 1. Thread A acquire lock Thread B acquire lock Thread B menunggu sampai lock 1 dilepaskan. 4. Thread A menunggu sampai lock 2 dilepaskan. Dapat kita lihat dari process diatas kedua thread saling menunggu samapai suatu waktu yang tidak bisa ditentukan. Kita bisa mengatasinya dengan cara melakukan sinkronisasi yang tepat sesuai dengan urutannya. Menggunakan wait() dan notify() Misalkan kita ambil sekenario sebagai berikut, ada dua thread yang akan saling berkomunikasi satu sama lain, sebagai contoh ada thread A menunggu sampai thread B mengirimkan pesan : // Thread A public void waitformessage() { while (hasmessage == false) { Thread.sleep(100); // Thread B public void setmessage(string message) {... hasmessage = true; kode diatas bukan suatu contoh yang baik, karena thread A melakukan pengecekan setiap 100 milisecond atau 10 kali dalam satu detik. Thread A dapat oversleep dan terlambat dalam mendapatkan pesan. Alangkah lebih baik jika A idle sampai ada notifikasi dari B bahwa pesan sudah bisa dikonsumsi, dan ini bisa dilakukan dengan pasangan method wait() dan notify(). Method wait() digunakan didalam blok synchronized. Ketika method wait() dieksekusi, lock akan dilepaskan dan menunggu sampai ada notifikasi. Method notify() juga digunakan didalam block synchronized. Method notify akan memberikan notifikasi pada thread yang menunggu pada lock yang sama. Jika ada banyak thread yang menunggu maka hanya akan ada satu notifikasi dan akan dipilih satu thread secara acak. Berikut adalah kode yang telah diperbaiki : // Thread A public synchronized void waitformessage() { try { wait(); catch (InterruptedException ex) { // Thread B public synchronized void setmessage(string message) { 5
6 ... notify(); jika kita ingin memberika notifikasi untuk semua thread yang sendang menunggu kita bisa menggunakan notifyall(), method wait() juga menerima parameter dalam milisecond sebagai waktu tunggu, misalnya kita ingin memberikan timeout sampai 100milisecond maka kita bisa menggunakan wait(100). Method wait(), notify(), dan notifyall() merupakan method dari class object, sehingga semua java object mempunyai method2 tersebut. Kapan kita seharusnya menggunakan thread? Jadi begini dari pendekatan games, ketika games play loading untuk kenyamanan pengguna sebaiknya ketika loading dibuatkan thread sendiri sehingga player tidak menyangka bahwa gamesnya sedang ngehang. Kalo dari pendekatan lain sebenarnya juga untuk kenyamanan dan optimasi, nyaman untuk pengguna karena pengguna merasa menggunakan program yang cepet loadingnya (tricky), optimal karena bisa memanfaatkan resource CPU yang belum termanfaatkan. Sum it up Oke dengan informasi thread yang telah dibahas sebelumnya, mari kita buat sesuatu yang berguna yaitu thread pool. Thread pool merupakan sebuah group dari thread yang didesain untuk mengeksekursi tugas yang bermacam-macam. Pada thread pool kita bisa memilih jumlah dari thread didalam pool dan menjalankan task yang didefinisikan sebagai Runnable. Berikut adalah contoh menggunakan ThreadPool dengan membuat 8 thread dalam pool, menjalankan task sederhana dan kemudian menunggu samapai task selesai dijalankan. ThreadPool mythreadpool = new ThreadPool(8); mythreadpool.runtask(new Runnable() { System.out.println("Do something cool here."); ); mythreadpool.join(); Method runtask() akan dijalankan. Jika semua thread di dalam pool sedang sibuk menproses task, ketika memanggil runtask() akan memasukkan task kedalam antrian sampai ada thread yang mengeksekusinya. Berikut adalah kode ThreadPool.java : import java.util.linkedlist; A thread pool is a group of a limited number of threads that are used to execute tasks. public class ThreadPool extends ThreadGroup { private boolean isalive; private LinkedList taskqueue; private int threadid; private static int threadpoolid; Creates a new ThreadPool. 6
7 @param numthreads The number of threads in the pool. public ThreadPool(int numthreads) { super("threadpool-" + (threadpoolid++)); setdaemon(true); isalive = true; taskqueue = new LinkedList(); for (int i=0; i<numthreads; i++) { new PooledThread().start(); Requests a new task to run. This method returns immediately, and the task executes on the next available idle thread in this ThreadPool. <p>tasks start execution in the order they are task The task to run. If null, no action is IllegalStateException if this ThreadPool is already closed. public synchronized void runtask(runnable task) { if (!isalive) { throw new IllegalStateException(); if (task!= null) { taskqueue.add(task); notify(); protected synchronized Runnable gettask() throws InterruptedException { while (taskqueue.size() == 0) { if (!isalive) { return null; wait(); return (Runnable)taskQueue.removeFirst(); Closes this ThreadPool and returns immediately. All threads are stopped, and any waiting tasks are not executed. Once a ThreadPool is closed, no more tasks can be run on this ThreadPool. public synchronized void close() { if (isalive) { isalive = false; taskqueue.clear(); interrupt(); 7
8 Closes this ThreadPool and waits for all running threads to finish. Any waiting tasks are executed. public void join() { // notify all waiting threads that this ThreadPool is no // longer alive synchronized (this) { isalive = false; notifyall(); // wait for all threads to finish Thread[] threads = new Thread[activeCount()]; int count = enumerate(threads); for (int i=0; i<count; i++) { try { threads[i].join(); catch (InterruptedException ex) { A PooledThread is a Thread in a ThreadPool group, designed to run tasks (Runnables). private class PooledThread extends Thread { public PooledThread() { super(threadpool.this, "PooledThread-" + (threadid++)); while (!isinterrupted()) { // get a task to run Runnable task = null; try { task = gettask(); catch (InterruptedException ex) { // if gettask() returned null or was interrupted, // close this thread by returning. if (task == null) { return; // run the task, and eat any exceptions it throws try { task.run(); catch (Throwable t) { uncaughtexception(this, t); 8
9 Sekarang kita akan mencoba untuk melakukan test pada ThreadPool class, berikut adalah kode untuk melakukan test yaitu ThreadPoolTest class. Berikut adalah cara untuku menjalankan ThreadPoolTest : java ThreadPoolTest merupakan jumlah task yang akan dijalankan, 4 adalah jumlah thread yang akan dijalankan. Berikut kode ThreadPoolTest.java : public class ThreadPoolTest { public static void main(string[] args) { if (args.length!= 2) { System.out.println("Tests the ThreadPool task."); System.out.println( "Usage: java ThreadPoolTest numtasks numthreads"); System.out.println( " numtasks - integer: number of task to run."); System.out.println( " numthreads - integer: number of threads " + "in the thread pool."); return; int numtasks = Integer.parseInt(args[0]); int numthreads = Integer.parseInt(args[1]); // create the thread pool ThreadPool threadpool = new ThreadPool(numThreads); // run example tasks for (int i=0; i<numtasks; i++) { threadpool.runtask(createtask(i)); // close the pool and wait for all tasks to finish. threadpool.join(); Creates a simple Runnable that prints an ID, waits 500 milliseconds, then prints the ID again. private static Runnable createtask(final int taskid) { return new Runnable() { System.out.println("Task " + taskid + ": start"); // simulate a long-running task try { Thread.sleep(500); catch (InterruptedException ex) { System.out.println("Task " + taskid + ": end"); ; 9
10 oke all thing are finished. Penutup Diharapkan dengan adanya artikel ini bisa membantu dalam meningkatkan kemajuan teknologi informasi di Indonesia dan mendukung suksesnya IGOS Referensi David Brackeen, Bret Barker, Laurence Vanhelsuwé, Developing Games in Java, 2003, New Riders Publishing Biografi Penulis Amru Rosyada. Lahir pada tanggal 22 Mei 1986, menamatkan pendidikan dasar sampai pendidikan menengah akhir di kota Ngawi kemudian terdampar di Jogja mengambil program Diploma tiga Teknik Elektro Universitas Gadjah Mada dan Sekarang masih menamatkan Strata satu di Ilmukomputer Universitas Gadjah Mada. 10
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
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
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.
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
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 [email protected]
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
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
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
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
Monitor. Process Synchronization. SISTIM OPERASI (IKI-20230) ProcessSynchronization Ch. 6. Johny Moningka
Monitor SISTIM OPERASI (IKI-20230) ProcessSynchronization Ch. 6 Johny Moningka ([email protected]) Fakultas Ilmu Komputer Universitas Indonesia Semester 2000/2001 Process Synchronization Background
Java Progamming Multithreading
Java Progamming Multithreading Disampaikan pada mata kuliah Object Oriented Programming Eddy Muntina Dharma,ST,MT Jurusan Teknik Informatika STT Telkom [email protected] Konsep Dasar Multitasking
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
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
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
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,
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
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
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
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
Network Programming 2010 Pemrograman Multi-Thread
Network Programming 2010 Pemrograman Multi-Thread Husni [email protected] Husni.trunojoyo.ac.id Komputasi.wordpress.com MultiThreading Menurut Free Online Dictionary of Computing (FOLDOC) Berbagi-pakai
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:
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)
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,
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
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
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
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
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
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
A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.
PRAKTIKUM 18 MELEMPAR EXCEPTION DAN MEMBUAT EXCEPTION SENDIRI A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception.. Mengetahui cara membuat sendiri class exception.
SISTEM OPERASI THREAD DAN MULTITHREADING
SISTEM OPERASI THREAD DAN MULTITHREADING D3 Komputer dan Sistem Informasi Sekolah Vokasi Universitas Gadjah Mada 2011 A. Thread Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh
PEMROGRAMAN JAVA : THREAD
PEMROGRAMAN JAVA : THREAD Asep Herman Suyanto [email protected] http://www.bambutechno.com Thread merupakan kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam
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
TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java
TUJUAN Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java 2 TODAY S MENU Pengenalan library JDBC Diagram pengaksesan database melalui JDBC Step-by-step
BAB 4. SINKRONISASI & DEADLOCK
BAB 4. SINKRONISASI & DEADLOCK Sinkronisasi Perangkat Keras dan Semafor Oleh Muhammad Irfan Nasrullah Email : [email protected] 1 Sinkronisasi Perangkat Keras Mengapa perlu sinkronisasi perangkat keras? 2
Multithreading dengan python (bagian 1)
Multithreading dengan python (bagian 1) Amru Rosyada [email protected] http://amrurosyada.blogspot.com http://technocratiz.wordpress.com Lisensi Dokumen: Copyright 2003-2006 IlmuKomputer.Com Seluruh
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
PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA
PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA Asep Herman Suyanto [email protected] http://www.bambutechno.com Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai
public class Test { int i = 6; int j = 3; System.out.println(i/j); } Output :
EXCEPTION HANDLING A Little Demo public class Test { public static ti void main(string[] i args) { int i = 6; int j = 3; System.out.println(i/j); Output : 2 A Little Demo public class Test { public static
Definisi (1) ready, dll.) Sering disebut dengan lightweight process. register set, dan stack. sama.
Konsep Thread Definisi (1) Merupakan sebuah status eksekusi (running, ready, dll.) Sering disebut dengan lightweight process Merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program
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
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
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
Tutorial Web Service JAX-WS Konverter Suhu dengan NetBeans
Tutorial Web Service JAX-WS Konverter Suhu dengan NetBeans Nama Penulis [email protected] Lisensi Dokumen: Copyright 2003-2006 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi
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
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
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
MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE
MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE Deskripsi Singkat merupakan bentuk struktur data seperti antrian yang memiliki konsep First In First Out (FIFO). Bermakna data yang pertama masuk merupakan
Modul 4 Exception, I/O, dan Operasi File
Modul 4 Exception, I/O, dan Operasi File Tujuan: 1. Mengerti konsep exception, I/O, dan operasi file. 2. Bisa implementasiin konsep exception dan I/O dalam sebuah pemrograman sederhana untuk operasi file
Asynchronous Programming (Async dan Await) pada C# 6.0
Asynchronous Programming (Async dan Await) pada C# 6.0 Junindar, ST, MCPD, MOS, MCT, MVP.NET [email protected] Lisensi Dokumen: Copyright 2003 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat
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
Operating System. Thread. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si
Operating System Thread Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Dosen : Caca E. Supriana, S.Si [email protected] Threads Thread adalah sebuah alur kontrol dari sebuah proses. Suatu
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
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).
LAPORAN RESMI. PRAKTIKUM TEKNOLOGI WEB Pengenalan JavaScript
LAPORAN RESMI PRAKTIKUM TEKNOLOGI WEB Pengenalan JavaScript Dosen Pembimbing : Dwi Susanto Oleh : Noer Rhiannah A (4103131052) 3 D3 MMB B PROGRAM STUDI TEKNOLOGI MULTIMEDIA BROADCASTING DEPARTEMEN MULTIMEDIA
Grouping Object. Viska Mutiawani, M.Sc
Grouping Object Viska Mutiawani, M.Sc Konsep Penting Array ArrayList Vector Kenapa perlu mengelompokkan objek Banyak aplikasi melibatkan pengelompokan objek: Organizer. Notebook. Katalog buku. Jumlah data
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
Fajar Yusran Zebua DASAR ANIMASI
Dasar Pembuatan Animasi Sederhana Dengan Java Fajar Yusran Zebua [email protected] Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk
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...
Processes. Processes. SISTIM OPERASI (Operating System) IKI-20230
Processes SISTIM OPERASI (Operating System) IKI-20230 Fakultas Ilmu Komputer Universitas Indonesia Semester 2000/2001 Processes Konsep Proses Penjadwalan Eksekusi Proses Operasi terhadap Proses Lightweight
Krisna D. Octovhiana. 1.1 Mengenal Struktur Kontrol.
Cepat Mahir Visual Basic 6.0 [email protected] Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),
Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya
Exception Handling Topik Kategori Exception try, catch, finally Method yang melempar exception Aturan overriding method dan exception Membuat class exception baru Definisi Exception Suatu mekanisme penanganan
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
Didalam menampilkan peta yang sudah kita buat, kita akan menggunakan Slick2D sebagai sebuah frameworknya.
1 Teknologi Game Materi 2 Menampilkan peta di Game Tools yang dibutuhkan 1. JDK 6ux 2. Notepad++/Netbeans 6.x/JDeveloper/Eclipse Didalam menampilkan peta yang sudah kita buat, kita akan menggunakan Slick2D
1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception? Menuliskan exception sebagai start method
Your browser does not support inline frames or is currently configured not to display inline frames. Waktu Sisa : 0:10:57 1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception?
Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum
Your browser does not support inline frames or is currently configured not to display inline frames. Waktu Sisa : 0:20:31 1. Sukses Kesalahan pada URL File tidak lengkap Kesalahan umum Mengerjakan finally
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
CRITICAL REGIONS DAN MONITORS
CRITICAL REGIONS DAN MONITORS Oleh Sergio (1203001052) - Tedi Kurniadi (1203001109) - Copyright 2004 Sergio - Tedi Kurniadi silahkan menggunakan, memodifikasi,
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
Membuat Aplikasi Chatting Dengan Java
Membuat Aplikasi Chatting Dengan Java M Zainal Arifin [email protected] Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan
Integrasi Animasi Dengan Java
Integrasi Animasi Dengan Java Jastis Bago [email protected] [email protected] http://niascommunity.web.id Lisensi Dokumen: Copyright 2003-2006 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com
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
M.Octaviano Pratama
Pemrograman Mobile Android dan MySQL M.Octaviano Pratama [email protected] http://tavgreen.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara
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
Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch
Waktu Sisa : 0:55:52 1. 0 1 2 3 4 2. Sebuah variabel dalam local method bisa diakses dari dalam block try-catch. Dimana variabel tersebut sebaiknya dideklarasikan? Variabel tersebut seharusnya dideklarasikan
Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block
Waktu Sisa : 0:43:4 1. Sukses Kesalahan pada URL File tidak lengkap Kesalahan umum Mengerjakan finally Diluar block 2. Method hallo() bisa melempar java.io.ioexception, java.lang.runtimeexception, atau
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
Contoh (3) Solusinya adalah dengan membuat web server menjadi multi-threading. Dengan ini maka sebuah web server akan membuat thread yang akan mendeng
Konsep Thread Referensi : Pengantar Sistem Operasi Komputer, Masyarakat Digital Gotong Royong (MDGR), 2006, http://bebas.vlsm.org/ v06/ Kuliah/ SistemOperasi/ BUKU/ Operating System Concepts, Abraham Silberschatz,
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,
Pemrograman Berorientasi Obyek. Dasar Pemrograman Java
Pemrograman Berorientasi Obyek Dasar Pemrograman Java 1 Materi Pokok Membedakan antara valid dan invalid identifiers. Mengetahui Java technology keywords. Mengetahui 8 tipe data primitif. Mendefinisikan
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
EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return
EXCEPTION 1. 0 1 2 3 4 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return Kode didalam block try telah dieksekusi dengan benar Method System.exit()
Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error):
Alfan F. Wicaksono FASILKOM UI Exception Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error): Ingat, kategori ini tidak
Praktikum 9 Exception Handling
Praktikum 9 Exception Handling Tujuan Memahami dan menerapkan konsep penanganan error pada pemrograman berorientasi objek. Dasar Teori Exception merupakan subkelas dari kelas java.lang.throwable, bukalah
1/5. while and do Loops The remaining types of loops are while and do. As with for loops, while and do loops Praktikum Alpro Modul 3.
Judul TIU TIK Materi Modul Perulangan Ganjil 204/205 Mahasiswa memahami Konsep Perulangan. Mahasiswa mampu menggunakan perintah perulangan For, While do, do While 2. Mahasiswa mampu menggunakan perintah
Tujuan Intruksional. Mampu menjelaskan tentang event handling Mampu menjelaskan tentang method Mampu menggunakan event handling Mampu membuat method
Badiyanto, S.Kom, M.Kom Tujuan Intruksional Mampu menjelaskan tentang event handling Mampu menjelaskan tentang method Mampu menggunakan event handling Mampu membuat method 2 1 Sub Pokok Bahasan Keyboard
Threads of Control. Iwan Setyawan Adji, TE Jurusan Teknik Elektro FT UGM, Yogyakarta
Threads of Control Iwan Setyawan Adji, 32438-TE Jurusan Teknik Elektro FT UGM, Yogyakarta 1 PENDAHULUAN Threads adalah segala sesuatu yang terdapat dalam halaman dari suatu website yang biasanya ditampilkan
Berikut merupakan salah satu contoh dari pesan SOAP (SOAP Message):
Aplikasi Zodiak Menggunakan PHP Web Service Robertus Lilik Haryanto [email protected] Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas
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
Program Java Sesi 1. Arief Susanto
Program Java Sesi 1 Arief Susanto [email protected] http://www.ariefsusanto.at.ua Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk
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,
Exception Handling. Prepared by Viska Mutiawani. 1
Exception Handling Prepared by Viska Mutiawani 1 Konsep penting Assertion Exception handling: try-catch-finally 2 Assertion 3 What is assertion? Assertion merupakan statement dalam bahasa Java yang dapat
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
- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta
MODUL 1 IMPLEMENTASI MODEL VIEW CONTROLLER (MVC) DESIGN PATTERN Design Pattern dapat didefinisikan : - Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta menjelaskan cara utama
Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis
Waktu Sisa : 0:58:12 1. Package mana yang memiliki class IOException? java.util java.text java.error java.io 2. Pilihan manakah di bawah ini yang paling tepat mendeskripsikan langkah-langkah penting dalam
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.
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
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
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
