Anda di halaman 1dari 32

Flowchart & Pseudocode

Teny Handhayani
PRAKTIKUM 1

Materi:
----------------------------------------------------------------
 Berfikir algoritmis
 Flowchart
 Pseudocode
 Latihan
Berfikir algoritmis

Belajar
programming
??  belajar
untuk Program
menyelesaikan harus ditulis
suatu masalah dalam suatu
bahasa yang
dimengerti
oleh
komputer
Bahasa Pemrograman

Bahasa tingkat rendah (low level language):


Bahasa yang berorientasi ke mesin. Contoh
Assembly

Bahasa tingkat tinggi (high level language):


Bahasa yang berorientasi ke manusia (seperti
bahasa inggris). Contoh: Pascal, bahasa C, Lisp ,
Delphi, C++, .NET (Dotnet) , Perl(Processing
Lenguage), COBOL(Commont Business Oriented
Lenguage), FORTRAN (Formula Translator) , Delphi
, Kylix , C# , Java , VB , Prolog , SmallTalk, Turbo
Pascal.
Program (ditulis dlm Diterjemahkan dalam
bahasa pemrograman) bahasa mesin (digit
biner)

Interpreter : menerjemahkan
baris per baris instruksi. Contoh
bahasa Basic.
Compiler : menerjemahkan penerjemah
setelah seluruh instruksi ditulis.
Contoh bahasa Pascal, bahasa
C/C++, dll.
Notasi Algoritma
 Notasi algoritma umumnya dapat dibuat dalam tiga cara yaitu :
 Kalimat Deskriptif
 Flowchart
 Pseudocode
 Dalam belajar algoritma notasi yang umum digunakan adalah
Flowchart dan Pseudocode.
 Flowchart dan Pseudocode memiliki keunggulan tersendiri.
 Menulis algoritma dengan Flowhart dan Pseudocode biasanya
dilakukan oleh programmer pemula (tahap belajar).
 Programmer yang mahir umumnya langsung menuangkan
algoritma dengan bahasa pemrograman tertentu.
 Namun programmer mahir terkadang menggunakan Flowchart
dan Pseudocode untuk dokumentasi.
Flow chart dan Pseudocode
 Flow chart diperkenalkan oleh Frank Gilberth tahun 1921
 Flow chart digunakan untuk menggambarkan (proses
bisnis) aliran input, proses, dan output dari sebuah
sistem
 Pseudocode merupakan struktur untuk mendeskripsikan
algoritma
 It allows the designer to focus on the logic of the
algorithm without being distracted by details of language
syntax
 Pseudocode merupakan logika lagoritma yang dituliskan
tanpa memperhatikan sin
Simbol dalam flow chart
Terminator
(start/End) Menggambarkan kondisi mulai atau berhenti

Manual Input Menggambarkan input yang dilakukan secara manual

Process Menggambarkan sebuah proses

Data
(Input - Menggambarkan data (input), juga digunakan untuk
Output) menggambarkan output

Decission Menggambarkan percabangan untuk menentukan kondisi

Garis penghubung
Simbol dalam Flow chart

Predefined Or
Process Multidocuments

Direct
Document Internal Access
storage Storage
Contoh 1 Mulai
Algoritma Menghitung Luas Persegi
Panjang

Tahap 1: Mulai Input:


Tahap 2: Input Panjang, Lebar Panjang, Lebar
Tahap 4: Hitung Luas = Panjang * Lebar
Tahap 4: Cetak Luas
Tahap 5: Selesai
Luas = Panjang * Lebar

Pseudocode
Input:
Panjang, Lebar : real
Output: Cetak Luas

Luas : Real

read (Panjang)
Read (Lebar) Selesai
Luas = Panjang * Lebar
write(Luas)
Contoh 2
Algoritma Menghitung nilai akar kuadrat dari
persamaan Mulai

Input
a,b,c
Tahap 1: Mulai
Tahap 2: Input nilai a, b, c
Tahap 3: Menghitung D
D = sqrt (b * b – 4 * a * c) D = sqrt (b*b – 4* a * c)
Tahap 4: x1 = (-b + D) / (2 * a)
Tahap 5: x2 = (-b - D) / (2 * a)
Tahap 6: Cetak x1, x2
Tahap 7: Selesai X1 = (-b + D) / (2 * a)

