Monday, 20 December 2010

Contoh Program Java: Exception Handling

Exception adalah setiap kejadian yang abnormal, tidak diharapkan, dan kondisi yang tidak umum yang mungkin terjadi pada saat run-time program. Java exception handling digunakan untuk menangani kondisi error dalam sebuah program secara sistematis dengan melakukan tindakan yang diperlukan. Dengan adanya exception, maka program akan terhindar dari kondisi hang, atau mati dalam kondisi yang tidak wajar/ tidak jelas. Java exception dimulai dengan kata kunci throw dan ditangani dalam sebuah blok catch. Berikut contoh sederhananya:

public class java_exception {
public static void main(String[] args) {
int result = division(100,0); // Line 2
System.out.println("hasil : "+result);

result = division(100,2);
System.out.println("hasil : "+result);
}
public static int division(int totalSum, int totalNumber) {
int quotient = -1;
System.out.println("Komputasi Pembagian "+totalSum+" dengan "+totalNumber);
try
{ quotient = totalSum/totalNumber; }
catch(Exception e)
{ System.out.println("Pesan Exception : "+ e.getMessage()); }
finally
{ if(quotient != -1)
{ System.out.println("Finally Block Dijalankan");
System.out.println("hasil fungsi : "+ quotient); }
else
{ System.out.println("Finally Block DIjalankan. Terjadi Exception");
System.out.println("hasil fungsi : "+ quotient);
return quotient;
}
}
return quotient;
}
}

Monday, 10 May 2010

Contoh Program Stack Array Sederhana dalam Java

import java.io.*;
public class stack_array
{
private int maxsize; //penentu batas elemen stack maksimum
private double [] stackarray; //array untuk menyimpan stack
private int top; //indeks array
public void inisiasi(int s) //menentukan ukuran kapasitas stack
{
maxsize = s;
stackarray = new double [maxsize];
top = -1;
}
public void push(double data)
{
if (top>=maxsize-1)
System.out.println("Stack Penuh. "+data+" Tidak Bisa Masuk");
else
{
top++;
stackarray[top] = data;
System.out.println(data +" Masuk ke Stack");
}
}
public double pop()
{
double temp;
if (top>=0)
{
temp = stackarray[top];
System.out.println(temp + " Keluar dari Stack");
top--;
return (temp);
}
else
{
System.out.println("Stack Sudah Kosong");
return(-1);
}
}
public void view()
{
System.out.print("Isi Stack: ");
for(int i=0; i<=top; i++)
System.out.print(stackarray[i] + " ");
System.out.println();
}
public static void main(String[] args)
{
stack_array stack = new stack_array();
stack.inisiasi(3);
stack.push(3);
stack.push(4);
stack.push(2);
stack.view();
stack.push(5);
stack.push(1);
stack.pop();
stack.pop();
stack.view();
stack.pop();
stack.pop();
stack.pop();
stack.push(6);
stack.push(8);
stack.push(7);
stack.push(9);
stack.pop();
stack.view();
}
}

//Selamat mencoba ^_^

Tuesday, 22 December 2009

Contoh Program Java Swing Sederhana

Berikut ini adalah sebuah contoh implementasi library swing pada bahasa Java untuk membuat program dengan tampilan GUI (Graphical User Interface). Program sederhana ini adalah tentang penghitungan luas sebuah persegi. User diminta memasukkan data panjang dan lebar, kemudian akan dihitung dan ditampilkan luasnya setelah user menekan tombol "Hitung Luas". Project ini terdiri atas dua class yang terpisah, yaitu class persegi dan class hitung. Class persegi berfungsi untuk pengaturan tampilan antarmuka program, sedangkan class hitung berperan sebagai action yang akan dilakukan sebagai respon terjadinya penekanan tombol oleh user. Berikut adalah source code lengkapnya. Dan terima kasih atas kunjungannya. Semoga bermanfaat :)

