Algoritma dan Pemrograman

69
Algoritma dan Algoritma dan Pemrograman Pemrograman Dedy Trisanto, S.Kom, Dedy Trisanto, S.Kom, MMSI MMSI Departemen Perindustrian Departemen Perindustrian Sekolah Tinggi Manajemen Industri Sekolah Tinggi Manajemen Industri Jl. Letjen Suprapto No. 26 – Cempaka Putih, Jakarta 10510 Jl. Letjen Suprapto No. 26 – Cempaka Putih, Jakarta 10510 Telp. : (021) 42886064 Ext. 133, 107, 110, 115 Fax : (021) 42888206 Telp. : (021) 42886064 Ext. 133, 107, 110, 115 Fax : (021) 42888206 www.stmi.ac .id www.stmi.ac .id

description

Departemen Perindustrian Sekolah Tinggi Manajemen Industri Jl. Letjen Suprapto No. 26 – Cempaka Putih, Jakarta 10510 Telp. : (021) 42886064 Ext. 133, 107, 110, 115 Fax : (021) 42888206 www.stmi.ac .id. Algoritma dan Pemrograman. Dedy Trisanto, S.Kom, MMSI. Algoritma & Pemrograman. - PowerPoint PPT Presentation

Transcript of Algoritma dan Pemrograman

Page 1: Algoritma dan Pemrograman

Algoritma dan PemrogramanAlgoritma dan Pemrograman

Dedy Trisanto, S.Kom, MMSIDedy Trisanto, S.Kom, MMSI

Departemen PerindustrianDepartemen Perindustrian

Sekolah Tinggi Manajemen IndustriSekolah Tinggi Manajemen IndustriJl. Letjen Suprapto No. 26 – Cempaka Putih, Jakarta 10510Jl. Letjen Suprapto No. 26 – Cempaka Putih, Jakarta 10510

Telp. : (021) 42886064 Ext. 133, 107, 110, 115 Fax : (021) 42888206Telp. : (021) 42886064 Ext. 133, 107, 110, 115 Fax : (021) 42888206www.stmi.ac .idwww.stmi.ac .id

Page 2: Algoritma dan Pemrograman

Algoritma & PemrogramanAlgoritma & Pemrograman

• SKSSKS : 3 SKS (Teory) dan 3 SKS (Praktek): 3 SKS (Teory) dan 3 SKS (Praktek)• DosenDosen : Dedy Trisanto, S.Kom, MMSI: Dedy Trisanto, S.Kom, MMSI• PhonePhone : 021-80886160 HP. 08161967967: 021-80886160 HP. 08161967967• EmailEmail : - : - [email protected]@yahoo.com, ,

- [email protected],- [email protected],- [email protected] [email protected]

Jadwal Kuliah Kelas:Jadwal Kuliah Kelas: ::• Algoritma & Pemrograman SI (Teory & Praktek): Senin, 08:00 – 13:30Algoritma & Pemrograman SI (Teory & Praktek): Senin, 08:00 – 13:30• PAK II C (Teory & Praktek): Rabu, 08:00 – 13:30PAK II C (Teory & Praktek): Rabu, 08:00 – 13:30• PAK II E (Teory): Sabtu, 08:00 – 10:30PAK II E (Teory): Sabtu, 08:00 – 10:30

Page 3: Algoritma dan Pemrograman

Deskripsi MatakuliahDeskripsi Matakuliah

• Matakuliah ini mengajarkan tentang konsep Matakuliah ini mengajarkan tentang konsep dan logika berpikir komputer, cara dan logika berpikir komputer, cara perancangan dan analisis masalah, yang perancangan dan analisis masalah, yang kemudian dipecahkan dengan menggunakan kemudian dipecahkan dengan menggunakan komputer menggunakan algoritma dan komputer menggunakan algoritma dan pemrograman terstruktur. Selain itu juga pemrograman terstruktur. Selain itu juga diperkenalkan dan diajarkan penggunaan diperkenalkan dan diajarkan penggunaan bahasa pemrograman (Bahasa VB), dan bahasa pemrograman (Bahasa VB), dan flowchartflowchart

Page 4: Algoritma dan Pemrograman

Kompetensi MatakuliahKompetensi Matakuliah

• Mahasiswa mampu memahami logika berpikir Mahasiswa mampu memahami logika berpikir komputer, memahami prinsip kerja program, komputer, memahami prinsip kerja program, memahami alasan-alasan komputer dapat memahami alasan-alasan komputer dapat mengerjakan perintah-perintah yang diberikan, mengerjakan perintah-perintah yang diberikan, dan mampu menggambarkan logika jalannya dan mampu menggambarkan logika jalannya program secara tertulis dengan algoritma program secara tertulis dengan algoritma (pseudo code) dan dilengkapi dengan diagram (pseudo code) dan dilengkapi dengan diagram alir (flow chart) menggunakan suatu bahasa alir (flow chart) menggunakan suatu bahasa pemrograman tertentupemrograman tertentu

Page 5: Algoritma dan Pemrograman

Materi-MateriMateri-Materi

• Pengantar Algoritma Pengantar Algoritma • Konsep Bahasa PemrogramanKonsep Bahasa Pemrograman• FlowchartFlowchart• Tipe Data, Keywords, Konstanta, VariabelTipe Data, Keywords, Konstanta, Variabel• Struktur Input/OutputStruktur Input/Output• PercabanganPercabangan• PerulanganPerulangan• Pemrograman ModularPemrograman Modular• Fungsi: parameter, kembalian fungsi by valueFungsi: parameter, kembalian fungsi by value• Array 1 dimensiArray 1 dimensi• Array 2 dimensiArray 2 dimensi• Manipulasi StringManipulasi String

Page 6: Algoritma dan Pemrograman

ReferensiReferensi

• Thomas H. Cormen et.al, Thomas H. Cormen et.al, Introduction to Algorithms Second EditionIntroduction to Algorithms Second Edition, , MIT Press, McGraw-Hill Book Company, 2001MIT Press, McGraw-Hill Book Company, 2001

• Simon Harris and James Ross, Simon Harris and James Ross, Beginning AlgorithmsBeginning Algorithms, Willey , Willey Publishing Inc, 2006Publishing Inc, 2006

• Antonie Pranata, Antonie Pranata, Algoritma dan PemrogramanAlgoritma dan Pemrograman, J&J Learning , J&J Learning Yogyakarta, 2000Yogyakarta, 2000

• Iwan Binanto, Iwan Binanto, Konsep Bahasa PemrogramanKonsep Bahasa Pemrograman, Penerbit Andi , Penerbit Andi Yogyakarta, 2005Yogyakarta, 2005

• Moh. Sjukani, Moh. Sjukani, Algoritma dan Struktur Data dengan C, C++, dan Algoritma dan Struktur Data dengan C, C++, dan JavaJava, Mitra Wacana Media, 2005, Mitra Wacana Media, 2005

• Suryadi H.S. Dan Agus Sumun, Pengantar Algoritma dan Suryadi H.S. Dan Agus Sumun, Pengantar Algoritma dan Pemrograman, Penerbit GunadarmaPemrograman, Penerbit Gunadarma

Page 7: Algoritma dan Pemrograman

PenilaianPenilaian

NilaiNilai Point/IPPoint/IP RangeRange

AA 44 >=85>=85

BB 33 >=70 - <85>=70 - <85

CC 22 >=50 – <70>=50 – <70

DD 11 >=35 – <50>=35 – <50

EE 00 < 35< 35

Komponen Penilaian:Tugas, Praktikum dan Quiz: 40%UTS: 30%UAS: 30%

Page 8: Algoritma dan Pemrograman

Ketentuan LainKetentuan Lain

• Kehadiran minimal 75%Kehadiran minimal 75%• Penambahan nilai untuk UTS or UAS dari Penambahan nilai untuk UTS or UAS dari

Aktifitas kelas, Kehadiran, Maju Depan, Kritikan Aktifitas kelas, Kehadiran, Maju Depan, Kritikan atau Saran yang membangun atau Saran yang membangun

• Tidak ada tugas tambahan untuk meningkatkan Tidak ada tugas tambahan untuk meningkatkan nilai yang kurangnilai yang kurang

• Dosen berhak mengurangi nilai jika MHS yang Dosen berhak mengurangi nilai jika MHS yang bersangkutan melakukan kecurangan atau bersangkutan melakukan kecurangan atau melakukan tindakan yang tidak baik di kelas melakukan tindakan yang tidak baik di kelas maupun pada saat ujianmaupun pada saat ujian

Page 9: Algoritma dan Pemrograman

SilabusSilabus

• Pengantar Algoritma dan Konsep Bahasa PemrogramanPengantar Algoritma dan Konsep Bahasa Pemrograman• Flowchart dan Pengenalan VBFlowchart dan Pengenalan VB• Tipe Data, Keywords, Konstanta dan Input/OutputTipe Data, Keywords, Konstanta dan Input/Output• Percabangan SederhanaPercabangan Sederhana• Percabangan Kompleks dan SwitchPercabangan Kompleks dan Switch• Loop SederhanaLoop Sederhana• Loop KompleksLoop Kompleks• Modular ProgrammingModular Programming• Fungsi by value: parameter, void dan non-voidFungsi by value: parameter, void dan non-void• Array 1 DimensiArray 1 Dimensi• Array 2 DimensiArray 2 Dimensi• String Manipulation pada VBString Manipulation pada VB

Page 10: Algoritma dan Pemrograman

Sistem KomputerSistem Komputer

• Sebuah sistem komputer terdiri dari Sebuah sistem komputer terdiri dari HardwareHardware (perangkat keras)(perangkat keras) , Software, Software (perangkat lunak)(perangkat lunak) dandan BrainwareBrainware, , sedangkan sedangkan SoftwareSoftware dapat dikelompokkan dapat dikelompokkan menjadi menjadi Operating System Software, Operating System Software, Programming Language Software Programming Language Software dandan Application Program Software.Application Program Software.

Page 11: Algoritma dan Pemrograman

Bagan Sistem KomputerBagan Sistem Komputer

Page 12: Algoritma dan Pemrograman

Definisi Program/PemrogramanDefinisi Program/Pemrograman

• Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program)source code yang dibuat oleh programmer (pembuat program)

• Program adalah kumpulan instruksi atau perintah yang disusun Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan yang diimplementasikan dengan menyelesaikan suatu persoalan yang diimplementasikan dengan bahasa pemrograman yang dapat dieksekusi oleh komputer. Dibuat bahasa pemrograman yang dapat dieksekusi oleh komputer. Dibuat dengan tujuan untuk mempermudah user dalam memberikan dengan tujuan untuk mempermudah user dalam memberikan instruksi / perintah ke komputer.instruksi / perintah ke komputer.

• Instruksi (Instruksi (statementstatement) yang dimaksud adalah syntax (cara penulisan) ) yang dimaksud adalah syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan yang mempunyai sesuai dengan bahasa pemrograman yang digunakan yang mempunyai komponen-komponen : Input, Output, Proses, Percabangan dan komponen-komponen : Input, Output, Proses, Percabangan dan Perulangan. Perulangan.

Page 13: Algoritma dan Pemrograman

Bahasa PemrogramanBahasa Pemrograman

• Adalah alat untuk membuat programAdalah alat untuk membuat program• Contoh: C, C++, C#, Pascal, Basic, Perl, Contoh: C, C++, C#, Pascal, Basic, Perl,

PHP, ASP, JHP, Java, dll.PHP, ASP, JHP, Java, dll.

• Perbedaan: cara memberikan instruksiPerbedaan: cara memberikan instruksi• Persamaan: bertujuan menghasilkan Persamaan: bertujuan menghasilkan output output

yang samayang sama

Page 14: Algoritma dan Pemrograman

Paradigma PemrogramanParadigma Pemrograman

• Pemrograman ProseduralPemrograman Prosedural• Berdasarkan urutan-urutan, sekuensialBerdasarkan urutan-urutan, sekuensial• Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur

merupakan kumpulan instruksi yang dikerjakan secara berurutan.merupakan kumpulan instruksi yang dikerjakan secara berurutan.• Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.

• Pemrograman FungsionalPemrograman Fungsional• Berdasarkan teori fungsi matematikaBerdasarkan teori fungsi matematika• Fungsi merupakan dasar utama program.Fungsi merupakan dasar utama program.

• Pemrograman TerstrukturPemrograman Terstruktur• Secara berurutan dan terstrukrtur.Secara berurutan dan terstrukrtur.• Program dapat dibagai-bagi menjadi prosedur dan fungsi.Program dapat dibagai-bagi menjadi prosedur dan fungsi.• Contoh: PASCAL dan CContoh: PASCAL dan C

• Pemrograman ModularPemrograman Modular• Pemrograman ini membentuk banyak modul.Pemrograman ini membentuk banyak modul.• Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiriModul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri• Sebuah program dapat merupakan kumpulan modul-modul.Sebuah program dapat merupakan kumpulan modul-modul.• Contoh: MODULA-2 atau ADA Contoh: MODULA-2 atau ADA

Page 15: Algoritma dan Pemrograman

Paradigma PemrogramanParadigma Pemrograman

• Pemrograman Berorientasi ObyekPemrograman Berorientasi Obyek• Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki

data/variabel/property dan method/event/prosedur yang dapat data/variabel/property dan method/event/prosedur yang dapat dimanipulasidimanipulasi

• Contoh: C++, Object Pascal, dan Java.Contoh: C++, Object Pascal, dan Java.• Pemrograman Berorientasi FungsiPemrograman Berorientasi Fungsi

• Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.tergantung pada tujuan pembuatan bahasa pemrograman ini.

• Contoh: SQL (Structured Query Language), HTML, XML dan lain-Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.lain.

• Pemrograman DeklaratifPemrograman Deklaratif• Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan

daripada memecahkan masalah dengan implementasi algoritma.daripada memecahkan masalah dengan implementasi algoritma.• Contoh: PROLOG Contoh: PROLOG

Page 16: Algoritma dan Pemrograman

Siklus Hidup Perangkat Lunak Siklus Hidup Perangkat Lunak (Software)(Software)

• Dilihat dari Struktur Sistem Komputer dan Siklus diatas, Dilihat dari Struktur Sistem Komputer dan Siklus diatas, Algoritma Pemrograman menempati posisi dibagian Algoritma Pemrograman menempati posisi dibagian implementasi karena bagian implementasi merupakan implementasi karena bagian implementasi merupakan bagian dimana pemrogram melakukan proses coding bagian dimana pemrogram melakukan proses coding (pembuatan program). (pembuatan program).

Page 17: Algoritma dan Pemrograman
Page 18: Algoritma dan Pemrograman
Page 19: Algoritma dan Pemrograman
Page 20: Algoritma dan Pemrograman
Page 21: Algoritma dan Pemrograman
Page 22: Algoritma dan Pemrograman
Page 23: Algoritma dan Pemrograman
Page 24: Algoritma dan Pemrograman

AlgoritmaAlgoritma

• Game : Game :

Use Your Mind!Use Your Mind!

Page 25: Algoritma dan Pemrograman

Langkah Use Your MindLangkah Use Your Mind

1.1. 2 kanibal naik perahu ke seberang kiri 2 kanibal naik perahu ke seberang kiri 2.2. Pindahkan 1 kanibal ke seberang kiriPindahkan 1 kanibal ke seberang kiri3.3. Perahu kembali ke seberang kanan dgn 1 kanibalPerahu kembali ke seberang kanan dgn 1 kanibal4.4. Ulangi langkah 1-3Ulangi langkah 1-35.5. 2 misionaris naik perahu ke seberang kiri2 misionaris naik perahu ke seberang kiri6.6. Di seberang kiri, tukar 1 kanibal dgn 1 misionaris di perahuDi seberang kiri, tukar 1 kanibal dgn 1 misionaris di perahu7.7. Perahu kembali ke seberang kanan dgn 1 kanibal dan 1 misionarisPerahu kembali ke seberang kanan dgn 1 kanibal dan 1 misionaris8.8. Di seberang kanan, tukar kanibal di perahu dgn 1 misionaris di seberang Di seberang kanan, tukar kanibal di perahu dgn 1 misionaris di seberang