Pseudocode
Input:
X2 = (-b - D) / (2 * a)
a,b,c: real
Output:
x1, x2: Real
read (a) Cetak
X1, X2
Read (b)
Read (c)
x1 = (-b + D) / (2 * a) Selesai
x2 = (-b - D) / (2 * a)
Write(X1, X2)
Struktur (IF-Then-Else)

Benar Salah
Apakah
A>B

Cetak A Cetak B
Algoritma

 Studi Kasus 1

Sebuah sistem sederhana digunakan untuk menentukan


status kelulusan mahasiswa yang mengambil mata kuliah
Bahasa Pemrograman. Mahasiswa yang dinyatakan lulus
dari mata kuliah Bahasa Pemrograman adalah mahasiswa
yang memiliki nilai akhir lebih besar dari 60. Sedangkan
mahasiswa yang memiliki nilai akhir kurang dari 60 tidak
lulus. Nilai akhir dihitung dari rata-rata 4 komponen nilai
yaitu Tugas 1, Tugas 2, UTS dan UAS.
Algoritma menentukan kelulusan Mulai
Tahap 1: Mulai
Tahap 2: Input N1, N2, N3, N4
Tahap 3: NA = (N1+N2+N3+N4)/4
Tahap 4: if (NA > 60) then
Cetak “LULUS” Input N1,N2,N3,N4
else
Cetak “TIDAK LULUS”
endif
Tahap 5: Selesai
NA = (N1+N2+N3+N4)/4
Pseudocode
Input:
N1,N2,N3,N4 : real
Output:
NA: real Benar Pakah NA > Salah
60
read(N1,N2,N3,N4) ?
NA = (N1+N2+N3+N4)/4
if NA > 60 then
print “Lulus”
else
print “Tidak Lulus” Cetak
Cetak
endif TIDAK LULUS
LULUS

Selesai
Latihan
 Buatlah Flow chart untuk menentukan sebuah bilangan
N merupakan bilangan ganjil atau bilangan genap
Algoritma:
Tahap 1: Mulai
Tahap 2: Baca N
Tahap 3: x = N mod 2
Tahap 4: if(x == 0) then
cetak “Genap”
else
cetak “Ganjil”
Tahap 5: Selesai
Jawaban Mulai

Input:
N : positive integer Baca N
Output:
String “Genap/Ganjil”

read(N)
x = N mod 2 x = N mod 2
if x =0 then
print (“Genap”)
else
print(“Ganjil”)
endif Benar Salah
Apakah
x=0?

Cetak
Cetak Ganjil
Genap

Selesai
Struktur Nested If
Struktur Nested IF
Algoritma menentukan nilai maksimum dari 3 buah
angka Pseudocode
Tahap 1: Mulai Input
N1,N2,N3 : Real
Tahap 2: Input N1, N2, N3
Output
Tahap 3: if (N1 > N2) then max : real
if (N1 > N3) then
read (N1,N2,N3)
max = N1 if N1 > N2 then
else if N1 > N3 then
max = N1
max = N3
else
else max = N3
if (N2 > N3) then endif
else
max = N2 if N2 > N3 then
else max = N2
else
max = N3
max= N3
endif endif
endif endif
return max
Tahap 4: Return max
Tahap 5: Selesai
Flow chart Mulai
Menentukan nilai maksimum
dari 3 buah angka
Input
N1,N2,N3

Benar Apakah Salah


N1 > N2
?

Benar Apakah Salah Benar Apakah Salah


N1 > N3 N2 > N3
? ?

Max = N1 Max = N3 Max = N2


Max = N3

Return
max

Selesai
Struktur For dan While
Algoritma Menghitung nilai Factorial Mulai

Tahap 1. Mulai
Tahap 2: Baca input nilai N
Tahap 3: [Inisialisasi]
Baca N
Tahap 4: Ulangi Tahap 4 – Tahap 6 sampai i = n
Tahap 5: fact = fact * I
Tahap 6: i = i+1
Tahap 7: Cetak fact
Tahap 8: Selesai i=1
fact = 1

5! = 5 x 4 x 3 x 2 x 1! (perulangan)

Input
Benar Salah
N: nonnegative integer Apakah
Output: i <= N?
fact: nonnegative integer