isi class persegi:
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.FlowLayout;
class persegi {
public static void main(String args[]) {
//deklarasikan komponen2
JFrame frame;
Container contentPane;
JTextField tfpanjang, tflebar, tfluas;
JButton button;
FlowLayout layout;
frame = new JFrame();
//inisialisasi/ setting tiap2 komponen
frame.setTitle("Program Perhitungan Luas Persegi");
contentPane = frame.getContentPane();
tfpanjang = new JTextField("Masukkan panjang", 10);
tflebar = new JTextField("Masukkan lebar", 10);
tfluas = new JTextField("", 10);
button = new JButton("Hitung Luas");
//sambungkan button dgn perintah yg akan dijalankan
//kirimkan komponen2 ke action listener
button.addActionListener(new hitung(tfpanjang,tflebar,tfluas));
//rakitkan komponen2
contentPane.add(tfpanjang);
contentPane.add(tflebar);
contentPane.add(button);
contentPane.add(tfluas);
layout = new FlowLayout();
contentPane.setLayout(layout);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}

isi class hitung:
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class hitung implements ActionListener {
JTextField tp,tl,tf;
hitung(JTextField tfp,JTextField tfl,JTextField tfL) {
//tampung data dari class container ke local
//by refference
tp = tfp;
tl = tfl;
tf = tfL;
}
public void actionPerformed(ActionEvent e) {
int temp,p,l;
//tampung isi textfield ke string,
//kemudian ekstrak data menjadi angka.
String sp = tp.getText();
p = Integer.parseInt(sp);
String sl = tl.getText();
l = Integer.parseInt(sl);
temp = p*l; //hitung luas persegi
//kirimkan hasil temp ke tf
//tf & tfL adalah identik, yaitu text field Luas
//di class pemanggil actionlistener
tf.setText(String.valueOf(temp));
}
}

Friday, 11 December 2009

Another Example about Insert and Delete Linked List

Below is another example about linked list implementation using C++ language. In this source code there are three basic operation described, those are insertion, deletion and show the nodes inside the linked list. You are recommended to modify some unpractical part of the code, one of it is insertion part. The insertion part will be better if you use an iteration to make it more efficient. Thanks for visiting :)

#include "iostream.h"
#include "string.h"
struct node{
char name [20];
int distance; //data
struct node *next;//pointer to point to the next node
};
typedef node * nodeptr;
void insert(nodeptr &head, int data, char nama []){
nodeptr temp;
temp=new node;
temp->distance=data;
strcpy(temp->name,nama);
temp->next=NULL;
if (head==NULL)
head=temp;
else{
temp->next=head;
head=temp;
}
};
char * delnode(nodeptr &head){

nodeptr temp;
char hold[20];

if (head!=NULL) {
temp=head;
strcpy(hold,temp->name);
head=temp->next;
delete temp;
return hold;}
else{
cout<<"Link list is empty"<<endl; return(0);}
}

void main()
{ nodeptr head=NULL, ptr;
int jarak;
char kota [20];
insert(head, 15, "surabaya");
insert(head, 12, "mojokerto");
insert(head, 23, "lamongan");
cout<>kota;
cout<>jarak;
insert(head,jarak,kota);
//show the begining
for(ptr=head; ptr!=NULL; ptr=ptr->next)
cout<distance<<" "<name<<endl;
//delete the front node
strcpy(kota,delnode(head));
cout<<"deleted = " <<kota<next)
cout<distance<<" "<name<<endl;
}

Thursday, 8 October 2009

Array of Object: Program Bank Account

Berikut ini adalah contoh program bank account sederhana yang menggabungkan konsep array/ larik dengan konsep object pada OOP. Dengan integrasi ini, program mampu menyimpan lebih dari satu object yang mempunyai induk class yang sama, yaitu bank account. Untuk navigasi dari object satu ke object yang lain digunakan data dari nomer rekening yang tersimpan dalam array.

#include "iostream.h"
class bank_account
{
private:
int pin;
long int no_rekening, no_rek_tujuan;
char nama [20];
char alamat [30];
long int uang;
long int saldo;
char tagihan [10];
public:
bank_account() //default constructor
{ cout << "Constructor executed..." << endl;
saldo = 0;
pin = 0;
}
bank_account(int x, int y = 1000) //parameterized cons
{ saldo = x;
pin = y;
}
bank_account(bank_account &ba)
{ saldo = ba.saldo;
pin = ba.pin;
}
~bank_account()
{ cout << "Destructor executed..." << endl;
}
void rek_baru()
{ cout <> nama;
cout <> alamat;
cout <> no_rekening;
cout <> pin;
cout <> saldo;
cout << "Rekening Anda sudah aktif\n";
};
void setoran()
{ cout <> uang;
saldo = saldo + uang;
cout << "Saldo Anda sekarang adalah = " << saldo << endl;
};
void penarikan()
{ cout <> uang;
if (saldo >= uang)
{ saldo = saldo - uang;
cout << "Saldo Anda sekarang adalah = " << saldo << endl;
}
else cout << "Saldo tidak mencukupi\n";
};
void cek_saldo()
{ cout << "Saldo Anda = " << saldo << endl;
}
long int get_rek()
{ return(no_rekening);
}
};
void main()
{
bank_account nasabah[5];
int menu, nomer, jumlah_nasabah = 0;

do
{
cout << "\nMENU\n1. Buat Rekening\n2. Setoran\n3. Penarikan\n";
cout <> menu;
switch (menu)
{
case 1: nasabah[jumlah_nasabah].rek_baru();
jumlah_nasabah++; break;
case 2: cout <> nomer;
for(int i=0; i=5) cout <<"Not found\n";
break;
case 3: cout <> nomer;
for(int i=0; i=5) cout <<"Not found\n";
break;
case 4: cout <> nomer;
for(int i=0; i=5) cout <<"Not found\n";
}
}while (menu < 5);
cout << "bye bye...\n";
}

