Pengantar Algoritma dan Pemograman

1.2       Program yang ditulis Dalam bahasa pemograman seperti C dan C++ sebenarnya tidak dimengerti computer secara langsung, sebeb computer hanya mengenal bahasa khasnya saja yang dinamakan bahasa mesin, dijalankan (dieksekusi) oleh computer, program tersebut harus diterjemahkan terlebih dahulu kedalam bahasa mesin (atau bisa disebut sebagai KODE OBJEK). Proses penerjemahan dilakukan oleh program yang disebut translator (penerjemah).

Translator dapat berupa :

  1. Interpreter
  2. Kompiler

 

Interpreter menerjemahkan intruksi selama program dimita untguk dieksekusi. Jika seorang bermaksud menjalankan program tersebut (agar dapat dijalankan computer), mula-mula kode sumber (source code atau program asli yang ditulis oleh pemogram).

Diterjemah dulu ke dalam bentuk kode mesin perbaris instruksi. Setelah satu basri instruksi tersebut dipahami oleh computer, instruksi tersebut dijalankan. Interpreter kemudian kembali memproses baris instruksi berikutnya.

Berbeda dengan interpreter, kompiler menerjemahkan instruksikedalam bentuk kode objek secarakeseluruhan (untuk semua instruksi). Setelah semua instruksi diterjemah , instruksi yang telah mengerti oleh komputer dijalankan. Proses penerjemah seperti itu disebut kompilasi. Setelah kompilasi berakhir, compiler yang executable (dapat dijalankan secara langsung tanpa melalui translator).

 

Catatan
  • Proses pembentuk kode yang executable sebenarnya juga melalui proses yang disebut linking, yang berfungsi untuk menggabungkan kode hasil kompilasi dengan sejumlah pustaka yang disediakan oleh kompilasi.
  • Pada saat ini, beberapa kompilasi menerjemah kode sumber dalam bentuk kode yang khas, yang tidak bersifat executable. Compiler pada bahasa Java mengkompilasi kode menjadi kode objek yang disebut bytecode. Kode seperti ini dapat dijalankan pada berbagai platform sepanjang platform tersebut memiliki program yang dapat mengeksekusi kode tersebut.

Tentu saja masing – masing translator memiliki keunggulan dan kelemahan sendiri, sebagaimana dapat dilihat pada Tabel

Kelebihan dan Kelemahan Interpreter dan Kompiler

InterpreterKompiler
Kelebihan :
Kemudahan mencari kesalahan seandainya program menghasilkan sesuatu yang dianggap salah ketika program dijalankan, karena kode sumber selalu tersedia1.      Pengerjaan instruksi dilakukan dengan sangat cepat, karena setelah kode objek terbentuk maka tidak perlu lagi adanya penerjemahan, mengingat komputer dapat memahami kode objek secara langsung.

2.      Kode objek dapat didistribusikan ke komputer lain tanpa perlu menyertakan kode sumber dan kompiler, sehingga kerahasiaan kode sumber tetap terjamin.

Kelemahan :
1.      Kode sumber harus selalu tersedia

2.      Eksekusi lambat

Seluruh kode sumber harus benar secara sintaks agar program dapat diuji

 

Bahasa pemrograman juga dapat diklasifikasikan menjadi bahasa procedural dan bahasa deklaratif. Pada bahasa procedural, pemrogram perlu menuliskan instruksi instruksiyang rinci agar komputer dapat melaksanakan tugasnya. Pendekatan prosedural terdapat dalam bahasa – bahasa pemograman seperti C, Pascal, dan BASIC. Pada bahasa deklaratif (non-prosedural), untuk mendapatkan suatu hasil, seorang pemrogram tidak perlu memberitahukan secara detail tentang bagaimana mendapatkannya. Pendekatan deklaratif  antara lain diterapkan pada bahasa seperti Prolog (bahasa untuk menangai kecerdasan buatan).

Klasifikasi yang lain berupa bahasa yang berorientasi pada objek atau tidak berorientasi pada objek. Bahasa pemrograman yang tidak berorientasi objek adalah bahasa pemrograman yang memungkinkan untuk mengemas suatu prosedur dan data dalam suatu wadah yang disebut kelas. Kelas inilah yang menjadi cetakan bagi objek-objek. Model pemrograman seperti ini telah menjadi tren bahasa – bahasa pemrograman basru pada masa kini. Keuntungannya, kode yang telah dibuat dapat dikembangkan secara mudah. Sifat ini dikenal sebagai sebutan reusability. Termasuk dalam bahasa yang berorientasi objek adalah C++. Adapun C adalah bahasa pemrograman yang tidak dapat berorientasi pada objek.

 

1.3       Penyelesaian Masalah dengan Program