kanankanan9.9. Perahu kembali ke seberang kiri dgn 2 misionarisPerahu kembali ke seberang kiri dgn 2 misionaris10.10. Turunkan semua misionaris di perahu ke seberang kiriTurunkan semua misionaris di perahu ke seberang kiri11.11. Perahu kembali ke seberang kanan dgn 1 kanibalPerahu kembali ke seberang kanan dgn 1 kanibal12.12. Ulangi langkah 1-3Ulangi langkah 1-313.13. 2 kanibal naik perahu ke seberang kiri2 kanibal naik perahu ke seberang kiri14.14. Turunkan kedua kanibal ke seberang kiriTurunkan kedua kanibal ke seberang kiri

Page 26: Algoritma dan Pemrograman
Page 27: Algoritma dan Pemrograman
Page 28: Algoritma dan Pemrograman
Page 29: Algoritma dan Pemrograman
Page 30: Algoritma dan Pemrograman
Page 31: Algoritma dan Pemrograman
Page 32: Algoritma dan Pemrograman
Page 33: Algoritma dan Pemrograman
Page 34: Algoritma dan Pemrograman
Page 35: Algoritma dan Pemrograman
Page 36: Algoritma dan Pemrograman
Page 37: Algoritma dan Pemrograman
Page 38: Algoritma dan Pemrograman
Page 39: Algoritma dan Pemrograman
Page 40: Algoritma dan Pemrograman
Page 41: Algoritma dan Pemrograman
Page 42: Algoritma dan Pemrograman
Page 43: Algoritma dan Pemrograman
Page 44: Algoritma dan Pemrograman
Page 45: Algoritma dan Pemrograman
Page 46: Algoritma dan Pemrograman
Page 47: Algoritma dan Pemrograman
Page 48: Algoritma dan Pemrograman

NO

Page 49: Algoritma dan Pemrograman
Page 50: Algoritma dan Pemrograman

ContohContoh

• RequirementRequirement• Buat sebuah algoritma untuk memilih bilangan Buat sebuah algoritma untuk memilih bilangan

terbesar dari 3 buah bilanganterbesar dari 3 buah bilangan• Nantinya ini bisa digeneralisir menjadi Nantinya ini bisa digeneralisir menjadi nn buah buah

bilanganbilangan

Add

Page 51: Algoritma dan Pemrograman

Algoritma Dalam Bahasa NaturalAlgoritma Dalam Bahasa Natural1.1. Ambil bilangan pertama dan set Ambil bilangan pertama dan set maksmaks sama dengan sama dengan

bilangan pertamabilangan pertama2.2. Ambil bilangan kedua dan bandingkan dengan Ambil bilangan kedua dan bandingkan dengan maksmaks3.3. Apa bila bilangan kedua lebih besar dari Apa bila bilangan kedua lebih besar dari maksmaks, set , set

maksmaks sama dengan bilangan kedua sama dengan bilangan kedua4.4. Ambil blangan ketiga dan bandingan dengan Ambil blangan ketiga dan bandingan dengan maksmaks5.5. Apabila bilangan ketiga lebih besar dari Apabila bilangan ketiga lebih besar dari maksmaks, set , set

maksmaks sama dengan bilangan ketiga sama dengan bilangan ketiga6.6. Variabel Variabel maksmaks berisi bilangan terbesar. Tayangkan berisi bilangan terbesar. Tayangkan

hasilnyahasilnya

Add

Page 52: Algoritma dan Pemrograman

Algoritma dengan FlowchartAlgoritma dengan Flowchart

Maks = bilangan pertama

Maks < bilangan kedua

Maks = bilangan kedua

Maks < bilangan ketiga

Maks = bilangan ketiga

Ya

Ya

Selesai

Mulai

Tidak

Tidak

Add

Page 53: Algoritma dan Pemrograman

Algoritma dengan Algoritma dengan pseudo-codepseudo-code

maksmaks ← bilangan pertama ← bilangan pertama

if (if (maksmaks < bilangan kedua) < bilangan kedua)maksmaks ← bilangan kedua ← bilangan kedua

if (if (maksmaks < bilangan ketiga) < bilangan ketiga)maksmaks ← bilangan ketiga ← bilangan ketiga

Add

Page 54: Algoritma dan Pemrograman

Aspek Penting dari AlgoritmaAspek Penting dari Algoritma

