Anda di halaman 1dari 9

ALGORITM A

Tujuan Instruksi Umum (TIU):

Mampu memahami suatu masalah dan mampu mencari solusi pemecahannya dan mampu
menuangkan langkah-langkah pemecahan masalah tersebut dalam bentuk notasi alami, flowchart ataupun psudocode. Tujuan Instruksi Khusus (TIK):

alami.

Mengetahui pengertian umum tentang algoritma, flowchart, pseudocode dan program Mengetahui struktur dasar Algoritma Mampu membuat dan membaca algoritma sederhana.

Mampu menganalisa masalah dan menerjemahkannya ke dalam bentuk pseudocode dan notasi

Pembahasan Materi:

Pengertian algoritma Penulisan algoritma Implementasi algoritma menjadi program


Struktur dasar algoritma

Latihan pemecahan masalah

Pendahuluan Sebuah algoritma merupakan deskripsi pelaksanaan suatu proses, dimana algoritma disusun oleh sederetan langkah instruksi yang logis. Dengan kata lain algoritma adalah urutan langkah-langkah atau instruksi-instruksi logis yang harus dilaksanakan untuk memecahkan masalah. Kata logis merupakan kata kunci dalam sebuah algoritma. Langkah-langkah di dalam algoritma harus logis, ini yang salah. berarti hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil

Dasar Pemrograman 02/ Nur Ani, ST, MMSI

Sebagai contoh, tinjau persoalan mempertukarkan isi dua gelas, A dan B. Gelas A berisi air kopi, sedangkan gelas B berisi air susu. Kita ingin mempertukarkan isi kedua gelas itu sedemikian sehingga gelas A berisi air susu dan gelas B berisi air kopi. Jika kita langsung menuangkan air kopi yang ada di gelas A langsung ke gelas B maka yang didapatkan adalah gelas A menjadi kosong dan gelas B menjadi air kopi susu, begitu juga sebaliknya. Untuk mempertukarkan isi dua gelas tersebut, kita memerlukan sebuah gelas tambahan yang diperlukan sebagai tempat penampungan sementara. Sebut gelas tambahan tersebut gelas C. Dengan menggunakan gelas bantu C ini, algoritma mempertukarkan isi dua buah gelas yang benar adalah sebagai berikut ini: Algoritma Tukar Isi Gelas:
Diberikan dua buah gelas, A dan B; gelas A berisi air kopi, gelas B berisi air susu. Pertukarkan isi kedua gelas itu sedemikian sehingga gelas A berisi air susu dan gelas B berisi air kopi. Deskripsi: Tuangkan kopi dari gelas A ke dalam gelas C (gelas A menjadi kosong). Tuangkan susu dari gelas B ke dalam gelas A (gelas B menjadi kosong). Tuangkan kopi dari gelas C ke dalam gelas B.

Syarat algoritma yang baik menurut Donald E. Knuth harus memenuhi lima hal berikut ini: 1. Finiteness Algoritma yang baik harus ada akhir atau berhenti setelah mengerjakan sederetan instruksi. Algoritma yang tiada akhir atau tidak dapat berhenti bukan merupakan algoritma yang baik. 2. Defineteness Setiap langkah algoritma harus didefinisikan dengan tepat dan jelas sehingga tidak menimbulkan makna ganda(ambiguous). Sebagai contoh, pernyataan Lakukan langkah di bawah ini beberapa kali, pernyataan tersebut jelas akan membingungkan karena tidak ada yang membatasi berapa banyak perintah yang harus dijalankan. Bandingkan dengan pernyataan berikut: Lakukan langkah di bawah ini sebanyak 10 kali. 3. Input Algoritma yang baik harus memiliki masukan data untuk diolah. Masukan adalah besaran atau nilai yang diberikan kepada algoritma, masukan biasanya diberikan di awal penulisan. Sebagai contoh, untuk menghitung luas segitiga kita membutuhkan nilai alas dan nilai tinggi, sehingga luas segitiga dapat dihitung. 4. Output Algoritma yang baik adalah algoritma yang menghasilkan output atau keluaran yang merupakan hasil dari pengolahan data masukan.

Dasar Pemrograman 02/ Nur Ani, ST, MMSI

