0% menganggap dokumen ini bermanfaat (0 suara)
232 tayangan35 halaman

Week 02 Representasi Dan Flowchart

Dokumen tersebut membahas tentang representasi algoritma dalam tiga bentuk yaitu deskriptif, pseudocode, dan flowchart. Dibahas pula simbol-simbol yang digunakan dalam flowchart seperti proses, keputusan, aliran, dan hubungan antara komponen. Representasi algoritma diperlukan agar logika penyelesaian masalah dapat dipahami oleh manusia maupun komputer.

Diunggah oleh

itif1ak23
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
232 tayangan35 halaman

Week 02 Representasi Dan Flowchart

Dokumen tersebut membahas tentang representasi algoritma dalam tiga bentuk yaitu deskriptif, pseudocode, dan flowchart. Dibahas pula simbol-simbol yang digunakan dalam flowchart seperti proses, keputusan, aliran, dan hubungan antara komponen. Representasi algoritma diperlukan agar logika penyelesaian masalah dapat dipahami oleh manusia maupun komputer.

Diunggah oleh

itif1ak23
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 35

SOFIA UMAROH

Representasi
Algoritma:
Flowchart
ISA 105 Algoritma dan Pemrograman
Sofia Umaroh, S.Pd., M.T
SOFIA UMAROH

1 Representasi Algoritma
Agenda
Hari Ini 2 Pseudocode dan Flowchart

3 Contoh Pseudocode & Flowchart

4 Contoh Implementasi

5 Struktur Algoritma
SOFIA UMAROH

Kalian sudah siap?

Representasi
Algoritma
SOFIA UMAROH

Mengapa Perlu Komputer tidak mengerti

Representasi Algoritma? bahasa manusia kecuali


bahasa Mesin

Membutuhkan Complie
representasi algoritma
yang dipahami oleh
Solusi dalam semua programmer
Kode Program Problem solved!
bahasa manusia
(algoritma dan
logika)
Membuat
kode

Output program
dapat diakses
Programmer
user
SOFIA UMAROH

Kita butuh Notasi


Algoritma

Bagaimana menulis Algoritma


yang dapat dimengerti oleh
para programmer (sebagai
bahasa universal)?
SOFIA UMAROH

Representasi Terdapat tiga cara yang umum digunakan dalam


menuliskan algoritma yaitu:

Algoritma
1 3
Tunjukkan logika bagaimana masalah
diselesaikan - bukan bagaimana
implementasinya. Deskriptif Flowchart
Tidak ada aturan baku dalam menuliskan
algoritma, yang penting mudah dibaca dan
menggunakan bahasa yang mudah dipahami.
Meskipun demikian untuk menghindari 2
kekeliruan, ketaatan terhadap notasi perlu
diperhatikan.
Pseudocode
SOFIA UMAROH

Bentuk pertama

Deskriptif &
Pseudocode
SOFIA UMAROH

1. Kalimat Terdapat tiga bagian utama yaitu:

Deskriptif 1
Judul (header): nama algoritma
dan penjelasan (spesifikasi)
tentang algoritma tersebut
Menuliskan instruksi-instuksi yang harus
Deklarasi (kamus): mendefinisikan
dilaksanakan dalam bentuk untaian kalimat 2
deskriptif dengan menggunakan bahasa semua nama (input/ output) yang
yang jelas. dipakai di dalam algoritma.
Cocok untuk algoritma yang pendek. Deskripsi: berisi uraian langkah-
3
Untuk masalah algoritma yang panjang, langkah penyelesaian masalah.
notasi ini kurang efektif.
SOFIA UMAROH

1. Kalimat Deskriptif
Algoritma Menghitung Luas Lingkaran menggunakan
Kalimat Deskriptif
Algoritma Luas Lingkaran

Algoritma Luas_Lingkaran (Judul Algoritma)


{Menghitung luas lingkaran untuk ukuran jari-jari tertentu. Algoritma menerima masukan
Judul
jari-jari lingkaran, menghitung luasnya, lalu cetak luasnya ke piranti keluaran}
(Spesifikasi)

Deklarasi kamus:
jari_jari = real {input, tipe data bilangan pecahan}
Deklarasi
luas = real {output, tipe data bilangan pecahan}
PHI = 3.14 {konstanta}

Deskripsi:
1. Masukan nilai jari-jari lingkaran
2. setelah memiliki nilai jari-jari dan phi maka berikutnya hitung luas lingkaran.
Deskripsi
3. luas <- PHI * jari_jari * jari_jari
4. Cetak nilai luas
5. Selesai
SOFIA UMAROH

