Algoritma 1 :
1.
2.
Algoritma 2 :
1.
2.
3.
Bahasa Pemrograman
Bahasa Pemrograman
Notasi Algoritma
Kalimat Deskriptif
Flowchart
Pseudo-code
Notasi Algoritma
Contoh Soal
Contoh Soal
Contoh Soal
1.
Pindahkan cakram A ke B
2.
Pindahkan cakram A ke C
3.
Pindahkan cakram B ke C
4.
Pindahkan cakram A ke B
5.
Pindahkan cakram C ke A
6.
Pindahkan cakram C ke B
7.
Pindahkan cakram A ke B
Flowchart
Flowchart adalah jenis diagram yang merepresentasikan
sebuah algoritma atau proses, menunjukkan langkahlangkah sebagai kotak dari berbagai jenis, dan pesan yang
dibawa antar kotak, dihubungkan dengan anak panah.
Representasi diagram dapat memberikan solusi langkahdemi-langkah untuk suatu masalah.
Operasi proses direpresentasikan dalam kotak-kotak, dan
panah menghubungkan mereka mewakili aliran kontrol.
Flowchart digunakan dalam menganalisis, merancang,
mendokumentasikan atau mengelola proses atau program di
berbagai bidang.
Flowchart
digunakan
dalam
merancang
dan
mendokumentasikan proses kompleks.
Simbol Flowchart
Terminal, untuk menyatakan START dan END
Hanya sebagai tanda, tidak melakukan suatu pekerjaan
khusus.
Simbol Flowchart
Pemberian nilai awal suatu variabel.
Subrutin ,
fungsi)
Flowchart
Simbol-simbol diatas umumnya digunakan untuk menuliskan flowchart.
Sebagai contoh algoritma untuk menjumlahkan dua buah bilangan adalah
sebagai berikut :
Start
Read
A, B
C=A+B
Write
Stop
Flowchart
Contoh lain, misalkan kita ingin mengetahui apakah sebuah
bilangan ganjil atau genap.
Untuk itu kita harus membuat flowchart seperti berikut :
Start
Read
Sisa = A mod 2
Sisa = 0
N
Write
Ganjil
Stop
Write
Genap
Pseudo-code
Pseudo-code 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.
Pseudo-code biasanya tidak menggunakan elemen detail yang
tidak diperlukan untuk kebutuhan pemahaman manusia atas
suatu algoritma, seperti deklarasi variabel, kode ataupun subrutin
untuk sistem yang bersifat spesifik.
Bahasa pemrograman yang digunakan lebih diperbanyak dengan
deskripsi dalam bahasa natural atas sesuatu hal yang bersifat
detail, atau dengan menggunakan notasi matematis.
Tujuan dari penggunaan pseudo-code adalah untuk mempermudah
manusia dalam pemahaman dibandingkan menggunakan bahasa
pemrograman yang umum digunakan, terlebih aspeknya yang
ringkas serta tidak bergantung pada suatu sistem tertentu
merupakan prinsip utama dalam suatu algoritma.
Pseudo-code
Berikut ini adalah contoh
menghitung jumlah A dan B.
1|Start
2|Masukkan A dan B
3|C = A + B
4|Tampilkan C
5|End
pseudo-code
untuk
Pseudo-code
Berikut ini adalah contoh pseudo-code untuk mencari
bilangan ganjil dan genap.
1|Start
2|Masukkan A
3|Sisa = A MOD 2
4|IF (Sisa = 0)
5|
Cetak Genap
6|Else
7|
Cetak Ganjil
8|End
a, b
Set c = a + b
Write
Stop
Pseudo Code
Set a = 0
Set b = 0
Set c = 0
Read a, b
Set c = a + b
Write c
Implementasi pada C#
using System;
namespace Latihan {
class LatihanClass {
static int a = 0;
static int b = 0;
static int c = 0;
public static void tes() {
string x = "";
bool t = false;
while(t == false) {
Console.Write("A: ");
x = Console.ReadLine();
t = int.TryParse(x, out a);
}
t = false;
while(t == false) {
Console.Write("B: ");
x = Console.ReadLine();
t = int.TryParse(x, out b);
}
c = a + b;
Console.WriteLine("C: " + c.ToString());
}
Percabangan
Percabangan digunakan untuk memeriksa sebuah kondisi atau lebih kondisi
dan menjalankan rangkaian proses berdasarkan hasil dari kondisi yang
diperiksa.
Ada beberapa bentuk percabangan, antara lain:
IF kondisi THEN proses ENDIF
IF kondisi THEN proses1 ELSE proses2 ENDIF
IF kondisi1 THEN proses1 ELSEIF kondisi2 THEN proses2 ELSE proses3
ENDIF
Contoh:
Jika a lebih besar dari 10 maka cetak a
Pseudocode:
Start
Set a = 0
Read a
If a > 10 then
Write a
Endif
Stop
Percabangan: IF
Pseudocode
Start
IF kondisi THEN
Proses1
ENDIF
Stop
Start
Y
Kondisi
T
Stop
Proses1
Contoh Penggunaan IF
Soal
Cetak Nilai lebih besar dari 10
jika variabel x berisi nilai lebih dari
10.
Pseudo Code
Start
num x = 0
Read x
If x > 10 Then
Write Nilai lebih besar dari 10
Endif
Stop
Start
Declarations
num x = 0
Read
x > 10
T
Stop
Write
Percabangan: IF - ELSE
Start
Kondisi
Proses1
Y
T
Proses2
Stop
Pseudocode
Start
IF kondisi THEN
Proses1
ELSE
Proses2
ENDIF
Stop
Start
Declarations
num x = 0
Read
x > 10
T
Write
Stop
Y
Nilai lebih
kecil dari 10
Write
Nilai lebih
besar dari
10
if (x > 10) {
System.out.println(Nilai lebih besar dari 10);
} else {
System.out.println(Nilai lebih kecil dari 10);
}
Percabangan: IF - ELSEIF
Start
Kondisi1
Proses1
T
Kondisi2
T
Proses3
Stop
Proses2
Pseudocode
Start
IF kondisi1 THEN
Proses1
ELSEIF kondisi2 THEN
Proses2
ELSE
Proses3
ENDIF
Stop
Start
Declarations
num x = 0
Read
x > 10
x
Y
T
x>5
T
Write
Stop
Write
Write
Perulangan
Seringkali dalam membuat program kita perlu melakukan suatu
proses secara berulang. Hal ini biasa disebut dengan perulangan.
Perulangan ada yang terbatas dan ada pula yang tidak terbatas.
Dalam algoritma, ada beberapa bentuk perulangan yang biasa
digunakan. Diantaranya:
Perulangan While
Perulangan Do
Perulangan For
Dalam setiap bentuk perulangan, selalu ada sebuah nilai yang akan
diperiksa. Hasil dari pemeriksaan kondisi ini yang akan menentukan
apakah sebuah perulangan akan di ulangi atau berhenti.
Perulangan: While
Pada perulangan While, sebuah kondisi akan di
periksa apakah masih dalam batas kriteria yang
kita tentukan.
Sebagai contoh, kita akan mencetak angka dari 1
sampai 5 maka kita inisialisasi sebuah variabel
dengan nilai 1 lalu kita cetak variabel tersebut
kemudian variabel tersebut kita naikkan/turunkan
nilainya dan kita periksa apakah variabel tersebut
masih dibawah angka 6.
Pseudocode dari penjelasan diatas:
Start
Num I = 1
While I < 6
Write I
I = I +1
End While
Stop
Start
Inisialiasi
Proses
Kondisi
T
Stop
Start
Declarations
Num I = 1
I mod 2 = 0
T
I=I+1
I < 11
T
Stop
Genap
Write
Perulangan: Do - Loop
Perulangan Do - Loop mirip dengan perulangan
While hanya saja pemeriksaan kondisi dilakukan
setelah semua proses di jalankan.
Jika pada perulangan While, perulangan bisa saja
tidak dijalankan sama sekali karena kondisi yang
diperiksa
menghasilkan
nilai
false,
pada
perulangan Do - Loop perulangan dijalankan
minimal 1 kali meskipun kondisi yang diperiksa
menghasilkan nilai false.
Bentuk flowchart perulangan Do - Loop mirip
dengan perulangan For.
Pemeriksaan kondisi pada perulangan Do Loop di
lakukan setelah kata kunci While atau Until
Perulangan Do Loop While dilakukan selama
kondisi bernilai true.
Perulangan Do Loop Until dilakukan sampai
kondisi bernilai true.
Start
Inisialiasi
Proses
Kondisi
T
Stop
Perulangan: Do - Loop
Bentuk perulangan Do Loop While dengan pseudo-code:
Inisialisasi
Do
Proses
Loop While kondisi
Bentuk perulangan Do Loop Until dengan pseudo-code:
Initialisasi
Do
Proses
Loop Until kondisi
Soal:
Cetak bilangan ganjil dan genap
antara 1 s/d 10.
Jawaban:
Pseudo-code
Start
Declarations
Num I = 1
Do
If I mod 2 = 1 Then
Write I, "Bilangan ganjil"
Else
Write I, Bilangan genap
End If
I=I+1
Loop While I <= 10
Stop
Declarations
Num I = 1
Genap
I mod 2 = 0
Write Ganjil
I=I+1
Y
I < 11
T
Stop
Write
Perulangan: For
Perulangan
For
adalah
sebuah
bentuk
perulangan yang sudah ditentukan jumlah
perulangan yang harus dilaksanakan.
Perulangan For menggunakan batas bawah dan
batas atas sebagai batas dalam melakukan
perulangan.
Selain batas bawah dan batas atas, perulangan
For juga menggunakan lompatan (step) untuk
menentukan berapa banyak variabel kontrol
perulangan for akan berubah.
Bentuk perulangan for dalam bentuk flowchart
tidak berbeda dengan bentuk perulangan while.
Bentuk perulangan for dalam pseudo-code adalah:
For count = 1 To 10 Step 1
proses
EndFor
Start
Inisialiasi
Proses
Kondisi
T
Stop
Start
Num I = 1
I mod 2 = 0
T
Write
I=I+1
I <= 10
T
Stop
Ganjil
Genap
Write
Subrutin
Sub rutin adalah sub program atau bagian terkecil dari suatu
program yang digunakan untuk keperluan tertentu.
Sub rutin dibagi menjadi dua macam, yaitu Prosedur (Procedure)
dan Fungsi (Function).
Yang membedakan antara prosedur dengan fungsi adalah jika
prosedur tidak menghasilkan/mengembalikan suatu nilai,
sedangkan fungsi mengembalikan suatu nilai.
Dengan menggunakan prosedur dan fungsi maka pembuatan
program yang besar dan komplek menjadi lebih mudah.
Pada bahasa pemrograman berorientasi objek (OOP) (seperti Java,
C++, dll) subrutin dikenal dengan sebutan metode (method).
Prosedur
Prosedur adalah sebuah bagian dari
program (subprogram) melakukan proses
tertentu dan tidak mengembalikan nilai
kepada pemanggilnya.
Cara menuliskan fungsi pada pseudo-code:
namaprosedur()
proses
return
Cara menggunakan fungsi pada pseudocode:
namaprosedur()
Start
namaprosedur()
Stop
namaprosedur()
proses
return
Fungsi
Fungsi merupakan sekumpulan perintah
yang digunakan untuk keperluan tertentu,
yang mungkin pekerjaan tersebut sering kita
lakukan.
Hanya
saja,
fungsi
menghasilkan/mengembalikan suatu nilai.
Biasanya
fungsi
digunakan
untuk
melakukan proses perhitungan.
Cara menuliskan fungsi pada pseudo-code:
[tipedata] namafungsi()
proses
return namavariabel
Cara menggunakan fungsi pada pseudo-code:
x = namafungsi()
Start
x = namafungsi()
Stop
num namafungsi()
proses
return namavariabel
return luas
start
num al
num tg
num I
num luas
start
Declarations
luas = 0.5 * a * t
num alas
num tinggi
return luas
For I = 1 to 5
Read alas, tinggi
Write luassegitiga(alas, tinggi)
EndFor
stop
I=1
Read
al, tg
I<6
T
stop
luas
return ls;
public static void main (String args[]) {
LuasSegitiga ls = new LuasSegitiga();
ls.proses();
}
Array
Array adalah serangkaian nilai didalam memori komputer yang
memiliki nama dan tipe data yang sama namun dibedakan dengan
angka khusus yang disebut indeks.
Indeks adalah angka yang mengindikasikan posisi item tertentu
dalam array.
Array bisa terdiri dari 1 dimensi atau banyak dimensi.
Contoh inisialisasi array 1 dimensi pada pseudo-code:
num ab[3]
num tg[2] = 4, 3
Contoh inisialisasi array 2 dimensi pada pseudo-code:
num ut[3][2], ua[3][4]
Contoh mengisi array pada posisi tertentu pada pseudo-code:
ab[1] = 2
ab[2] = 8
Contoh menampilkan isi array pada posisi tertentu pada pseudocode:
Write ab[2]
Start
Declarations
Num bil[5]
Num I = 0
Read
Y
bil[I]
I=I+1
I<5
I=0
Write
Y
I=I+1
I<5
Stop
bil[I]
}
for (i = 0; i < 5; i++) {
System.out.print("Isi array ke ");
System.out.print(i);
System.out.print(" : ");
System.out.println(bil[i]);
}
Start
Declarations
Num bil[5]
Num I = 0
Num maks = 0
Read
bil[I]
I=I+1
I<5
I=0
I=I+1
I<5
maks = bil[I]
}
for (i = 0; i < 5; i++) {
if (maks < bil[i]) {
maks = bil[i];
}
}
System.out.print("Bilangan terbesar : ");
System.out.println(maks);
}