Read(N)
i = 1 i = i+1
fact = 1 Cetak fact
while i <= N
i = i+1
fact = fact * i
endwhile fact = fact * i
write(fact)

Selesai
Latihan
 Buatlah flowchart untuk menghitung deret fibonacci angka ke n
Tahap 1: Mulai
Tahap 2: Baca n
Fibonacci (0) = 0
Fibonacci (1) = 1
Tahap 3: if (n = 0)
Fibonacci (2) = 1
return 0 Fibonacci (3) = 2
else Fibonacci (4) = 3
x=0 Fibonacci (5) = 5
y=1
Fibonacci (6) = 8
Fibonacci (7) = 13
i=1
Fibonacci (8) = 21
Tahap 4: Apakah i < N-1 ulangi Tahap 4 - 8 Fibonacci (9) = 34
Tahap 5: z = x+y Fibonacci (n) = ?
Tahap 6: x = y
Tahap 7: y = z
Tahap 8: i = i + 1
Tahap 9: return y
Tahap 10: Selesai
Mulai
Flow chart Fibonacci ke n
Baca n

Benar Apakah Salah


n= 0
?

x=0
return 0 y=1
i=1
(perulangan)

Benar Apakah Salah


i < n-1
?

z = x+y
return y
x=y
Y=z
i = i+1

Selesai
Pseudocode
procedure fibonacci
Input
n: positive integer
Output
y: positive integer
read(n)
if n = 0 then return 0
else
x := 0
y := 1
for i := 1 to n-1
z := x+y
x := y
y := z
return y
/* output is the nth Fibonacci number */
Struktur do While
Mulai

Melakukan validasi input


Tahap 1: Mulai
Tahap 2: Baca a,b Baca a,b
Tahap 3: Ulangi tahap 2 sampai a>b
Tahap 4: Cetak “Selamat”
Tahap 5: Selesai
Benar Apakah Salah
a<b
?

Pseudocode
Cetak
Input: a, b: integer
Selamat
Output: string “Selamat”
do{
read (a) Selesai
read (b)
} while (a<b)
write(“Selamat”)
Latihan:
Buatlah flow chart dan pseudocode untuk menghitung nilai
greatest common divisor (gcd)
(Faktor Persekutuan Terbesar)
24 36

12 18
2
2 9
6
2 2
3
3 3
2

23 x 3
22 x 32
gcd (24,36) = 3 x 4 = 12
gcd (17,22) = 1
Mulai
Input:
a, b : positive integer
Baca a,b
Output:
x : positive integer
procedure gcd(a,b: positive integer) x=a
y=b
x := a
y := b
while (y ≠ 0)
Benar Apakah Salah
r := x mod y y≠0
?
x := y
y := r

return x /* gcd (a,b) is x */


r = x mod y
x=y return x
y=r

Selesai
Tugas Individu
1. Buatlah algoritma, flow chart, dan pseudocode untuk studi kasus berikut:
Sebuh toko roti membutuhkan sistem kasir sederhana. Fasilitas sistem yang
dibutuhkan yaitu menghitung jumlah total belanja dan menghitung uang
kembalian. Untuk mengamankan sistem dari kesalahan input uang maka
jumlah uang yang dibayar tidak boleh kurang dari jumlah total belanja. Toko
roti memberikan diskon 5% untuk pembelian lebih besar dari Rp 100.000,-.
2. Buatlah algoritma, flow chart, dan pseudocode untuk menghitung faktor
dari suatu nilai
Contoh :
Input 12
Output:
Faktor dari 12 adalah 1,2,3,4,6 dan 12
Input 15
Output:
Faktor dari 15 adalah 1,3,5,15
Tugas Individu
 Jawaban diketik rapi dan dicetak
 Pseudocode diketik dengan font Courier New 10pt
 Ketikkan Nama, NIM, Kelas sebagai Header, font Times
New Roman 10pt
 Selain Pseudocode & Header diketik dengan font Times
New Roman 11pt
 Setiap halaman wajib ada penomoran halaman
 Tugas dikumpulkan pada praktikum minggu berikutnya
 Jika terdapat jawaban yang sama lebih dari satu
mahasiswa maka akan diberikan nilai 0
 Tidak mengumpulkan tugas diberikan nilai 0, kecuali ybs
sakit dengan surat ijin

Anda mungkin juga menyukai