Friday 23 September 2011

Tools Belajar Programming

Belajar programming bagi sebagian orang sangatlah menyenangkan. Namun, tidak sedikit pula yang merasa kesulitan. Maklum dunia programming memang tidak seperti dunia matematika maupun IPA yang sudah dikenal orang sejak di bangku sekolah tingkat dasar. Sehingga tidak jarang banyak yang patah arang di tengah jalan.

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]

Tuesday 21 June 2011

Contoh Program Java: Queue dengan Linked List

Struktur data queue (antrian) dapat diimplementasikan dengan menggunakan array maupun linked list sebagai penyimpanan datanya. Dalam contoh program berikut ini saya gunakan double linked list untuk implementasi queue. Secara umum, operasi dalam queue ada 2 yang utama yaitu enqueue dan dequeue. Enqueue berarti memasukkan item baru ke dalam antrian. Sedangkan dequeue untuk mengeluarkan item dari antrian. Queue bersifat FIFO, First In First Out. Item yang pertama kali masuk akan menjadi yang pertama keluar. Pintu masuk dan pintu keluar queue ada sendiri-sendiri. Berbeda dengan stack yang hanya ada satu. Item baru akan masuk dari pintu belakang (rear), sedangkan data keluar dari pintu depan (front). Berikut adalah contoh programnya.

Download Source code queue linked list.

Tuesday 31 May 2011

Contoh Program Java: Double Linked List

Selain single linked list, dikenal juga implementasi berupa double linked list. Jika single linked list, maka di dalam struktur datanya hanya terdapat satu buah link/ acuan/ alamat referensi ke sebuah simpul (node) lain. Sedangkan untuk double linked list, jumlah link-nya ada dua buah, yaitu untuk menunjuk simpul sebelum dan sesudahnya. Dengan demikian, double linked list dapat diakses dari dua arah: maju atau mundur. Berikut file source code-nya:

download

note: ubah ekstensi .doc menjadi .java.

Monday 30 May 2011

Manfaat Komputer dalam Pendidikan

Teknologi Informasi saat ini telah memberikan banyak manfaat bagi dunia pendidikan. Tidak hanya berupa hardware maupun software, namun juga berupa jasa/ service berbasis IT. Beberapa aspek pendidikan yang telah didukung oleh IT adalah sebagai berikut:

1. Belajar mengajar.
Penggunaan teknologi multimedia untuk penyampaian materi belajar yang interaktif dan komunikatif (LCP projector, animasi, presentasi). E-learning sebagai virtual class yang bisa diakses oleh pendidik maupun peserta didik kapanpun, dimanapun. Teknologi teleconference sebagai ganti tatap muka di kelas, dsb.

2. Administrasi.
Meliputi administrasi sebelum mengikuti pendidikan, selama hingga setelah pendidikan ditempuh. Sebagian besar berupa software/ aplikasi. Misalnya: sistem penerimaan siswa baru, sistem pembayaran biaya pendidikan, sistem rencana pendidikan, sistem pemantauan kegiatan belajar mengajar, sistem evaluasi pendidikan (baik pendidik maupun peserta didik), dan sistem penelusuran alumni, dst.

3. Penelusuran pustaka.
Aspek ini semakin kuat pengaruhnya seiring dengan tumbuh berkembangnya internet. Pendidik maupun peserta didik dapat memanfaatkan internet untuk menelusuri bahan pustaka yang dibutuhkan dalam penyampaian materi ajar. Banyak hal yang bisa dimanfaatkan dari internet. Mulai dari search engine, mailing list, file resource sharing, specific community membership, dll.

Dan masih banyak lagi yang belum disebutkan. Apa lagi menurut Anda?

Tuesday 10 May 2011

Contoh Program Java: Perulangan While

Ada 3 jenis perintah perulangan dalam bahasa Java, yaitu:
1. while
2. do-while
3. for

Perintah while memiliki struktur sbb:
[inisialisasi variabel]
while (kondisi variabel)
{
statemen_yang_akan_dikerjakan;
update_nilai_variabel;
} // kembali ke pengecekan kondisi variabel.

Contoh source code nya adalah sbb:

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int jumlah;
Scanner sc = new Scanner(System.in);
System.out.print("Masukkan jumlah data : ");
jumlah = sc.nextInt();
int i=1;
while (i<=jumlah)
{ System.out.print(i+" ");
i++;
}
System.out.println("");
}
}

