Dasardasar Algoritma Dan Representasi Algoritma Pengampu Muhammad Zidny

  • Slides: 39
Download presentation
Dasar-dasar Algoritma Dan Representasi Algoritma Pengampu : Muhammad Zidny Naf’an, M. Kom

Dasar-dasar Algoritma Dan Representasi Algoritma Pengampu : Muhammad Zidny Naf’an, M. Kom

STRUKTUR DASAR ALGORITMA 2

STRUKTUR DASAR ALGORITMA 2

Proses, Instruksi, dan Aksi § Algoritma merupakan deskripsi urutan pelaksanaan suatu proses. § Algoritma

Proses, Instruksi, dan Aksi § Algoritma merupakan deskripsi urutan pelaksanaan suatu proses. § Algoritma tersusun oleh sederetan langkah instruksi yang logis. § Tiap langkah instruksi akan mengerjakan suatu tindakan (Aksi). § Bila Aksi dilaksanakan, maka sejumlah operasi yang bersesuaian akan dikerjakan oleh CPU 3

Struktur Dasar Algoritma • Runtunan (Sequence) • Pemilihan (Selection) • Pengulangan (Repetition) 4

Struktur Dasar Algoritma • Runtunan (Sequence) • Pemilihan (Selection) • Pengulangan (Repetition) 4

Struktur Dasar Algoritma Runtunan (sequence) § Runtunan (sequence) • Aksi-aksi dalam algoritma yang dikerjakan

Struktur Dasar Algoritma Runtunan (sequence) § Runtunan (sequence) • Aksi-aksi dalam algoritma yang dikerjakan secara berurutan • Tiap instruksi dikerjakan satu per satu • Tiap instruksi dilaksanakan tepat satu kali; tidak ada instruksi yang di ulang • Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagaimana yang tertulis di dalam teks algoritmanya. • Akhir dari instruksi terakhir merupakan akhir algoritma • Contoh : A 1. Aksi 1 A 2. Aksi 2 A 3. Aksi 3 • mula-mula aksi 1 dilakukan • aksi 2 dilakukan setelah aksi 1 selesai dilaksanakan • dst. 5

Struktur Dasar Algoritma Pemilihan (Selection) § memungkinkan suatu Aksi dieksekusi jika suatu kondisi terpenuhi

Struktur Dasar Algoritma Pemilihan (Selection) § memungkinkan suatu Aksi dieksekusi jika suatu kondisi terpenuhi atau tidak terpenuhi § Bentuk-bentuk pemilihan • if – else • switch - case 6

Struktur Dasar Algoritma Pemilihan (Selection) switch - case § Konstruksi ini digunakan sebagai pengganti

Struktur Dasar Algoritma Pemilihan (Selection) switch - case § Konstruksi ini digunakan sebagai pengganti konstruksi if-else, bila konstruksi if-else bertingkat terlalu jauh, sehingga menjadi sulit dibaca. switch (ekspresi) { case constant_1 : statements_1; break; case constant_2 : statements_2; … case constant_N : statements_N; break; default : statements; } 8

Struktur Dasar Algoritma § Pengulangan (repeatition) § Aksi-aksi yang dikerjakan berulang kali § Bentuk-bentuk

Struktur Dasar Algoritma § Pengulangan (repeatition) § Aksi-aksi yang dikerjakan berulang kali § Bentuk-bentuk Pengulangan : 1. FOR pencacah pengulangan dari a sampai b DO Aksi (aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari a sampai b yakni sebanyak b-a+1 kali) 9

2. REPEAT Aksi UNTIL kondisi (pengulangan aksi dilakukan sehingga kondisi/persyaratan berhenti terpenuhi) 3. WHILE

2. REPEAT Aksi UNTIL kondisi (pengulangan aksi dilakukan sehingga kondisi/persyaratan berhenti terpenuhi) 3. WHILE kondisi DO Aksi (selama kondisi/persyaratan pengulangan masih benar, maka aksi dikerjakan) 10

REPRESENTASI ALGORITMA 11

