IMPLEMENTASI NOTASI ALGORITMIK KE DALAM BAHASA C A. Sekilas tentang Notasi Algoritmik Notasi algoritmik adalah notasi yang digunakan untuk menuliskan suatu algoritma untuk penyelesaian suatu masalah tertentu. Contoh sederhana notasi algoritmik: /*Algoritma untuk menukar nilai dari dua buah bilangan*/ --------------------------------------------------------/*Kamus*/ x,y,z : integer terbesar: integer /*Algoritma*/ input(x,y,z) terbesar x If (y > terbesar) then terbesar y If (z > terbesar) then terbesar z output(terbesar) Gambar 1: Contoh penulisan algoritma untuk menukar nilai dari dua buah variabel Ada beberapa perintah yang harus diingat dalam notasi algoritmik ini, yakni: • input : notasi untuk menyatakan proses input nilai ke dalam komputer. • output : notasi untuk menyatakan proses untuk menampilkan sesuatu ke layar monitor. • ← : notasi assignment, yakni memasukkan suatu nilai ke dalam sebuah variabel. Notasi algoritmik ini penting untuk dipelajari, karena merupakan sebuah cara untuk mendesain sebuah program tanpa harus menuliskannya ke dalam bahasa pemrograman tertentu. Notasi algoritmik seperti pada gambar di atas disebut juga sebagai pseudo code. Berikut penjelasan mengenai bagian-bagian dari suatu pseudo code atau notasi algoritmik: • Judul program : merupakan judul dari algoritma yang dibuat. • Kamus : merupakan deklarasi variabel. • Algoritma utama : merupakan perintah-perintah utama dalam algoritma. B. Konversi Notasi Algoritmik ke dalam Bahasa C Pada dasarnya, jika kita sudah memahami cara penulisan program dalam notasi algoritmik, maka akan sangat mudah untuk mengimplementasikannya ke dalam bahasa pemrograman apa saja. Berikut diberikan suatu contoh pengimpelentasian notasi algoritmik ke dalam Bahasa C: Tabel 1: Konversi notasi algoritmik menggunakan struktur “if-then” ke dalam Bahasa C Notasi Algoritmik Kode dalam Bahasa C /*Kamus*/ x,y,z : integer int x,y,z; terbesar: integer int terbesar; /*Algoritma*/ input(x,y,z) scanf(“%d”, &x); scanf(“%d”, &y); scanf(“%d”, &z); terbesar ß x x = terbesar; If (y > terbesar) then if (y > terbesar) { terbesar = y; } terbesar ß y If (z > terbesar) then terbesar ß z output(terbesar) if (z > terbesar) { terbesar = z; } printf(“%d”, terbesar); Dalam notasi algoritmik, tipe data float dituliskan sebagai real. Tabel 2: Konversi notasi algoritmik menggunakan struktur “depend-on” ke dalam Bahasa C Notasi Algoritmik Kode dalam Bahasa C /*Kamus*/ idxHari: integer int idxHari; hari: string char hari[10]; /*Algoritma*/ input(idxHari) scanf(“%s”,&idxHari); Depend on (idxHari) switch (idxHari) { case 1: strcpy(hari,”Senin”); break; case 2: strcpy(hari,”Selasa”); break; case 3: strcpy(hari,”Rabu”); break; case 4: strcpy(hari,”Kamis”); break; case 5: strcpy(hari,”Jumat”); break; case 6: strcpy(hari,”Sabtu”); break; case 7: strcpy(hari,”Minggu”); break; 1 : hari ß‘Senin’ 2 : hari ß‘Selasa’ 3 : hari ß‘Rabu’ 4 : hari ß‘Kamis’ 5 : hari ß‘Jumat’ 6 : hari ß‘Sabtu’ 7 : hari ß‘Minggu’ default : hari ß 'None' output(hari) default: strcpy(hari,”None”); break; } printf(“%s”,hari); If (hari = ‘Sabtu’) or (hari = if (hari == “Sabtu”) || (hari ‘Minggu’) then “Minggu”) printf(“HOREEE...!!!”); output(‘HOREEE…!!!’) else printf(“hmmmm...”); else output(‘hmmmm…’) Tabel 3: Konversi notasi algoritmik menggunakan struktur “traversal” ke dalam Bahasa C Notasi Algoritmik Kode dalam Bahasa C /*Kamus*/ idx,awal,akhir: integer int idx,awal,akhir; /*Algoritma*/ Input(awal,akhir) scanf(“%d”,&awal); scanf(“%d”,&akhir); idx traversal[awal..akhir] for (idx=awal; idx<=akhir; idx++) { if (idx % 2 == 0 ) printf(“%d”,idx); } If (idx mod 2 = 0) then output(idx) Tabel 4: Konversi notasi algoritmik menggunakan struktur “while” ke dalam Bahasa C Notasi Algoritmik Kode dalam Bahasa C /*Kamus*/ idx,awal,akhir: integer int idx,awal,akhir; /*Algoritma*/ Input(awal,akhir) scanf(“%d”,&awal); scanf(“%d”,&akhir); idx ß awal idx = awal; While(idx <= akhir) do while (idx <= akhir) { if (idx % 2 == 0) printf(“%d”,idx); If (idx mod 2 = 0) then output(idx) end if idx ß idx + 1 end while idx = idx + 1; } == C. Latihan 1. Terjemahkan algoritma berikut ini ke dalam kode program dalam Bahasa C! /*Algoritma untuk menentukan yudisium mahasiswa*/ ----------------------------------------------------/*Kamus*/ ipk: real yudisium : string /*Algoritma*/ input(ipk) if (ipk >= 3.5) then yudisium ‘cumlaude’ Else if (ipk >= 3.0) then yudisium ‘sangat memuaskan’ Else if (ipk >= 2.75) then yudisium ‘memuaskan’ Else if (ipk >= 2.25) then yudisium ‘cukup’ else yudisium ‘TIDAK LULUS’ output(yudisium) 2. Buatlah program untuk menampilkan pola seperti berikut ini: input = 5 output = * ** *** **** ***** D. Tugas Kelompok 1. Buatlah notasi algoritmik dan kode program untuk menentukan nilai yang terbesar dari empat buah nilai yang diinputkan user, lalu tentukan jenis nilai yang terbesar tersebut (ganjil atau genap)! Contoh: Input :a=7 b=3 c=2 d=9 Output : “Bilangan terbesar adalah 9, yang merupakan bilangan genap.” 2. Buatlah notasi algoritmik dan kode program untuk membuat pola seperti di bawah ini: input = 4 output = * * * * * * * * * * * * #petunjuk: gunakan struktur pengondisian dan pengulangan.