Bentuk ketiga

Flowchart
SOFIA UMAROH

2. Flowchart
Flowchart secara visual (gambar atau bagan)
yang menyajikan urutan atau langkah-langkah
dari suatu program dan hubungan antar
proses beserta pernyataannya.
Flowchart dapat digunakan untuk mewakili
suatu algoritma
Mengan melihat Flowchart, dapat diketahui
operasi-operasi yang dilakukan dan urutan
operasi-operasi dalam suatu sistem.
SOFIA UMAROH

Simbol Flowchart
Berikut simbol dasar yang biasa digunakan dalam menggambarkan flowchart, yaitu:

Menunjukkan awal atau akhir program, proses, atau


Terminator interupsi program

Menunjukkan suatu langkah proses/ operasi internal/


Process
perhitungan/ pengolahan data

Simbol pernyataan pilihan, berisi suatu kondisi yang


selalu menghasilkan 2 nilai keluaran yaitu benar atau
Decision salah

Inisialisasi / pemberian nilai awal


Preparation

Mempresentasikan pembacaan data (read) /


penulisan (write).
Input/Output
SOFIA UMAROH

Simbol Flowchart
Berikut simbol dasar yang biasa digunakan dalam menggambarkan flowchart, yaitu:

Proses menjalankan sub program / fungsi /


Subprogram prosedur

Menunjukkan beberapa dokumen yang dihasilkan


Arah Flow
dari suatu proses

Penghubung Flow chart pada satu halaman


Konektor

Menunjukkan sebuah dokumen yang dihasilkan


dari suatu proses
Dokumen

Penghubung Flow chart pada halaman yang


Off-page berbeda
Connector
SOFIA UMAROH

Simbol Decision
Simbol pengambilan keputusan hanya memiliki Dalam melakukan pengujian kondisi,
satu buah input dan 2 buah output terdapat beberapa notasi relasional
Dalam mengambil keputusan, kita perlu sebagai berikut:
mengetahui kondisi yang sedang dihadapi.
Hasil pengujian kondisi adalah "yes" atau "no", Notasi Ketarangan
atau "true" atau "false" > Lebih dari
Jika kondisi benar, maka lakukan proses di < Kurang dari
cabang "yes", jika salah maka cabang "no" >= Lebih dari sama dengan
<= Kurang dari sama dengan
<> Tidak sama dengan

no yes
i <= 6?
SOFIA UMAROH

Simbol Decision
Beberapa keputusan membutuhkan lebih dari 1 kondisi Operasi aljabar boolean AND, OR,
Kondisi lebih dari satu membutuhkan operator logika: NOT pada dua variabel:
AND atau OR
X Y X AND Y X OR Y
Misalnya dalam memutuskan suatu bilangan apakah
T T T T
positif genap atau bukan.
Syarat bilangan positif genap: T F F T

Syarat bil positif: bil > 0 F T F T

Syarat bil genap: bil dibagi 2 sisa 0 Start F F F F

Untuk mendapatkan keputusan sebuah bilangan positif


genap, maka kedua syarat harus benar. read (bil)
Maka operator logika yang digunakan adalah AND

no bil > 0 AND yes


bil mod 2 == 0

write(bukan genap
positif)
write(genap positif)

End
SOFIA UMAROH

Aturan Menggambar
Flowchart
Semua simbol terhubung dengan Konektor digunakan untuk
1 5
panah menghubungkan flowchart yang terputus.

Selalu diawali dengan termintor Subproses/fungsi memiliki diagram


2 6
start di awal diagram alur sendiri dan independen.

Simbol Keputusan memiliki dua Semua diagram alur diakhiri dengan


3 7
titik keluar (yes/no) terminal atau loop kontroversial.

Umumnya flowchart akan mengalir


4
dari atas ke bawah.
SOFIA UMAROH

Contoh Flowchart
Flowchart berangkat ke kampus Start

Pseudocode
cek waktu
Algoritma berangkatKuliah (Judul Algoritma)
Judul {Menentukan cara berangkat ke kampus
berdasarkan waktu}
belum no
naik subway
jam 7?
Deklarasi kamus:
Deklarasi yes
jam {input}
naik bus
Deskripsi:
1. start
2. cek waktu (input)
3. Jika belum jam 7 maka naik bus Sampai kampus
Deskripsi
4. Jika tidak maka naik subway
5. Sampai di kampus
6. selesai End
SOFIA UMAROH

Contoh Flowchart
Flowchart Menghitung Luas Lingkaran berdasarkan Pseudocode
Start