Orang membuat program biasanya bertujuan untuk menyelesaikan masalah. Namun sebelum dapat menyelesaikan masalah dengan program, terdapat tiga langkah penting yang perlu di lakukan terlebih dahulu.

  1. Menganalisis masalah dan membuat algoritma,
  2. Menuangkan algoritma ke dalam bentuk program,
  3. Mengeksekusi dan menguji program,

 

1.3.1    Menganalisis Masalah dan Membuat Algoritma

Proses pertama, menganalisis masalah dan membuat algoritma memang tidak dapa begitu saja diwujudkan. Pengalaman, pengetahuan, kreatifitas, imajinasi, dan kelihaian merupakan factor – factor yang menentukan sekali keberhasilan langkah ini. Di dalam analisis masalah diperlukan tindakan untuk mengidentifikasi informasi yang menjadi keluaran pemecah masalah dan data – data yang menjadi masukan.

Sebagai contoh sederhana, anda diminta untuk menghitung keliling persegi panjang dengan menggunakan komputer. Pada masalah ini anda dapat menentukan keluaran berupa keliling dan masukan berupa panjang dan lebar. Setelah itu anda harus menentukan bagaimana keliling persegi panjang dihitung berdasarkan data panjang dan lebar. Dengan logika sederhana, anda dapat menghitung keliling persegi panjang seperti berikut:

 

Keliling = panjang + lebar + panjang + lebar

Atau

Keliling = 2 x (panjang + lebar)

Anda dapat menuangkan algoritma seperti berikut :

  1. Peroleh nilai panjang dan lebar persegi panjang
  2. Hitung keliling persegi panjang dengan menggunakan rumus 2 x (panjang + lebar)
  3. Tampilkan nilai keliling persegi panjang

 

Dalam praktik, banyak persoalan yang solusinya tidak semudah itu. Sebagai contoh yang sederhana, anda diminta untuk menghitung luas lingkaran yang diketahui jari-jarinya. Bagaimana anda menghitung luas lingkaran? Apakah dapat dengan hanya menggunakan logika sederhana?. Tentu saja tidak, anda harus memiliki pengetahuan tentang rumus luas lingkaran. Jika anda tidak tahu, anda perlu mencari tahu melalui buku atau bertanya pada orang yang tahu. Setelah anda tahu bagaimana cara menghitung luas lingkaran, anda baru dapat menuangkannya dalam Bentuk algoritma sebagai berikut:

  1. Peroleh jari – jari lingkaran
  2. Hitung luas lingkaran dengan menggunakan rumus 3,14 x jari – jari2.
  3. Tampilkan nilai luas lingkaran.

Algoritma tidak selamanya dinyatakan dalam bahasa manusia seperti contoh yang di depan. Kadang-kadang dinyatakan dalam bentuk pseudokode (pseudocode), yaitu suatu bentuk algoritma yang menggunakan bahasa notasi yang dimaksudkan untuk menyederhanakan bentuk kalimat manusia. Sebagai contoh, kalimat seperti ”Hitung keliling persegi panjang dengan mengunakan rumus 2 x (panjang + lebar)” dapat disederhanakan menjadi

Keliling  ←  2 x (panjang + lebar)

Pseudokode sering kali mengarah ke bahasa pemrograman tertentu. Sebagai contoh:

  1. i ←  1
  2. jum ←  0
  3. while i <10

a.  jum ←  jum + i

b. i  ←  i + 1

  1. write (i)

Merupakan pseudokode yag berorientansi pada bahasa C, Pascal, atau Algol. Algoritma di atas di gunakan untuk melakukan perhitungan 1 +2 + 3 + 4 + 5 + 6 + 7 + 8 + 9.

Adakalanya suatu algoritma disajikan dalam bentuk diagram alir (flowchart). Diagram alir adalah suatu standar untuk menggambarkan urutan langkah dalam suatu proses. Setiap langkah dalam algoritma dinyatakan dalam sebuah symbol dan aliran setiap langkah (dari suatu langkah ke langkah yang lain) dinyatakan dengan garis yang di lengkapi panah. Gambar dibawah ini  memperlihatkan diagram alir untuk menghitung luas persegi lingkaran.

 

Adapun memperlihatkan sejumlah simbol standar yang digunakan untuk menyusun diagram alir

 

CatatanUntuk membuat suatu diagram air, Anda dapat menggunakan perangkat lunak seperti Visio atau bahkan Word (melalui AutoShapes) di lingkungan Windows.

 

Dalam praktik seringkali pemrogram menyelesaikan persoalan dengan menggabungkan algoritma-algoritma yang pernah di buat oleh orang lain. Sebagai contoh,di dalam mengurutkan sekumpulan data,pemrogram dapat menggunakan algoritma seperti quik sort ataupun insertion sort. Algoritma-algoritma seperti itu banyak di ulas dalam buku-buku yang membahas masalah algoritma, setruktur data, dan pemrograman.Oleh karena itu,selain harus memiliki kemampuan dasar dalam membuat algoritma,seorang pemrogram juga perlu mengetahui beberapa algoritma yang pernah di buat orang supaya penyelesaian masalah dapat dilakukan secara optimal.

