Sunday, June 22, 2008

Pemrograman Komputer I

Pengenalan Pemrograman

Pemrograman komputer merupakan suatu teknik menulis, menguji dan memperbaiki kode dalam membangun sebuah program komputer. Tujuan dari melakukan pemrograman adalah untuk membangun sebuah sistem yang dapat melakukan perhitungan ataupun suatu pekerjaan sesuai dengan keinginan yang dibutuhkan. Dalam melakukan pengkodean program kita harus mengetahui dasar-dasar dari bahasa pemrograman itu sendiri, tentunya dalam melakukan pengkodean kita harus menggunakan algoritma.

Algoritma merupakan langkah demi langkah yang disusun secara berurutan /sequencial (dari kiri kekanan, dari atas kebawah) yang dibuat sedemikian rupa untuk mencapai suatu tujuan tertentu dari dibentuknya algoritma tersebut.

Pemrograman merupakan suatu seni dalam membangun suatu algoritma, dimana dibutuhkan kreatifitas dari programmer untuk merangkai tiap kode / syntax program yang disusun sedemikian rupa sehingga menghasilkan rangkaian perintah yang diinginkan.

Program yang baik adalah program yang dibentuk dengan melihat sisi dari kinerja program, efisensi proses (tidak terlalu makan banyak resource prosesor), cepat dalam kinerjanya dan efisiensi memori (tidak banyak makan memori). Bagaimana semua itu bisa tercapai? Tentu bisa bila menggunakan algoritma yang tepat, cermat sehingga pada nantinya menjadikan tiap perintah algoritma yang kita buat berjalan tanpa ada proses yang mubazir (buang banyak resource processor).

Bahasa Pemrograman

Bahasa pemrograman ada berbagai macam. Tiap bahasa pemrograman memiliki ciri khas tersendiri untuk tiap penggunaannya. Pemilihan bahasa pemrograman biasa dipengaruhi dari kemampuan hasil kompiler dari bahasa pemrograman untuk membuat program yang diinginkan. Bahasa pemrograman dibagi menjadi 3 tingkatan, bahkan ada pula yang membaginya menjadi 4 tingkatan. Yaitu:
  • Bahasa Pemrograman Tingkat Tinggi. Seperti : Visual Basic, Basic, Fortan,
    Pascal, Delphie, Java, FoxPro
  • Bahasa Pemrograman Tingkat Menengah. Seperti : C, C++
  • Bahasa Pemrograman Tingkat Bawah. Seperti Assembly
  • Bahasa Mesin. binary 0/1. (Sangat susah untuk dipelajari, mungkin susah untuk masuk diakal) ;)

Tentunya tingkatan dalam bahasa pemrograman jika dilihat dari sisi relevansi apakah bahasa itu mudah atau tidak nya untuk dipelajari, maka bahasa pemrograman hanya bisa dibagi menjadi3 tingkatan saja. Bahasa pemrograman tingkat tinggi dapat dilihat dari sisi syntax yang dipakai pada bahasa pemrograman tersebut. Contoh pada bahasa pemrograman Pascal ataupun delphie. Untuk perintah memilah situasi / keputusan (decision) menggunakan bahasa yang mendekati dekenal oleh manusia atau bahasa alami, yaitu

IF [KONDISI] THEN [PERINTAH 1] ELSE [PERINTAH LAIN]
END IF


Perintah tersebut sama dengan perintah Visual Basic / Basic, dimana bahasa diatas yang digunakan ilustrasinya adalah Jika KondisiBenar Maka Lakukan_perintah_1 Selain itu (kondisi salah) Lakukan_perintah_lain. Sedangkan penggunaan bahasa menengah (C,C++) sudah mulai menjauh dari bahasa alami. Seperti:

if(kondition)
{eksekusiPerintah();}

else
{eksekusiPerintahLain();}


Jika dibandingkan dengan grammar bahasa sebelumnya maka pada bahasa C lebih cenderung menggunakan symbol-symbol karakter dari pada bahasa tingkat tinggi yang menggunakan perintah yang mendekati bahasa alami. Sedangkan pada bahasa tingkat rendah penggunaan bahasanya sudah mulai sangat jauh dari bahasa alami. Perintah pada bahasa pemrograman tingkat rendah lebih mengacu pada perintah ke mesin, seperti pemindahan alamat memori pada register. Tentunya, semakin rendah tingkatan suatu bahasa pemrograman maka bahasa pemrograman tersebut semakin ditujukan untuk dapat dimengerti oleh mesin. Sedangkan semakin tinggi tingkatan suatu bahasa pemrograman maka bahasa tersebut ditujukan untuk mudah dimengerti oleh manusia.

