Upload
dothu
View
229
Download
3
Embed Size (px)
Citation preview
AlgoritmaAlgoritmaAlgoritmaAlgoritma dandandandan PemrogramanPemrogramanPemrogramanPemrograman
Review Review Review Review AlgoritmaAlgoritmaAlgoritmaAlgoritma & & & & PemrogramanPemrogramanPemrogramanPemrograman
Ptputraastawa.wordpress.com
• Sebuah sistem komputer terdiri dari :• Hardware (perangkat keras)
• Software (perangkat lunak) dan
• Brainware.
• Sedangkan Software dapat dikelompokan menjadi :• Operating System Software,
• Programming Language Software,
Sistem KomputerSistem KomputerSistem KomputerSistem Komputer
Slide 1 - 2/29Algorima dan Pemrograman– Putu Putra Astawa
• Programming Language Software,
• Dan Application Program Software.
Definisi ProgramDefinisi ProgramDefinisi ProgramDefinisi Program
• Adalah kumpulan instruksi-instruksi tersendiri yang biasanyadisebut source code yang dibuat oleh programmer.
• Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalaryang tepat untuk menyelesaikan suatu persoalan.
Instruksi (statement) yang dimaksud adalah syntax (cara
Slide 1 - 3/29Algorima dan Pemrograman– Putu Putra Astawa
• Instruksi (statement) yang dimaksud adalah syntax (carapenulisan) sesuai dengan bahasa pemrograman yang digunakan.
• Mempunyai komponen-komponen : input, output, proses, percabangan dan perulangan.
Bahasa PemrogramanBahasa PemrogramanBahasa PemrogramanBahasa Pemrograman• Adalah tata cara penulisan program Yaitu
• Sintax adalah aturan – aturan yang mengatur tata cara penulisankata, ekspresi dan pernyataan.
• semantik adalah aturan - aturan untuk menyatukan suatu arti.
• Cotoh : C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java,
dll.
Slide 1 - 4/29Algorima dan Pemrograman– Putu Putra Astawa
• Perbedaan : cara memberikan instruksi
• Persamaan : bertujuan menghasilkan output yang sama.
PemrogramanPemrogramanPemrogramanPemrograman merupakan proses mengimplementasikanurutan langkah untuk menyelesaikann suatu masalahdengan menggunkan suatu bahasa pemrograman
PemrogramanPemrogramanPemrogramanPemrograman
Slide 1 - 5/29Algorima dan Pemrograman– Putu Putra Astawa
• 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
ApaApaApaApa ItuItuItuItu AlgoritmaAlgoritmaAlgoritmaAlgoritma????
Slide 1 - 6/29Algorima dan Pemrograman– Putu Putra Astawa
• Algoritma dibutuhkan untuk memerintah komputer
mengambil langkah-langkah tertentu dalam menyelesaikan
masalah
Domain algoritmaDomain algoritmaDomain algoritmaDomain algoritma
• Masalah : motivasi untuk membuat algoritma.
• Algoritma : prosedur untuk menyelesaikan masalah. Seringkali satu masalah dapat diselesaikan dengan lebihdari satu cara (banyak kemungkinan).
Program: representasi formal dari suatu algoritma dengan
Slide 1 - 7/29Algorima dan Pemrograman– Putu Putra Astawa
• Program: representasi formal dari suatu algoritma denganmenggunakan bahasa pemrograman yang bisa dimengertioleh komputer.
• Proses : aktivitas menjalankan langkah-langkah dalamalgoritma.
• 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
Hal yang Hal yang Hal yang Hal yang harusharusharusharus dipenuhidipenuhidipenuhidipenuhi dlmdlmdlmdlm AlgoritmaAlgoritmaAlgoritmaAlgoritma
Slide 1 - 8/29Algorima dan Pemrograman– Putu Putra Astawa
instruksi yang mengubah input menjadi output yang
diinginkan.
• Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris,
dan bahasa manusia lainnya)
• Tapi sering membingungkan (ambiguous)
• Menggunakan flow chart (diagram alir)
• Bagus secara visual akan tetapi repot kalau algoritmanya panjang
PenulisanPenulisanPenulisanPenulisan AlgoritmaAlgoritmaAlgoritmaAlgoritma
Slide 1 - 9/29Algorima dan Pemrograman– Putu Putra Astawa
• 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
FlowchartFlowchartFlowchartFlowchart
• Simbol-simbol dalam flowchart
SIMBOL NAMA FUNGSI
TERMINATOR Permulaan/akhir program
GARIS ALIR(FLOW LINE)
Arah aliran program
PREPARATIONProses inisialisasi/pemberian
Slide 1 - 10/29Algorima dan Pemrograman– Putu Putra Astawa
PREPARATIONProses inisialisasi/pemberian
harga awal
PROSESProses perhitungan/proses
pengolahan data
INPUT/OUTPUT DATA
Proses input/output data, parameter, informasi
Flowchart (cont,.)Flowchart (cont,.)Flowchart (cont,.)Flowchart (cont,.)
• Simbol-simbol dalam flowchart
PREDEFINED PROCESS (SUB PROGRAM)
Permulaan sub program/prosesmenjalankan sub program
DECISION
Perbandingan pernyataan, penyeleksian data yang
memberikan pilihan untuk langkahselanjutnya
Slide 1 - 11/29Algorima dan Pemrograman– Putu Putra Astawa
ON PAGE CONNECTORPenghubung bagian-bagian
flowchart yang berada pada satuhalaman
OFF PAGE CONNECTOR
Penghubung bagian-bagianflowchart yang berada pada
halaman berbeda
ContohContohContohContoh : : : : algoritmaalgoritmaalgoritmaalgoritma 1111
• Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi
kopi. Bagaimana caranya menukar isi masing-masing gelas?
Slide 1 - 12/29Algorima dan Pemrograman– Putu Putra Astawa
tehtehtehteh kopikopikopikopi
ContohContohContohContoh: : : : algoritmaalgoritmaalgoritmaalgoritma 1 (cont,.)1 (cont,.)1 (cont,.)1 (cont,.)
Algoritma• Siapkan gelas cadangan X
• Tuangkan gelas yang berisiteh ke gelas cadangan tehtehtehteh
XXXX
XXXX
Slide 1 - 13/29Algorima dan Pemrograman– Putu Putra Astawa
• Tuangkan gelas yang berisikopi ke gelas yang awalnyadipakai teh
• Tuangkan isi gelascadangan ke gelas yang awalnya berisi kopi
kopikopikopikopitehtehtehteh
kopikopikopikopi XXXX
• Requirement
• Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah
bilangan
• Nantinya ini bisa digeneralisir menjadi n buah bilangan
ContohContohContohContoh: : : : algoritmaalgoritmaalgoritmaalgoritma 2222
Slide 1 - 14/29Algorima dan Pemrograman– Putu Putra Astawa
1. Ambil bilangan pertama dan set maks sama denganbilangan pertama
2. Ambil bilangan kedua dan bandingkan dengan maks
3. Apa bila bilangan kedua lebih besar dari maks, set makssama dengan bilangan kedua
4. Ambil blangan ketiga dan bandingan dengan maks
Apabila bilangan ketiga lebih besar dari maks, set maks
AlgoritmaAlgoritmaAlgoritmaAlgoritma DalamDalamDalamDalam BahasaBahasaBahasaBahasa NaturalNaturalNaturalNatural
Slide 1 - 15/29Algorima dan Pemrograman– Putu Putra Astawa
5. Apabila bilangan ketiga lebih besar dari maks, set makssama dengan bilangan ketiga
6. Variabel maks berisi bilangan terbesar. Tayangkanhasilnya
Algoritma dengan FlowchartAlgoritma dengan FlowchartAlgoritma dengan FlowchartAlgoritma dengan Flowchart
Maks = bilangan pertama
Maks <
bilangan kedua Maks = bilangan keduaYa
Mulai
Slide 1 - 16/29Algorima dan Pemrograman– Putu Putra Astawa
bilangan kedua
Maks <
bilangan ketiga Maks = bilangan ketigaYa
Selesai
Tidak
Tidak
maks← bilangan pertama
if (maks < bilangan kedua)
maks← bilangan kedua
if (maks < bilangan ketiga)
maks← bilangan ketiga
Algoritma dengan Algoritma dengan Algoritma dengan Algoritma dengan pseudopseudopseudopseudo----codecodecodecode
Slide 1 - 17/29Algorima dan Pemrograman– Putu Putra Astawa
• Requirement• Algoritma untuk menentukan apakah suatu bilangan merupakan
bilangan ganjil atau bilangan genap.
ContohContohContohContoh: : : : algoritmaalgoritmaalgoritmaalgoritma 3 3 3 3
Slide 1 - 18/29Algorima dan Pemrograman– Putu Putra Astawa
1. Masukkan bilangan sembarang
2. Bagi bilangan dengan bilangan 2
3. Hitung sisa hasil bagi pada langkah b.
4. 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.
AlgoritmaAlgoritmaAlgoritmaAlgoritma DalamDalamDalamDalam BahasaBahasaBahasaBahasa NaturalNaturalNaturalNatural
Slide 1 - 19/29Algorima dan Pemrograman– Putu Putra Astawa
AlgoritmaAlgoritmaAlgoritmaAlgoritma DenganDenganDenganDengan FlowchartFlowchartFlowchartFlowchart
• Flowchart untuk menentukan bilangan genap/ganjil
T
Start
Input
Bilangan
A
Apaka
hSisa = 0
Slide 1 - 20/29Algorima dan Pemrograman– Putu Putra Astawa
YHitung sisa
bagi antara
bilangan dengan 2
A
Sisa = 0
CetakGenap
CetakGanjil
End
bil← bilangan sembarang
if (bilmod 2) =0
bil← bilangan genap
if (bil mod 2 <> 0)
bil← bilangan ganjil
Algoritma dengan Algoritma dengan Algoritma dengan Algoritma dengan pseudopseudopseudopseudo----codecodecodecode
Slide 1 - 21/29Algorima dan Pemrograman– Putu Putra Astawa
1. Finiteness• Algoritma harus berhenti after a finite number of steps
2. Definiteness(pasti)• Setiap langkah harus didefinisikan secara tepat, tidak boleh
membingungkan (ambiguous)
3. Input• Sebuah algoritma memiliki nol atau lebih input yang diberikan
kepada algoritma sebelum dijalankan
Aspek Penting dari AlgoritmaAspek Penting dari AlgoritmaAspek Penting dari AlgoritmaAspek Penting dari Algoritma
Slide 1 - 22/29Algorima dan Pemrograman– Putu Putra Astawa
Sebuah algoritma memiliki nol atau lebih input yang diberikankepada algoritma sebelum dijalankan
4. Output• Sebuah algoritma memiliki satu atau lebih output, yang biasanya
bergantung kepada input
5. Effectiveness• Setiap algoritma diharapkan miliki sifat efektif
KriteriaKriteriaKriteriaKriteria AlgoritmaAlgoritmaAlgoritmaAlgoritma (Donald E. Knuth)(Donald E. Knuth)(Donald E. Knuth)(Donald E. Knuth)
• Input • algoritma dapat memiliki nol atau lebih inputan dari luar.
• Output • algoritma harus memiliki minimal satu buah output.
• Definiteness(pasti)
Slide 1 - 23/29Algorima dan Pemrograman– Putu Putra Astawa
Definiteness(pasti)• algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
• Finiteness(ada batas)• algoritma harus memiliki titik berhenti (stopping rule).
• Effectiveness(tepat dan efisien)• algoritma sebisa mungkin harus dapat dilaksanakan dan efektif.
TugasTugasTugasTugas
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
Slide 1 - 24/29Algorima dan Pemrograman– Putu Putra Astawa
• 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
ReferensiReferensiReferensiReferensi
Slide 1 - 25/29Algorima dan Pemrograman– Putu Putra Astawa
Slide 1 - 26/29Algorima dan Pemrograman– Putu Putra Astawa