Thursday, 1 October 2009

Program OOP Bank Account Sederhana

Ada beberapa fungsi yang belum disertakan dalam program ini, yaitu:
- penggantian PIN
- penutupan rekening
- transfer uang antar rekening, dan
- pembayaran tagihan-tagihan

#include "iostream.h"
class bank_account
{
private:
int pin;
long int no_rekening, no_rek_tujuan;
char nama [20];
char alamat [30];
long int uang;
long int saldo;
char tagihan [10];
public:
void rek_baru()
{ cout <> nama;
cout <> alamat;
cout <> no_rekening;
cout <> pin;
cout <> saldo;
cout << "Rekening Anda sudah aktif\n";
};
void setoran()
{ cout <> uang;
saldo = saldo + uang;
cout << "Saldo Anda sekarang adalah = " << saldo << endl;
};
void penarikan()
{ cout <> uang;
if (saldo >= uang)
{ saldo = saldo - uang;
cout << "Saldo Anda sekarang adalah = " << saldo << endl;
}
else cout << "Saldo tidak mencukupi\n";
};
void cek_saldo()
{ cout << "Saldo Anda = " << saldo << endl;
}
};
void main()
{
bank_account nasabah;
int menu;

do
{
cout << "\nMENU\n1. Buat Rekening\n2. Setoran\n3. Penarikan\n";
cout <> menu;
switch (menu)
{
case 1: nasabah.rek_baru(); break;
case 2: nasabah.setoran(); break;
case 3: nasabah.penarikan(); break;
case 4: nasabah.cek_saldo(); break;
}
}while (menu < 5);
}

Wednesday, 5 August 2009

Program Billing Restoran Sederhana

Berikut ini contoh program sederhana untuk melakukan billing transaksi di sebuah restoran. Program ditulis dengan menggunakan bahasa C++ secara prosedural. Program ini juga merupakan jawaban soal UTS SP mata kuliah Bahasa Pemrograman 1. Semoga bermanfaat.

Jalannya program: user/ petugas billing akan memasukkan data menu masakan yang dipesan. Setelah itu dimasukkan jumlah porsinya. Program akan menghitung dan menampilkan biaya per menu. Program akan kembali ke halaman menu. User bisa mengulangi untuk memasukkan menu yang lain. Jika sudah tidak ada lagi menu yang mau dimasukkan maka user memilih menu "Selesai" untuk menampilkan Total biaya yang harus dibayar dari keseluruhan menu yang dipesan. Selamat mencoba...

#include "stdio.h"
void main()
{
int pilihan, biaya, porsi, total=0;

do
{
printf("MENU RESTORAN NIKMAT\n");
printf("1. Sate Ayam\n2. Sate Kambing\n3. Soto Iga Sapi\n");
printf("4. Selesai\n5. EXIT\n");
printf("Pilihan = ");
scanf("%d", &pilihan);
switch(pilihan)
{
case 1:
biaya = 7000;
printf("Porsi = "); scanf("%d", &porsi);
biaya = biaya * porsi;
total = total + biaya;
printf("Biaya = %d\n", biaya);
break;
case 2: //modify case 1
break;
case 3: //modify case 1
break;
case 4:
printf("Total biaya = %d\n", total);
total = 0;    //di-nol-kan utk awal perhitungan baru
break;
case 5:
printf("Program shut down...");
break;
}
}while (pilihan != 5);
}

Thursday, 14 May 2009

Program Queue Memakai Linked List

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
struct node{
int info;
struct node *next;
};
typedef struct node *simpul;

