Tuesday, 5 May 2015

Contoh Program Class Container dalam OOP Memakai Bahasa Java

Dalam contoh coding berikut ini, diterapkan skema relasi Has-A dimana objek yang dimiliki oleh sebuah class berjumlah lebih dari satu. Teknik yang dipakai adalah menggunakan tipe data array/ larik dengan class sebagai tipe datanya. Contoh kasus yang diambil dalam program ini adalah aplikasi perbankan dengan asumsi sebuah Bank memiliki banyak Nasabah, dan seorang Nasabah bisa mempunyai banyak Rekening dalam bank yang sama.

Langkah-langkah untuk implementasinya adalah sebagai berikut:
1. Buat data member (variabel) bertipe array objek di dalam class pemilik.
2. Buat data member counter untuk menyimpan jumlah objek yang ada (bertambah/ berkurang).
3. Buat method untuk menambah dan menghapus objek, serta untuk menampilkan daftar semua objek yang dimiliki. Pastikan data jumlah objek poin (2) ter-update.
4. Buat pula method untuk fungsi agregat, misalnya menjumlah total saldo, total nasabah, dsb.
5. Uji cobakan di modul main() mulai dari objek yang paling rendah/ bawah.

Semoga bermanfaat, dan selamat mencoba source code berikut ini! :)

Contoh Program Relasi Has-A dalam OOP Memakai Bahasa Java

Ada dua jenis relasi secara umum dalam Object Oriented Programming (OOP), yaitu jenis Has-A, dan jenis Is-A. Relasi Has-A antara objek X dan Y dapat diartikan sebagai objek X memiliki objek Y. Sedangkan relasi Is-A antara objek M dan N dapat diartikan sebagai objek M adalah objek N. Relasi ini dikenal juga sebagai bentuk pewarisan (inheritance).

Berikut ini adalah contoh source code relasi Has-A antara class nasabah dan class rekening dalam konteks aplikasi tentang perbankan. Langkah-langkah untuk menerapkannya ke dalam bentuk coding adalah sbb:
1. Buat data member dalam class nasabah dengan tipe class rekening.
2. Buat method "bukarekening" dalam class nasabah sebagai implementasi relasi Has-A.
3. Buat objek nasabah dan objek rekening di void main().
4. Di void main(), jalankan method "bukarekening" melalui objek nasabah, dan tuliskan objek rekening ke dalam argumentasi/ parameter method tersebut.

Contoh Program Relasi Is-A dalam OOP Memakai Bahasa Java

Relasi kedua dalam OOP adalah jenis Is-A. Relasi ini dikenal juga sebagai inheritance/ pewarisan. Relasi class X Is-A class Y berarti class X adalah class Y. Sebagai dampaknya atribut (data maupun method) class Y bisa diturunkan ke class X.

Dalam bahasa Java, perintah untuk pewarisan adalah menggunakan kata "extends". Class X extends class Y berarti class X merupakan turunan dari class Y. Class Y disebut sebagai class induk, base class atau super class. Sedangkan class X disebut sebagai class anak, derived class atau sub class.

Berikut ini adalah contoh source code implementasi relasi Is-A. Ada class tabungan dan class deposito yang diwarisi dari class rekening. Sehingga bisa kita baca class tabungan adalah class rekening. Dan class deposito adalah class rekening juga.


import java.util.Scanner;
class nasabah {
    //data
    String nama;
    long ktp;
    rekening rek;

Sunday, 3 May 2015

Contoh Program Doubly Linked List Sederhana dalam Bahasa Java

class simpul{
    int data;
    simpul next, prev;
    public simpul(int d){ data=d; next=prev=null; }
    int getdata(){ return data; }
}
class doubleLL{
    simpul head, tail;
    int jumlah;
    public doubleLL(){ jumlah=0; head=tail=null; }
    void tambahdepan(int d){
        simpul baru = new simpul(d);
        if(head==null){
            head=tail=baru;
        }
        else{
           head.prev = baru;
           baru.next = head;
           head = baru;
        }
    }

Sunday, 26 April 2015

Contoh Program Linked List Sederhana dalam Bahasa Java

package bp2;
class node {
    int data;
    node next;
    public node(int d){
        data = d; next = null;
    }
    int getnode(){ return (data); }
}
class LinkedList2{
    node head;
    node tail;
    int jumlah;
    public LinkedList2(){
        head = null; tail = null; jumlah = 0;
    }
    void tambahbelakang(node baru){

Monday, 28 April 2014

Contoh Program Java: Sort dan Search Memakai Library Arrays


Pengurutan dan pencarian adalah topik yang senantiasa berhubungan. Setidaknya data yang sudah terurut akan memudahkan pencarian. Untuk data berukuran kecil mungkin belum terasa. Namun, jika data sudah berukuran besar, pencarian yang efektif menjadi hal yang sedemikian penting.


Ada cukup banyak metode pencarian maupun pengurutan yang bisa kita temukan di internet. Di dalam topik pengurutan kita kenal bubble sort, selection sort, insertion sort hingga yang melibatkan rekursi seperti quick sort dan merge sort. Sedangkan dalam hal pencarian kita kenal metode sequential dan indexed sequential search serta binary search.

Mengingat pentingnya kedua topik tersebut, bahasa pemrograman Java telah menyediakan pustakan khusus untuk menanganinya. Programmer tidak perlu lagi menulis source code dari awal. Dengan memakai pustaka Arrays yang ada dalam paket java.util, sorting dan searching dapat dilakukan dengan begitu mudahnya. Berikut ini contoh programnya:

import java.util.Arrays; //import pustaka
/**
*
* @author bluejundi
*/
public class sortnsearch {
static int data [] = {2,5,1,3,9,6,0,7,8}; //siapkan array-nya
public static void main(String args[])
{
Arrays.sort(data); //panggil method sorting
System.out.println(Arrays.toString(data)); //tampilkan hasil sorting
int key = 7; //set kunci yang akan dicari
int indeks_kunci = Arrays.binarySearch(data, key); //panggil method binary search
System.out.println("Kunci "+key+" ditemukan di indeks "+indeks_kunci); //tampilkan hasil search
}
}

Download file: sortnsearch.java

Tuesday, 18 March 2014

Rekursi: Towers of Hanoi

Salah satu studi kasus yang paling terkenal dalam pembelajaran bab fungsi rekursi adalah Towers of Hanoi (Menara Hanoi). Konon menurut sebuah literatur, di daerah Hanoi (Vietnam) terdapat sebuah kuil yang melombakan pemindahan piringan-piringan dari sebuah tiang ke tiang yang lain. Perlombaan tersebut diikuti oleh para biksu.

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');
}
}