Sunday, June 22, 2008

Pemrograman Komputer I Bagian Sequencial

Pada bahasan sebelumnya di Pemrograman Komputer I bagian pertama telah membahas aneka bahasa pemrograman, algoritma dan jenis routine. Di bahasan ini saya akan membahas penggunaan salah satu sifat algoritma, yaitu sequencial.

Pada bahasan sebelumnya telah menekankan bahwa algoritma pada suatu bahasa pemrograman tidak harus sama antara tiap orang dalam melakukan penyusunannya, akan tetapi kita jangan pula mengesampingkan ke-efisienan dari algoritma yang dibuat. Algoritma yang baik adalah algoritma yang cepat prosesnya dan tidak memakan banyak resource memori dan processor.

Untuk bahasan sequencial (ber urutan) tentu bukan masalah yang terlalu sulit. Ambil contoh dalam kehidupan sehari-hari dalam tahapan memasak mie instant. Dalam memasak mie instant tentu harus melalui tahapan langkah demi langkah yang secara berurut agar mie instant yang di masak enak. Begitu juga dalam algoritma pemrograman, semua harus secara sequencial (berurutan) tahapan-tahapn dengan benar.
Kita ambil contoh dalam memasak mie Instant.
Alur yang baik dalam memasak mie adalah :
  1. harus mempunyai bahan-bahan yang dibutuhkan, seperti mie instant, air, kompor untuk memasak, panci (untuk tempat masak), mangkok (untuk mie), sendok atau garpu.
  2. Dalam memasak mie, urutan nya : panaskan air terlebih dahulu, jika sudah mendidih bukalah bungkus mie, kemudian masukan mie instants saja (tanpa bungkus pastinya :p)
  3. Diamkan beberapa menit hingga mie sudah melunak
  4. Masukkan bumbu mie ke dalam mangkok
  5. Kemudian masukan mie kedalam mangkok
  6. Aduk mie hingga merata dengan bumbu menggunakan sendok atau garpu
Tentu diantara kita dalam memasak mie banyak beraneka ragam cara mengolahnya, begitu juga algoritma, ada banyak macam cara membuat algoritma, tapi yang pasti membuat algoritma yang tepat dalam penyusunannya akan menghasilkan formula yang baik. Jika algoritma tidak berurut dari contoh diatas, misal pertama masukan mie kedalam mangkok, kemudian aduk mie hingga merata dengan bumbu, maka jelas langkah tersebut tidak masuk akal, karena mie belum "dimasak", mengaduk mie berarti mie sudah lunak dengan air sehingga baru bisa diaduk, bagaimana bisa mengaduk mie yang masih mentah??? Hehee.. itu hanya sekilas contoh tentang algoritma sequencial.

Contoh Sequencial algoritma bahasa pemrograman:
Kasus: Buat algoritma yang memiliki 2 variabel, dimana salah satu variabel diisikan dengan nilai 3 dan variabel satunya lagi sebagai penampung variabel lainnya yang ditambahkan dengan nilai 2, hasil akhir algoritma adalah menampilkan angka 5.

int main()
{
int a,b;
b = 3;
a = b + 2;
printf("%d",a);
return 0;
}

Urutan diatas adalah pertama tentunya harus mendeklarasikan variabel terlebih dahulu yang dibutuhkan. Seperti halnya memasak mie diatas, kita membutuhkan bahan-bahan.
Langkah selanjutnya dari algoritma diatas adalah mengisi variabel b dengan nilai 3, kemudian variabel a diisikan dengan nilai variable b yang ditambahkan dengan nilai 2, terus ditampilkan nilai a. Contoh algoritma diatas merupakan sequencial. Contoh penggunaan algoritma yang tidak sequencial:

int main()
{
int a,b;
b = 3;
printf("%d",a);
a = b + 2;
return 0;
}

Algoritma diatas adalah contoh algoritma yang tidak sequencial, walaupun tetep judulnya jalan, namun hasil akhir yang dihasilkan dari algoritma tersebut tidak sesuai dengan hasil akhir yang diminta untuk kasus diatas. Alasannya, karena bagaimana mungkin akan menghasilkan tampilan angka 5 jika nilai variabel a belum ditambahkan dengan nilai variabel b dan nilai 2???

begitu juga cara algoritma yang tidak sequencial:

int main()
{
b = 3;
a = b + 2;
int a,b;
printf("%d",a);
return 0;
}

Walaupun urutan perintah menampilkan hasil variabel a dibawah perintah penjumlahan, namun bagaimana mungkin ketika akan menampilkan dan bahkan perintah sebelumnya melakukan operasi matematika belum ditentukan tipe data dari variabel yang digunakan? alias kalau memasak mie gak ada wadah nya (gak ada panci, gak ada air, gak ada kompor). Begitulah ilustrasi penggunaan sequencial didalam algoritma pemrograman


No comments: