Notasi Algoritmik

of 23 /23
Notasi Algoritmik Algoritma dan Struktur Data

Embed Size (px)

description

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). - PowerPoint PPT Presentation

Transcript of Notasi Algoritmik

  • Notasi AlgoritmikAlgoritma dan Struktur Data

  • Apakah ini kode program?/*Kamus*/x,y,z : integerterbesar: integer

    /*Algoritma*/input(x,y,z)terbesar xIf (y > terbesar) then terbesar yIf (z > terbesar) then terbesar zoutput(terbesar)

  • Algoritma vs Kode ProgramAlgoritma tidak sama dengan kode program.Algoritma: langkah-langkah sistematis untuk penyelesaian suatu masalah yang dapat diimplementasikan ke dalam bahasa pemrograman.Notasi algoritmik merupakan notasi yang digunakan untuk menuliskan suatu algoritma.Kode program merupakan implementasi dari notasi algoritmik ke dalam bahasa pemrograman tertentu.

  • /*Algoritma untuk menukar nilai dari dua buah variabel*/-----------------------/*Kamus*/a,b,temp : integer

    /*Algoritma*/input(a,b)temp aa bb tempoutput(a,b)

    /*Implementasi algoritma ke dalam Bahasa C*/-----------------------/*Deklarasi variabel*/int a,b,temp;

    /*Program utama*/scanf(%d,&a);scanf(%d,&b);temp = a;a = bb = tempprintf(a: %d \n,a);printf(b: %d \n,b);

  • PengondisianUntuk memilih suatu tindakan berdasarkan kondisi tertentuAda dua macam notasi algoritmik:If-thenDepend on

  • Notasi if-thenIf then If thenIf then Else if then

  • /*Algoritma untuk melakukan pengecekan bilangan genap atau ganjil*/-----------------------------------------------/*Kamus*/bil : integercek : string

    /*Algoritma*/Input(bil)if (bil mod 2 = 0) thencek = genapelsecek = ganjiloutput(cek)

  • /*Algoritma untuk menentukan yudisium mahasiswa*/-----------------------------------------------------/*Kamus*/ipk: integeryudisium : string

    /*Algoritma*/input(ipk)if (ipk >= 3.5) thenyudisium = cumlaudeElse if (ipk >= 3.0) thenyudisium = sangat memuaskanElse if (ipk >= 2.75) thenyudisium = memuaskanElse if (ipk >= 2.25) thenyudisium = cukupelseyudisium TIDAK LULUSoutput(yudisium)

  • Notasi depend on Depend on : : : Depend on : depend on : : :

  • /*Algoritma untuk menampilkan nama hari berdasarkan nomor urut hari*/---------------------------------------------------------------------/*Kamus*/idxHari: integer [1..7]hari: string

    /*Algoritma*/input(idxHari)Depend on (idxHari)1 : hari Senin2 : hari Selasa3 : hari Rabu4 : hari Kamis5 : hari Jumat6 : hari Sabtu7 : hari Mingguoutput(hari)If (hari = Sabtu) or (hari = Minggu) thenoutput(HOREEE!!!)elseoutput(hmmmm)

  • Latihan Buatlah algoritma untuk menentukan kondisi tubuh seseorang, apakah kurus, ideal, atau kegemukan. Diketahui bahwa rumus untuk menghitung berat badan 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.

  • Contoh

  • Contoh (2)

  • Silakan mengerjakan Waktunya 10-15 menit

  • /*Algoritma untuk menentukan kategori berat badan*/----------------------------------------------------------/*Kamus*/berat,tinggi: integerbbi,persentase,selisih: realkategori: string

    /*Algoritma*/input(berat,tinggi)bbi (tinggi-100) * 0.9selisih tinggi - bbiIf (selisih < 0) thenselisih -1 * selisih/*untuk mempositifkan nilai selisih jika selisihnya bernilai negatif*/persentase (bbi / tinggi) * 1

  • /*Lanjutan dari algoritma sebelumnya*/

    If (persentase > 0.2) thenkategori KEGEMUKANElse if (persentase < 0.1) thenkategori KURUSElsekategori IDEALoutput(kategori)

  • PengulanganUntuk melakukan suatu proses secara berulang-ulang, sebanyak frekuensi yang ditentukan.Ada empat macam notasi algoritmikTraversalWhile-doRepeat-untilIterate-stop

  • Notasi traversal Identik dengan notasi for pada Bahasa C. traversal [nilai ke-1.. Nilai ke-n]

  • Contoh/*Algoritma menampilkan deret bilangan genap*/-----------------------------------------------------/*Kamus*/idx,awal,akhir: integer

    /*Algoritma*/Input(awal,akhir)idx traversal[awal..akhir]If (idx mod 2 = 0) thenoutput(idx)

  • Notasi while-doWhile do

  • Contoh/*Algoritma menampilkan deret bilangan genap*/-----------------------------------------------------/*Kamus*/idx,awal,akhir: integer

    /*Algoritma*/Input(awal,akhir)idx awalWhile(idx

  • LatihanBuatlah algoritma untuk menampilkan gambar berikut:**********Input berupa satu bilangan yang akan menyatakan berapa jumlah baris dari gambar tersebut

  • /*Algoritma menampilkan pola segitiga*/-----------------------------------------------------/*Kamus*/Idx1, idx2,n : integer

    /*Algoritma*/Input(n)idx1 traversal[1..n]idx2 traversal[1..idx1]output(*)