SlideShare a Scribd company logo
Flowchart & Pseudocode
Teny Handhayani
PRAKTIKUM 1
Materi:
----------------------------------------------------------------
 Berfikir algoritmis
 Flowchart
 Pseudocode
 Latihan
Berfikir algoritmis
Program
harus ditulis
dalam suatu
bahasa yang
dimengerti
oleh
komputer
Belajar
programming
??  belajar
untuk
menyelesaikan
suatu masalah
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
bahasa pemrograman)
Diterjemahkan dalam
bahasa mesin (digit
biner)
penerjemah
Interpreter : menerjemahkan
baris per baris instruksi. Contoh
bahasa Basic.
Compiler : menerjemahkan
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
Process
Decission
Data
(Input -
Output)
Terminator
(start/End)
Manual Input
Menggambarkan kondisi mulai atau berhenti
Menggambarkan input yang dilakukan secara manual
Menggambarkan sebuah proses
Menggambarkan data (input), juga digunakan untuk
menggambarkan output
Simbol dalam flow chart
Menggambarkan percabangan untuk menentukan kondisi
Garis penghubung
Simbol dalam Flow chart
Predefined
Process
Internal
storage
Document
Multidocuments
Or
Direct
Access
Storage
Mulai
Selesai
Input:
Panjang, Lebar
Luas = Panjang * Lebar
Cetak Luas
Contoh 1
Algoritma Menghitung Luas Persegi
Panjang
Tahap 1: Mulai
Tahap 2: Input Panjang, Lebar
Tahap 4: Hitung Luas = Panjang * Lebar
Tahap 4: Cetak Luas
Tahap 5: Selesai
Pseudocode
Input:
Panjang, Lebar : real
Output:
Luas : Real
read (Panjang)
Read (Lebar)
Luas = Panjang * Lebar
write(Luas)
Mulai
Selesai
Input
a,b,c
D = sqrt (b*b – 4* a * c)
X1 = (-b + D) / (2 * a)
X2 = (-b - D) / (2 * a)
Cetak
X1, X2
Contoh 2
Algoritma Menghitung nilai akar kuadrat dari
persamaan
Tahap 1: Mulai
Tahap 2: Input nilai a, b, c
Tahap 3: Menghitung D
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
Pseudocode
Input:
a,b,c: real
Output:
x1, x2: Real
read (a)
Read (b)
Read (c)
x1 = (-b + D) / (2 * a)
x2 = (-b - D) / (2 * a)
Write(X1, X2)
Struktur (IF-Then-Else)
Apakah
A > B
Cetak A Cetak B
Benar Salah
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.
Mulai
Input N1,N2,N3,N4
NA = (N1+N2+N3+N4)/4
Pakah NA >
60
?
Cetak
LULUS
Cetak
TIDAK LULUS
Selesai
Algoritma menentukan kelulusan
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”
else
Cetak “TIDAK LULUS”
endif
Tahap 5: Selesai
Benar Salah
Pseudocode
Input:
N1,N2,N3,N4 : real
Output:
NA: real
read(N1,N2,N3,N4)
NA = (N1+N2+N3+N4)/4
if NA > 60 then
print “Lulus”
else
print “Tidak Lulus”
endif
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
Selesai
Baca N
x = N mod 2
Apakah
x = 0 ?
Cetak
Genap
Cetak Ganjil
Benar Salah
Input:
N : positive integer
Output:
String “Genap/Ganjil”
read(N)
x = N mod 2
if x =0 then
print (“Genap”)
else
print(“Ganjil”)
endif
Struktur Nested If
Struktur Nested IF
Algoritma menentukan nilai maksimum dari 3 buah
angka
Tahap 1: Mulai
Tahap 2: Input N1, N2, N3
Tahap 3: if (N1 > N2) then
if (N1 > N3) then
max = N1
else
max = N3
else
if (N2 > N3) then
max = N2
else
max = N3
endif
endif
Tahap 4: Return max
Tahap 5: Selesai
Pseudocode
Input
N1,N2,N3 : Real
Output
max : real
read (N1,N2,N3)
if N1 > N2 then
if N1 > N3 then
max = N1
else
max = N3
endif
else
if N2 > N3 then
max = N2
else
max= N3
endif
endif
return max
Mulai
Selesai
Input
N1,N2,N3
Apakah
N1 > N2
?
Apakah
N1 > N3
?
Apakah
N2 > N3
?
Return
max
Max = N1 Max = N3 Max = N2
Max = N3
Benar Salah
Benar Benar
Salah Salah
Flow chart
Menentukan nilai maksimum
dari 3 buah angka
Struktur For dan While
Mulai
Selesai
Baca N
i = 1
fact = 1
Apakah
i <= N?
i = i+1
fact = fact * i
Cetak fact
Benar Salah
Algoritma Menghitung nilai Factorial
Tahap 1. Mulai
Tahap 2: Baca input nilai N
Tahap 3: [Inisialisasi]
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
5! = 5 x 4 x 3 x 2 x 1! (perulangan)
Input
N: nonnegative integer
Output:
fact: nonnegative integer
Read(N)
i = 1
fact = 1
while i <= N
i = i+1
fact = fact * i
endwhile
write(fact)
Latihan
 Buatlah flowchart untuk menghitung deret fibonacci angka ke n
Tahap 1: Mulai
Tahap 2: Baca n
Tahap 3: if (n = 0)
return 0
else
x = 0
y = 1
i = 1
Tahap 4: Apakah i < N-1 ulangi Tahap 4 - 8
Tahap 5: z = x+y
Tahap 6: x = y
Tahap 7: y = z
Tahap 8: i = i + 1
Tahap 9: return y
Tahap 10: Selesai
Fibonacci (0) = 0
Fibonacci (1) = 1
Fibonacci (2) = 1
Fibonacci (3) = 2
Fibonacci (4) = 3
Fibonacci (5) = 5
Fibonacci (6) = 8
Fibonacci (7) = 13
Fibonacci (8) = 21
Fibonacci (9) = 34
Fibonacci (n) = ?
Mulai
Selesai
Baca n
x = 0
y = 1
i = 1
Apakah
n= 0
?
return 0
Apakah
i < n-1
?
z = x+y
x = y
Y = z
i = i+1
Flow chart Fibonacci ke n
return y
Benar Salah
Benar Salah
(perulangan)
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
Melakukan validasi input
Tahap 1: Mulai
Tahap 2: Baca a,b
Tahap 3: Ulangi tahap 2 sampai a>b
Tahap 4: Cetak “Selamat”
Tahap 5: Selesai
Mulai
Selesai
Baca a,b
Apakah
a < b
?
Cetak
Selamat
Benar Salah
Pseudocode
Input: a, b: integer
Output: string “Selamat”
do{
read (a)
read (b)
} while (a<b)
write(“Selamat”)
Latihan:
Buatlah flow chart dan pseudocode untuk menghitung nilai
greatest common divisor (gcd)
(Faktor Persekutuan Terbesar)
24
12
2
3
2
2
6
23 x 3
36
3
2
2
18
9
3
22 x 32
gcd (24,36) = 3 x 4 = 12
gcd (17,22) = 1
Input:
a, b : positive integer
Output:
x : positive integer
procedure gcd(a,b: positive integer)
x := a
y := b
while (y ≠ 0)
r := x mod y
x := y
y := r
return x /* gcd (a,b) is x */
Mulai
Selesai
Baca a,b
x = a
y = b
Apakah
y ≠ 0
?
r = x mod y
x = y
y = r
return x
Benar Salah
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
Flowchart.pdf
Flowchart.pdf

More Related Content

PPTX
Materi-Strategi-Algoritmik-Dan-Pemrograman-Kelas-XI.pptx
DOCX
LKPD - PBL-Logika dan Algoritma komputer.docx
PPTX
String handling
PDF
Berpikir komputasional ppt @ramli jm
PPTX
dasar-dasar pemrograman
DOC
RPP TIK KELAS IX SEMESTER 1
PPTX
literasi digital ppt.pptx
PDF
Materi 2 : Perangkat lunak (software)
Materi-Strategi-Algoritmik-Dan-Pemrograman-Kelas-XI.pptx
LKPD - PBL-Logika dan Algoritma komputer.docx
String handling
Berpikir komputasional ppt @ramli jm
dasar-dasar pemrograman
RPP TIK KELAS IX SEMESTER 1
literasi digital ppt.pptx
Materi 2 : Perangkat lunak (software)

What's hot (20)

