implementasi notasi algoritmik ke dalam bahasa c - E

advertisement
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.
Download