Pseudocode
jari2,luas: real
Algoritma Luas_Lingkaran (Judul Algoritma)
{Menghitung luas lingkaran untuk ukuran jari-jari
Judul tertentu. Algoritma menerima masukan jari-jari
lingkaran, menghitung luasnya, lalu cetak luasnya ke
piranti keluaran}
read(jari2)

Deklarasi kamus:
jari2 : real {var input, tipe data bil pecahan}
Deklarasi luas <- PHI * jari2 * jari2
luas : real {var output, tipe data bil pecahan}
PHI : 3.14 {konstanta}

Deskripsi:
1. start
write(luas)
2. read(jari2)
Deskripsi 3. luas <- PHI * jari2 * jari2
4. write(luas)
End
5. end
SOFIA UMAROH

Contoh Flowchart Start

Flowchart mencari nilai terbesar berdasarkan Pseudocode


a,b,c,maks: integer

Pseudocode
read(a,b,c)
Algoritma Mencari nilai terbesar dari 3 buah
Judul bulangan, dan mencetak nilai terbesarnya}
no
a>b maks <- b
Deklarasi kamus:
Deklarasi a,b,c : integer {input,bil bulat} yes
maks : integer {output,bil bulat}
maks <- a
Deskripsi:
1. start
2. read(a,b,c) yes
c > maks maks <- c
3. if (a > b) then maks <- a
Deskripsi 4. else maks <- b
5. endif
6. if (c > maks) then maks <- c write(maks)

7. write(maks)
8. end End
SOFIA UMAROH

Coba kita

Latihan
Flowchart
SOFIA UMAROH

Tuliskan output dari flowchart berikut!


Latihan
Start

i=2

no
End i <= 6?

yes i=i+2

print (i + 1)

Kerjakan mandiri!
Feedback diberikan
saat diskusi Tatap Muka
SOFIA UMAROH

Weekly Activity 3

Buatlah flowchart untuk mencetak


"Vokal" jika masukkan adalah huruf
a, i ,u e, atau o.

Dan mencetak "Konsonan" jika


masukkan adalah huruf selainnya!
Kerjakan mandiri!
Feedback diberikan
saat diskusi Tatap Muka
SOFIA UMAROH

Tugas 2 Pemimpin sebuah perusahaan otomotif perlu menentukan gaji total


yang akan diberikan kepada para pegawainya yang bekerja sebagai
sales.

Kerjakan mandiri! Jika di bulan ini pegawai mencapai penjualan lebih dari dua unit mobil,
Feedback diberikan maka akan mendapatkan bonus sebesar Rp. 1.500.000,-. Kemudian
saat diskusi Tatap Muka pegawai yang menjual mobil tepat dua unit maka akan mendapatkan
bonus Rp. 500.000,-. Namun jika pegawai yang dalam penjualan bulan
ini kurang dari dua unit, maka pegawai tersebut mendapat potongan
5% dari gaji pokok.

Gaji pokok pegawai dalam satu minggu adalah Rp. 4.500.000. Adapun
Gaji bersih adalah gaji pokok ditambah bonus dan dikurangi potongan
(jika ada).

Buatlah pseudocode dan flowchart untuk membantu pimpinan dalam


menentukan gaji total bagi pegawainya, dan mencetaknya ke layar!
SOFIA UMAROH

Tugas 4
Tuliskan output dari flowchart berikut!

Start
Kerjakan mandiri!
Feedback diberikan
saat diskusi Tatap Muka i=2

no
i <= 6?

yes
print (i + 1)
i=i+2

End
SOFIA UMAROH

3. Pseudocode Perbedaan notasi


deskripsi dan pseudocode menyerupai
bahasa
pemrograman

Pseudocode adalah cara penulisan Deskriptif Pseudocode


algoritma yang menyerupai bahasa read(panjang)
Masukan nilai panjang
input(panjang)
pemrograman tingkat tinggi
Hitung luas dengan rumus
luas <- panjang*lebar
panjang * lebar

Berisi instruksi langsung dan notasi cetak nilai luas ke layar


write(luas) output(luas)
print(luas)
matematika ringkas dalam bahasa Inggirs Jika sudah selesai, cetak if kondisi_selesai == true
luas then write(luas)

Disarankan menggunakan keyword Nilai B ditambah 5 B <- B + 5

Jika nilai A lebih kecil


umum seperti: if, then, else, while, do, dari 5 maka nilai B dibagi 3 If A<5 then B<= B/3

repeat, for, dan lainnya Jika nilai A lebih besar dari


