alpro2
-
Upload
kay-aryhan-sandi -
Category
Documents
-
view
64 -
download
0
Transcript of alpro2
Pertemuan II : Algoritma, Pseudocode dan Flowchart
Pertemuan kali ini akan membahas: Algoritma (lanjutan) Pseudocode Flowchart
Yuan Lukito, S.Kom | Algoritma dan Pemrograman | http://lecturer.ukdw.ac.id/yuan | [email protected]
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]
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]
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]
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]
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]
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.…
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
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]
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]
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]
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]
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]
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]
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]
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]
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]
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
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
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
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
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
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]
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]
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]