Algoritma dan Pemrograman Review Algoritma & Pemrograman
[email protected] Ptputraastawa.wordpress.com
Sistem Komputer •
Sebuah sistem komputer terdiri dari : • Hardware
(perangkat keras) • Software (perangkat lunak) dan • Brainware. •
Sedangkan Software dapat dikelompokan menjadi : • Operating
System Software, • Programming Language Software, • Dan Application Program Software.
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 2/29
Definisi Program •
Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer.
•
Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.
•
Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan.
•
Mempunyai komponen-komponen : input, output, proses, percabangan dan perulangan.
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 3/29
Bahasa Pemrograman •
Adalah tata cara penulisan program Yaitu • •
•
• •
Sintax adalah aturan – aturan yang mengatur tata cara penulisan kata, ekspresi dan pernyataan. semantik adalah aturan - aturan untuk menyatukan suatu arti.
Cotoh : C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dll. Perbedaan : cara memberikan instruksi Persamaan : bertujuan menghasilkan output yang sama.
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 4/29
Pemrograman Pemrograman merupakan proses mengimplementasikan urutan langkah untuk menyelesaikann suatu masalah dengan menggunkan suatu bahasa pemrograman
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 5/29
Apa Itu Algoritma? Algoritma? •
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. • •
•
Kata logis disini berarti benar sesuai dengan logika manusia. Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh untuk menyelesaikan masalah harus memberikan hasil yang benar.
Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 6/29
Domain algoritma •
Masalah : motivasi untuk membuat algoritma.
•
Algoritma : prosedur untuk menyelesaikan masalah. Seringkali satu masalah dapat diselesaikan dengan lebih dari satu cara (banyak kemungkinan).
•
Program: representasi formal dari suatu algoritma dengan menggunakan bahasa pemrograman yang bisa dimengerti oleh komputer.
•
Proses : aktivitas menjalankan langkah-langkah dalam algoritma.
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 7/29
Hal yang harus dipenuhi dlm Algoritma •
Input : data yang harus diberikan pada komputer
•
Output: informasi yang akan diperoleh dari komputer
•
Logika: Merencanakan proses program. Terdiri dari sejumlah instruksi yang mengubah input menjadi output yang diinginkan.
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 8/29
Penulisan Algoritma •
Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris, dan bahasa manusia lainnya) •
•
Menggunakan flow chart (diagram alir) •
•
Tapi sering membingungkan (ambiguous)
Bagus secara visual akan tetapi repot kalau algoritmanya panjang
Menggunakan pseudo-code •
Sudah lebih dekat ke bahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 9/29
Flowchart •
Simbol-simbol dalam flowchart SIMBOL
NAMA
FUNGSI
TERMINATOR
Permulaan/akhir program
GARIS ALIR (FLOW LINE)
Arah aliran program
PREPARATION
Proses inisialisasi/pemberian harga awal
PROSES
Proses perhitungan/proses pengolahan data
INPUT/OUTPUT DATA
Proses input/output data, parameter, informasi
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 10/29
Flowchart (cont,.) •
Simbol-simbol dalam flowchart 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
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 11/29
Contoh : algoritma 1 •
Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi kopi. Bagaimana caranya menukar isi masing-masing gelas?
teh
Algorima dan Pemrograman– Putu Putra Astawa
kopi
Slide 1 - 12/29
Contoh: Contoh: algoritma 1 (cont,.) Algoritma •
Siapkan gelas cadangan X
•
Tuangkan gelas yang berisi teh ke gelas cadangan
•
Tuangkan gelas yang berisi kopi ke gelas yang awalnya dipakai teh
•
Tuangkan isi gelas cadangan ke gelas yang awalnya berisi kopi
Algorima dan Pemrograman– Putu Putra Astawa
X
X
teh
teh
kopi
kopi
X
Slide 1 - 13/29
Contoh: Contoh: algoritma 2 •
Requirement •
•
Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan Nantinya ini bisa digeneralisir menjadi n buah bilangan
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 14/29
Algoritma Dalam Bahasa Natural 1. 2. 3. 4. 5. 6.
Ambil bilangan pertama dan set maks sama dengan bilangan pertama Ambil bilangan kedua dan bandingkan dengan maks Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua Ambil blangan ketiga dan bandingan dengan maks Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga Variabel maks berisi bilangan terbesar. Tayangkan hasilnya
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 15/29
Algoritma dengan Flowchart Mulai
Maks = bilangan pertama
Maks < bilangan kedua
Ya
Maks = bilangan kedua
Ya
Maks = bilangan ketiga
Tidak
Maks < bilangan ketiga
Tidak
Selesai
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 16/29
Algoritma dengan pseudopseudo-code maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua
if (maks < bilangan ketiga) maks ← bilangan ketiga
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 17/29
Contoh: Contoh: algoritma 3 •
Requirement •
Algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap.
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 18/29
Algoritma Dalam Bahasa Natural 1. 2. 3. 4.
Masukkan bilangan sembarang Bagi bilangan dengan bilangan 2 Hitung sisa hasil bagi pada langkah b. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 19/29
Algoritma Dengan Flowchart •
Flowchart untuk menentukan bilangan genap/ganjil Start
Input Bilanga n
Hitung sisa bagi antara bilangan dengan 2
A
Apaka h Sisa = 0
T
Y Cetak Genap
Cetak Ganjil
End A
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 20/29
Algoritma dengan pseudopseudo-code bil ← bilangan sembarang if (bil mod 2) =0 bil← bilangan genap
if (bil mod 2 <> 0) bil← bilangan ganjil
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 21/29
Aspek Penting dari Algoritma Finiteness
1. •
Algoritma harus berhenti after a finite number of steps
Definiteness(pasti)
2. •
Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous)
Input
3. •
Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan
Output
4. •
Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input
Effectiveness
5. •
Setiap algoritma diharapkan miliki sifat efektif
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 22/29
Kriteria Algoritma (Donald E. Knuth) •
Input •
•
Output •
•
algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
Finiteness(ada batas) •
•
algoritma harus memiliki minimal satu buah output.
Definiteness(pasti) •
•
algoritma dapat memiliki nol atau lebih inputan dari luar.
algoritma harus memiliki titik berhenti (stopping rule).
Effectiveness(tepat dan efisien) •
algoritma sebisa mungkin harus dapat dilaksanakan dan efektif.
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 23/29
Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran dan menampilkan hasilnya 2. Mengecek bilangan, di antara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 24/29
Referensi •
• •
Donald Knuth, The Art Of Computer Programming, Volume 1 Fundamental Algorithms, 2nd edition, Addison Wesley Algorithms, Yi-Shin Chen, Addison-Wesley Computing Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Penerbit Informatika Bandung
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 25/29
Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 26/29