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

Wednesday, 22 April 2009

TIPS Memahami Linked List

Tips ini saya tulis berdasar pengalaman pribadi selama masih kuliah dan mengambil mata kuliah Algoritma dan Struktur Data. Harapan saya sedikit banyak bisa membantu pembaca dalam menguasai topik programming yang satu ini. Terus terang pas jaman kuliah dulu saya kesulitan memahami apa sebenarnya linked list. Maklum dalam linked list kita sedikit bicara hal abstrak, nggak begitu jelas karena yang dibahas adalah membayangkan isi memori komputer. Bahkan sampai selesai UAS pun saya masih bertanya-tanya, "Linked List???". Hingga akhirnya saya dapat menemukan pencerahan dari-Nya. Alhamdulillah :)

TIPS 1. Pahami konsep dasar Linked List.
Singkat cerita, linked list (LL) adalah identik dengan array/ larik. LL merupakan struktur data yang bisa menyimpan rangkaian data secara dinamis. Dinamis karena bisa ditambah dan dikurangi sesuai kebutuhan program. Dengan demikian ketika kita bicara linked list maka bayangkan bahwa ia secara fisik hampir sama ilustrasinya dengan tipe data array, yaitu deretan kotak elemen yang memanjang. Bedanya, klo array itu kotaknya berdempetan, sedangkan linked list kotak-kotaknya (node/simpul) nanti terhubung dengan minimal sebuah garis panah (pointer).

TIPS 2. Gambar dulu ilustrasinya.
LL itu abstrak, namun bisa kita buat gambaran prosesnya. Bagian yang paling rumit dalam LL adalah merangkai simpul satu dengan simpul lainnya sehingga terbentuklah LL dan menjamin masih terhubungnya seluruh rangkaian node meskipun terjadi penambahan node baru maupun penghapusan node lama di posisi manapun (depan, belakang atau tengah). Untuk itu sebelum kita menulis baris perintah code program untuk operasi-operasi LL alangkah lebih baiknya jika kita awali dengan menggambarkan dulu ilustrasinya. Baik untuk kondisi LL masih baru berupa satu node, dua node maupun banyak node. Selain itu juga ketika LL dalam mode operasi penambahan maupun penghapusan node. Pastikan kita sudah menggambarkan dengan benar tentang perubahan-perubahan terhadap kondisi panah penghubung. Sebelumnya begini, setelah proses jadi begitu. Misal, yang semula bernilai NULL alias nggak kemana-mana, setelah penambahan menjadi terhubung ke simpul terdepan.
baru->next = head;
Atau bisa juga misalnya yang semula menunjuk ke simpul X berubah dialihkan menunjuk ke simpul Y karena simpul X akan dihapus, dst.
if (temp->next == X)
{
temp->next = Y;
free(X);
}
Jadi ilustrasikan dulu skema prosesnya, baru tuliskan codingnya.

TIPS 3. Jangan takut mencoba.
Practice make perfect. Silahkan dicoba berbagai macam skenario yang mungkin terjadi. Tambah di depan, tambah di belakang atau sisipkan di tengah. Hapus simpul di tengah, hapus simpul yang di belakang sendiri atau hapus simpul yang terdepan. Bagaimana pula klo LL-nya adalah Double, artinya punya dua pointer (panah penghubung) sehingga sebuah simpul bisa membaca simpul berikutnya dan juga simpul sebelumnya. Silahkan dicoba itu semua. Siapkan selembar kertas untuk menggambarkan ilustrasi prosesnya. Pasti akan asyik dan menarik :)

OK. Mungkin itu dulu tiga tips dari saya. Semoga ada manfaatnya. If there are any question, please remind me and write something right here. Perhaps i do can help :D

Tuesday, 21 April 2009

Contoh Program Menu 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, head=NULL, tail=NULL, temp;
int pilih;
do
{
printf("MENU\n");
printf("1. Insert\n");
printf("2. View\n");
printf("3. Search\n");
printf("4. Delete\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 (head == NULL) //khusus simpul pertama LL
{
head = baru; //pointer head, tail, baru sama
tail = baru;
}
else //untuk simpul2 berikutnya
{
tail->next = baru; //sambungkan di belakang
tail = baru;
}
break;
case 2:
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("\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:
int hapus;
char jwb;
simpul prev = NULL;
printf("Hapus Angka: ");
scanf("%i", &hapus);
temp = head;
while((temp!=NULL)&&(temp->info!=hapus))
{
//prev selalu berada 1 simpul di belakang temp
prev = temp;
temp = temp->next;
}
if(temp != NULL && temp->info == hapus)
{
printf("Yakin Dihapus? (y/t)");
flushall();
jwb=getch();
if(jwb == 'y')
{
//jika hapus simpul di tengah
if(temp->next != NULL && temp != head)
prev->next = temp->next;
//jika hapus di depan dan tinggal 1 simpul
else if (temp == head && head->next == NULL)
{
head = NULL;
}
//jika hapus di depan tapi masih ada simpul berikutnya
else if (temp == head && head->next != NULL)
{
head = head->next;
}
//jika hapus di belakang
else if (temp->next == NULL)
{
prev->next = NULL;
tail = prev;
}
free(temp); //hapus dr memori
}
else
printf("Batal Dihapus");
}
else
printf("Data Tidak Ditemukan");
printf("\n");
break;
}
}while (pilih!=5);
}