5. Effectiveness Algoritma yang baik adalah algoritma yang mempunyai langkah-langkah atau instruksi yang effektif yaitu algoritma yang memiliki langkah yang paling sederhana, sehingga dapat dikerjakan dalam waktu yang cukup wajar. Penulisan Algoritma Algoritma bersifat programming language independent, yang maksudnya adalah penulisan algoritma tidak terikat dengan bahasa pemrograman tertentu, tetapi algoritma dapat diterapkan untuk berbagai bahasa pemrograman. Algoritma dapat dituliskan dalam 3 bentuk/ notasi, yaitu:

(1) Flowchart, penggunaan flowchart lebih menggambarkan urutan instruksi secara visual
sehingga memudahkan orang awam dalam membaca urutan instruksi tersebut.

(2) Bahasa/ notasi alami, contohnya menggunakan Bahasa Indonesia Terstruktur (BIT).
Dengan menggunakan bahasa alami maka akan memudahkan pengguna dalam memahami algoritma tersebut, tetapi untuk masalah yang cukup kompleks penggunaan notasi alami tidak disarankan karena akan menyulitkan saat pengkonversian ke dalam bahasa pemrograman. Supaya tidak menyulitkan dalam pembuatan maupun pembacaan algoritma, maka BIT menggunakan beberapa istilah seperti berikut ini: Untuk mendapatkan data masukan, dapat menggunakan kata berikut: isi, baca, masukkan, baca data, baca file.

Untuk menyatakan proses penghitungan, dapat menggunakan kata berikut: hitung, jumlahkan, kurangi, dan sebagainya. Untuk menyatakan proses pemilihan, dapat menggunakan kata berikut: jika...maka....sebaliknya....akhir jika.

Untuk menyatakan proses pengulangan, dapat menggunakan kata berikut: ulangi....sampai...., selama......lakukan,. Untuk menyatakan hasil keluaran, dapat menggunakan pernyataan berikut: tulis, cetak, tampilkan, rekam.

(3) Pseudocode; adalah notasi yang menyerupai bahasa pemrograman tingkat tinggi, umunya menyerupai bahasa Pascal atau C. Pseudocode menggunakan beberapa istilah seperti: Untuk mendapatkan data masukan: input, read, get, key-in. Untuk menyatakan proses pemilihan: if...then....; if....then...else....end if.

Dasar Pemrograman 02/ Nur Ani, ST, MMSI

Untuk menyatakan proses pengulangan: repeat...until...; while...do...; for...do....end for; do....while....; Untuk menyatakan hasil keluaran: print, write, display.

Contoh: Buatlah algoritma untuk mencari luas sebuah lingkaran. Berdasarkan permasalahan tersebut kita ketahui untuk mencari luas segitiga dapat dihitung dengan menggunakan rumus matematis: Luas Segitiga = . R2 Dalam bentuk flowchart, permasalahan di atas dapat digambarkan sebagai berikut:
mulai

Berikut ini adalah penulisan algoritma dengan menggunakan notasi Bahasa Indonesia Terstruktur (BIT):
1. Masukkan nilai jari-jari (R) 2. Tetapkan nilai Pi = 3.14 3. Hitung luas = Pi * R * R 4. Cetak nilai Luas

Input R

Pi 3.14 Ls Pi * R * R

Penulisan
1. read R

dalam

bentuk

pseudocode

dapat

Cetak Ls

dituliskan sebagai berikut:


2. Pi= 3.14

Selesai

3. luas = Pi * R * R 4. print luas

Implementasi Algoritma Menjadi Program Seperti telah dibahas pada sub bab sebelumnya, setelah algoritma dibuat maka tahap selanjutnya adalah meng-implementasikannya ke dalam program komputer yang dapat dituliskan dalam bahasa pemrograman tertentu. Sebagai contoh apabila algoritma dituliskan dalam bahasa C, maka diperlukan compiler C untuk menerjemahkan program tersebut menjadi instruksi bahasa mesin yang kemudian diproses oleh komputer. Dalam pembuatan program komputer umumnya menggunakan bahasa pemrograman tingkat tinggi, seperti Bahasa Pascal, C ataupun C++.

Dasar Pemrograman 02/ Nur Ani, ST, MMSI

