Algoritma dan Struktur Data WEEK III 1
Struktur Dasar Algoritma Sequence Control (Runtunan) Tiap aksi dilakukan secara satu persatu Tiap aksi dilaksanakan secara berurutan Selection Control (Pemilihan) Pemilihan terhadap satu kondisi atau beberapa kondisi Repetition Control (Perulangan) Perulangan
Sequence Control (Runtunan) Urut – urutan langkah penyelesaian masalah Tiap instruksi dikerjakan satu per satu Akhir dari instruksi adalah akhir dari algoritma Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagaimana yang tertulis di dalam teks algoritmanya NOTE : Runtunan (urut –urutan instruksi) adalah sangat penting. Bergantung pada masalahnya,urutan instruksi yang berbeda mungkin tidak ada pengaruhnya terhadap solusi permasalahan, tetapi mungkin juga mempunyai pengaruh (menghasilkan keluaran yang berbeda pula).
Contoh Runtunan Algoritma Runtunan1 Algoritma Runtunan2 {Contoh Algoritma yang mengahasilkan keluaran(output) yang sama jika urutan instruksi diubah} DEKLARASI A,B,C,D : integer DESKRIPSI read(A,B) C A+ B D A*B write(C,D) Algoritma Runtunan2 {Contoh Algoritma yang mengahasilkan keluaran(output) yang sama jika urutan instruksi diubah} DEKLARASI A,B,C,D : integer DESKRIPSI read(A,B) D A*B C A+ B write(C,D) NOTE : Contoh runtunan (urut –urutan instruksi) yang TIDAK ADA PENGARUHNYA terhadap solusi persoalan. Pada contoh algortima di atas keduanya menghasilkan keluaran / output yang sama.
Contoh Runtunan Algoritma Tukar1 {Menukar Nilai A dan B. Nilai A dan B dibaca dari pirnti masukan. Nilai A dan B dicetak ke piranti keluaran baik sebelum pertukaran maupun sesudah pertukaran (BENAR)} DEKLARASI A : integer {nilai pertama} B : integer {nilai kedua} temp : integer {variabel pembantu} DESKRIPSI read(A,B) {baca nilai A dan B} write(A,B) (cetak nilai A dan b sebelum tukar) {proses tukar} tempA AB Btemp write(A,B) {cetak nilai A dan B sesudah tukar} Algoritma Tukar2 {Menukar Nilai A dan B. Nilai A dan B dibaca dari pirnti masukan. Nilai A dan B dicetak ke piranti keluaran baik sebelum pertukaran maupun sesudah pertukaran (SALAH)} DEKLARASI A : integer {nilai pertama} B : integer {nilai kedua} temp : integer {variabel pembantu} DESKRIPSI read(A,B) {baca nilai A dan B} write(A,B) (cetak nilai A dan b sebelum tukar) {proses tukar} tempA Btemp AB write(A,B) {cetak nilai A dan B sesudah tukar} Contoh runtunan (urut –urutan instruksi) yang ADA PENGARUHNYA terhadap solusi persoalan. Pada contoh algortima di atas keduanya menghasilkan keluaran / output yang berbeda. Algoritma Tukar1 adalah yang benar
Selection Control (Pemilihan) Struktur Pemilihan adalah struktur algoritma yang melakukan proses pengujian terhadap suatu kondisi tertentu untuk mengambil keputusan apakah suatu baris atau blok instruksi akan diproses atau tidak. Pengujian kondisi ini dilakukan untuk memilih salah satu dari beberapa alternatif kemungkinan yang tersedia. Ada beberapa alternatif pilihan pelaksanaan aksi Biasanya menggunakan operator relasi /perbandingan. Operator Logika digunakan untuk menggabungkan dua kondisi
Contoh IF dalam kehidupan sehari hari IF Andi juara Kelas THEN Ayah akan membelikannya Handphone END IF Setiap pemilihan (IF) pasti memiliki kondisi dan aksi Kondisi Andi juara kelas Aksi Ayah akan membelikannya Handphone Jika Kondisi bernilai BENAR / TRUE maka aksi akan dilakukan Jika Kondisi bernilai SALAH / FALSE maka aksi tidak dilakukan
Struktur pemilihan IF dengan SATU KASUS ALGORITMA IF <Kondisi> THEN <Aksi> END IF FLOWCHART FLOWCHART Kondisi Kondisi Salah Salah Benar Benar Aksi 1 aksi Aksi 2 Aksi 2 Contoh problem : Jika usia orang tersebut lebih besar atau sama dengan 17 maka orang tersebut boleh masuk ruangan.
Contoh IF dengan SATU KASUS Usia 18 if usia >= 17 then write(‘silahkan masuk’) Endif Keterangan algoritmik : Mula-mula variable (peubah) usia diberi harga 18, kemudian algoritmik mengerjakan kondisi untuk variable usia. Jika usia >= 17 maka aksi akan dilaksanakan. Kondisi 18 >= 17 bernilai true, dan kalimat "silahkan masuk " ditampilkan. Translasi dalam C ++: usia = 18; if (usia >= 17) {cout<<“Silakan Masuk” ; } START usia=18 usia >= 17 write “silahkan masuk” Y T END
Struktur pemilihan IF dengan DUA KASUS FLOWCHART TRANSLASI dalam C++ if (kondisi) {aksi1 } else {aksi 2} end if ALGORITMA IF <Kondisi> THEN <Aksi> ELSE <aksi> END IF Kondisi Salah Benar Aksi 1 Aksi 2 NOTE : Pengujian kondisi dilakukan jika bernilai benar maka aksi satu akan dikerjakan. Sebaliknya jika bernilai salah maka aksi 2 yang akan dikerjakan.
Struktur pemilihan IF dengan DUA KASUS Contoh Problem : Jika usia orang tersebut lebih besar atau sama dengan 17 maka orang tersebut boleh masuk ruangan, selain itu dilarang dilarang masuk. Analisis Problem : Ada 2 kasus (kondisi yang terjadi) 1. usia >= 17 diperbolehkan masuk 2. selain usia >=17 maka dilarang masuk
Struktur pemilihan IF dengan DUA KASUS Solution : usia 16 if usia > 17 then write (‘silahkan masuk’) else write (‘dilarang masuk … !!’) Endif Keterangan algoritmik : Mula-mula variable usia diberi harga 16, kemudian algoritmik mengerjakan kondisi untuk variable usia. Jika usia >= 17 maka aksi1 akan dilaksanakan. Tetapi jika tidak maka aksi2 yang akan dilaksanakan. Kondisi 16 >= 17 bernilai false, dan kalimat “dilarang masuk … !! ” ditampilkan. Translasi dalam c++ usia = 16; If (usia >= 17) cout<<“Silahkan masuk”; cout<<“Dilarang masuk … !”; START usia=18 usia >= 17 Write “silahkan masuk” Y T Write “Dilarang masuk” END
Struktur pemilihan IF dengan DUA KASUS Contoh Problem : Jika Mahasiswa mempunyai nilai lebih besar sama dengan 56 maka lulus, selain itu dinyatakan tidak lulus. Analisis Problem : Ada 2 kasus (kondisi yang terjadi) 1. ? 2. ?
Flowchart kelulusan
Soal Diskusi Contoh Problem : 1. Buatlah flowchart dan pseudocode untuk menentukan seseorang berjenis kelamin pria atau wanita , input dari piranti masukan yaitu karakter “L” atau “P” ! 2. Buatlah flowchart dan pseudocode untuk menentukan apakah sebuah bilangan positif atau negatif, dengan input dari piranti masukan yaitu bilangan bulat ! 2. Buatlah flowchart dan pseudocode untuk menentukan apakah sebuah bilangan ganjil atau genap dengan input dari piranti masukan yaitu bilangan bulat ! 3. Buatlah flowchart dan pseudocode untuk menentukan apakah sebuah bilangan adalah kelipatan 3 atau bukan dengan input dari piranti masukan yaitu bilangan bulat !
Soal Nomor 1 Pseudocode Flowchart
Soal Nomor 2 Pseudocode Flowchart
Soal Nomor 3 Pseudocode Flowchart
Soal Nomor 4 Pseudocode Flowchart
Special thanks for this slide Thank You! 20 Special thanks for this slide Gasim,Josie,Yoannita, and 2 my friends n familly