Monday, 20 April 2009

Contoh Program Linked List Sederhana dalam Bahasa C

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct simpul {
char nama[20];
float nilai;
struct simpul *next_simpul;
} simpulku;
void main()
{ simpulku *simpul1, *simpul2, *simpul3, *simpul4, *temp;
//alokasikan memorinya dulu
simpul1 = (simpulku *)malloc(sizeof(simpulku));
simpul2 = (simpulku *)malloc(sizeof(simpulku));
simpul3 = (simpulku *)malloc(sizeof(simpulku));
//isi data masing2 simpul
strcpy(simpul1->nama, "Amin");
strcpy(simpul2->nama, "Budi");
strcpy(simpul3->nama, "Citra");
simpul1->nilai=90; simpul2->nilai=20;
simpul3->nilai=100;
simpul1->next_simpul = NULL;
//sambungkan link masing2 simpul
simpul1->next_simpul = simpul2;
simpul2->next_simpul = simpul3;
simpul3->next_simpul = NULL;
//tampilkan hasilnya, mulai dr simpul 1
temp = simpul1; //cara satu per satu
printf("%s, %f\n", temp->nama, temp->nilai);
temp = temp->next_simpul;
printf("%s, %f\n", temp->nama, temp->nilai);
temp = temp->next_simpul;
printf("%s, %f\n", temp->nama, temp->nilai);
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);

//skenario menambahkan simpul baru
simpul4 = (simpulku *)malloc(sizeof(simpulku)); //siapkan
strcpy(simpul4->nama, "Dewi");simpul4->nilai=80; //isi
simpul2->next_simpul = simpul4; //update link
simpul4->next_simpul = simpul3;
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
//menghapus simpul budi
simpul1->next_simpul = simpul4; //update link
free(simpul2); //hapus simpul
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
}

Wednesday, 4 February 2009

8 Tips Praktis Pemrograman

Cukup banyak mahasiswa yang merasa kesulitan dalam belajar membuat program. Bingung harus memulai dari mana. Beberapa kejadian yang sering mengganggu dalam proses ini adalah masalah terjadinya error pada saat kompilasi atau eksekusi program. Hal ini terbukti berdasarkan survei yang saya lakukan di kelas dalam 2 semester terakhir.

Error itu hal biasa dalam belajar membuat program. Sebagaimana klo kita jatuh ato nabrak ketika belajar naik sepeda. Sudah hal lumrah klo salah dalam belajar. Namanya saja belajar. Dari yang sama sekali blank, menjadi skillful. Kita bukan malaikat lho. Yang nggak wajar itu adalah tidak mengambil pelajaran dari kesalahan yang ditemukan, ato yang lebih parah adalah mengulangi kembali kesalahan serupa. Error tidak seharusnya membuat semangat belajar kita padam, terhenti di tengah jalan.

Pembaca yang budiman, disini saya akan berbagi pengalaman belajar membuat program. Jujur, saya berangkat dari nol untuk belajar programming. Bahkan 2 tahun pertama kuliah, saya masih tanpa komputer pribadi. Cuma nebeng teman, ato mampir di lab. Nggak kenal itu bahasa Pascal, bahasa C maupun C++. Tapi karena saya sudah memilih kuliah di bidang IT, ya apa boleh buat. Demi masa depan, semua tantangan harus dihadapi. Salah satunya adalah ketrampilan membuat program.

Tips yang pertama adalah tumbuhkan cinta dulu (ceile...) kepada pemrograman. Tanpa ada cinta ya jangan harap bisa punya motivasi tinggi. Cinta bisa alami, bisa dikondisikan. Sebaiknya dua-duanya kita miliki. Klo alami prosesnya butuh banyak waktu karena "trisno jalaran soko kulino". Cinta karena kebiasaan. Namanya kebiasaan itu lama. Tiada hari tanpa coding :). Namun cinta bisa juga dikondisikan. Relatif cepat. Kita harus kondisikan mindset kita bahwa tanpa menguasai programming ya tamat sudah masa depan. Mo jadi apa nanti? Lulusan IT mo kerja apa klo programming saja nggak ngeh? Ato jangan-jangan malah ke-DO duluan? :(. So, cintai dulu membuat program. Bayangkan dengan kita cinta programming, maka kita kelak akan bisa membuat program sekelas Winning Eleven, Windows Vista ato Counter Strike! Keren kan :)