Suatu program komputer pada umumnya berisi 3 hal, yaitu: (1) Pembacaan/ pemasukan data ke dalam komputer (Input) (2) Melakukan penghitungan terhadap data tersebut (Proses) (3) Mengeluarkan/ mencetak hasilnya (Output) Perintah-perintah yang digunakan dalam bahasa tingkat tinggi (bahasa generasi ke-3) umumnya menggunakan bahasa Inggris. Sebagai contoh: Dalam C: Dalam C++: printf (Belajar Algoritma\n); cout<< Belajar Algoritma \n;

Dalam Pascal: Writeln(Belajar Algoritma); Ketiga perintah di atas adalah perintah yang dituliskan dalam bahasa C, bahasa C++ dan bahasa Pascal. Ketiganya menghasilkan keluaran yang sama yaitu menampilkan kalimat Belajar Algoritma. Ketiga perintah tersebut sebelum diproses oleh komputer sesungguhnya harus diterjemahkan terlebih dahulu agar perintah-perintah tersebut dimengerti oleh mesin komputer. Untuk menerjemahkannya dibutuhkan perangkat lunak yang disebut interpreter dan compiler. Interpreter merupakan perangkat lunak yang digunakan untuk menerjemahkan program baris per baris, maksudnya adalah jika baris pertama yang akan diekseskusi maka baris pertama dari sebuah program akan diterjemahkan terlebih dahulu ke dalam bahasa mesin, kemudian jika baris kedua yang akan dieksekusi baru baris kedua yang akan diterjemahkan, dan seterusnya. Contoh bahasa pemrograman yang menggunakan interpreter adalah Basic Sedangkan compiler menerjemahkan seluruh perintah dalam program tersebut ke dalam bahasa mesin terlebih dahulu baru kemudian menjalankan hasil penerjeman. Hasil penerjemahan tersebut dapat disimpan dalam memori sementara ataupun dapat disimpan dalam sebuah file terpisah. Contoh bahasa pemrograman yang menggunakan compiler adalah Pascal, C, C++.

Struktur Dasar Algoritma Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut dapat berupa runtunan aksi, pemilihan aksi, dan pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi, sebuah algoritma dapat dibangun dari tiga buah struktur dasar, yaitu:

1.

Runtunan (sequence).

Dasar Pemrograman 02/ Nur Ani, ST, MMSI

2. 3.

Pemilihan (selection). Pengulangan (repetition). Sebenarnya dalam kehidupan sehari-haripun kita sudah menggunakan algoritma

dalam menjalani rutinitas kehidupan. Sebagai contoh, saat mengikuti ujian semester ada langkah-langkah yang harus dilaksanakan antara lain: 1. Mempersiapkan kartu ujian. 2. Menempati tempat duduk sesuai nomer ujian. 3. Menandatangani form kehadiran. 4. Mendapatkan lembar soal dan lembar jawaban. 5. Mengerjakan ujian dengan tertib. 6. Keluar ruangan ujian saat waktu ujian telah habis. Dalam banyak hal terkadang algoritma yang dilakukan tidak berurutan seperti di atas, terkadang akan ada beberapa langkah yang harus dipilih tergantung pada kondisi. Sebagai contoh, dari pengembangan algoritma di atas, saat peserta ujian telah selesai mengerjakan ujian tetapi waktu ujian masih ada, apa yang selanjutnya harus dilakukan? Apakah keluar ruangan atau tetap menunggu di ruangan hingga waktu ujian habis. Keadaan seperti ini dalam algoritma di sebut percabangan atau selection. Pada permasalahan lain, ada keadaan dimana suatu langkah atau sebuah perintah dilaksanakan lebih dari satu kali. Contohnya, seorang mahasiswa akan mengambil mata kuliah yang sama selama mata kuliah tersebut belum bernilai minimal C. Keadaan ini dalam algoritma dinamakan perulangan atau looping. Contoh: 1. Buatlah algoritma untuk menukar dua buah bilangan, dimisalkan bilangan pertama A bernilai 5 sedangkan bilangan kedua B bernilai 7, setelah proses penukaran maka A akan bernilai 7 dan B bernilai 5.
Algoritma Nilai mutlak A dan B adalah variable untuk menampung nilai pertama dan nilai kedua C adalah variabel untuk menyimpan nilai A atau B sementara. Deskripsi: 1. beri nilai A = 5 2. beri nilai B = 7 3. beri nilai C = A = 5 4. beri nilai A = B = 7 5. beri nilai B = C = 5 6. Tulis nilai A dan nilai B

Dasar Pemrograman 02/ Nur Ani, ST, MMSI