DOCX
MODUL AJAR INFORMATIKA (Teknologi Informasi dan Komunikasi).docx
PDF
Bahasa Pemrograman
PDF
Alur Logika Pemrograman
PDF
MODUL AJAR INFORMATIKA 3 - SISTEM KOMPUTER.pdf
PPT
1. pengenalan python
PPTX
Sistem Komputer
DOCX
Faktor yang mempengaruhi belajar
PDF
Makalah prosedur dan fungsi
PPT
Presentasi modul01 tik 7
PDF
61. KI-KD Informatika SMA.pdf
PDF
Analisis Algoritma - Pengantar Kompleksitas Algoritma
PPTX
Materi pemrograman dasar 5 percabangan
PDF
Modul Informatika Berfikir Komputasional
PPTX
Pengenalan Jurusan RPL
PPTX
Python basics
PDF
Data Management (Data Mining Klasifikasi)
PDF
Function arguments In Python
DOCX
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
PDF
BAB 1_Pertemuan 2.pdf
DOCX
Lembar kerja-siswa-tik-kelas-x-1
MODUL AJAR INFORMATIKA (Teknologi Informasi dan Komunikasi).docx
Bahasa Pemrograman
Alur Logika Pemrograman
MODUL AJAR INFORMATIKA 3 - SISTEM KOMPUTER.pdf
1. pengenalan python
Sistem Komputer
Faktor yang mempengaruhi belajar
Makalah prosedur dan fungsi
Presentasi modul01 tik 7
61. KI-KD Informatika SMA.pdf
Analisis Algoritma - Pengantar Kompleksitas Algoritma
Materi pemrograman dasar 5 percabangan
Modul Informatika Berfikir Komputasional
Pengenalan Jurusan RPL
Python basics
Data Management (Data Mining Klasifikasi)
Function arguments In Python
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
BAB 1_Pertemuan 2.pdf
Lembar kerja-siswa-tik-kelas-x-1
Ad

Similar to Flowchart.pdf (20)

PPTX
Bab 3 notasi algoritma
PPTX
02 notasi algoritma
PPTX
02 notasi algoritma
PPTX
02 notasi algoritma
PDF
Algoritma dan Flowchart pada mahasiswa untuk semester 1
PPTX
Pemrograman lanjut menggunakan bahasa pemrograman c++
PDF
Pertemuan 4 Flowchart
PPTX
Pertemuan 1 - Pengantar Algoritma
PDF
D21201120_Neng Sari Ratna Widya.N_Tugas Algoritma.pdf
PDF
Pertemuan 4 Flowchart (Diagram Alur)
PPT
Algoritma dan flowchart SMP kelas 7 TIK
PPTX
Algoritma Pemrograman
PDF
Algoritma dan flowchart
PPTX
Pk 1 kimia algo and flowchart
PPTX
Pk 1 kimia algo and flowchart
PPT
Algoritma dan Flowchart.ppt
PPT
Berbagai Macam Ilmu Algoritma dan Flowchart.ppt
PPT
Algoritma dan Flowchart.ppt
PPT
Algoritma dan Flowchart Dasar Pemrograman.ppt
PPT
Algoritma dan Flowchart.ppt Algoritma dan Flowchart.ppt
Bab 3 notasi algoritma
02 notasi algoritma
02 notasi algoritma
02 notasi algoritma
Algoritma dan Flowchart pada mahasiswa untuk semester 1
Pemrograman lanjut menggunakan bahasa pemrograman c++
Pertemuan 4 Flowchart
Pertemuan 1 - Pengantar Algoritma
D21201120_Neng Sari Ratna Widya.N_Tugas Algoritma.pdf
Pertemuan 4 Flowchart (Diagram Alur)
Algoritma dan flowchart SMP kelas 7 TIK
Algoritma Pemrograman
Algoritma dan flowchart
Pk 1 kimia algo and flowchart
Pk 1 kimia algo and flowchart
Algoritma dan Flowchart.ppt
Berbagai Macam Ilmu Algoritma dan Flowchart.ppt
Algoritma dan Flowchart.ppt
Algoritma dan Flowchart Dasar Pemrograman.ppt
Algoritma dan Flowchart.ppt Algoritma dan Flowchart.ppt
Ad

Recently uploaded (17)