Friday 6 May 2011

Contoh Program Implementasi Stack Menggunakan Linked List dalam Bahasa Java

class item //atau node/simpul
{
public int data; // data item
public item next; // next node link in list
public item prev; // previous node link in list
public item(int id) // constructor
{
data = id; // initialize data
} // set to null)
public void displayLink() // display ourself
{
System.out.print("{" + data + "} ");
}
} // end class Link
class StackLinkList
{
private item top; // ref to first link on list
private item bottom; // ref to last link on list
public StackLinkList() // constructor
{
top = bottom = null; // no items on list yet
}
public boolean isEmpty() // true if list is empty
{
return (top==null);
}
public void push(int id) //node baru selalu di top
{ // make new link
item newitem = new item(id);
if (top == null) // the first node created
{
top = bottom = newitem; // first --> newLink
}
else // the second node and the next node
{
top.next = newitem; //next dr top (awal) diarahkan ke node baru
newitem.prev = top; //prev dr node baru diarahkan ke tail (awal)
top = newitem; //top (baru) diarahkan ke node baru
}
}
public item pop() // delete first item
{ item temp = null;
if (top == null) // stack is empty
System.out.println("Stack is empty");
else if (top == bottom) // stack is only one data
{
temp = top;
top = bottom = null;
}
else // stack has more than one data
{
temp = top; // save reference to link
top = top.prev; // delete it: first-->old next
top.next = null;
}
return temp;
}
public void display()
{
item current = bottom; // start from the first data
while(current != null) // until end of list,
{
current.displayLink(); // print data
current = current.next; // move to next link
}
System.out.println("");
}
} // end class LinkList
class StackLinkListApp
{
public static void main(String[] args)
{
StackLinkList theStack = new StackLinkList(); // make new list
System.out.println("Initializing Stack...");
theStack.push(22); // insert four items
theStack.push(44);
theStack.push(66);
theStack.push(88);
System.out.println("Display Forward :");
theStack.display(); // display list
System.out.println("Delete Stack from Top...");
while( !theStack.isEmpty() ) // until it's empty,
{
item aLink = theStack.pop(); // delete link
System.out.print("Deleted "); // display it
aLink.displayLink();
System.out.println("");
}
theStack.display(); // display list
} // end main()
}

Tuesday 3 May 2011

Mengenal Fungsi dalam C++

Fungsi, atau dalam beberapa literatur ada yang mengistilahkan subrutin, subprogram maupun prosedur, adalah salah satu teknik pemrograman untuk meningkatkan modularitas program yang akan dibuat. Semakin besar tingkat modularitasnya, maka kecenderungannya adalah program itu akan relatif semakin baik. Mengapa? Karena program yang size-nya besar, banyak baris kode, akan dipecah menjadi modul-modul yang ukurannya lebih kecil. Beberapa keuntungannya adalah dalam hal efisiensi dan kemudahan dalam debugging. Dikatakan efisien karena konsep fungsi akan merangkum bagian tugas-tugas yang sama cukup dengan menuliskan kode program satu kali saja tetapi bisa dipanggil/ dijalankan berulang kali sepanjang program. Di sisi lain, jumlah baris kode program yang semakin sedikit akan memudahkan dalam menelusuri kesalahan yang ditemukan. Penggunaan konsep fungsi juga akan mengakibatkan isi dari void main() akan menjadi semakin ringkas.

Hampir sama dengan konsep fungsi dalam bahasa pemrograman lain, fungsi dalam bahasa C++ juga terdiri dari komponen yang disebut dengan HEADER fungsi dan BADAN fungsi. Header fungsi berisi informasi tentang TIPE NILAI KELUARAN (return value), NAMA FUNGSI, dan PARAMETER/ ARGUMEN FUNGSI. Return value akan berisi informasi tentang tipe data hasil keluaran dari fungsi (misal: void, int, char, float, dsb). Nama fungsi merupakan identifier untuk digunakan sebagai pemanggil fungsi (misal: hitung, proses, dsb). Sedangkan parameter, umumnya digunakan sebagai variabel untuk "jalan" masuknya input ke dalam fungsi (misal: int alas, float jari_jari, dsb). Untuk badan (BODY) fungsi akan berisikan baris-baris kode program yang akan dikerjakan jika fungsi tersebut dijalankan/ dipanggil. Sebagai tambahan, void main() yang biasa kita tulis pada saat membuat program itu juga termasuk dalam keluarga besar fungsi. Yang khusus, fungsi main() adalah fungsi utama, artinya fungsi tersebut HARUS ada setiap kali kita membuat program dalam bahasa C++. Fungsi main() hanya boleh diketikkan satu kali saja di sepanjang source code program yang kita buat.

