alpro2

26
Pertemuan II : Algoritma, Pseudocode dan Flowchart

Transcript of alpro2

Page 1: alpro2

Pertemuan II : Algoritma, Pseudocode dan Flowchart

Page 2: alpro2

Pertemuan kali ini akan membahas: Algoritma (lanjutan) Pseudocode Flowchart

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 3: alpro2

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis

Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah Urutan logis berarti urutan langkah-

langkah harus benar, dan langkah-langkah itu sendiri juga harus benar

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 4: alpro2

Tanpa disadari kita sering menerapkan algoritma dalam kehidupan sehari-hari Menyapu halaman Mencuci piring Mandi Dan banyak contoh lainnya …

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 5: alpro2

Setiap orang punya pola pikir yang berbeda, karena itu akan menghasilkan algoritma yang berbeda

Algoritma dikatakan benar apabila dapat memecahkan masalah

Perlu dipertimbangkan masalah efisiensi dalam penyusunan algoritma

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 6: alpro2

Pemilihan rute jalan, misalnya rute UKDW ke Toko Buku Togamas Beberapa rute mungkin akan

menghasilkan tujuan yang sama Ada rute yang lebih efisien dibanding

rute lainnya Sebaiknya yang diambil adalah rute

terpendek

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 7: alpro2

Algoritma seperti resep kue, apapun bahasanya pasti akan menghasilkan kue yang sama jika seluruh intruksinya dijalankan

Algoritma dapat dinotasikan dalam beberapa cara, yaitu: Dengan untaian kalimat deskriptif Dengan pseudocode Dengan flowchart

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 8: alpro2

Notasi algoritma dengan untaian kalimat deskriptif memiliki pola berikut:

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Judul algoritma dan keterangan singkat

Langkah-langkah dari algoritma tersebut1.2.…

Page 9: alpro2

Contoh kasus: mengecek apakah suatu bilangan genap atau ganjil

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Algoritma genap ganjil

1. Jika bilangan bisa dibagi 2 maka bilangan itu adalah bilangan genap, jika tidak berarti bilangan ganjil

Algoritma untuk mengecek bilangan genap atau ganjil

Page 10: alpro2

Tulis notasi algoritma untuk kasus-kasus berikut: Menghitung luas segitiga bila diketahui

alas dan tingginya Menghitung panjang sisi miring segitiga

siku-siku Menghitung nilai minimum dari sejumlah

nilai ujian

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 11: alpro2

Pseu : menyerupai, code : kodeMerupakan kode yang menyerupai

kode program yang sesungguhnyaTidak ada aturan standar penulisan

pseudocodeDitujukan untuk dibaca manusia,

bukan dibaca mesin(komputer)

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 12: alpro2

Contoh: menghitung luas segitiga yang diketahui alas dan tingginya input alas input tinggi luas ½ * (alas * tinggi) print luas

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 13: alpro2

Mendapatkan nilai maksimal dari sejumlah nilai ujian for i = 1 10 input nilai[i] endfor max nilai[1] for j = 2 10 if (nilai[j] > max) max = nilai[j] endif endfor print max

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 14: alpro2

Salah satu kelemahan pseudocode adalah kesulitan yang dijumpai bila algoritmanya banyak mengandung penyeleksian kondisi

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 15: alpro2

Contoh: menentukan bilangan terbesar dari dua bilangan input bilangan1 input bilangan2 if (bilangan1 > bilangan2) do step 4

otherwise do step 5 print bilangan1 print bilangan2

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 16: alpro2

Semakin banyak kondisi yang perlu diperhatikan, akan semakin rumit penulisan pseudocodenya

Latihan : Tuliskan pseudocode untuk

mendapatkan nilai terbesar dari 3 bilangan

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 17: alpro2

Flowchart lebih baik dibandingkan pseudocode

Merupakan gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program yang menyatakan arah alur program tersebut

Disajikan dalam bentuk grafik/gambar

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 18: alpro2

Dapat membantu programmer maupun orang lain dalam memahami alur program (apa saja input, proses dan output dari program)

Representasi visual, karena itu lebih mudah dipahami

Jumlah simbol yang digunakan sedikit, karena itu lebih sederhana dan lebih mudah dipelajari

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 19: alpro2

Simbol-simbol dalam flowchart

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

SIMBOL NAMA FUNGSI

TERMINATORPermulaan/akhir

program

GARIS ALIR(FLOW LINE)

Arah aliran program

PREPARATIONProses

inisialisasi/pemberian harga awal

PROSESProses

perhitungan/proses pengolahan data

INPUT/OUTPUT DATA

Proses input/output data, parameter,

informasi

Page 20: alpro2

Simbol-simbol dalam flowchart

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

PREDEFINED PROCESS

(SUB PROGRAM)

Permulaan sub program/proses menjalankan

sub program

DECISION

Perbandingan pernyataan, penyeleksian data yang

memberikan pilihan untuk langkah selanjutnya

ON PAGE CONNECTOR

Penghubung bagian-bagian flowchart yang berada pada

satu halaman

OFF PAGE CONNECTOR

Penghubung bagian-bagian flowchart yang berada pada

halaman berbeda

Page 21: alpro2

Contoh flowchart menghitung luas segitiga

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Start

input alas

input tinggi

luas ½ * (alas * tinggi)

print luas

End

Algoritma luas segitigaMenghitung luas segitiga bila diketahui alas dan tingginya

input alasinput tinggiluas ½ * (alas * tinggi)print luas

Page 22: alpro2

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Start

input b1

input b2

b1 > b2 ?

print b2

End

print b1

input b1input b2If(b1>b2) do step 4 otherwise do step 5print b1print b2

Y

N

Page 23: alpro2

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Start

total 0

cacah 0

cacah cacah + 1

total total + cacah

Is cacah = 10 ?

print total

End

Y

N

total 0cacah 0for cacah = 1 10total total + cacahendforprint total

Menghitung jumlah 10 bilangan bulat positif pertama

Pseudocode

Page 24: alpro2

Buat flowchart untuk kasus berikut: Menghitung nilai terkecil dari 3 bilangan Menghitung jumlah 45 bilangan ganjil

pertama Menghitung nilai rata-rata dari 20 data

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 25: alpro2

Tugas Pertemuan II (pilih salah satu) Buat algoritma untuk mencari jumlah

bilangan dibawah 1000 yang habis dibagi 3 dan 5, lalu tuliskan pseudocode dan buatlah flowchartnya

Buatlah algoritma untuk menentukan apakah 3 bilangan (a, b dan c) merupakan triplet phytagoras (a2 = b2 + c2), lalu tuliskan pseudocode dan buatlah flowchartnya

Tugas ditulis dalam selembar kertas, dikumpulkan

di pertemuan berikutnyaYuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]

Page 26: alpro2

Akan membahas: Pengantar Bahasa C

Pengumpulan Tugas I

See you next week !!

Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]