PDF
811848831-PPT-TES-DESKRIPShhhhhhhhhI.pdf
PPT
Modul-Projek-JAJANAN-PASAR-YANG-MENGHASILKAN-RUPIAH-Fase-C.ppt
DOCX
proposal nurul 2.docx Fix dokumen yang penting
PPTX
Pelatihan_Model_Pembinaan_Gen_Z_Dasar_Menengah.pptx
DOCX
PROPOSAL PENGARUH PEMBERIAN MIKRONUTRIEN TERHADAP PENINGKATAN INDEKS MASA TUB...
PDF
GERUDUK MJKN aplikasi mobile JKN persentation
PPTX
Flowchart Pengaplikasian Sistem Arduino.pptx
PPTX
PERENCANAAN MEP PERUM.MULTI CIPTA PERMAI_Type 36.pptx
PDF
c3oYi7NNpW3omVenymVtXLtqfSi2hzugUlVYbGlQ.pdf
PDF
6754aa176b39b (1).pdf data analisis acara
PPTX
EFEKTIVITAS EKSTRAK DAUN INDIGOFERA.pptx
PDF
LK - SIMULASI SIKLUS INKUIRI KOLABORATIF.pdf
PPTX
ANALISIS DATA FUNGSI INFORMATIKA SMP.pptx
PPTX
Introduction FastAPI for Professional and Student
PPTX
PRESNTASI pembangunan perumahan komersil dua lantai
PPTX
Materi Kesiapan Tahapan Pemungutan dan Penghitungan Suara Pemilihan Ulang Tah...
PPTX
Gagal Ginjal Akut GHINA SELVIRA .pptx
811848831-PPT-TES-DESKRIPShhhhhhhhhI.pdf
Modul-Projek-JAJANAN-PASAR-YANG-MENGHASILKAN-RUPIAH-Fase-C.ppt
proposal nurul 2.docx Fix dokumen yang penting
Pelatihan_Model_Pembinaan_Gen_Z_Dasar_Menengah.pptx
PROPOSAL PENGARUH PEMBERIAN MIKRONUTRIEN TERHADAP PENINGKATAN INDEKS MASA TUB...
GERUDUK MJKN aplikasi mobile JKN persentation
Flowchart Pengaplikasian Sistem Arduino.pptx
PERENCANAAN MEP PERUM.MULTI CIPTA PERMAI_Type 36.pptx
c3oYi7NNpW3omVenymVtXLtqfSi2hzugUlVYbGlQ.pdf
6754aa176b39b (1).pdf data analisis acara
EFEKTIVITAS EKSTRAK DAUN INDIGOFERA.pptx
LK - SIMULASI SIKLUS INKUIRI KOLABORATIF.pdf
ANALISIS DATA FUNGSI INFORMATIKA SMP.pptx
Introduction FastAPI for Professional and Student
PRESNTASI pembangunan perumahan komersil dua lantai
Materi Kesiapan Tahapan Pemungutan dan Penghitungan Suara Pemilihan Ulang Tah...
Gagal Ginjal Akut GHINA SELVIRA .pptx