nilai B maka tampilkan A, If A>B then print(A) else
namun jika A lebih kecil dari print(B)
Masih bahasa B maka tampilkan nilai B
manusia
SOFIA UMAROH

2. Pseudocode
Pseudocode Menghitung Luas Lingkaran berdasarkan algoritma deskripsi

Algoritma Deskriptif Luas Lingkaran Pseudocode


Algoritma Luas_Lingkaran (Judul Algoritma) Algoritma Luas_Lingkaran (Judul Algoritma)
{Menghitung luas lingkaran untuk ukuran jari-jari {Menghitung luas lingkaran untuk ukuran jari-jari
Judul tertentu. Algoritma menerima masukan jari-jari tertentu. Algoritma menerima masukan jari-jari lingkaran,
lingkaran, menghitung luasnya, lalu cetak luasnya ke menghitung luasnya, lalu cetak luasnya ke piranti
piranti keluaran} (Spesifikasi) keluaran}

Deklarasi kamus: Deklarasi kamus:


Deklarasi jari_jari = real {input, tipe data bilangan pecahan} jari_jari : real {variabel input, tipe data bil pecahan}
luas = real {output, tipe data bilangan pecahan} luas : real {variabel output, tipe data bil pecahan}
PHI = 3.14 {konstanta} PHI : 3.14 {konstanta}

Deskripsi:
Masukan nilai jari-jari lingkaran Deskripsi:
setelah memiliki nilai jari-jari dan phi maka 1. start
Deskripsi berikutnya hitung luas lingkaran. 2. read(jari_jari)
luas <- PHI * jari_jari * jari_jari 3. luas <- PHI * jari_jari * jari_jari
Cetak nilai luas 4. write(luas)
Selesai 5. end
SOFIA UMAROH

2. Pseudocode dan Program


Program Menghitung Luas Lingkaran berdasarkan Pseudocode

Pseudocode Program bahasa Pascal Program bahasa C


Algoritma Luas_Lingkaran (Judul Algoritma) { Judul program } A/*
{Menghitung luas lingkaran untuk ukuran jari-jari Program luas_lingkaran; Program menghitung luas lingkaran
Judul tertentu. Algoritma menerima masukan jari-jari */
lingkaran, menghitung luasnya, lalu cetak luasnya ke { Deklarasi }
piranti keluaran} var int main(){
jari,luas: real; /* Deklarasi */
Deklarasi kamus: const
float jari_jari, luas;
jari_jari : real {var input, tipe data bil pecahan} phi = 3.14;
Deklarasi const phi = 3.14;
luas : real {var output, tipe data bil pecahan}
PHI : 3.14 {konstanta} { Deskripsi }
/* Deskripsi */
begin
Deskripsi: write('Masukkan jari-jari: '); printf("Masukkan jari-jari: ");
1. start read(jari); scanf("%f",&jari_jari);
2. read(jari_jari) luas := phi*jari*jari; luas = phi*jari_jari*jari_jari;
3. luas <- PHI * jari_jari * jari_jari writeln ('Luas = ',luas:2:2) printf("Luas = %.2f",luas)
Deskripsi
4. write(luas) end. return 0;
5. end } /* end */
Output: Output:

Masukkan jari-jari: 8 Masukkan jari-jari: 8


Luas = 200.96 Luas = 200.96
SOFIA UMAROH

Coba kita

Latihan
Pseudocode
SOFIA UMAROH

PERHATIKAN!
Bagi ke dalam JUDUL,
DEKLARASI dan DESKRIPSI Latihan

Buatlah pseudocode dan


program untuk mencari bilangan
terbesar dari 3 buah bilangan
yang diinputkan oleh user!
SOFIA UMAROH

2. Pseudocode
Algoritma mencari nilai terbesar dari 3 buah bilangan menggunakan Pseudocode.
Ingat bagaimana komputer bekerja, INPUT - PROSES - OUTPUT
Ingat Langkahnya!

1 Identifikasi masalah dan kebutuhan (Deklarasi) 3 Tuliskan Pseudocodenya!


Untuk mendapatkan nilai tertinggi dari 3 buah bilangan, maka pertama kita Deklarasi kamus:
harus siapkan ketiga bilangan tersebut sebagai input. Kemudian tentukan a,b,c : integer {input,bil bulat}
output yang diharapkan, yaitu bilangan terbesar. maks : integer {output,bil bulat}

2 Desain solusi logis / problem solving (Critical Thinking)