Kombinasi nilai di bagian RETURN VALUE (RV) dan PARAMETER (P) fungsi, sedikitnya akan menghasilkan 4 bentuk kombinasi, yaitu: 1. RV void, P juga void. 2. RV void, tapi P ada isinya. 3. RV bukan void, tapi P void. 4. RV dan P keduanya bukan void. Apa itu void? Keyword void pada dasarnya akan memberitahukan kepada compiler bahwa pada bagian yang bersangkutan tidak mempunyai nilai/ value yang perlu ditangani secara khusus. Berikut penjelasan detailnya satu persatu.

1. RV dan P void.
Fungsi jenis ini biasanya disebut dengan istilah prosedur dalam bahasa Pascal/ Delphi atau juga dengan istilah subrutin dalam bahasa basic/ VB. Fungsi ini sama sekali mandiri, tidak membutuhkan input dan juga tidak menghasilkan output dari bagian lain program. Murni hanya berisi urut-urutan langkah saja. Ciri fungsi ini adalah jika ia melakukan proses pengolahan data maka komponen perintah input dan menampilkan output pasti akan dituliskan di dalam badan fungsi yang bersangkutan.

2. RV void, P berisi.
Fungsi ini berarti tidak akan menghasilkan keluaran bagi bagian lain program. Namun ia membutuhkan data sebagai input ke dalam fungsi. Dengan demikian fungsi jenis ini mensyaratkan terlebih dulu harus ada bagian lain program yang melakukan input data yang akan dikirimkan ke dalam fungsi sebelum menjalankan/ memanggil fungsi.

3. RV berisi, P void.
Tidak ada data input yang akan dibutuhkan oleh fungsi jenis ini. Tetapi, fungsi justru menghasilkan output. Kok bisa? Berarti bagian input data untuk fungsi ini akan ditulis langsung berada di dalam badan fungsi yang bersangkutan.

4. RV dan P berisi.
Fungsi jenis ini adalah fungsi yang murni. Ia hanya bertugas melakukan pengolahan data. Input diperoleh dari bagian lain program di atasnya. Sedangkan output hasil pengolahannya akan dikirimkan juga ke bagian lain program untuk kemudian ditampilkan secara terpisah. Fungsi ini ibarat fungsi matematis yang biasa kita kenal, seperti f(x,y) = 3x + 4y. Dimana (x,y) adalah parameternya, 3x + 4y adalah badan fungsinya. Sedangkan tanda '=' menunjukkan pengiriman hasil perhitungan dari sebelah kanan ke sebelah kirinya.

Berikut contoh programnya. Selamat mencoba :)

#include "stdio.h"

//bagian deklarasi fungsi

void luas(void);
void kell(int jari);
float vol(void);
int jarak(int V, int t);

void main()
{
int pilihan;
printf("\n1. Luas");
printf("\n2. Keliling");
printf("\n3. Volume");
printf("\n4. Jarak");
printf("\nPilih ? ");
scanf("%d", &pilihan);
switch(pilihan) {
case 1: luas(); break;
case 2:
//1. deklarasi variabel2
int jari;
//2. masukkan variabel input
printf("masukkan jari :");
scanf("%d",&jari);
kell(jari); break;
case 3:
float volume;
volume = vol();
//4. tampilkan hasilnya
printf("volume = %f\n",volume);break;
case 4:
int s, v, t;
printf("masukkan kecepatan : ");
scanf("%d",&v);
printf("masukkan waktu : ");
scanf("%d",&t);
s = jarak(v,t);
printf("jarak = %d\n", s); break;
default: printf("salah!");
}
}

//bagian definisi fungsi

