Notasi Algoritma & Percabangan Algoritma
Notasi Algoritma
Seperti yang telah dibahas sebelumnya, bahwa algoritma adalah rangkaian langkah-langkah untuk memecahkan suatu masalah. Algoritma dituliskan dalam sebuah notasi yang disebut Notasi Algoritma. Notasi algoritma merupakan hal dasar yang harus diketahui oleh setiap orang yang ingin membuat suatu pogram, karena dalam notasi algoritma inilah terdapat kerangka-kerangka suatu program. Ciri notasi algoritma yang baik yaitu dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti. Meskipun demikian untuk menghindari kekeliriuan, ketaatan terhadap notasi perlu diperhatikan.
Di bawah ini ada 3 notasi yang digunakan dalam penulisan algoritma, yaitu :- Kalimat Deskriptif
- Diagram Alir (Flowchart)
- Pseudo-Code
1. Kalimat Deskriptif
Dengan notasi kalimat deskriptif ini, deskripsi setiap langkah dijelaskan dengan bahasa yang jelas/gamblang. Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman relatif sulit.contoh algoritma dengan kalimat deskriptif. Algoritma menghitung luas persegi panjang: luas persegi panjang = panjang*lebar.
2. Diagram Alir (Flowchart)
- mulai.
- baca panjang
- baca lebar
- hitung luas = panjang*lebar
- cetak luas
- selesai.
Dengan diagram alir, deskripsi setiap langkah dijelaskan dalam sebuah bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dalam suatu program. Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif sulit.
Berikut ini adalah gambar dari simbol-simbol yang digunakan pada flowchart program.
contoh algoritma dengan diagram alur.Algoritma menghitung luas persegi panjang:Tentukan luas persegi panjang. P= panjang, L=lebar, Luas=P*L.

