1 / 23

Notasi Algoritmik

Notasi Algoritmik. Algoritma dan Struktur Data. Apakah ini kode program?. /*Kamus*/ x,y,z : integer terbesar: integer /*Algoritma*/ input (x,y,z) terbesar  x If (y > terbesar) then terbesar  y If (z > terbesar) then terbesar  z output (terbesar).

hao
Download Presentation

Notasi Algoritmik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Notasi Algoritmik Algoritma dan Struktur Data

  2. Apakah ini kode program? /*Kamus*/ x,y,z : integer terbesar: integer /*Algoritma*/ input(x,y,z) terbesar  x If (y > terbesar) then terbesar  y If (z > terbesar) then terbesar  z output(terbesar)

  3. Algoritma vs Kode Program • Algoritmatidaksamadengankode program. • Algoritma: langkah-langkahsistematisuntukpenyelesaiansuatumasalah yang dapatdiimplementasikankedalambahasapemrograman. • Notasialgoritmikmerupakannotasi yang digunakanuntukmenuliskansuatualgoritma. • Kode program merupakanimplementasidarinotasialgoritmikkedalambahasapemrogramantertentu.

  4. /*Implementasi algoritma ke dalam Bahasa C*/ ----------------------- /*Deklarasi variabel*/ int a,b,temp; /*Program utama*/ scanf(“%d”,&a); scanf(“%d”,&b); temp = a; a = b b = temp printf(“a: %d \n”,a); printf(“b: %d \n”,b); /*Algoritma untuk menukar nilai dari dua buah variabel*/ ----------------------- /*Kamus*/ a,b,temp : integer /*Algoritma*/ input(a,b) temp  a a  b b  temp output(a,b)

  5. Pengondisian • Untuk memilih suatu tindakan berdasarkan kondisi tertentu • Ada dua macam notasi algoritmik: • If-then • Depend on

  6. Notasi “if-then” • If <kondisi> then <aksi> • If <kondisi> then <aksi 1> <aksi 2> <aksi n> • If <kondisi> then <aksi> Elseif <kondisi> then <aksi>

  7. /*Algoritma untuk melakukan pengecekan bilangan genap atau ganjil*/ ----------------------------------------------- /*Kamus*/ bil : integer cek : string /*Algoritma*/ Input(bil) if (bil mod 2 = 0) then cek = ‘genap’ else cek = ‘ganjil’ output(cek)

  8. /*Algoritma untuk menentukan yudisium mahasiswa*/ ----------------------------------------------------- /*Kamus*/ ipk: integer yudisium : string /*Algoritma*/ input(ipk) if (ipk >= 3.5) then yudisium = ‘cumlaude’ Elseif (ipk >= 3.0) then yudisium = ‘sangat memuaskan’ Elseif (ipk >= 2.75) then yudisium = ‘memuaskan’ Elseif (ipk >= 2.25) then yudisium = ‘cukup’ else yudisium  ‘TIDAK LULUS’ output(yudisium)

  9. Notasi “depend on” • Dependon <variabel> <kondisi 1> : <aksi 1> <kondisi 2> : <aksi 2> <kondisi n> : <aksi n> • Dependon <variabel1> <kondisi 1> : depend on <variabel 2> <kondisi 2.1> : <aksi 2.1> <kondisi 2.2> : <aksi 2.2> <kondisi 2> : <aksi 2>

  10. /*Algoritma untuk menampilkan nama hari berdasarkan nomor urut hari*/ --------------------------------------------------------------------- /*Kamus*/ idxHari: integer [1..7] hari: string /*Algoritma*/ input(idxHari) Dependon (idxHari) 1 : hari ‘Senin’ 2 : hari ‘Selasa’ 3 : hari ‘Rabu’ 4 : hari ‘Kamis’ 5 : hari ‘Jumat’ 6 : hari ‘Sabtu’ 7 : hari ‘Minggu’ output(hari) If (hari = ‘Sabtu’) or (hari = ‘Minggu’) then output(‘HOREEE…!!!’) else output(‘hmmmm…’)

  11. Latihan  • Buatlahalgoritmauntukmenentukankondisitubuhseseorang, apakahkurus, ideal, ataukegemukan. Diketahuibahwarumusuntukmenghitungberatbadan ideal adalah: BBI = (Tinggi Badan - 100) * 90% Ketentuan kategori berat badan: - jika berat badan seseorang 20% lebih besar dari nilai BBI-nya, maka kategorinya = kegemukan. - jika berat badan seseorang 10% lebih kecil dari nilai BBI-nya, maka kategorinya = kurus. - jika berat badan seseorang sama dengan nilai BBI-nya, maka kategorinya = ideal.

  12. Contoh

  13. Contoh (2)

  14. Silakan mengerjakan  • Waktunya 10-15 menit

  15. /*Algoritma untuk menentukan kategori berat badan*/ ---------------------------------------------------------- /*Kamus*/ berat,tinggi: integer bbi,persentase,selisih: real kategori: string /*Algoritma*/ input(berat,tinggi) bbi  (tinggi-100) * 0.9 selisih  tinggi - bbi If (selisih < 0) then selisih  -1 * selisih /*untuk mempositifkan nilai selisih jika selisihnya bernilai negatif*/ persentase  (bbi / tinggi) * 1

  16. /*Lanjutan dari algoritma sebelumnya*/ If (persentase > 0.2) then kategori  ‘KEGEMUKAN’ Elseif (persentase < 0.1) then kategori  ‘KURUS’ Else kategori  ‘IDEAL’ output(kategori)

  17. Pengulangan • Untuk melakukan suatu proses secara berulang-ulang, sebanyak frekuensi yang ditentukan. • Ada empat macam notasi algoritmik • Traversal • While-do • Repeat-until • Iterate-stop

  18. Notasi “traversal” • Identikdengannotasi “for” padaBahasa C. • <pencacah> traversal [nilai ke-1.. Nilaike-n] <aksi 1> <aksi n>

  19. Contoh /*Algoritma menampilkan deret bilangan genap*/ ----------------------------------------------------- /*Kamus*/ idx,awal,akhir: integer /*Algoritma*/ Input(awal,akhir) idx traversal[awal..akhir] If (idx mod 2 = 0) then output(idx)

  20. Notasi “while-do” • While <kondisi> do <aksi 1> <aksi 2>

  21. Contoh /*Algoritma menampilkan deret bilangan genap*/ ----------------------------------------------------- /*Kamus*/ idx,awal,akhir: integer /*Algoritma*/ Input(awal,akhir) idx  awal While(idx <= akhir) do If (idx mod 2 = 0) then output(idx endif idx  idx + 1

  22. Latihan • Buatlahalgoritmauntukmenampilkangambarberikut: * ** *** **** Input berupasatubilangan yang akanmenyatakanberapajumlahbarisdarigambartersebut

  23. /*Algoritma menampilkan pola segitiga*/ ----------------------------------------------------- /*Kamus*/ Idx1, idx2,n : integer /*Algoritma*/ Input(n) idx1 traversal[1..n] idx2 traversal[1..idx1] output(‘*’)

More Related