26
Algoritma Algoritma Algoritma Algoritma dan dan dan dan Pemrograman Pemrograman Pemrograman Pemrograman Review Review Review Review Algoritma Algoritma Algoritma Algoritma & & & & Pemrograman Pemrograman Pemrograman Pemrograman [email protected] Ptputraastawa.wordpress.com

AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

  • Upload
    dothu

  • View
    229

  • Download
    3

Embed Size (px)

Citation preview

Page 1: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

AlgoritmaAlgoritmaAlgoritmaAlgoritma dandandandan PemrogramanPemrogramanPemrogramanPemrograman

Review Review Review Review AlgoritmaAlgoritmaAlgoritmaAlgoritma & & & & PemrogramanPemrogramanPemrogramanPemrograman

[email protected]

Ptputraastawa.wordpress.com

Page 2: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

• 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.

Page 3: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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.

Page 4: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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.

Page 5: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

PemrogramanPemrogramanPemrogramanPemrograman merupakan proses mengimplementasikanurutan langkah untuk menyelesaikann suatu masalahdengan menggunkan suatu bahasa pemrograman

PemrogramanPemrogramanPemrogramanPemrograman

Slide 1 - 5/29Algorima dan Pemrograman– Putu Putra Astawa

Page 6: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

• 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

Page 7: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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.

Page 8: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

• 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.

Page 9: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

• 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

Page 10: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 11: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 12: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 13: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 14: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

• 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

Page 15: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 16: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 17: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 18: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

• 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

Page 19: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 20: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 21: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 22: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 23: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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.

Page 24: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

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

Page 25: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

• 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

Page 26: AlgoritmaAlgoritmadan dandanPemrograman … · • Kata logis disini berarti benar sesuai dengan logika manusia. ... Tugas Buatlah algoritma dan flowchart 1. Menghitung Luas Lingkaran

Slide 1 - 26/29Algorima dan Pemrograman– Putu Putra Astawa