REPRESENTASI ALGORITMA 11

Representasi Algoritma (Notasi Algoritmik) • Kalimat Deklaratif • Pseudocode • Flowchart (diagram alir) 12

Representasi Algoritma (Notasi Algoritmik) • Kalimat Deklaratif • Pseudocode • Flowchart (diagram alir) 12

Kalimat Deklaratif Judul program/algoritma PROGRAM Hitung Luas Lingkaran Program untuk menghitung luas lingkaran dengan

Kalimat Deklaratif Judul program/algoritma PROGRAM Hitung Luas Lingkaran Program untuk menghitung luas lingkaran dengan diketahui PHI=3. 14 Algoritma: 1. Baca r 2. Hitung Luas dengan rumus = PHI*r*r 3. Cetak Luas 13

Kalimat Deklaratif Judul program/algoritma PROGRAM Euclidean Program untuk mencari GCD dari dua buah bilangan

Kalimat Deklaratif Judul program/algoritma PROGRAM Euclidean Program untuk mencari GCD dari dua buah bilangan bulat positif m dan n (m >= n). GCD dari m dan n adalah bilangan bulat positif terbesar yang habis membagi m dan n Algoritma: 1. Baca m dan n 2. Jika n=0 maka m adalah jawabannya; stop Tetapi jika n!= 0 Lanjutkan ke langkah 3 3. Bagilah m dengan n dan misalkan r adalah sisanya 4. Ganti m dengan nilai n dengan nilai r, lalu ulang kembali ke langkah 1 14 Algoritma

Pseudocode § Kode atau tanda yang menyerupai (pseudo) program atau merupakan penjelasan cara menyelesaikan

Pseudocode § Kode atau tanda yang menyerupai (pseudo) program atau merupakan penjelasan cara menyelesaikan suatu masalah. § Pseudocode sering digunakan oleh manusia (programmer) untuk menuliskan algoritma sebab mudah dipahami dan digunakan karena mirip dengan kode 15 kode program sebenarnya.

