Rekursi: Towers of Hanoi
Aturan mainnya adalah memindah piringan hanya boleh satu saja sekali angkat untuk dipindahkan ke tiang lain. Tiang yang disediakan sejumlah 3 buah, salah satunya adalah tiang bantuan. Di tiang asal terdapat sejumlah piringan yang telah tersusun dengan urut dari besar kemudian semakin ke atas semakin mengecil. Tujuannya adalah memindahkan semua piringan ke tiang tujuan dengan posisi yang kembali urut sebagaimana semula. Selama pemindahan tidak diperbolehkan ada susunan piringan yang mana piringan yang lebih kecil berada di bawah yang lebih besar.
Berikut ini adalah contoh source code programnya dalam bahasa Java untuk menyelesaikan kasus tersebut. Dengan teknik rekursi, program menjadi lebih sederhana namun sangat powerfull untuk menyelesaikan permasalahan:
public class hanoi
{
static int langkah;
public static void towers( int n, char from, char to, char aux)
{
if ( n == 1 ) {
langkah++;
System.out.println(langkah + ". Pindahkan disk 1 dari "+ from +" ke "+ to);
return;
}
towers( n - 1, from, aux, to );
langkah++;
System.out.println(langkah + ". Pindahkan disk "+ n +" dari "+ from +" ke "+ to);
towers( n - 1, aux, to, from );
}
public static void main(String[] args) {
towers(3,'A','C','B');
}
}
Contoh Program Java OOP Relasi Class (Studi Kasus Sepeda Motor)
>> Source code <<
class sepedamotor
class orang
class aplikasi
Catatan: Ubah ekstensi .doc, menjadi .java terlebih dulu :)
Program Java: Circular Queue Memakai Linked List
- file class
- file main
Untuk bisa menjalankan:
1. Ubah ekstensi file download-an dari .java.doc menjadi .java saja.
2. Letakkan kedua file tersebut ke dalam project yang sama (lebih baik jika project baru).
3. Klik kanan pada file menu, kemudian pilih "Running".
nb: thanks to prasanti "asti" asrining puri
Library (Pustaka) Queue dalam Bahasa Pemrograman Java
Sama halnya dengan library Linked List maupun Stack, bahasa pemrograman Java juga telah menyediakan pustaka khusus untuk implementasi struktur data queue (antrian). Dengan adanya pustaka ini, programmer tidak perlu lagi menuliskan class dan method primitif untuk queue. Sebaliknya, programmer cukup mendeklarasikan obyeknya dan langsung memanggil/ menjalankan fungsi-fungsi (method) yang diinginkan.
Dalam penjelasan resmi di situs oracle.com, ada 5 method utama dalam pustaka queue. Yaitu element(), offer(object), peek(), poll(), dan remove(). Berikut ini contoh program sederhananya:
import java.util.LinkedList;
import java.util.Queue;
/**
*
* @author javadb.com
*/
public class Main {
/**
* Example method for using a Queue
*/
public void queueExample() {
Queue queue = new LinkedList();
//Using the add method to add items.
//Should anything go wrong an exception will be thrown.
queue.add(“item1″);
queue.add(“item2″);
//Using the offer method to add items.
//Should anything go wrong it will just return false
queue.offer(“Item3″);
queue.offer(“Item4″);
//Removing the first item from the queue.
//If the queue is empty a java.util.NoSuchElementException will be thrown.
System.out.println(“remove: ” + queue.remove());
//Checking what item is first in line without removing it
//If the queue is empty a java.util.NoSuchElementException will be thrown.
System.out.println(“element: ” + queue.element());
//Removing the first item from the queue.
//If the queue is empty the method just returns false.
System.out.println(“poll: ” + queue.poll());
//Checking what item is first in line without removing it
//If the queue is empty a null value will be returned.
System.out.println(“peek: ” + queue.peek());
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Main().queueExample();
}
}
Sumber:
- http://www.javadb.com/using-a-queue-or-linkedlist
- http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Queue.html
Tools Belajar Programming
Kondisi ini menjadi pemicu bagi para peneliti untuk mengembangkan berbagai macam tools untuk mempermudah penguasaan dasar-dasar programming yaitu tentang flowchart dan algoritma. Membuat program yang baik dan benar tidak bisa dilepaskan dari pemahaman kedua hal tersebut. Flowchart dan algoritma mengasah kemampuan analisa dan berpikir kita secara logis dan terstruktur.
Alhamdulillah sepengetahuan saya ada dua aplikasi yang bisa membantu kita dalam belajar logika terstruktur, yaitu aplikasi Scratch dan Raptor. Kedua aplikasi tersebut dikembangkan oleh para akademisi untuk dapat digunakan secara bebas tanpa harus membeli lisensinya. Scratch dan Raptor cukup mudah untuk ditemukan menggunakan search engine. Hanya butuh bandwith yang agak banyak untuk men-download-nya. Selamat belajar :)
Link Installer klik di menu [Donwload]