void main()
{
simpul baru, front=NULL, rear=NULL, temp;
int pilih;

do
{
printf("MENU\n");
printf("1. ENQUEUE\n");
printf("2. VIEW\n");
printf("4. DEQUEUE\n");
printf("PILIH: ");
scanf("%d", &pilih);
switch(pilih)
{
case 1:
int data;
printf("Data Masuk: ");
scanf("%i", &data);
baru = (simpul) malloc(sizeof (struct node));
baru->info = data;
baru->next = NULL; //tidak menuju simpul mana2
if (front == NULL) //khusus simpul pertama LL
{ front = baru;
rear = baru;
}
else //untuk simpul2 berikutnya
{ rear->next = baru;
rear = baru;
}
break;
case 2:
temp = front; //tampilkan mulai dr depan
while(temp!=NULL) //ulangi sampai temp NULL
{ printf("%i ", temp->info);
temp = temp->next; //geser temp ke belakang
}
printf("\n");
break;
case 4:
if(front != NULL)
{ temp = front;
printf("Data keluar = %d\n", temp->info);
front = temp->next;
free(temp);
printf("\n");
}
else printf("Queue sudah kosong!\n");
break;
}
}while (pilih!=5);
}

Monday, 11 May 2009

Contoh Program Queue Menggunakan Array Bahasa C

#include "stdio.h"
void main()
{ int queue[5];
int depan = -1;
int belakang = -1;
int pilihan, data, i;

do{
printf("MENU\n");
printf("1. ENQUEUE\n2. DEQUEUE\n3. VIEW\n4. EXIT\n");
printf("Pilihan = "); scanf("%d", &pilihan);
switch (pilihan)
{
case 1: //enqueue
//apakah queue belum penuh?
if (belakang < 4 )
{ printf("Data Masuk = "); scanf("%d", &data);
queue[belakang+1] = data;
belakang++;
if (belakang == 0)
depan = 0;
}
else
printf("Queue penuh!\n");

break;
case 2: //dequeue
//apakah queue belum kosong?
if (depan <= belakang)
{ printf("Data keluar = %d\n", queue[depan]);
depan++;
}
else
printf("Queue kosong!\n");
break;
case 3:
for(i=depan; i<=belakang; i++)
printf("%d ", queue[i]);
printf("\n");
break;
}
}while (pilihan != 4);
}

Artikel terkait:
Queue dengan Liked List
Queue Array Java
Queue Linked List Java
Queue Library Java

Tuesday, 5 May 2009

Contoh Program Double Linked List dalam Bahasa C

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
struct node{
struct node *previous;
int info;
struct node *next;
};
typedef struct node *simpul;

void main()
{
simpul baru, head=NULL, tail=NULL, temp;
int pilih;

do
{
printf("MENU\n");
printf("1. Insert Depan\n");
printf("2. View\n");
printf("3. Search\n");
printf("4. Delete Depan\n");
printf("PILIH: ");
scanf("%d", &pilih);
switch(pilih)
{
case 1:
int data;
printf("Data Masuk: ");
scanf("%i", &data);
baru = (simpul) malloc(sizeof (struct node));
baru->info = data;
baru->next = NULL; //tidak menuju simpul mana2
baru->previous = NULL;
if (head == NULL) //khusus simpul pertama LL
{
head = baru; //pointer head, tail, baru sama
tail = baru;
}
else //untuk simpul2 berikutnya
{
baru->next = head;
head->previous = baru;
head = baru;
}
break;
case 2:
printf("Dari HEAD\n");
temp = head; //tampilkan mulai dr depan
while(temp!=NULL) //ulangi sampai temp bernilai NULL
{
printf("%i ", temp->info);
temp = temp->next; //geser temp ke belakang
}
printf("\nDari Tail\n");
temp = tail; //tampilkan mulai dr depan
while(temp!=NULL) //ulangi sampai temp bernilai NULL
{
printf("%i ", temp->info);
temp = temp->previous; //geser temp ke belakang
}
printf("\n");
break;
case 3:
int cari;
printf("Cari Angka: ");
scanf("%i", &cari);
temp = head;
while((temp!=NULL)&&(temp->info!=cari))
{
temp = temp->next;
}
if(temp != NULL && temp->info == cari)
printf("Data Ditemukan");
else //if(temp == NULL)
printf("Data Tidak Ditemukan");
printf("\n");
break;
case 4://hapus depan
temp = head;
head = head->next;
if (head != NULL)
head->previous = NULL;
if (head == NULL)
tail = NULL;
free(temp);
break;
}
}while (pilih!=5);
}