Flowchart.pdf

  • 3. Berfikir algoritmis Program harus ditulis dalam suatu bahasa yang dimengerti oleh komputer Belajar programming ??  belajar untuk menyelesaikan suatu masalah
  • 4. 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.
  • 5. Program (ditulis dlm bahasa pemrograman) Diterjemahkan dalam bahasa mesin (digit biner) penerjemah Interpreter : menerjemahkan baris per baris instruksi. Contoh bahasa Basic. Compiler : menerjemahkan setelah seluruh instruksi ditulis. Contoh bahasa Pascal, bahasa C/C++, dll.
  • 6. 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.
  • 7. 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
  • 8. Process Decission Data (Input - Output) Terminator (start/End) Manual Input Menggambarkan kondisi mulai atau berhenti Menggambarkan input yang dilakukan secara manual Menggambarkan sebuah proses Menggambarkan data (input), juga digunakan untuk menggambarkan output Simbol dalam flow chart Menggambarkan percabangan untuk menentukan kondisi Garis penghubung
  • 9. Simbol dalam Flow chart Predefined Process Internal storage Document Multidocuments Or Direct Access Storage
  • 10. Mulai Selesai Input: Panjang, Lebar Luas = Panjang * Lebar Cetak Luas Contoh 1 Algoritma Menghitung Luas Persegi Panjang Tahap 1: Mulai Tahap 2: Input Panjang, Lebar Tahap 4: Hitung Luas = Panjang * Lebar Tahap 4: Cetak Luas Tahap 5: Selesai Pseudocode Input: Panjang, Lebar : real Output: Luas : Real read (Panjang) Read (Lebar) Luas = Panjang * Lebar write(Luas)
  • 11. Mulai Selesai Input a,b,c D = sqrt (b*b – 4* a * c) X1 = (-b + D) / (2 * a) X2 = (-b - D) / (2 * a) Cetak X1, X2 Contoh 2 Algoritma Menghitung nilai akar kuadrat dari persamaan Tahap 1: Mulai Tahap 2: Input nilai a, b, c Tahap 3: Menghitung D 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 Pseudocode Input: a,b,c: real Output: x1, x2: Real read (a) Read (b) Read (c) x1 = (-b + D) / (2 * a) x2 = (-b - D) / (2 * a) Write(X1, X2)
  • 12. Struktur (IF-Then-Else) Apakah A > B Cetak A Cetak B Benar Salah
  • 13. 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.
  • 14. Mulai Input N1,N2,N3,N4 NA = (N1+N2+N3+N4)/4 Pakah NA > 60 ? Cetak LULUS Cetak TIDAK LULUS Selesai Algoritma menentukan kelulusan 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” else Cetak “TIDAK LULUS” endif Tahap 5: Selesai Benar Salah Pseudocode Input: N1,N2,N3,N4 : real Output: NA: real read(N1,N2,N3,N4) NA = (N1+N2+N3+N4)/4 if NA > 60 then print “Lulus” else print “Tidak Lulus” endif
  • 15. 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
  • 16. Jawaban Mulai Selesai Baca N x = N mod 2 Apakah x = 0 ? Cetak Genap Cetak Ganjil Benar Salah Input: N : positive integer Output: String “Genap/Ganjil” read(N) x = N mod 2 if x =0 then print (“Genap”) else print(“Ganjil”) endif
  • 18. Struktur Nested IF Algoritma menentukan nilai maksimum dari 3 buah angka Tahap 1: Mulai Tahap 2: Input N1, N2, N3 Tahap 3: if (N1 > N2) then if (N1 > N3) then max = N1 else max = N3 else if (N2 > N3) then max = N2 else max = N3 endif endif Tahap 4: Return max Tahap 5: Selesai Pseudocode Input N1,N2,N3 : Real Output max : real read (N1,N2,N3) if N1 > N2 then if N1 > N3 then max = N1 else max = N3 endif else if N2 > N3 then max = N2 else max= N3 endif endif return max
  • 19. Mulai Selesai Input N1,N2,N3 Apakah N1 > N2 ? Apakah N1 > N3 ? Apakah N2 > N3 ? Return max Max = N1 Max = N3 Max = N2 Max = N3 Benar Salah Benar Benar Salah Salah Flow chart Menentukan nilai maksimum dari 3 buah angka
  • 21. Mulai Selesai Baca N i = 1 fact = 1 Apakah i <= N? i = i+1 fact = fact * i Cetak fact Benar Salah Algoritma Menghitung nilai Factorial Tahap 1. Mulai Tahap 2: Baca input nilai N Tahap 3: [Inisialisasi] 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 5! = 5 x 4 x 3 x 2 x 1! (perulangan) Input N: nonnegative integer Output: fact: nonnegative integer Read(N) i = 1 fact = 1 while i <= N i = i+1 fact = fact * i endwhile write(fact)
  • 22. Latihan  Buatlah flowchart untuk menghitung deret fibonacci angka ke n Tahap 1: Mulai Tahap 2: Baca n Tahap 3: if (n = 0) return 0 else x = 0 y = 1 i = 1 Tahap 4: Apakah i < N-1 ulangi Tahap 4 - 8 Tahap 5: z = x+y Tahap 6: x = y Tahap 7: y = z Tahap 8: i = i + 1 Tahap 9: return y Tahap 10: Selesai Fibonacci (0) = 0 Fibonacci (1) = 1 Fibonacci (2) = 1 Fibonacci (3) = 2 Fibonacci (4) = 3 Fibonacci (5) = 5 Fibonacci (6) = 8 Fibonacci (7) = 13 Fibonacci (8) = 21 Fibonacci (9) = 34 Fibonacci (n) = ?
  • 23. Mulai Selesai Baca n x = 0 y = 1 i = 1 Apakah n= 0 ? return 0 Apakah i < n-1 ? z = x+y x = y Y = z i = i+1 Flow chart Fibonacci ke n return y Benar Salah Benar Salah (perulangan)
  • 24. 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 */
  • 26. Melakukan validasi input Tahap 1: Mulai Tahap 2: Baca a,b Tahap 3: Ulangi tahap 2 sampai a>b Tahap 4: Cetak “Selamat” Tahap 5: Selesai Mulai Selesai Baca a,b Apakah a < b ? Cetak Selamat Benar Salah Pseudocode Input: a, b: integer Output: string “Selamat” do{ read (a) read (b) } while (a<b) write(“Selamat”)
  • 27. Latihan: Buatlah flow chart dan pseudocode untuk menghitung nilai greatest common divisor (gcd) (Faktor Persekutuan Terbesar) 24 12 2 3 2 2 6 23 x 3 36 3 2 2 18 9 3 22 x 32 gcd (24,36) = 3 x 4 = 12 gcd (17,22) = 1
  • 28. Input: a, b : positive integer Output: x : positive integer procedure gcd(a,b: positive integer) x := a y := b while (y ≠ 0) r := x mod y x := y y := r return x /* gcd (a,b) is x */ Mulai Selesai Baca a,b x = a y = b Apakah y ≠ 0 ? r = x mod y x = y y = r return x Benar Salah
  • 29. 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
  • 30. 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