Score: 62.666669 Persentase: 78.33 %
Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.
~ u ~ 1. Mengapa terjadi error pada potongan kode berikut ini :
Method setName(String a) tidak dideklarasikan oleh MIDP Method getName() tidak teridentifikasi Class CobaRunnable bukan sebuah MIDlet Class CobaThread bukanlah sebuah MIDlet Method setName() tidak dapat menerima parameter String Constructor Thread tidak dapat menerima parameter apapun
2. Apakah yang akan terjadi kemudian setelah kita melakukan pemanggilan method static sleep() dari Thread, dengan perintah Thread.sleep(400)? Thread tersebut akan kembali pada state runnable dan menunggu sampai PROCESSOR memeri ntahkan dia untuk berjalan Thread kembali dijalankan
Thread akan kembali dijalankan tepat pada saat 400 mili detik
Parameter dalam thread menjadi durasi minimum thread berada dalam state waiting
Thread kadang-kadang akan kembali dijalankan setelah 0.4 detik
Thread tersebut akan berhenti sementara dalam waktu < 0.4 detik
3. Dimanakah letak kesalahan pada kode berikut ini?
Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.
Method start() dalam Thread tidak boleh dipanggil dua kali dari object yang sama Untuk menjalankan sebuah thread diperlukan sebuah class yang mengimplementasikan interface Runnable Untuk menjalankan sebuah Thread diperlukan pemanggilan method run() dari Thread object
4. Jika Anda menginginkan supaya nilai i ditampilkan pada consol dengan delay 0.5 detik untuk tiap tampilan, maka kode apa yang perlu ditambahkan pada kode berikut ini :
System.out.println(i); try{Thread.sleep(500);}catch(Exception e){} System.out.print(i); Thread.sleep(500); System.out.print(i); Thread.yield(500); System.out.print(i); try{Thread.sleep(500);}catch(Exception e){} System.out.print(i); try{Thread.wait(500);}catch(Exception e){} System.out.println(i); try{Thread.wait(500);}catch(Exception e){}
Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.
5. Langkah apakah yang harus kita tambahkan pada class CobaThread2 dan juga pada class Counter, sehingga apabila midlet tersebut dijalankan akan mendapatkan hasil sesuai dengan persyaratan berikut ini : 1. Sebuah thread akan menjalankan looping 1 s.d 20,sekaligus mencetak nilai dari loop yang sedang berjalan, dimana pada setiap kelipatan 5 akan tampil string "hahahaha". 2. Terdapat delay sebesar 1 detik, disetiap kelipatan 5, pada loop yang sedang berjalan
dan
dan
dan
dan
dan
dan
6. Pada environtment J2ME profil MIDP 2.0 & konfigurasi CLDC 1.0, method dari Thread berikut ini yang tidak disupport adalah
Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.
... sleep() dan stop() interrupt() dan sleep() stop() dan interrupt() start() dan sleep() semua benar
7. Perhatikan kode berikut ini :
Mengapa pada kode diatas, string yang menunjukkan "Thread sekarang" akan selalu tampil sebelum string yang menyatakan "Loop"? Karena method println() bekerja terlebih dahulu sebelum method start() dipanggil Karena method start() selalu running terlambat Karena pemanggilan method run() membutuhkan lebih banyak waktu dibandingkan dengan pemanggilan println() Karena pada saat start() dijalankan, maka object-object tersebut harus masuk kedalam state runnable terlebih dahulu sebelum pada akhirnya dipanggil oleh PROCESSOR
8. Apakah yang membedakan antara method sleep() dan method yield() ? Sebuah thread yang dikenai method sleep() pasti akan berhenti sementara, sedangkan jika dikenai method yield() belum tentu thread tersebut akan berhenti Method sleep() dalam sebuah thread akan menyebabkan thread tersebut berada pada kondi si waiting, sedangkan pemanggilan method yield() menyebabkan thread tersebut berada didalam antrian thread yang akan berjalan Jika sebuah method sleep() dipanggil maka thread tersebut akan berada pada kondisi runnable selama periode tertentu, dimana tepat ketika periode-nya habis maka thread tersebut kembali berjalan. Sedangkan ketika method yield() dipanggil, maka thread tersebut akan berada pada kondisi waiting.
Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.
Method sleep() menyebabkan thread tersebut berhenti sementara minimal sesuai dengan periodenya, sedangkan method yield() menyebabkan thread tersebut berhenti sementara dan akan berjalan kembali sesuai dengan time slicing.
9. Method dan parameter yang salah pada class Thread dengan object thread adalah ... thread.sleep(); thread.interrupt(); thread.getPriority(); thread.yield(); thread.isAlive();
10. Perhatikanlah kode berikut ini :
Mengapa terjadi kesalahan pada kode diatas? Karena thread ke-dua dan ketiga tidak pernah dijalankan Karena multithread tidak didukung oleh J2ME Karena method start() seharusnya diimplementasikan oleh class CobaThread Karena method start() tidak pernah dipanggil
11. Agar suatu Thread yang menjalankan operasi looping while bisa berhenti (dead), maka dapat dilakukan dengan ... memberikan sebuah flag yang mengkondisikan syarat looping while tersebut terus mengulang atau berhenti mengulang. memberikan sebuah flag untuk mengeksekusi method sleep() dengan kondisi yang ditentukan. mentrigger Thread tersebut dari suatu external event yang ditetapkan, agar Thread beruah state. memberikan sebuah flag untuk mengeksekusi method stop() dengan kondisi yang ditentukan. memberikan sebuah flag untuk mengeksekusi method close() dengan kondisi yang ditentukan.
Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.
12. Tidak semua method yang dimiliki Class Thread pada versi mobile mendukung versi desktop. Method manakah yang mendukung pada versi mobile maupun versi desktop? getAllStackTraces(); dumpStack(); getStackTrace(); getThreadGroup(); interrupt();
13. Thread memungkinkan sebuah aplikasi Java untuk... (kecuali) Menjalankan suatu operasi tertentu di background (balik layar). Melakukan beberapa perhitungan pada waktu yang bersamaan. Melakukan banyak operasi secara berurutan (sekuensial). Mengeksekusi suatu method sementara method lain dalam keadaan dieksekusi (berjalan). Melakukan beberapa eksekusi yang bersamaan.
14. Perhatikan kode berikut ini :
Kesalahan apakah yang terjadi pada kode diatas? Class CobaThread tidak diperbolehkan untuk mengimplementasikan method start() karena method tersebut sudah dimiliki oleh Thread Class CobaThread harus mengoverride method run() karena ia mengimplementasikan interface Runnable Object thread seharusnya memanggil method run() yang diimplementasikan oleh Runnable
15. Berikut ini yang merupakan method yang bersifat static pada class Thread adalah ...
Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.
join(); interrupt(); getPriority(); yield(); run();
16. Cara untuk menggunakan Thread pada program adalah ... mendefinisikan kelas baru sbg turunan kelas Thread, mengoverride method run dari kelas Runnable. mendefinisikan kelas baru sbg turunan kelas Thread, melakukan instantiate terhadap kelas tersebut. mendefinisikan kelas baru sbg turunan kelas Runnable, melakukan instantiate terhadap kelas tersebut. mendefinisikan kelas baru sbg turunan kelas Runnable, mengoverride method run dari kelas Runnable. mendefinisikan kelas baru sbg turunan kelas Runnable, melakukan instantiate terhadap kelas yang baru.
17. Misal suatu kondisi dalam sebuah program java terpenuhi, sehingga menyebabkan dieksekusinya suatu Thread yang menjalankan single operation dan sedang dalam state ready. Maka selanjutnya state Thread tersebut berubah menjadi ... dead kemudian live live kemudian dead running kemudian terminated suspended kemudian terminated suspended kemudian running
18. Construktor manakah dari Thread berikut ini yang salah? Thread(); Thread(String name); Thread(Runnable target); Thread(Runnable target, String name); Thread(Runnable target, String name); Thread(int c);
Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.
19. Tanpa mendefinisikan Thread secara koding, pernyataan berikut yang paling benar adalah ... Setiap program java secara default telah mengimplementasikan beberapa Thread dalam eksekusinya. Setiap program java telah mengimplementasikan sebuah Thread dalam eksekusinya. Setiap program java tidak akan mengimplementasikan satu Thread pun. Setiap program java tetap berjalan namun tidak bisa mengakses fitur Thread. Setiap program java akan jalan apabila di panggil Thread tersebut.
20. Perhatikan kode berikut ini:
Mengapa berdasarkan kode diatas proses pertama, kedua, dan ketiga tidak selalu bekerja berurutan? Karena terdapat pemanggilan method sleep() dalam loop ketiga proses tersebut tidak tampil berurutan karena pada saat mereka berada pada state runnable(akan running), PROCESSOR-lah yang akan mengatur, thread mana yang akan tampil terlebih dahulu ketiga proses diatas memang tidak tampil berurutan, tetapi thread pertama selalu tampil terlebih dahulu, baru kemudian proses kedua dan ketiga tampil secara acak tergantung oleh proses algorithma dalam PROCESSOR ketiga proses diatas tidak tampil berurutan bergantung pada time slicing dan priority pada PROCESSOR
ketiga proses diatas tidak tampil berurutan bergantung pada time slicing pada PROCESSOR
ketiga proses diatas tidak tampil berurutan karena priority-nya berbeda ketiga proses diatas tidak tampil berurutan karena ketiga process tersebut berada dalam kondisi waiting terlebih dahulu sebelum berada pada state runnable