void luas()
{
//deklarasi variabel2
int alas, tinggi;
float luas;

//input alas dan tinggi
printf("Masukkan Alas : ");
scanf("%i", &alas);
printf("Masukkan Tinggi : ");
scanf("%i", &tinggi);

//hitung luas
luas = 0.5 * alas * tinggi;

//output hasil
printf("Luas = %f\n", luas);
}

void kell(int jari)
{ float keliling;
//3. hitung variabel outputnya/ keliling
keliling=3.14*jari*jari;
//4. tampilkan hasilnya
printf("keliling = %f\n",keliling);
}

float vol()
{
//1. deklarasi variabel2
int panjang,lebar,tinggi;
//2. masukkan variabel input
printf("masukkan panjang = ");
scanf("%i",&panjang);
printf("masukkan lebar = ");
scanf("%i",&lebar);
printf("masukkan tinggi = ");
scanf("%i",&tinggi);
//3. hitung variabel outputnya/ volume
return(panjang*lebar*tinggi);
}

int jarak(int v, int t)
{
return(v*t);
}

[caption id="attachment_1837" align="aligncenter" width="400"] Mohon Maaf atas Kekurangan Kami.
Mohon Doa & Dukungannya supaya Kami Menjadi Lebih Baik Lagi.
www.pkspiyungan.org
www.pks.or.id[/caption]

Sunday 1 May 2011

Contoh Program Stack Memakai Array dalam Bahasa C

#include "stdio.h"
void main()
{
int stack[100];
int top=-1;
int pilih, i;
do
{
printf("MENU\n");
printf("1. PUSH\n2. POP\n3. VIEW\n4. EXIT\n");
printf("Pilih = "); scanf("%d", &pilih);
switch(pilih)
{
case 1://push
if (top > 100)
printf("Stack penuh!\n");
else
{    printf("Data = "); scanf("%d", &stack[top+1]);
top++;
}
break;
case 2://pop
if (top < 0)
printf("Stack kosong!\n");
else
{
printf("Data keluar = %d\n", stack[top]);
top--;
}
break;
case 3://view
for(i=top; i>=0; i--)
printf("%d ", stack[i]);
printf("\n");
break;
case 4:
printf("Exit...\n");
break;
}
}while (pilih!=4);
}

Artikel terkait:
Stack Array Java
Stack Linked List Java

Monday 25 April 2011

Why is Called Java Language?

Pertama kali mendengar namanya membuat saya penasaran: Java Programming Language. Muncul banyak spekulasi:
1. Developernya orang Jawa?
2. Developernya pernah ke dan terkesan dengan Jawa?
3. Developernya keturunan orang Jawa?
4. Anything else? Sangat membingungkan...

Akhirnya saya telusuri dengan Google. Saya dapatkan dua buah artikel yang kutipannya berikut ini:

"I believe the name was first suggested by Chris Warth," said Arthur van Hoff, a senior engineer on the project and now CTO of Marimba Inc. "We had been in the meeting for hours and, while he was drinking a cup of Peet's Java, he picked 'Java' as an example of yet another name that would never work. The initial reaction was mixed. I believe the final candidates were Silk, DNA, and Java, however. I suggested Lingua Java, but that didn't make it.... We could not trademark the other names, so Java ended up being the name of choice. In the end, our marketing person, Kim Polese, finally decided to go ahead with it."

Source: http://www.javaworld.com/javaworld/jw-10-1996/jw-10-javaname.html?page=2

Arabian Mocha-Java

The world's most famous coffee blend; full-bodied, bittersweet chocolate overtones enhance Mocha-Java's rich, complex flavors. Mocha-Java is the world's most famous coffee blend. When someone first thought of combining these two origins, it was before coffee was widely grown around the world. These two coffees were undoubtedly much different from those which the countries of Yemen and Indonesia (note: maybe from Java island) produce today, although Yemen still produces its coffee under very primitive conditions.

As with any blend everything depends on the quality of the coffees used, and in this case the result is a delicious full-bodied coffee with bittersweet chocolate overtones on top of rich and complex flavors. While Americans associate the word mocha with chocolate, they've reversed the facts: when cocoa was first refined and sold in Europe, it reminded people of Mocha coffee from Yemen.

Source: http://www.peets.com/shop/coffee_detail.asp?rdir=1&id=49

Thursday 24 March 2011

Apakah Business Intelligence Itu