2. Buatlah algoritma untuk menuliskan nilai mutlak dari nilai yang dimasukkan oleh
pengguna. Pemahaman masalah: Nilai mutlak x | x| adalah sbb: | x | = x, jika x 0 | x | = -x, jika x < 0
Algoritma Nilai mutlak x adalah variabel yang menampung nilai yang dimasukkan Deskripsi: 1. Input nilai x. 2. Jika (x < 0) maka kerjakan perintah nomer 3, jika tidak kerjakan nomer 4 3. x -x 4. Tulis x.

Penjelasan algoritma: Baris pertama meminta masukkan bilangan yang disimpan pada variabel x. Baris kedua mengecek apakah nilai yang dimasukkan lebih kecil dari nol atau

tidak, jika lebih kecil maka kerjakan perintah nomer 3 jika tidak lebih kecil maka kerjakan perintah nomer 4. Baris ketiga membuat nilai x menjadi positif (baris ini hanya dilakukan jika nilai Baris keempat mencetak nilai x. x lebih kecil dari nol)

Algoritma mencari nilai mutlak merupakan algoritma bentuk percabangan, karena pada algoritma di atas kita dihadapkan pada sebuah kondisi yang akan membuat program mempunyai dua arah (lihat baris kedua). 3. Buatlah algoritma untuk mencetak sebuah kata yang diinput oleh pengguna sebanyak 5 kali. Pemahaman masalah: Meminta masukan berupa sebuah kata, kemudian kata tersebut tercetak sebanyak 5 kali.
Algoritma mencetak kata sebanyak 5 kali Kt adalah variabel yang digunakan untuk menampung dimasukkan pengguna M adalah variabel untuk menyimpan nilai perulangan. Deskripsi: 1. Masukkan Kt 2. M = 1 3. selama (M <= 5) lakukan langkah 3 sampai dengan 5 4. cetak Kt 5. M = M +1 kata yang

Dasar Pemrograman 02/ Nur Ani, ST, MMSI

Penjelasan algoritma: Langkah pertama meminta masukan sebuah kata yang disimpan pada variabel Kt Langkah kedua memberi nilai awal m=1, variabel M digunakan untuk menyimpan hasil pengulangan (pencacah). Langkah ketiga memberikan perintah untuk mengulangi langkah ketiga hingga langkah kelima selama nilai M masih bernilai lebih kecil atau sama dengan 5. Langkah keempat merupakan perintah untuk mencetak Kt. Langkah kelima menambahkan variabel M dengan 1. variabel M harus ditambah dengan nilai 1 agar kondisi pada langkah ketiga ada saatnya bernilai salah, dalam hal ini digunakan untuk membatasi perulangan. Algoritma mencetak kata yang yang dimasukkan oleh pengguna merupakan bentuk algoritma pengulangan.

Latihan: 1. Tulislah algoritma untuk meminta masukan dua bilangan dari pengguna, kemudian menampilkan bilangan terbesar dari kedua bilangan tersebut. 2. Buatlah algoritma untuk mencetak kalimat Algoritma Pemrograman sebanyak 50 kali. 3. Tulislah algoritma untuk meminta pengguna memasukkan tiga buah bilangan bulat, kemudian menampilkan bilangan terkecil dari ketiga bilangan tersebut.

4. Buatlah algoritma untuk menghitung akar persamaan kuadrat. Akar persamaan kuadrat
dapat dicari dengan terlebih dahulu menghitung nilai determinan dengan rumus D = B 2 4 A C. Jika nilai D < 0 maka didapat akar tidak nyata. Jika nilai D = 0 maka X1 = X2, untuk menghitung nilai X didapat dari rumus: B / ( 2 A ). Jika nilai D > 0 maka terdapat dua akar X1= (-B + D / 2A) dan X2= (-B - D / 2A).

================================

Dasar Pemrograman 02/ Nur Ani, ST, MMSI

Referensi: Antony Pranata, Algoritma dan Pemrograman, J&J Learning, Yogyakarta, 2000 Rinaldi Munir, Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Informatika Bandung, 2002 Suryadi H.S., Agus Salim, Pengantar Algoritma dan Pemrograman, Gunadarma, 1993 Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta, 2004

Dasar Pemrograman 02/ Nur Ani, ST, MMSI

Anda mungkin juga menyukai