1.1. FinitenessFiniteness• Algoritma harus berhenti Algoritma harus berhenti after a finite number of stepsafter a finite number of steps

2.2. DefinitenessDefiniteness• Setiap langkah harus didefinisikan secara tepat, tidak boleh Setiap langkah harus didefinisikan secara tepat, tidak boleh

membingungkan (ambiguous)membingungkan (ambiguous)

3.3. InputInput• Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada

algoritma sebelum dijalankanalgoritma sebelum dijalankan

4.4. OutputOutput• Sebuah algoritma memiliki satu atau lebih output, yang biasanya Sebuah algoritma memiliki satu atau lebih output, yang biasanya

bergantung kepada inputbergantung kepada input

5.5. EffectivenessEffectiveness• Setiap algoritma diharapkan miliki sifat efektifSetiap algoritma diharapkan miliki sifat efektif

Add

Page 55: Algoritma dan Pemrograman

TugasTugas

• Buat algoritma untukBuat algoritma untuk• Mengurutkan bilangan (Mengurutkan bilangan (sortingsorting) untuk ) untuk nn buah buah

data (misalnya data nilai mahasiswa)data (misalnya data nilai mahasiswa)• Tower of hanoiTower of hanoi• ……

Add

Page 56: Algoritma dan Pemrograman

Algoritma dan Algoritma dan PseudocodePseudocode

• Algoritma: urutan langkah-langkah yang dapat Algoritma: urutan langkah-langkah yang dapat digunakan untuk memecahkan suatu masalahdigunakan untuk memecahkan suatu masalah

• PseudocodePseudocode::• Bahasa buatan yang bersifat informal yang dapat Bahasa buatan yang bersifat informal yang dapat

membantu untuk mengembangkan algoritmamembantu untuk mengembangkan algoritma

• Serupa dengan bahasa sehari-hariSerupa dengan bahasa sehari-hari

• Membantu mempermudah penulisan program; dengan Membantu mempermudah penulisan program; dengan menggunakan menggunakan statement-statementstatement-statement yang dapat yang dapat dieksekusi, mempermudah konversi ke bahasa dieksekusi, mempermudah konversi ke bahasa pemrograman pemrograman

Page 57: Algoritma dan Pemrograman

Struktur KontrolStruktur Kontrol

• Semua program ditulis dalam 3 macam bentuk struktur kontrol:Semua program ditulis dalam 3 macam bentuk struktur kontrol:• SequenceSequence atau berturutan: struktur ini tersedia secara atau berturutan: struktur ini tersedia secara built-inbuilt-in. Secara . Secara defaultdefault

program dieksekusi secara berturutan sesuai urutan perintahprogram dieksekusi secara berturutan sesuai urutan perintah• SelectionSelection atau pilihan: ada 3 macam dalam bahasa C: atau pilihan: ada 3 macam dalam bahasa C: ifif, , if…elseif…else, dan , dan

switchswitch• RepetitionRepetition atau pengulangan: ada 3 macam dalam bahasa C: atau pengulangan: ada 3 macam dalam bahasa C: whilewhile, , do…do…

whilewhile, dan , dan forfor• FlowchartFlowchart

• Representasi grafis dari algoritmaRepresentasi grafis dari algoritma• Menggunakan simbol-simbol khusus yang dihubungkan dengan garis Menggunakan simbol-simbol khusus yang dihubungkan dengan garis

beranak panahberanak panah• Simbol Simbol kotakkotak melambangkan melambangkan aksiaksi• Simbol Simbol ovaloval melambangkan melambangkan awalawal dan dan akhirakhir suatu program atau blok suatu program atau blok

programprogram• Simbol Simbol berlianberlian melambangkan keputusan/pilihan melambangkan keputusan/pilihan

Page 58: Algoritma dan Pemrograman

Selection ControlSelection Control [1] ( [1] (ifif))

• StatementStatement ifif::• Digunakan untuk seleksi suatu kondisiDigunakan untuk seleksi suatu kondisi

• Contoh Contoh pseudocodepseudocode::

If student’s grade is greater than or equal to 60If student’s grade is greater than or equal to 60 Print “Passed” Print “Passed”• Contoh Contoh FlowchartFlowchart::