Struktur Pseudocode PROGRAM Nama Program {Penjelasan tentang algoritma, berisi uraian singkat mengenai masalah yang

Struktur Pseudocode PROGRAM Nama Program {Penjelasan tentang algoritma, berisi uraian singkat mengenai masalah yang akan diselesaikan} DEKLARASI {semua nama yang dipakai, meliputi nama tipe, nama konstanta, nama peubah, nama prosedur, dan nama fungsi} ALGORITMA: {semua langkah/aksi algoritma dituliskan disini} 16

Format Pseudocode Lengkap Judul program/algoritma PROGRAM Euclidean Program untuk mencari GCD dari dua buah

Format Pseudocode Lengkap Judul program/algoritma PROGRAM Euclidean Program untuk mencari GCD dari dua buah bilangan bulat positif m dan n (m >= n). GCD dari m dan n adalah bilangan bulat positif terbesar yang habis membagi m dan n Deklarasi: m, n r : integer {bil bulat} {sisa hasil bagi} Deklarasi variable komentar Algoritma read(m, n) {m >= n} while n!= 0 do Algoritma r m MOD n m n n r end while {kondisi selesai pengulangan n=0, maka gcd(m, n) = m} 17

Perbandingan Antara Notasi Algoritmik Kalimat Deklaratif Dengan Pseudocode Algoritma Nilai A dikali dengan 10

Perbandingan Antara Notasi Algoritmik Kalimat Deklaratif Dengan Pseudocode Algoritma Nilai A dikali dengan 10 Cetak nilai A bila lebih besar 10 Dari dua bilangan A dan B, cari bilangan terbesar Pseudocode A A x 10 IF A >10 THEN PRINT A IF A > B THEN PRINT A ELSE PRINT B 18

Flow Chart § Flow chart suatu bagan/diagram yang menggambarkan aliran proses yang dikerjakan program

Flow Chart § Flow chart suatu bagan/diagram yang menggambarkan aliran proses yang dikerjakan program dari awal sampai akhir. § Flow chart adalah algoritma yang digambarkan dengan diagram. § Fungsi dari flow chart adalah mendeskripsikan urutan pelaksanaan suatu proses (sama dengan fungsi algoritma). 19

Jenis Flowchart § Sistem Flowchart Urutan proses dalam sistem dengan menunjukkan alat media input,

Jenis Flowchart § Sistem Flowchart Urutan proses dalam sistem dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data. 20

Jenis Flowchart Start § Program Flowchart Urutan instruksi yang digambarkan dengan simbol tertentu untuk

Jenis Flowchart Start § Program Flowchart Urutan instruksi yang digambarkan dengan simbol tertentu untuk memecahkan masalah dalam suatu program Input alas, tinggi Luas = alas*tinggi Print Luas End 21

Pembuatan Flowchart § Dalam pembuatan flowchart tidak ada kaidah yang baku. • Flowchart =

Pembuatan Flowchart § Dalam pembuatan flowchart tidak ada kaidah yang baku. • Flowchart = gambaran hasil analisa suatu masalah. • Flowchart dapat bervariasi antara satu pemrogram dengan pemrogram lainnya. § Secara garis besar ada 3 bagian utama: • Input • Proses • Output 22

§ Beberapa hal yang perlu diperhatikan dalam pembuatan flowchart, yaitu : • Hindari pengulangan

§ Beberapa hal yang perlu diperhatikan dalam pembuatan flowchart, yaitu : • Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat. • Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas. • Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END. 23

Simbol Flowchart Simbol Nama Keterangan Terminator Tanda mulai/selesai Input/output Operasi pemasukan data atau penampilan

Simbol Flowchart Simbol Nama Keterangan Terminator Tanda mulai/selesai Input/output Operasi pemasukan data atau penampilan data Proses Menyatakan sebarang proses Keputusan Pengambilan keputusan. Di dalam simbol berupa pertanyaan dengan jawaban YA atau TIDAK 24

Simbol Flowchart Simbol Nama Keterangan Proses Terdefinisi Tanda prosedur/fungsi Konektor Sambungan dari satu proses

Simbol Flowchart Simbol Nama Keterangan Proses Terdefinisi Tanda prosedur/fungsi Konektor Sambungan dari satu proses ke poses yang lain dalam halaman yang sama Konektor Sambungan dari satu proses ke poses yang lain dalam halaman yang berbeda 25

Simbol Flowchart Simbol Nama Keterangan Preparation Inisialisasi perulangan 26

Simbol Flowchart Simbol Nama Keterangan Preparation Inisialisasi perulangan 26

CONTOH ALGORITMA SEKUENSIAL 27

CONTOH ALGORITMA SEKUENSIAL 27

Contoh 1 (Konversi Fahrenheit - Celcius) 28

Contoh 1 (Konversi Fahrenheit - Celcius) 28

Contoh 1 (Konversi Fahrenheit - Celcius) PROGRAM Konversi Fahrenheit ke Celcius {algoritma ini akan

Contoh 1 (Konversi Fahrenheit - Celcius) PROGRAM Konversi Fahrenheit ke Celcius {algoritma ini akan menghitung nilai Celcius dari nilai Fahrenheit yang diinputkan} DEKLARASI f, c : float ALGORITMA read(f) c (F-32) * 5/9 print(c) 29

Contoh 2 (Menghitung Luas Lingkaran) 30

Contoh 2 (Menghitung Luas Lingkaran) 30

Contoh 2 (Menghitung Luas Lingkaran) PROGRAM Menghitung Luas Lingkaran {algoritma ini akan menghitung luas

Contoh 2 (Menghitung Luas Lingkaran) PROGRAM Menghitung Luas Lingkaran {algoritma ini akan menghitung luas lingkaran berdasarkan jari-jari yang diinputkan} DEKLARASI r, Luas: float ALGORITMA read(r) Luas phi * r *r print(Luas) 31

Contoh 3 (Konversi Koordinat Polar ke Koordinat Cartesian) 32

Contoh 3 (Konversi Koordinat Polar ke Koordinat Cartesian) 32

Contoh 3 (Konversi Koordinat Polar ke Koordinat Cartesian) PROGRAM Konversi Koordinat {algoritma ini akan

Contoh 3 (Konversi Koordinat Polar ke Koordinat Cartesian) PROGRAM Konversi Koordinat {algoritma ini akan mengkonversi koordinat polar menjadi koordinat cartesian} DEKLARASI radius, alpha, X, Y : integer ALGORITMA read(radius) read(alpha) X Radius * Cos(Alpha) Y Radius * Sin(Alpha) print(X) print(Y) 33

Contoh 3 (Bilangan Terbesar) 34

Contoh 3 (Bilangan Terbesar) 34

Contoh 3 (Bilangan Terbesar) PROGRAM Mendapatkan Bilangan Terbesar {algoritma ini akan mencari dan mendapatkan

Contoh 3 (Bilangan Terbesar) PROGRAM Mendapatkan Bilangan Terbesar {algoritma ini akan mencari dan mendapatkan bilangan terbesar dari dua bilangan yang diinputkan} DEKLARASI bilangan. Pertama, bilangan. Kedua : integer ALGORITMA read(bilangan. Pertama) read(bilangan. Kedua) if bilangan. Pertama > bilangan. Kedua print(bilangan. Pertama) else print(bilangan. Kedua) end if 35

Diskusi • Silahkan bentuk kelompok kecil dgn anggota 5 orang • Buatlah algoritma dalam

Diskusi • Silahkan bentuk kelompok kecil dgn anggota 5 orang • Buatlah algoritma dalam kalimat deklaratif, flowchart, dan pseudocode untuk suatu masalah tertentu • Silahkan tentukan sendiri masalahnya • Waktu 15 menit dan presentasi 1 kelompok dipilih secara acak 36

Tugas • Problem: Seorang kasir menginputkan data barang yang dibeli oleh pelanggan ke dalam

Tugas • Problem: Seorang kasir menginputkan data barang yang dibeli oleh pelanggan ke dalam sistem. Setiap pembelian barang akan mendapatkan diskon sebesar 15% • Alur program: pertama program meminta input data nama barang dan harga asli, kemudian program akan menghitung diskon, lalu mencetak nama barang, diskon, dan harga setelah diskon • Buatlah algoritma untuk kasus tersebut dalam bentuk flowchart dan pseudocode 38

TUGAS 1. Buat algoritma dalam bentuk kalimat deklaratif, pseudocode & flowchart untuk mengkonversi dari

TUGAS 1. Buat algoritma dalam bentuk kalimat deklaratif, pseudocode & flowchart untuk mengkonversi dari satuan jam dan menit menjadi detik Misal 1 jam, 20 menit = 3600 + 1200 = 4800 detik

Di suatu pertemuan ada 4 orang pria dewasa, 4 wanita dewasa, dan 4 anak-anak.

Di suatu pertemuan ada 4 orang pria dewasa, 4 wanita dewasa, dan 4 anak-anak. Keempat pria dewasa itu bernama: Santo, Markam, Gunawan, dan Saiful. Keempat wanita dewasa itu bernama Ria, Gina, Dewi, dan Hesti. Keempat anak itu bernama Hadi, Putra, Bobby dan Soleh. Sebenarnya mereka berasal dari 4 keluarga yang setiap keluarga terdiri dari seorang ayah, seorang ibu dan satu orang anak, namun tidak diketahui yang mana yang menjadi ayah dan mana yang menjadi ibu dan mana yang menjadi anak dari masing-masing keluarga itu. Kecuali, beberapa hal diketahui sebagai berikut: �Ibu Ria adalah ibu dari Soleh. �Pak Santo adalah ayah dari Hadi. �Pak Saiful adalah suami dari Ibu Dewi, tapi bukan ayah dari Bobby. �Pak Gunawan adalah suami Ibu Hesti. (1) Putra adalah anak dari Pak. . . . (2) Anak dari Pak Gunawan adalah. . . . 40

Terimakasih 41

Terimakasih 41