3. Pseudo-codeDengan notasi pseudocode, deskripsi setiap langkah dijelaskan dengan menggunakan vacabulary (baku) atau dalam arti lain seperti ini pseudocode merupakan deskripsi tingkat tinggi informal dan ringkas atas algoritma pemrograman komputer yang menggunakan konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin. Notasi pseudocode adalah yang paling umum di gunakan dalam penulisan algoritma karena pengkonversian ke bahasa pemograman relatif mudah.Notasi pseudo-code terdiri dari :
- Head(Judul) : memberikan nama pada algoritma; umumnya nama sudah dapat memberi gambaran pada prosedur penyelesaian masalah atau masalah yang akan diselesaikan
- Deklarasi : menyatakan jenis dari setiap elemen data (variabel) yang akan digunakan dalam algoritma.
- Deskripsi : merupakan inti prosedur penyelesaian masalah; meliputi pernyataan/operasi, fungsi, penjelasan, dll.
contoh algoritma dengan pseudocode:
ALGORITMA HITUNG LUAS
menghitung luas persegi panjang.DEKLARASI: P=panjang L=lebar Luas=P*LDESKRIPSI: read (P,L) while (Luas=P*L) endwhile
write (Luas)
Kita bisa bebas menulis pseudocode selama itu mudah dimengerti bagi orang lain. Tetapi disarankan untuk menggunakan keyword yang umum digunakan seperti : if, then, else, while, do, repeat, for, dan lainnya.
Contoh Algoritma Percabangan berdasarkan Jenisnya Pengertian algoritma pemrograman
percabangan, adalah salah satu jenis algoritma yang digunakan untuk memberitahukan program tentang perintah apa yang harus dijalankan, dimana perintah tersebut akan disesuaikan dengan beberapa kondisi. Fungsi algoritma ini adalah untuk memproses keputusan yang tepat dan cepat sesuai dengan yang keinginan pengguna berdasarkan kondisi yang terjadi pada sistem yang digunakan. Algoritma percabangan ini biasa disebut juga sebagai algoritma seleksi kondisi, flow control, dan algoritma pemilihan.
Algoritma percabangan memiliki beberapa macamnya. Meskipun begitu, tujuan dari algoritma ini sama-sama untuk menentukan perintah mana yang akan dikerjakan oleh sebuah program yang disesuaikan dengan kondisi atau syarat tertentu. Apa sajakah macam-macam algoritma percabangan tersebut?
- Percabangan untuk 1 kondisi. Percabangan jenis ini hanya memiliki satu kondisi yang menjadi syarat untuk melakukan sebuah instruksi.
- Percabangan untuk 2 kondisi. Percabangan jenis ini memiliki dua kondisi yang menjadi syarat untuk mengerjakan salah satu dari dua buah instruksi.
- Percabangan untuk 3 kondisi atau lebih. Percabangan jenis ini adalah pengembangan dari dua jenis algoritma percabangan yang telah dibahas di atas. Oleh karena itu, percabangan jenis ini akan memiliki banyak variasi.
- Percabangan “Case of….”. Percabangan ini digunakan untuk memeriksa data yang bertipe karakter atau integer.
- Percabangan bersarang. Percabangan ini terdiri dari percabangan yang berada di dalam percabangan, atau maksudnya di dalam sebuah percabangan terdapat percabangan lagi.
Pada artikel berikut ini, kami akan memberikan contoh algoritma percabangan berdasarkan jenis-jenisnya menggunakan macam-macam bahasa pemrograman. Contoh-contoh berikut bisa Anda jadikan sebagai bahan latihan. Eitss, sebelumnya Anda harus mengerti dahulu pengertian algoritma, flowchart, dan pseudocode, karena ketiga hal tersebut adalah dasar dalam mempelajari pemrograman. Anda juga bisa mengetahui semuanya di situs kami. Yuk kita simak contohnya:
- Percabangan satu kondisi
Contoh 1:
uses crt;
var
jeniskelamin:char;
begin
clrscr;
writeln(‘Jenis Kelamin : ’);
writeln(‘L unutk laki-laki, P untuk perempuan’);
writeln(‘Jenis kelamin anda: ’);readln(jeniskelamin);
if(jeniskelamin = ‘l’) then writeln(‘Laki-laki’);
if(jeniskelamin = ‘p’) then writeln(‘Perempuan’);
readkey;
end
var
jeniskelamin:char;
begin
clrscr;
writeln(‘Jenis Kelamin : ’);
writeln(‘L unutk laki-laki, P untuk perempuan’);
writeln(‘Jenis kelamin anda: ’);readln(jeniskelamin);
if(jeniskelamin = ‘l’) then writeln(‘Laki-laki’);
if(jeniskelamin = ‘p’) then writeln(‘Perempuan’);
readkey;
end
Contoh 2:
Percabangan satu kondisi dengan menggunakan bahasa pemrograman C++:
#include <iostream.h>
int main (){
int nilai;
char a;
cout<<“Masukkan Nilai Anda:”;
cin>>nilai;
if (nilai>60){
cout<<“Selamat Anda Lulus!!”;
}
cin>>a;
return 0;
}
Percabangan dua kondisi
Contoh 1:
int main (){
int nilai;
char a;
cout<<“Masukkan Nilai Anda:”;
cin>>nilai;
if (nilai>60){
cout<<“Selamat Anda Lulus!!”;
}
cin>>a;
return 0;
}
Percabangan dua kondisi
Contoh 1:
Buatlah algoritma untuk menebak usia seseorang yang diiput oleh pengguna, dengan ketentuan sebagai berikut:
- Jika usia 5 tahun ke bawah (usia<=5), maka dia adalah balita
- Jika usia di atas 5 tahun ke atas sampai 12 tahun (usia >5 dan usia <=12), maka dia adalah anak-anak
- Jka usia di atas 12 tahun dan usia di bawah 18 tahun (usia >12 dan usia < 18) maka dia adalah remaja
- Jika usia di atas 18 tahun maka dia adalah dewasa
Jawab:
algoritma tebak_umur
algoritma tebak_umur
DEKLARASI
usia : integer
usia : integer
ALGORITMA:
read(usia)
IF usia<=5 THEN
write(‘Balita’)
ELSE IF usia>5 and usia <=12 THEN
write(‘Anak-anak’)
ELSE IF usia >12 and usia <18 THEN
write(‘Remaja’)
ELSE
write(‘Dewasa’)
ENDIF
IF usia<=5 THEN
write(‘Balita’)
ELSE IF usia>5 and usia <=12 THEN
write(‘Anak-anak’)
ELSE IF usia >12 and usia <18 THEN
write(‘Remaja’)
ELSE
write(‘Dewasa’)
ENDIF
Contoh 2:
If x > 0 then
ket ß ‘bilangan positif’
if m = n
i ß m*n
write(i)
if bil>=0 then
ket ß (‘bilangan positif’)
else
ket ß (‘bilangan negatif’)
if m = n then
i ß m*n
j ß m-n
else
i ß m/n
j ß m+n
write(i,j)
If x > 0 then
ket ß ‘bilangan positif’
if m = n
i ß m*n
write(i)
if bil>=0 then
ket ß (‘bilangan positif’)
else
ket ß (‘bilangan negatif’)
if m = n then
i ß m*n
j ß m-n
else
i ß m/n
j ß m+n
write(i,j)
Contoh 3:
Contoh Kasus : Penggolongan nilai
ALGORITMA:
Mulai
Menentukan nilai siswa
Jika nilai siswa ( 0 – 100 ) > 75 Tergolong Baik
Jika nilai siswa ( 0 – 100 ) ≤ 75 Tergolong Cukup
Tampilkan hasil
Selesai
Mulai
Menentukan nilai siswa
Jika nilai siswa ( 0 – 100 ) > 75 Tergolong Baik
Jika nilai siswa ( 0 – 100 ) ≤ 75 Tergolong Cukup
Tampilkan hasil
Selesai
PSEUDOCODE:
Var :
nilai_siswa : integer
Var :
nilai_siswa : integer
Pseudocode
read (nilai siswa )
IF nilai siswa > 75 THEN
write ( tergolong baik )
ELSE
write ( tergolong cukup )
read (nilai siswa )
IF nilai siswa > 75 THEN
write ( tergolong baik )
ELSE
write ( tergolong cukup )
Contoh 4:
Program mencari nilai dari input variabel
Program mencari nilai dari input variabel
DEKLARASI
x = integer;
x = integer;
ALGORITMA
Read (x)
If (x>0) then
write (“bilangan adalah bilangan bulat positif”);
End if
If (x<0
write (“bilangan adalah bilangan bulat negatif”);
End if
Else
write (“maaf nilai variabel yang anda masukkan adalah salah”);
End if
Read (x)
If (x>0) then
write (“bilangan adalah bilangan bulat positif”);
End if
If (x<0
write (“bilangan adalah bilangan bulat negatif”);
End if
Else
write (“maaf nilai variabel yang anda masukkan adalah salah”);
End if
Contoh soal
Bagaimana menentukan sebuah bilangan adalah sebuah bilangan ganjil atau genap ?
Clue : menggunakan mod
Jawaban (notasi algoritma)
If (bilangan % 2=0) then
write (“bilangan adalah bilangan genap”);
End if
If (bilangan % 2 !=0 ) then
write (“bilangan adalah bilanga ganjil”);
End if
Bagaimana menentukan sebuah bilangan adalah sebuah bilangan ganjil atau genap ?
Clue : menggunakan mod
Jawaban (notasi algoritma)
If (bilangan % 2=0) then
write (“bilangan adalah bilangan genap”);
End if
If (bilangan % 2 !=0 ) then
write (“bilangan adalah bilanga ganjil”);
End if
- Percabangan tiga kondisi atau lebih
Contoh 1:
Program penentuan kelulusan berdasarkan nilai dengan bahasa pemrograman Pascal:
uses wincrt;
Var
nilai: integer;
Ket : char;
begin
writeln(‘Program Untuk Konversi Angka Menjadi Lulus atau Tidak’);
writeln(‘Dengan Kondisi jikan Nilai >= 70 lulus jika < 70 maaf ulang tahun depan’);
writeln(‘Masukan Data yang akan di konversi : ‘);
readln(nilai);
if (nilai>=80) then
begin
Ket :=’A’;
end else
if (nilai>=70) then
begin
Ket :=’B’;
end else
if (nilai>=60) then
begin
Ket :=’C’;
end else
if (nilai>=50) then
begin
Ket :=’D’;
end else
begin
Ket :=’E’;
end;
writeln(‘Nilai : ‘,nilai,’ Keterangan Nilai adalah ‘,Ket);
end.
Var
nilai: integer;
Ket : char;
begin
writeln(‘Program Untuk Konversi Angka Menjadi Lulus atau Tidak’);
writeln(‘Dengan Kondisi jikan Nilai >= 70 lulus jika < 70 maaf ulang tahun depan’);
writeln(‘Masukan Data yang akan di konversi : ‘);
readln(nilai);
if (nilai>=80) then
begin
Ket :=’A’;
end else
if (nilai>=70) then
begin
Ket :=’B’;
end else
if (nilai>=60) then
begin
Ket :=’C’;
end else
if (nilai>=50) then
begin
Ket :=’D’;
end else
begin
Ket :=’E’;
end;
writeln(‘Nilai : ‘,nilai,’ Keterangan Nilai adalah ‘,Ket);
end.
Contoh 2:
Menentukan bilangan terbesar
Int a,b,c;
if (a >= b ) and (a >=b) then
write (“bilangan terbesar adalah a”)end ifif (b >= a) and (b>= c) then
write (“bilangan terbesar adalah b”)
end if
if (c>=a) and (c>=b) then
write (“bilangan terbesar adalah c”)
end if
else
write (“bilangan yang anda masukkan adalah salah”)
end if
Menentukan bilangan terbesar
Int a,b,c;
if (a >= b ) and (a >=b) then
write (“bilangan terbesar adalah a”)end ifif (b >= a) and (b>= c) then
write (“bilangan terbesar adalah b”)
end if
if (c>=a) and (c>=b) then
write (“bilangan terbesar adalah c”)
end if
else
write (“bilangan yang anda masukkan adalah salah”)
end if
- Percabangan “Case of”
Contoh 1:
Percabangan “Case Of” dalam sebuah program yang menggunakan bahasa pemrograman Pascal:
uses wincrt;
var x : integer;
begin
write (‘Masukkan sebuah nilai [0…3] : ‘);
readln (x);
Case (x) of
0 : Writeln(‘X bernilai 0’);
1 : Writeln(‘x bernilai 1’);
2 : Writeln(‘X bernilai 2’);
3 : Writeln(‘X bernilai 3’);
else
Writeln(‘X tidak bernilai 0, 1, 2, ataupun 3’);
end;
end.
var x : integer;
begin
write (‘Masukkan sebuah nilai [0…3] : ‘);
readln (x);
Case (x) of
0 : Writeln(‘X bernilai 0’);
1 : Writeln(‘x bernilai 1’);
2 : Writeln(‘X bernilai 2’);
3 : Writeln(‘X bernilai 3’);
else
Writeln(‘X tidak bernilai 0, 1, 2, ataupun 3’);
end;
end.
Contoh 2:
Program percabangan “Case of” menggunakan bahasa pemrograman C++ :
void main() {
int nHari;
cout << “Masukkan No Hari [1..7] : “;
cin >> nHari;
cout << “Ini adalah hari “;
switch (nHari) {
case 1:
cout << “Ahad”;
break;
case 2:
cout << “Senin”;
break;
case 3:
cout << “Selasa”;
break;
case 4:
cout << “Rabu”;
break;
case 5:
cout << “Kamis”;
break;
default:
cout << “Jumat”;
}
getch();
}
int nHari;
cout << “Masukkan No Hari [1..7] : “;
cin >> nHari;
cout << “Ini adalah hari “;
switch (nHari) {
case 1:
cout << “Ahad”;
break;
case 2:
cout << “Senin”;
break;
case 3:
cout << “Selasa”;
break;
case 4:
cout << “Rabu”;
break;
case 5:
cout << “Kamis”;
break;
default:
cout << “Jumat”;
}
getch();
}
- Percabangan Bersarang
Contoh 1:
Program percabangan bersarang menggunakan bahasa pemrograman Pascal :
uses wincrt;
var x, y, z : real;
begin
write (‘Masukkan bilangan 1: ‘);
readln (x);
write (‘Masukkan bilangan 2 : ‘);
readln (y);
write (‘Masukkan bilangan 3 : ‘);
readln (z);
if x > y then
if x > z then
write (‘Bilangan terbesar : ‘,x:5:2)
else
write (‘Bilangan terbesar : ‘,z:5:2)
else
if y > z then
write (‘Bilangan terbesar :’,y:5:2)
else
write (‘Bilangan terbesar : ‘,z:5:2);
end.
var x, y, z : real;
begin
write (‘Masukkan bilangan 1: ‘);
readln (x);
write (‘Masukkan bilangan 2 : ‘);
readln (y);
write (‘Masukkan bilangan 3 : ‘);
readln (z);
if x > y then
if x > z then
write (‘Bilangan terbesar : ‘,x:5:2)
else
write (‘Bilangan terbesar : ‘,z:5:2)
else
if y > z then
write (‘Bilangan terbesar :’,y:5:2)
else
write (‘Bilangan terbesar : ‘,z:5:2);
end.
Contoh 2:
Program percabangan bersarang menggunakan bahasa pemrogaman C++ :
#include <iostream.h>
void main() {
int A, B, C;
cout << “masukan angka 1 = “;
cin >> A;
cout << “masukan angka 2 = “;
cin >> B;
cout << “masukan angka 3 = “;
cin >> C;
if(A<B){
if(A<C)
cout<< “angka terkecil adalah : ” << A;
else
cout<< “angka terkecil adalah : ” << C;
}
else if(B<C)
cout<< “angka terkecil adalah : ” << B;
else
cout<< “angka terkecil adalah : ” << C;
}
void main() {
int A, B, C;
cout << “masukan angka 1 = “;
cin >> A;
cout << “masukan angka 2 = “;
cin >> B;
cout << “masukan angka 3 = “;
cin >> C;
if(A<B){
if(A<C)
cout<< “angka terkecil adalah : ” << A;
else
cout<< “angka terkecil adalah : ” << C;
}
else if(B<C)
cout<< “angka terkecil adalah : ” << B;
else
cout<< “angka terkecil adalah : ” << C;
}
Setelah Anda mempelajari algoritma percabangan dalam artikel ini, selanjutnya Anda dapat memulai mengembangkan program dengan algoritma tersebut dalam bentuk flowchart. Apa fungsi flowchart dalam pemrograman? Jawabannya ada di situ kami ini. Sekian artikel kami kali ini mengenai algoritma percabangan. Semoga artikel ini dapat menjadi bahan materi pembelajaran programming yang berguna bagi Anda.
Komentar
Posting Komentar