Kedua, miliki akses ke komputer. Nggak harus beli. Anda masih punya sahabat karib, teman baik (ini gunanya gaul di kampus, ikut organisasi). Anda pun masih bisa pinjam komputer di lab seijin pengurusnya ato bisa juga di ruang himpunan/ asisten. Tips ketiga, terkait dengan masalah komputer, adalah praktekkan programming. Membuat program bukan pekerjaan hayalan, ngelamun, ditulis di angan-angan kemudian dijalankan. Itu mbujuk, ngawur, nggak ada dalilnya. Menguasai pemrograman harus dari mencobanya. Bukan sekedar mendengarkan kuliah di kelas (kalo nggak tidur/ ngobrol sendiri), membaca dan mengingat-ingat catatan. Pemrograman bukan sekedar pemahaman tapi juga menuntut adanya ketrampilan. Dengan mencoba sendiri langsung di depan komputer akan semakin menguatkan interaksi kita dengan programming. Semakin merasakan bahwa membuat program itu sangat menarik. Bayangkan, kita bisa menyuruh-nyuruh komputer untuk mengerjakan apa yang kita inginkan lewat pemrograman!

Yang keempat, mulailah dengan contoh yang sederhana. Jangan overlap langsung ke contoh yang relatif tingkat kesulitannya tinggi. Cukup dengan 10 baris dulu, jangan langsung yang 50 baris. Bisa pusing nantinya. Dalam kurikulum programming, mulailah dengan mengenal jenis-jenis tipe data dan coba program jenis sekuensial sederhana dulu. Lanjutkan dengan mempelajari contoh branching ato looping. Semakin sulit lagi, gabungkan looping dan branching dalam satu program. Tak ketinggalan, pelajari juga tipe data terstruktur semisal array dan struct. Syaratnya: pastikan Anda punya cukup literatur yang berisikan banyak contoh source code program. Setelah anda memahami contoh program, silahkan modifikasi source code tersebut. Pelajari dan analisa dampak yang terjadi.

Kelima, jika menemukan error, jangan panik dulu. Teliti kembali source code yang telah ditulis. Apakah sudah sesuai dengan contoh? Semua kompiler bahasa pemrograman menyediakan fasilitas error report, biasanya di bagian bawah jendel program. Disitu tertera lokasi baris terjadinya error disertai dengan penjelasan sebabnya. Syaratnya ya dikit-dikit kita harus menguasai bahasa Inggris. Bila ternyata masih belum paham maksud error-nya maka ada beberapa kemungkinan solusi: 1. tanya teman baik anda yang paham programming. 2. konsultasi ke mbah Google. 3. bawa masalah tersebut ke kampus. 4. hubungi kantor polisi terdekat (just kidding) maksudnya tulis saja ke blog ini, mungkin saya bisa mbantu :)

Keenam, atur waktu, dan buat jadwal belajar jika perlu. Namanya belajar jelas butuh waktu untuk konsentrasi, fokus. Jam bermain, ato waktu untuk agenda-agenda yang kurang ato bahkan nggak jelas kontribusinya buat masa depan ya sudah sepantasnya dikurangi. Belajar butuh pengorbanan, keluar dari zona nyaman, dari nyantai-nyantai dan asyik berleha-leha. Slot waktu belajar harus jelas. Saya anjurkan bisa rutin tiap hari belajar satu program. Tanamkan: Ini demi masa depan! Ini investasi kita yang akan dipanen 4-5 tahun ke depan. InsyaAlloh.

Ketujuh, tularkan ilmu, sekecil apapun. Orang bijak mengatakan, "Ikatlah ilmu dengan mengamalkannya". Semakin sering kita berbagi ilmu, maka ilmu kita bukannya malah berkurang akan tetapi akan semakin menancap di pikiran, semakin ahli. Orang yang ahli adalah yang bisa memahamkan orang yang sebelumnya tidak paham. Ajari teman yang merasa kesulitan. Kirim artikel-artikel praktis lewat email/ milis. Posting di blog pribadi juga OK.

Tips yang kedelapan, berbakti kepada dan minta doa restu dari orang tua. Bagaimanapun beliau lah yang berkontribusi terhadap kuliah kita. Doa beliau sangat mustajab. Jangan sampai membuat beliau kecewa. Tunjukkan hasil belajar yang positif. Dan tak lupa mohon kepada-NYA supaya dibukakan pintu kemudahan dalam menimba ilmu. Karena milik-NYA-lah ilmu dari segala sumber ilmu. Wallohu a'lam bishowab. Semoga bermanfaat. Btw, ingat-ingat ada DELAPAN (8) tipsnya. Cukup DELAPAN saja... :D