Dapatkan nilai ketiga bilangan a, b, dan c dari user Deskripsi:
Pertama bandingkan dua buah bilangan a dan b, jika a > b, maka nilai read(a,b,c)
maks adalah a,
Namun jika tidak, maka nilai maks adalah b if (a > b) then maks <- a
Setelah mengetahun nilai maks, yaitu bil terbesar antara a dan b, else maks <- b
endif
selanjutnya bandingkan maks dengan bilangan c.
if (c > maks) then maks <- c
jika c > maks, maka maks adalah c, namun jika tidak, maka maks adalah
nilai terbesar write(maks)
cetak maks
SOFIA UMAROH

2. Pseudocode
Algoritma mencari nilai terbesar dari 3 buah bilangan menggunakan Pseudocode.
Ingat bagaimana komputer bekerja, INPUT - PROSES - OUTPUT
Ingat Langkahnya! Output:

Masukkan a,b,c: 3 8 4
4 Terjemahkan! Mulai Coding :) nilai maks: 8

Pseudocode Program bahasa Pascal Program bahasa C


Algoritma Mencari nilai terbesar dari 3 { Judul program } /*
Judul
buah bulangan, dan mencetak nilai Program nilai_terbesar; Program nilai terbesar
terbesarnya} */
int main(){
Deklarasi kamus: { Deklarasi } /* Deklarasi */
Deklarasi a,b,c : integer {input,bil bulat} var int a,b,c,maks;
maks : integer {output,bil bulat} a,b,c,maks: integer;
/* Deskripsi */
Deskripsi: { Deskripsi }
1. start
printf("Masukkan a,b,c: ");
begin
2. read(a,b,c) scanf("%d %d %d",&a, &b, &c);
write('Masukkan a,b,c: ');
3. if (a > b) then maks <- a read(a,b,c); if (a>b) maks = a
Deskripsi 4. else maks <- b if a>b then maks := a else maks = b;
5. endif else maks := b; if (c>maks) maks = c
6. if (c > maks) then maks <- c if c > maks then maks := c; printf("nilai maks: %d",maks);
7. write(maks) write('nilai maks:',maks); return 0;
8. end end. } /* end */
SOFIA UMAROH

Weekly Activity 1

Buatlah pseudocode untuk


mencetak "Vokal" jika masukkan
adalah huruf a, i ,u e, atau o.

Dan mencetak "Konsonan" jika


masukkan adalah huruf selainnya!
Kerjakan mandiri!
Feedback diberikan
saat Tatap Muka
SOFIA UMAROH

Weekly Activity 2 Tuliskan output dari pseudocode berikut!

Program aritmatika

Deklarasi
a,b,c,d,e,f: integer

BEGIN
a <- 1
b <- 3
c <- 5
d <- 2
e <- 4

read(g)
a <- a+3
b <- b+4
c <- c+b-a
Kerjakan mandiri! d <- d+e-c
Feedback diberikan write(a,b,c,d,e);
END
saat diskusi Tatap Muka
SOFIA UMAROH

Universitas AA memiliki kebijakan penilaian berikut:


Tugas 1
Setiap siswa menerima nilai dalam rentang inklusif dari 0 hingga 100.
Setiap nilai kurang dari sama dengan 40 adalah nilai gagal.

Sony adalah seorang profesor di universitas dan suka membulatkannilai


mahasiswa sesuai dengan aturan berikut:
Jika selisih nilai dengan kelipatan 5 berikutnya kurang dari 3, maka nilai
menjadi kelipatan 5 berikutnya.
Jika nilai kurang dari 38, tidak terjadi pembulatan karena kurang dari nilai
40 adalah gagal.

Contoh:
Misal input nilai =84, maka nilai dibulatkan ke 85 karena 85 - 84 = 1 (< 3)
Misal nilai 29 tidak dibulatkan karena gagal (hasilnya kurang dari 40)
grade 57 tidak dibulatkan (karena 60 - 57 = 3 atau tidak kurang dari tiga)
Kerjakan mandiri!
Buatlah pseudocode untuk membatu Sony menentukan nilai akhir keputusan
Feedback diberikan
(berhasil/gagal) mahasiswanya berdasarkan nilai yang diinputkan.
saat diskusi Tatap Muka
SOFIA UMAROH

Sekian Representasi
Algoritma!
TUGAS Mandiri @ Elearning
Due date: 10 Oktober jam 23.50

Jangan lupa kerjakan Tugas


dan belajar mandiri di
elearning ya!

Next:
Tipe Data, Variable,
Opertor, Ekspresi

Anda mungkin juga menyukai