Istilah Business Intelligence (BI) muncul pertama kali pada tahun 1989, sekitar 22 tahun yang lalu. Istilah tersebut tersusun dari dua buah kata, yaitu bisnis dan kecerdasan (intelligence). Bisnis sendiri dapat diartikan sebagai usaha memproduksi barang/ jasa untuk konsumen untuk ditukar dengan uang atau barang/ jasa lainnya guna mendapatkan profit. Sedangkan cerdas dapat diartikan sebagai kemampuan untuk belajar dari pengalaman, mampu menangani masalah yang kompleks, atau bisa juga berarti dapat bereaksi dengan cepat dan benar terhadap situasi yang baru.

Kecerdasan dalam BI adalah kecerdasan buatan (Artificial Intelligence) jadi dalam hal ini adalah kecerdasan yang merupakan hasil kolaborasi software, hardware dan brainware, bukan semata-mata kecerdasan manusianya. Sehingga BI dimaknai sebagai "IT-enabled business decision making based on simple to complex data analysis processes". Atau ada pula yang berpendapat bahwa "(BI) applications are decision support tools that enable real-time, interactive access, analysis and manipulation of mission-critical corporate information".

Dengan adanya BI, maka banyak manfaat yang didapatkan oleh perusahaan/ organisasi. Pembuatan laporan akan lebih informatif, analisa kinerja beserta indikatornya akan lebih kompreshensif. Dan selain itu juga akan dimungkinkan pengambilan pengetahuan dari data kinerja bisnis selama ini, misalnya: pembeli mobil jenis X ternyata adalah didominasi oleh wanita usia 35-40 tahun. Hal ini jelas akan mempengaruhi strategi bisnis ke depan.

note: File ppt dapat di-unduh di halaman Download.

Thursday 10 February 2011

Contoh Program C++: STL List dan String

#include "iostream.h"
#include "list" // list class library
#include "string" // string class library
using namespace std;
void main()
{
list words;
list::iterator words_iter;
words.push_front("Hello");
words.push_front("World");
unsigned int total_length = 0;
for (words_iter=words.begin(); words_iter != words.end(); words_iter++)
{
cout<data()<<" ";
total_length += (*words_iter).length(); // correct
}
cout<<endl;
cout << "Total length is " << total_length << endl;
}

Download Source Code

Wednesday 2 February 2011

Contoh Program C++: Standard Template Library

STL singkatan dari Standard Template Library. Compiler C++ telah menyediakan library khusus untuk menampung beberapa template yang memang secara umum sering dipakai dalam pembuatan program. Dengan adanya STL, programmer tidak perlu lagi coding dari nol dan mulai awal. Namun cukup memanfaatkan template yang sudah dijadikan library tersebut. Tugas programmer tinggal menganalisa dan memilih template mana yang paling cocok dengan kebutuhan programnya. Di dalam template sudah disediakan container class lengkap dengan fungsi-fungsinya. Berikut adalah salah satu contoh penggunanan STL list untuk mengimplementasikan linked list:

#include "iostream.h"
#include "list" //standard template library
using namespace std;

int main(){
list values, otherValues;
values.push_front(1);
values.push_front(2);
values.push_back(4);
values.push_back(3);
list::iterator p; //pointer u/ mengakses isi container class
for (p=values.begin(); p!=values.end(); p++)
{
cout << *p <<endl;
}
return 0;
}

Thursday 20 January 2011

Contoh Program C++: Template

Dilihat dari aspek manfaatnya, pembuatan template hampir sama dengan function overloading. Cukup dipanggil satu yang sama, namun bisa menangani tipe data yang berbeda-beda. Namun, bedanya adalah jika kita memakai overloading maka untuk setiap fungsi harus kita tuliskan kembali definisinya.

Tidak demikian dengan template yang cukup ditulis satu kali saja (kerangkanya) maka compiler akan otomatis bisa membedakan jenis-jenis tipe datanya. Memang akan menjadi jauh lebih sederhana. Tetapi harus benar-benar dianalisa secara mendalam apakah konsep template sudah pas dengan yang dibutuhkan dalam rangka memecahkan sebuah studi kasus. Berikut adalah beberapa contohnya:

Template Fungsi
Template Class 1
Template Class 2

Note: Ubahlah terlebih dulu ekstensi doc menjadi cpp.