Seperti telah dijelaskan sebelumnya algoritma secara umum berhubungan dengan semua langkah-langkah penyelesaian masalah dengan urutan tertentu. Tetapi istilah algoritma saat ini lebih sering dikaitkan dengan pemrograman komputer sehingga dikenal algoritma pemrograman. Pada dasarnya algoritma pemrograman merupakan kerangka dari program komputer.
Dalam konteks pemrograman komputer terdapat banyak definisi algoritma. Sebenarnya tidak ada definisi algoritma yang baku. Namun secara sederhana algoritma (dalam kaitannya dengan pemrograman) dapat kita definisikan sebagai urutan langkah berhingga untuk menyelesaikan masalah matematika dan logika. Dengan pengertian itu dapat kita simpulkan bahwa
1. Algoritma adalah kumpulan langkah, artinya algoritma merupakan proses di dalam penyelesaian masalah.
2. Langkah-langkah dalam algoritma berhingga banyaknya, artinya langkah-langkah tersebut memiliki akhir. Algoritma tanpa akhir, bukanlah termasuk algoritma karena tidak akan memberikan solusi apapun.
3. Digunakan untuk menyelesaikan masalah matematika dan logika, artinya tidak semua masalah bisa diselesaikan dengan algoritma. Algoritma hanya bisa digunakan untuk menyelesaikan suatu masalah jika masalah tersebut dapat diterjemahkan ke dalam bahasa logika dan matematika.
Komputer adalah alat bantu manusia untuk menyelesaikan masalah. Untuk bisa membantu manusia, komputer harus diberi instruksi. Instruksi itu dikenal dengan program. Namun demikian untuk memberi instruksi kepada komputer tidak sama dengan memberi instruksi kepada manusia. Komputer memiliki ”logika berpikirnya” sendiri yang berbeda dengan manusia. Oleh karena itu untuk bisa memberi instruksi kepada komputer, manusia harus bisa memberi instruksi yang mampu ”dipahami” komputer.
Algoritma adalah cara manusia untuk merangkai instruksi yang akan diberikan kepada komputer. Itu sebabnya semua orang yang belajar pemrograman komputer sangat dianjurkan memahami dulu algoritma. Pemahaman terhadap algoritma sangat penting untuk melatih calon pemrogram berpikir secara terstruktur dan sistematis. Kemampuan berpikir terstruktur dan sistematis akan sangat membantu dalam memudahkan pencarian solusi dengan cara yang sesederhana mungkin. Pemrogram yang buruk adalah pemrogram yang meskipun mampu membuat program dan memecahkan masalahnya, namun programnya tidak terstruktur dengan baik. Programer jenis ini akan menulis 100 baris instruksi program untuk menyelesaikan persoalan yang sebenarnya bisa diselesaikan dengan 20 atau 30 baris instruksi saja.
Bahasa Pemrograman
Pada dasarnya suatu instruksi manusia baru bisa dikerjakan jika komputer telah “memahaminya”. Karena komputer tidak “mengerti” bahasa manusia, maka manusialah yang harus mengerti bahasa komputer supaya dapat memberi instruksi kepada komputer. Jadi memprogram pada dasarnya adalah proses memberi instruksi kepada komputer untuk menyelesaikan sebuah persoalan. Kumpulan instruksi yang diberikan manusia inilah yang disebut dengan program komputer.
Bahasa yang dipahami komputer adalah bahasa mesin. Pada mulanya manusia memberi instruksi kepada komputer langsung menggunakan bahasa mesin. Karena pemberian instruksi ini dianggap kurang efisien dan rumit, maka diciptakanlah media perantara untuk menerjemahkan komunikasi manusia dengan komputer. Media perantara itu disebut dengan bahasa pemrograman.
Bahasa pemrograman yang umum dikenal digolongkan ke dalam dua kelompok yaitu compiler dan interpreter. Cara kerja compiler dan interpreter sebenarnya berbeda tapi memiliki kesamaan fungsi yaitu menerjemahkan instruksi manusi ke dalam bahasa mesin.
Bahasa pemrograman yang paling awal adalah bahasa pemrograman asembler yang pertama kali diperkenalkan sekitar tahun 1950an. Bahasa asembler juga dikenal sebagai bahasa tingkat rendah (low level language). Dengan menggunakan bahasa asembler, instruksi-intruksi dibuat menjadi lebih mudah dan sederhana.
Seiring dengan makin meningkatnya kompleksitas masalah yang ditangani oleh komputer, manusia membutuhkan bahasa pemrograman yang lebih sederhana. Para ahli kemudian menciptakan bahasa pemrograman yang lebih mudah pemberian instruksinya sehingga lahirlah bahasa pemrograman tingkat tinggi (high level language). Yang termasuk dalam kelompok ini diantaranya adalah bahasa pemrograman Pascal, Fortran, C, Cobol, Basic, dll.
Kelebihan bahasa tingkat tinggi dibanding bahasa tingkat rendah adalah instruksinya yang semakin sederhana dan mudah dipahami. Sepuluh baris instruksi dalam bahasa tingkat rendah bisa jadi dapat dituliskan dalam dua tiga baris bahasa tingkat tinggi. Selain itu bahasa tingkat tinggi dapat digunakan dalam arsitektur komputer yang berbeda-beda, suatu hal yang tidak dapat dilakukan oleh bahasa tingkat rendah. Namun demikian, bahasa tingkat tinggi juga memiliki kelemahan yaitu boros penggunaan memori dibandingkan bahasa pemrograman tingkat rendah.
Bekerja dengan bahasa pemrograman tingkat tinggi ibarat memberi instruksi kepada koki yang sudah terlatih. Cukup dengan satu atau beberapa instruksi saja, sang koki sudah tahu apa yang yang harus dikerjakannya. Sebaliknya, bekerja dengan bahasa pemrograman tingkat rendah ibarat memberi instruksi kepada seorang calon koki yang masih belum mahir sehingga instruksi harus diberikan secara lebih terperinci.
Interpreter dan Kompilator
Ditinjau dari mekanisme penerjemahannya, bahasa pemrograman tingkat tinggi dapat kita bagi dua kelompok : interpreter dan kompilator. Interpreter adalah bahasa pemrograman tingkat tinggi yang menerjemahkan setiap baris perintah dan langsung mengeksekusinya. Cara kerjanya seperti penerjemah turis asing yang mengartikan kalimat demi kalimat.
Cara yang berbeda dilakukan oleh kompilator. Pada kompilator, semua instruksi diterjemahkan dulu ke dalam bahasa mesin, baru setelah itu dieksekusi. Cara kerjanya mirip seperti penerjemahan buku dimana penerjemah menerjemahkan buku tersebut sampai tuntas, barulah setelah itu disajikan kepada pembaca.
Interpreter dan kompilator masing-masing memiliki keuntungan dan kerugian. Kelebihan interpreter adalah pengembangan program lebih cepat, tidak perlu melakukan kompilasi yang mungkin butuh waktu lama, namun kerugiannya setiap kali program perlu dijalankan, interpreter harus bekerja lagi, sehingga kecepatan eksekusi program menjadi kurang jika dibanding dengan kompilator.
Sebaliknya penggunaan kompilator memungkinkan kita membentuk program yang dapat langsung dijalankan dengan cepat (karena sudah dalam bahasa mesin), namun dibutuhkan waktu yang relatif lama dalam pengembangan programnya.
Penulisan Algoritma dengan Teks
Instruksi algoritma pemrograman dapat dinyatakan dalam dua cara : dengan teks dan diagram alir (flowchart). Algoritma teks adalah algoritma yang dinyatakan dengan aksara / huruf (dan angka) yang yang lazim kita kenal selama ini. Algoritma ini juga dikenal dengan istilah pseudocode. Penulisan algoritma ini bersifat bebas (tidak baku), yang penting harus mudah dipahami oleh pembacanya. Berikut ini adalah contoh algoritma yang menghitung dan menampilkan hasil penjumlahan dua buah bilangan yang ditulis dengan teks umum.
1. Mulai
2. Baca bilangan a dan b
3. Hitung a ditambah b, simpan pada c
4. Tulis nilai c
5. Selesai
Meskipun penulisan algoritma teks sebenarnya tidaklah baku, namun dalam buku ini teknis penulisannya sengaja agak dibakukan agar proses konversi algoritma ke bahasa program menjadi lebih mudah. Format dan instruksi algoritma teks standar yang kita pakai di sini dibuat mirip dengan yang ada pada bahasa pemrograman Pascal. Jadi, pengertian baku di sini sebenarnya tidaklah bersifat mutlak, tetapi sebagai pendekatan saja agar lebih tidak kesulitan saat mengkonversi algoritma ke dalam bahasa pemrograman Pascal.
Format algoritma yang kita bakukan ini terdiri dari tiga bagian (sama dengan format penulisan dalam Pascal) :
1. Bagian Nama : bagian yang menuliskan nama algoritma serta keterangan lain perihal algoritma tersebut
2. Bagian deklarasi : bagian yang mendefinisikan konstanta dan variabel objek yang terlibat dalam algoritma tersebut
3. Bagian dekripsi (badan algoritma) : adalah bagian yang merupakan langkah-langkah penyelesaian masalah.
Jika penulisan algoritma penjumlahan dua bilangan di atas kita bakukan dengan pendekatan bahasa Pascal maka penulisannya menjadi seperti berikut
Algoritma Jumlah {Bagian Nama}
Deklarasi a,b,c:integer {Bagian deklarasi}
Jika algoritma di atas kita konversi ke dalam bahasa pemrograman Pascal maka dapat ditulis :
Program Jumlah; {Bagian Nama}
Var
a,b,c: real; {Bagian deklarasi}
Begin
Readln(a,b);
c:=a+b;
Write(c);
End; {Bagian deskripsi}
Untuk sementara penulisan algoritma kita batasi pada bagian nama algoritma dan bagian deskripsi saja, sedangkan untuk bagian deklarasi akan dibahas secara detail setelah masuk ke dalam pemrograman Turbo Pascal.
Dalam konteks pemrograman komputer terdapat banyak definisi algoritma. Sebenarnya tidak ada definisi algoritma yang baku. Namun secara sederhana algoritma (dalam kaitannya dengan pemrograman) dapat kita definisikan sebagai urutan langkah berhingga untuk menyelesaikan masalah matematika dan logika. Dengan pengertian itu dapat kita simpulkan bahwa
1. Algoritma adalah kumpulan langkah, artinya algoritma merupakan proses di dalam penyelesaian masalah.
2. Langkah-langkah dalam algoritma berhingga banyaknya, artinya langkah-langkah tersebut memiliki akhir. Algoritma tanpa akhir, bukanlah termasuk algoritma karena tidak akan memberikan solusi apapun.
3. Digunakan untuk menyelesaikan masalah matematika dan logika, artinya tidak semua masalah bisa diselesaikan dengan algoritma. Algoritma hanya bisa digunakan untuk menyelesaikan suatu masalah jika masalah tersebut dapat diterjemahkan ke dalam bahasa logika dan matematika.
Komputer adalah alat bantu manusia untuk menyelesaikan masalah. Untuk bisa membantu manusia, komputer harus diberi instruksi. Instruksi itu dikenal dengan program. Namun demikian untuk memberi instruksi kepada komputer tidak sama dengan memberi instruksi kepada manusia. Komputer memiliki ”logika berpikirnya” sendiri yang berbeda dengan manusia. Oleh karena itu untuk bisa memberi instruksi kepada komputer, manusia harus bisa memberi instruksi yang mampu ”dipahami” komputer.
Algoritma adalah cara manusia untuk merangkai instruksi yang akan diberikan kepada komputer. Itu sebabnya semua orang yang belajar pemrograman komputer sangat dianjurkan memahami dulu algoritma. Pemahaman terhadap algoritma sangat penting untuk melatih calon pemrogram berpikir secara terstruktur dan sistematis. Kemampuan berpikir terstruktur dan sistematis akan sangat membantu dalam memudahkan pencarian solusi dengan cara yang sesederhana mungkin. Pemrogram yang buruk adalah pemrogram yang meskipun mampu membuat program dan memecahkan masalahnya, namun programnya tidak terstruktur dengan baik. Programer jenis ini akan menulis 100 baris instruksi program untuk menyelesaikan persoalan yang sebenarnya bisa diselesaikan dengan 20 atau 30 baris instruksi saja.
Bahasa Pemrograman
Pada dasarnya suatu instruksi manusia baru bisa dikerjakan jika komputer telah “memahaminya”. Karena komputer tidak “mengerti” bahasa manusia, maka manusialah yang harus mengerti bahasa komputer supaya dapat memberi instruksi kepada komputer. Jadi memprogram pada dasarnya adalah proses memberi instruksi kepada komputer untuk menyelesaikan sebuah persoalan. Kumpulan instruksi yang diberikan manusia inilah yang disebut dengan program komputer.
Bahasa yang dipahami komputer adalah bahasa mesin. Pada mulanya manusia memberi instruksi kepada komputer langsung menggunakan bahasa mesin. Karena pemberian instruksi ini dianggap kurang efisien dan rumit, maka diciptakanlah media perantara untuk menerjemahkan komunikasi manusia dengan komputer. Media perantara itu disebut dengan bahasa pemrograman.
Bahasa pemrograman yang umum dikenal digolongkan ke dalam dua kelompok yaitu compiler dan interpreter. Cara kerja compiler dan interpreter sebenarnya berbeda tapi memiliki kesamaan fungsi yaitu menerjemahkan instruksi manusi ke dalam bahasa mesin.
Bahasa pemrograman yang paling awal adalah bahasa pemrograman asembler yang pertama kali diperkenalkan sekitar tahun 1950an. Bahasa asembler juga dikenal sebagai bahasa tingkat rendah (low level language). Dengan menggunakan bahasa asembler, instruksi-intruksi dibuat menjadi lebih mudah dan sederhana.
Seiring dengan makin meningkatnya kompleksitas masalah yang ditangani oleh komputer, manusia membutuhkan bahasa pemrograman yang lebih sederhana. Para ahli kemudian menciptakan bahasa pemrograman yang lebih mudah pemberian instruksinya sehingga lahirlah bahasa pemrograman tingkat tinggi (high level language). Yang termasuk dalam kelompok ini diantaranya adalah bahasa pemrograman Pascal, Fortran, C, Cobol, Basic, dll.
Kelebihan bahasa tingkat tinggi dibanding bahasa tingkat rendah adalah instruksinya yang semakin sederhana dan mudah dipahami. Sepuluh baris instruksi dalam bahasa tingkat rendah bisa jadi dapat dituliskan dalam dua tiga baris bahasa tingkat tinggi. Selain itu bahasa tingkat tinggi dapat digunakan dalam arsitektur komputer yang berbeda-beda, suatu hal yang tidak dapat dilakukan oleh bahasa tingkat rendah. Namun demikian, bahasa tingkat tinggi juga memiliki kelemahan yaitu boros penggunaan memori dibandingkan bahasa pemrograman tingkat rendah.
Bekerja dengan bahasa pemrograman tingkat tinggi ibarat memberi instruksi kepada koki yang sudah terlatih. Cukup dengan satu atau beberapa instruksi saja, sang koki sudah tahu apa yang yang harus dikerjakannya. Sebaliknya, bekerja dengan bahasa pemrograman tingkat rendah ibarat memberi instruksi kepada seorang calon koki yang masih belum mahir sehingga instruksi harus diberikan secara lebih terperinci.
Interpreter dan Kompilator
Ditinjau dari mekanisme penerjemahannya, bahasa pemrograman tingkat tinggi dapat kita bagi dua kelompok : interpreter dan kompilator. Interpreter adalah bahasa pemrograman tingkat tinggi yang menerjemahkan setiap baris perintah dan langsung mengeksekusinya. Cara kerjanya seperti penerjemah turis asing yang mengartikan kalimat demi kalimat.
Cara yang berbeda dilakukan oleh kompilator. Pada kompilator, semua instruksi diterjemahkan dulu ke dalam bahasa mesin, baru setelah itu dieksekusi. Cara kerjanya mirip seperti penerjemahan buku dimana penerjemah menerjemahkan buku tersebut sampai tuntas, barulah setelah itu disajikan kepada pembaca.
Interpreter dan kompilator masing-masing memiliki keuntungan dan kerugian. Kelebihan interpreter adalah pengembangan program lebih cepat, tidak perlu melakukan kompilasi yang mungkin butuh waktu lama, namun kerugiannya setiap kali program perlu dijalankan, interpreter harus bekerja lagi, sehingga kecepatan eksekusi program menjadi kurang jika dibanding dengan kompilator.
Sebaliknya penggunaan kompilator memungkinkan kita membentuk program yang dapat langsung dijalankan dengan cepat (karena sudah dalam bahasa mesin), namun dibutuhkan waktu yang relatif lama dalam pengembangan programnya.
Penulisan Algoritma dengan Teks
Instruksi algoritma pemrograman dapat dinyatakan dalam dua cara : dengan teks dan diagram alir (flowchart). Algoritma teks adalah algoritma yang dinyatakan dengan aksara / huruf (dan angka) yang yang lazim kita kenal selama ini. Algoritma ini juga dikenal dengan istilah pseudocode. Penulisan algoritma ini bersifat bebas (tidak baku), yang penting harus mudah dipahami oleh pembacanya. Berikut ini adalah contoh algoritma yang menghitung dan menampilkan hasil penjumlahan dua buah bilangan yang ditulis dengan teks umum.
1. Mulai
2. Baca bilangan a dan b
3. Hitung a ditambah b, simpan pada c
4. Tulis nilai c
5. Selesai
Meskipun penulisan algoritma teks sebenarnya tidaklah baku, namun dalam buku ini teknis penulisannya sengaja agak dibakukan agar proses konversi algoritma ke bahasa program menjadi lebih mudah. Format dan instruksi algoritma teks standar yang kita pakai di sini dibuat mirip dengan yang ada pada bahasa pemrograman Pascal. Jadi, pengertian baku di sini sebenarnya tidaklah bersifat mutlak, tetapi sebagai pendekatan saja agar lebih tidak kesulitan saat mengkonversi algoritma ke dalam bahasa pemrograman Pascal.
Format algoritma yang kita bakukan ini terdiri dari tiga bagian (sama dengan format penulisan dalam Pascal) :
1. Bagian Nama : bagian yang menuliskan nama algoritma serta keterangan lain perihal algoritma tersebut
2. Bagian deklarasi : bagian yang mendefinisikan konstanta dan variabel objek yang terlibat dalam algoritma tersebut
3. Bagian dekripsi (badan algoritma) : adalah bagian yang merupakan langkah-langkah penyelesaian masalah.
Jika penulisan algoritma penjumlahan dua bilangan di atas kita bakukan dengan pendekatan bahasa Pascal maka penulisannya menjadi seperti berikut
Algoritma Jumlah {Bagian Nama}
Deklarasi a,b,c:integer {Bagian deklarasi}
Jika algoritma di atas kita konversi ke dalam bahasa pemrograman Pascal maka dapat ditulis :
Program Jumlah; {Bagian Nama}
Var
a,b,c: real; {Bagian deklarasi}
Begin
Readln(a,b);
c:=a+b;
Write(c);
End; {Bagian deskripsi}
Untuk sementara penulisan algoritma kita batasi pada bagian nama algoritma dan bagian deskripsi saja, sedangkan untuk bagian deklarasi akan dibahas secara detail setelah masuk ke dalam pemrograman Turbo Pascal.
Untuk Mendownload materi ini, klik Disini
0 comment:
Posting Komentar