1.3.2    Menuangkan Algoritma ke dalam Bentuk Program

Langkah menuangkan algoritma ke dalam program di tentukan oleh faktor bahasa perograman yang akan di gunakan. Sebagai contoh,langkah “Hitung keliling persegi panjang dengan menggunakan rumus 2x (panjang+lebar)” perlu di terjemahkan menjadi pertanyaan berikut pada sejumlah bahasa pemrograman.

 

 

Tabel Pernyataan pada beberapa bahasa pemrograman

BahasaPernyataan
BASICkeliling = 2 * (panjang + lebar)
C dan C++keliling = 2 * (panjang + lebar);
COBOLCOMPUTE keliling = 2 * (panjang + lebar)
Pascalkeliling :=2 * (panjang + lebar)

 

Dengan kata lain, untuk menuangkan algoritma ke program, pemrogram harus tahu seluk-beluk bahasa pemrograman yang di gunakan. Contoh berikut menunjukan program C untuk mengimplementasikan algoritma untuk menghitung luas lingkaran:

#include <iostream>
 
using namespace std;
 
int main()
{
 int r;
 float luas_lingkaran,keliling_lingkaran;
 char lagi;
do
{
double ip;

 cout<<"Mengitung Luas dan Keliling Lingkaran"<<endl<<endl;
 cout<<"Masukan nilai jari-jari ( r ) = ";
 cin>>r;
 
 luas_lingkaran=3.14*r*r;
 cout<<endl;
 cout<<"Luas linkaran dengan jarijari "<<r<<" adalah "<<luas_lingkaran;
 
 keliling_lingkaran=2*3.14*r;
 cout<<endl;
 cout<<"Keliling linkaran dengan jarijari "<<r<<" adalah "<<keliling_lingkaran;
 cout<<endl;
 cout<<"\n\nReply [Y/T] : ";cin>>lagi;
}
while(lagi == 'y' || lagi == 'Y');
cout<<"\n";
cout <<"|==========================|\n";
cout <<"| TEKAN ENTER UNTUK KeLUAR!|\n";
cout <<"| creative:Faisal Haibib   |\n";
cout <<"===========================|\n";
return 0;
}

Dengan Hasil running :

 

1.3.3    Mengeksekusi dan Menguji Program

Setelah program dibuat dan dikompilasi, program perlu di jalankan untuk di uji kebenarannya. Ada beberapa kemungkinan kesalahan yang terjadi sewaktu proses kompilasi hingga pengeksekusian program:

  1. Kesalahan sintaksis,
  2. Kesalahan Logika
  3. Kesalahan runtime

Kesalahan sintaksis disebabkan adanya kesalahan dalam menuliskan program yang tidak sesuai dengan kaidah bahasa pemrograman. Contoh, suatu pernyataan C ataupun C++ tidak diakhiri dengan titik-koma, sementara kaidah bahasa C dan C++ mangharuskan setiap pernyataan diakhiri dengan titik-koma. Kesalahan sintaksis terdeteksi sewaktu kompilasi bila Anda menggunakan kompiler C atau C++,  tetapi dapat terjadi terdeteksi pada  saat eksekusi pada bahasa pemrograman yang berorientasi pada interpreter (misalnya pada interpreter BASIC).

Kesalahan logika adalah kesalahan yang terjadi karena logika yang salah. Misalnya, Anda menuliskan 31.4 untuk menyatakan phi, padahal yang betul adalah 3.14. Akibatnya, hasil yang di dapatkan tidak benar. Keslahan seperti ini terkadang sulit untuk di deteksi terutama kalau program sangat kompleks.

Kesalahan runtime atau terkadang di sebut kesalahan fatal adalah kesalahan yang terjadi karena suatu operasi dalam program  tidak dapat dilakukan oleh komputer. Sebagai contoh, jika terdapat operasi pembagian dengan nol, maka suatu pesan kesalahan akan ditampilkan dan eksekusi program dihentikan.

Di dalam terminologi program tersebut istilah yang dinamakan bug (kutu) yang menyatakan suatu kesalahan pada program. Pencarian kutu sering kali sulit dilakukan dan memakan waktu. Ibarat mencari jarum dalam tumpukan jerami. Untuk menangani hal seperti itu pemrogram memanfaatkan piranti  yang dinamakan debugger, yaitu perangkat lunak yang ditujukan untuk mempermudah dalam mencari kesalahan (kutu) dalam program. Adapun proses untuk mencari kesalahan dan membetulkannya biasanya disebut debugging.

 

Rich Snippets
Published
Article
Pengantar Algoritma dan Pemograman
Ratings
51star1star1star1star1star
Faisal Habib

Kata Bijak? Google banyak!

You may also like...

Leave a Reply