Dasar-Dasar Pemrograman

Bahasa pemrograman merupakan algoritma yang memiliki 3 sifat, sifat-sifatya diantara lain:

  • Sequencial (berurutan, dair kiri kekanan, dari atas kebawah)
  • Memiliki sifat perulangan (for, while, do while)
  • Memiliki sifat pemilihan / decision (if then, select case)

Ketiga sifat diatas selalu diterapkan oleh banyak bahasa pemrograman yang tersetruktur, namun seperti yang dikatakan sebelumya, bahwa tiap bahasa pemrograman memiliki ciri khas tersendiri dalam penerapan sifat-sifat tersebut.


Tipe Data

Pada bahasa pemrograman biasa menerapkan adanya tipe data sebagai penentu penggunaan variable dalam mendukung pembangunan algoritma. Tipe data dasar adalah bilangan bulat, bilangan pecahan, dan karakter. Semua jenis tipe data tersebut pada beberapa jenis bahasa pemrograman telah dikembangkan menjadi lebih banyak misal pada bahasa C++,tipe data yang dikenal adalah:

                 Type  Bytes  Bits                Range
           short int    2      16          -32,768 -> +32,767          (32kb)
unsigned short int 2 16 0 -> +65,535 (64Kb)
unsigned int 4 32 0 -> +4,294,967,295 ( 4Gb)
int 4 32 -2,147,483,648 -> +2,147,483,647 ( 2Gb)
long int 4 32 -2,147,483,648 -> +2,147,483,647 ( 2Gb)
signed char 1 8 -128 -> +127
unsigned char 1 8 0 -> +255
float 4 32
double 8 64
long double 12 96



Routine

Pada bahasa pemrograman biasanya memiliki routine atau yang biasa dikenal sub routine dan fungsi. Apakah subroutine dan fungsi itu? subroutine dan fungsi adalah kumpulan syntax atau algoritma yang memiliki kegunaan tertentu dalam menunjang terbentuknya suatu satu-kesatuan sebuah (sistem / program), atau elemen yang memiliki peranan dalam mendukung sebuah sistem.

Namun terdapat perbedaan antara fungsi dan subroutine. Perbedaannya terletak pada pengembalian nilai (value return). Didalam bahasa pemrograman membolehkan terjadinya suatu routine yang tidak mengembalikan nilai balik yang biasa dikatakan subroutine, dan untuk sekumpulan algoritma (routine) yang disusun dan mengembalikan nilai balik itu dinamakan fungsi. Contoh subroutine:

void NamaSubroutine()
{
int a, b, c;
a = 2; b = 8;
c = a + b;
printf("%d",c);
}

