Dari empat soal UTS kemarin, jawaban untuk soal nomor satu bisa dilihat kembali di catatan/ slide. Teoritis; sudah kita bahas di kelas selama dua pertemuan. Soal nomor dua, relatif mudah. Percabangan sederhana menggunakan perintah if-else. Mungkin sedikit rumit dalam menuliskan kondisi untuk menerjemahkan nilai antara sekian hingga sekian. Solusinya, gunakan operator logika AND (&&). Contohnya: if (nilai>=70 && nilai<80) dst.
Soal nomor tiga tentang tracing. Sebagaimana dibahas di kelas, langkah pertama adalah menggambarkan tabel tracing-nya. Setidaknya ada empat kolom, yaitu untuk variabel i, j, k dan display. Selanjutnya tinggal mengikuti jalannya program secara teliti dan hati-hati. Sedikit catatan, bahwa di dalam looping j, terdapat tiga perintah setara, yakni looping i, looping k, dan System.out. Ini berarti setelah looping i selesai, maka dilanjutkan looping k. Setelah looping k selesai, maka dilanjutkan System.out. Dan setelah itu baru kembali ke atas; ke bagian decrement looping j (j--).
Contoh Program Exception dalam Bahasa Java
Konsep exception digunakan untuk menghindari terjadinya program mati/ berhenti mendadak saat sedang dijalankan. Hal ini biasanya disebabkan isian dari user yang tidak sesuai, atau ada proses di dalam program yang menyebabkan error di tengah jalan. Struktur coding-nya adalah berupa blok try {} catch(){} finally{}. Berikut ini adalah contoh sederhananya.
import java.io.*;
class ExceptionGenerator {
public void divideByZero () {
// Generate an ArithmeticException - runtime
int y = 6, x = 0;
int z = y / x;
System.out.println ("z = " + z);
}
public void arrayOutOfBounds () {
// Generate an ArrayIndexOutOfBoundsException - runtime
int [] data = new int [10];
data[10] = 16;
System.out.println ("data[10] = " + data[10]);
}
import java.io.*;
class ExceptionGenerator {
public void divideByZero () {
// Generate an ArithmeticException - runtime
int y = 6, x = 0;
int z = y / x;
System.out.println ("z = " + z);
}
public void arrayOutOfBounds () {
// Generate an ArrayIndexOutOfBoundsException - runtime
int [] data = new int [10];
data[10] = 16;
System.out.println ("data[10] = " + data[10]);
}
Contoh Program Queue Memakai Array/ Larik dalam Bahasa Java
class queue{
int antrian[];
int depan, belakang;
int jumlah, ukuran;
queue(int n){
antrian = new int[n]; ukuran=n;
jumlah=depan=belakang=0;
}
void insert(int d){
if(jumlah<ukuran){
antrian[belakang]=d;
jumlah++; belakang++;
}
}
void remove(){
for(int i=0; i<jumlah-1 ;i++){
antrian[i]=antrian[i+1];
}
jumlah--;
belakang--;
}
void display(){
System.out.print("\nIsi Antrian : ");
for(int i=0; i<jumlah; i++){
System.out.print(antrian[i]);
}
}
}
public class queuearray {
public static void main(String s[]){
queue q = new queue(5);
q.insert(9); q.display(); q.insert(5); q.display();
q.insert(7); q.display(); q.insert(3); q.display();
q.insert(8); q.display();
q.remove(); q.display();
q.remove(); q.display();
q.insert(6); q.display();
}
}
int antrian[];
int depan, belakang;
int jumlah, ukuran;
queue(int n){
antrian = new int[n]; ukuran=n;
jumlah=depan=belakang=0;
}
void insert(int d){
if(jumlah<ukuran){
antrian[belakang]=d;
jumlah++; belakang++;
}
}
void remove(){
for(int i=0; i<jumlah-1 ;i++){
antrian[i]=antrian[i+1];
}
jumlah--;
belakang--;
}
void display(){
System.out.print("\nIsi Antrian : ");
for(int i=0; i<jumlah; i++){
System.out.print(antrian[i]);
}
}
}
public class queuearray {
public static void main(String s[]){
queue q = new queue(5);
q.insert(9); q.display(); q.insert(5); q.display();
q.insert(7); q.display(); q.insert(3); q.display();
q.insert(8); q.display();
q.remove(); q.display();
q.remove(); q.display();
q.insert(6); q.display();
}
}
Contoh Program Queue Memakai Linked List dalam Bahasa Java
class simpulq{
int data;
simpulq prev, next;
simpulq(int d){
data=d;
}
int getdata(){ return data; }
}
class linkedlistq{
simpulq head, tail;
linkedlistq(){
head=tail=null;
}
void insert(int d){
simpulq baru = new simpulq(d);
if (head==null){ head=tail=baru;
}
else{
tail.next = baru;
baru.prev = tail;
tail = baru;
}
}
void remove(){
if (head.next==null){ head=null; tail=null;
}
else{
head=head.next;
head.prev=null;
}
}
void display(){
System.out.print("\nIsi Antrian: ");
for(simpulq t=head; t!=null; t=t.next){
System.out.print("["+t.getdata()+"]");
}
}
}
public class MyQueue {
public static void main(String j[]){
linkedlistq queue = new linkedlistq();
queue.insert(8); queue.display();
queue.insert(5); queue.display();
queue.insert(4); queue.display();
queue.insert(6); queue.display();
queue.remove(); queue.display();
queue.remove(); queue.display();
queue.remove(); queue.display();
queue.remove(); queue.display();
}
}
int data;
simpulq prev, next;
simpulq(int d){
data=d;
}
int getdata(){ return data; }
}
class linkedlistq{
simpulq head, tail;
linkedlistq(){
head=tail=null;
}
void insert(int d){
simpulq baru = new simpulq(d);
if (head==null){ head=tail=baru;
}
else{
tail.next = baru;
baru.prev = tail;
tail = baru;
}
}
void remove(){
if (head.next==null){ head=null; tail=null;
}
else{
head=head.next;
head.prev=null;
}
}
void display(){
System.out.print("\nIsi Antrian: ");
for(simpulq t=head; t!=null; t=t.next){
System.out.print("["+t.getdata()+"]");
}
}
}
public class MyQueue {
public static void main(String j[]){
linkedlistq queue = new linkedlistq();
queue.insert(8); queue.display();
queue.insert(5); queue.display();
queue.insert(4); queue.display();
queue.insert(6); queue.display();
queue.remove(); queue.display();
queue.remove(); queue.display();
queue.remove(); queue.display();
queue.remove(); queue.display();
}
}
Situs Online Judge Pemrograman
Buat para ksatria programming, baik yang pemula atau yang sudah master, silahkan uji kesaktiannya di situs online judge. Di situs tersebut akan banyak koleksi soal pemrograman yang bisa dipecahkan. Pengguna bisa bersaing dengan pengguna lainnya. Situs online judge menjadi kawah candradimuka yang pas buat teman-teman yang sedang mempersiapkan mengikuti kompetisi/ lomba pemrograman. Berikut ini beberapa alamat situsnya:
1. AIZU Online Judge. Dikembangkan oleh Universitas Aizu Jepang. Di situs ini tercatat sudah memiliki 26 volume paket soal. Setiap volume berisi sekitar 50 soal.
2. Sphere Online Judge. Sampai artikel ini dibuat, ada 14 juta lebih kiriman jawaban dari 300 ribu lebih pengguna. Koleksi problems-nya mencapai 24.000 soal untuk kategori Classical.
3. URI Online Judge. Situs ini dikembangkan oleh Departemen Ilmu Komputer Universitas Rhode Island, Amerika. Koleksinya 700 problems dalam 8 kategori utama.
4. UVA Online Judge. Dibuat oleh Universitas Valladolid (Spanyol), bekerjasama dengan ACM ICPC. Ada 14 paket problems. Satu paket problems berisi sekitar 1.500 soal.
5. JollyBee Online Judge. Dibangun oleh Universitas Binus. Mungkin situs ini satu-satunya yang berbahasa Indonesia. Koleksi soalnya belum begitu banyak. Baru ada sekitar 90 problem.
1. AIZU Online Judge. Dikembangkan oleh Universitas Aizu Jepang. Di situs ini tercatat sudah memiliki 26 volume paket soal. Setiap volume berisi sekitar 50 soal.
2. Sphere Online Judge. Sampai artikel ini dibuat, ada 14 juta lebih kiriman jawaban dari 300 ribu lebih pengguna. Koleksi problems-nya mencapai 24.000 soal untuk kategori Classical.
3. URI Online Judge. Situs ini dikembangkan oleh Departemen Ilmu Komputer Universitas Rhode Island, Amerika. Koleksinya 700 problems dalam 8 kategori utama.
4. UVA Online Judge. Dibuat oleh Universitas Valladolid (Spanyol), bekerjasama dengan ACM ICPC. Ada 14 paket problems. Satu paket problems berisi sekitar 1.500 soal.
5. JollyBee Online Judge. Dibangun oleh Universitas Binus. Mungkin situs ini satu-satunya yang berbahasa Indonesia. Koleksi soalnya belum begitu banyak. Baru ada sekitar 90 problem.
Subscribe to:
Posts (Atom)