true

false

grade >= 60 print “Passed”

Page 59: Algoritma dan Pemrograman

Selection ControlSelection Control [2] ( [2] (ifif))

• Jika kondisi Jika kondisi truetrue• Statement Statement PrintPrint dieksekusi dan program dilanjutkan ke dieksekusi dan program dilanjutkan ke statementstatement

berikutnyaberikutnya

• Jika kondisi Jika kondisi falsefalse• Statement Statement PrintPrint diabaikan dan program dilanjutkan ke diabaikan dan program dilanjutkan ke statementstatement berikutnya berikutnya

• DalamDalam bahasa C:bahasa C:if ( grade >= 60 ) if ( grade >= 60 )

printf( "Passed\n" ); printf( "Passed\n" );

Page 60: Algoritma dan Pemrograman

Selection ControlSelection Control [3] ( [3] (if…elseif…else))

• StatementStatement if…elseif…else::• Menspesifikasikan aksi baik untuk kondisi Menspesifikasikan aksi baik untuk kondisi truetrue maupun untuk kondisi maupun untuk kondisi

falsefalse• Contoh Contoh pseudocodepseudocode::

If student’s grade is greater than or equal to 60If student’s grade is greater than or equal to 60 Print “Passed” Print “Passed”

elseelse

Print “Failed”Print “Failed”• Contoh Contoh FlowchartFlowchart:: truefalse

print “Failed” print “Passed”

grade >= 60

Page 61: Algoritma dan Pemrograman

Selection ControlSelection Control [4] ( [4] (if…elseif…else))

• Dalam C :Dalam C :if ( grade >= 60 )if ( grade >= 60 )

printf( "Passed\n");printf( "Passed\n");

elseelse

printf( "Failed\n");printf( "Failed\n"); • Ternary conditional operatorTernary conditional operator ( (?:?:) )

• Memerlukan tiga argumen (kondisi, nilai jika Memerlukan tiga argumen (kondisi, nilai jika truetrue, nilai jika , nilai jika falsefalse))

• Contoh di atas dapat ditulis sbb:Contoh di atas dapat ditulis sbb:

printf( "%s\n", grade >= 60 ? "Passed" : "Failed" ); printf( "%s\n", grade >= 60 ? "Passed" : "Failed" );

• Atau dapat ditulis sbb:Atau dapat ditulis sbb:

grade >= 60 ? printf( “Passed\n” ) : printf( “Failed\grade >= 60 ? printf( “Passed\n” ) : printf( “Failed\n” );n” );

Page 62: Algoritma dan Pemrograman

Selection ControlSelection Control [5] ( [5] (if…elseif…else))

• StatementStatement if…elseif…else bertingkat/bersarang: bertingkat/bersarang:• Digunakan untuk menguji banyak kondisi dimana menempatkan Digunakan untuk menguji banyak kondisi dimana menempatkan statementstatement seleksi seleksi

ifif……elseelse di dalam di dalam statementstatement ifif……elseelse • Sekali kondisi terpenuhi, sisa Sekali kondisi terpenuhi, sisa statementstatement lainnya dilewatkan/diabaikan lainnya dilewatkan/diabaikan• Contoh Contoh pseudocodepseudocode::

IIf student’s grade is greater than or equal to 90f student’s grade is greater than or equal to 90Print “A”Print “A”

else else If student’s grade is greater than or equal to 80If student’s grade is greater than or equal to 80 Print “B” Print “B”else else If student’s grade is greater than or equal to 70 If student’s grade is greater than or equal to 70 Print “C” Print “C” else else If student’s grade is greater than or equal to 60 If student’s grade is greater than or equal to 60 Print “D” Print “D” else else Print “F” Print “F”

Page 63: Algoritma dan Pemrograman

Selection ControlSelection Control [6] ( [6] (if…elseif…else))• Compound statementCompound statement

• Ada lebih dari satu Ada lebih dari satu statementstatement/aksi yang harus dieksekusi setelah suatu kondisi /aksi yang harus dieksekusi setelah suatu kondisi dipenuhidipenuhi

• Sering disebut juga Sering disebut juga blokblok karena ditandai dengan pasangan karena ditandai dengan pasangan {{ dan dan }}• Contoh:Contoh:

if ( grade >= 60 ) if ( grade >= 60 ) printf( "Passed.\n" );printf( "Passed.\n" );else {else { printf( "Failed.\n" );printf( "Failed.\n" ); printf( "You must take this courseprintf( "You must take this course

again.\n" ); again.\n" );}}

• Tanpa tanda kurung kurawal, Tanpa tanda kurung kurawal, statementstatementprintf( "You must take this courseprintf( "You must take this course

again.\n" ); again.\n" );Akan dieksekusi secara otomatis.Akan dieksekusi secara otomatis.

Page 64: Algoritma dan Pemrograman

Selection ControlSelection Control [7] ( [7] (switchswitch))

• Multiple-Selection StatementMultiple-Selection Statement switch:switch:• Berguna pada waktu sebuah variabel atau ekspresi diuji terhadap semua Berguna pada waktu sebuah variabel atau ekspresi diuji terhadap semua

nilai yang mungkin dan masing-masing mengambil aksi yang berbedanilai yang mungkin dan masing-masing mengambil aksi yang berbeda• Format penulisan:Format penulisan:

• Sederetan label Sederetan label casecase dan opsional dan opsional defaultdefault case caseswitchswitch ( value ){ ( value ){

casecase '1': '1':actionsactions

casecase '2': '2':actionsactions

defaultdefault::actionsactions

}}• breakbreak;; keluar dari keluar dari statementstatement

Page 65: Algoritma dan Pemrograman

Selection ControlSelection Control [8] ( [8] (switchswitch))

• Flowchart statementFlowchart statement switchswitch::

true

false

.

.

.

case a case a action(s) break

case b case b action(s) break

false

false

case z case z action(s) break

true

true

default action(s)

Page 66: Algoritma dan Pemrograman

Repetition ControlRepetition Control [1] ( [1] (whilewhile))

• Struktur pengulangan structureStruktur pengulangan structure• Programmer menentukan aksi yang akan diulang selama kondisi tetap Programmer menentukan aksi yang akan diulang selama kondisi tetap

truetrue• PsuedocodePsuedocode::

While there are more items on my shopping listWhile there are more items on my shopping list Purchase next item and cross it off my list Purchase next item and cross it off my list

• whilewhile loop diulang hingga kondisi menjadi loop diulang hingga kondisi menjadi falsefalse• Contoh: Contoh:

int product = 2;int product = 2;

while ( product <= 1000 )while ( product <= 1000 )product = 2 * product;product = 2 * product;

Page 67: Algoritma dan Pemrograman

Repetition ControlRepetition Control [2] ( [2] (whilewhile))

product <= 1000 product = 2 * producttrue

false

• Flowchart:

Page 68: Algoritma dan Pemrograman

Repetition ControlRepetition Control [3] ( [3] (whilewhile))

• Pengulangan yang dikontrol sebuah Pengulangan yang dikontrol sebuah countercounter• LoopLoop diulang hingga diulang hingga countercounter mencapai angka tertentu mencapai angka tertentu• Disebut juga Disebut juga definite repetitiondefinite repetition karena jumlah pengulangan dapat kita karena jumlah pengulangan dapat kita

ketahuiketahui• Contoh: Sebuah kelas dengan 10 orang mahasiswa mengikuti kuis. Nilai Contoh: Sebuah kelas dengan 10 orang mahasiswa mengikuti kuis. Nilai

kuis adalah bilangan bulat dari 0 hingga 100. Tentukan nilai rata-rata kuis kuis adalah bilangan bulat dari 0 hingga 100. Tentukan nilai rata-rata kuis tersebut. tersebut.

• Pseudocode: Pseudocode: Set total to zeroSet total to zero

Set grade counter to oneSet grade counter to oneWhile grade counter is less than or equal to tenWhile grade counter is less than or equal to ten

Input the next gradeInput the next gradeAdd the grade into the totalAdd the grade into the totalAdd one to the grade counterAdd one to the grade counter

Set the class average to the total divided by tenSet the class average to the total divided by tenPrint the class averagePrint the class average

Page 69: Algoritma dan Pemrograman