Pada contoh syntax diatas dapat dilihat bahwa sub routine dengan nama Namasubroutine() melakukan perintah pendeklrasi variable, kemudian menginisialisasi nilai variable a dan b, kemudian menjumlahkan kedua nilai variable tersebut yang ditampung pada variable c, setelah itu perintah menampilkan nilai dari c. Dapat dilihat bahwa pada subroutine tidak melakukan nilai balik.
Contoh Fungsi (mengembalikan nilai balik:

int NamaFunc()
{
int a, b, c;
a = 2; b = 8;
c = a + b;
return c; //nilai balik
}

Pada contoh syntax diatas dapat dilihat bahwa fungsi dengan nama NamaFunc() melakukan pengembalian nilai dengan perintah return. Lihat pula pada type data routine NamaSubroutine() dengan routine NamaFunc(). Type Data int adalah type data bilangan bulat dimana nilai baliknya pula harus bilangan bulat pula, dapat dilihat c adalah type data int yang juga sama bilangan bulat. Sedangkan pada Namasubroutine deklrasinya adalah void, dimana void biasanya diartikan kosong, yaitu tidak mengembalikan nilai.

Kapan digunakan subroutine?

Subroutine digunakan bila kita ingin membuat sekumpulan rangkaian perintah yang tidak memerlukan nilai balik. Contoh:

kasus tampilkan header program sebanyak dua kali yang terletak di awal program dan diakhir program.

void NamaSub_Header()
{
printf("=======================================\n");
printf("|| SilverMildz21, Lab. Copyright 2008||\n");
printf("=======================================\n");
}

main()
{
NamaSub_Header();
printf("Selamat belajar bahasa pemrograman\n");
printf("Semoga anda sukses\n");
NamaSub_Header();
}

Hasil eksekusi perintah dalam bahasa C diatas adalah:

=======================================
|| SilverMildz21, Lab. Copyright 2008||
=======================================
Selamat belajar bahasa pemrograman
Semoga anda sukses
=======================================
|| SilverMildz21, Lab. Copyright 2008||
=======================================

Dapat kita lihat contoh diatas bahwa dalam membuat header program yang hasilnya 2 kali hanya memanggil perintah subroutine 2 kali yang mana perintah setiap pemanggilannya hanya satu baris saja, padahal isi dari sub routine terdapat 3 baris. Tentu hasil dari pemanggilan soubroutine tidak mengembalikan nilai, tapi hanya melakukan serangkaian perintah, contoh diatas adalah menulis text header dan pada kasus disini pula dengan menggunakannya subroutine sudah menghemat baris perintah. Bayangkan bila tidak ada subroutine, maka kita harus mengetikkan berulang-ulang untuk baris algoritma yang sama, tentunya ini membuat kode program sangat panjang.

Kapan penggunaan fungsi?

Penggunaan fungsi digunakan hampir sama dengan subroutine, yaitu jika alur algoritma yang panjang digunakan berulang-ulang. Misal

int Pangkat(int a,int b)
{
int I,r;
r = 1;
for(I=0;I<b-1;I++)
{
r = a * (a);
}

return r;

}

main()
{
printf("Nilai dari 2 pangkat 3 adalah : %d\n", pangkat(2,3));
printf("Nilai dari 9 pangkat 2 adalah : %d", pangkat(9,2));
}

Maka hasil baris perintah diatas adalah:

Nilai dari 2 pangkat 3 adalah : 8
Nilai dari 9 pangkat 2 adalah : 81

Fungsi Pangkat diatas melakukan perintah pengkalian yang dipangkatkan sebanyak pangkat yang diinginkan. Dapat dilihat dari susunan algoritma fungsi pangkat, dimana terdapat lebih dari 2 baris dan pada akhir fungsi mengembalikan nilai, yaitu nilai variabel a. Dapat dilihat pula dalam pemakaiannya seperti:

printf("Nilai dari 2 pangkat 3 adalah : %d\n",pangkat(2,3));
printf("Nilai dari 9 pangkat 2 adalah : %d",pangkat(9,2));

Sehingga dalam melakukan perhitungan pangkat tidak harus mengetikkan baris program algoritma pangkat yang sama pada kasus yang sama selanjutnya, tapi hanya melakukan pemanggilan fungsi yang telah dibuat.

Apakah maksud (2,3) pada pangkat(2,3)??

Itu adalah parameter masukan. Pada subroutine ataupun fungsi membolehkan adanya penggunaan parameter masukan sebagai pendukung dari subroutine atau fungsi tersebut. Penggunaan parameter disesuaikan dengan kebutuhan dari fungsi atau routine tersebut. Contoh nya dapat dilihat pada fungsi pangkat diatas, karena pada fungsi pangkat diatas membutuhkan nilai yang dipangkatkan, dan nilai pangkatnya, sehingga membutuhkan 2 nilai masukan. Pada bahasa pemrograman, memungkinkan pula untuk mendapatkan nilai balikan dari parameter, bisa berupa subroutine atau juga fungsi Contoh:


void Pangkat(int a, int b,int &c)

{
int I,r;
r = 1;

for(I=0;I<b-1;I++)
{
r = a * (a);
}

c = r;
}

main()
{
int c;
pangkat(2,3);
printf("Nilai dari 2 pangkat 3 adalah : %d\n", c);
}

Pada deklrasi void Pangkat(int a, int b,int &c) terdapat penambahan
int &c. Ini adalah paramter yang dapat mengembalikan nilai, penggunaanya jelas dapat dilihat diatas.

Pesan


Pemrograman komputer merupakan suatu seni tersendiri yang membutuhkan kreatifitasan dari sang programmer. Pemrograman bukan sesuatu yang dogma, yang harus sama dengan yang sudah ada yang pada akhirnya membatasi diri untuk berkembang, kita pun dapat membuat algoritma sendiri sesuai keiinginan kita, pengunaan bahasa tergantung pula dari kebiasaan kita. Pemrograman merupakan permainan algoritma, algoritma merupakan tahapan-tahapan untuk mencapai tujuan tertentu. Seperti halnya memasak mie instants, tentu setiap orang memiliki cara-cara berbeda dalam membuatnya, begitu juga pemrograman, ada banyak cara yang berbeda untuk membuatnya.

No comments: