Implementasi Algortima Notasi Algoritma dan Tipe Data Implementasi Algortima
Notasi Algoritmik Teks algoritma terdiri atas 3 bagian: Judul : spesifikasi teks algoritma secara umum Kamus : pendefinisian nama konstanta,variabel, spesifikasi prosedur,spesifikasi fungsi. Algoritma : instruksi-instruksi proses yang dilakukan Catatan : “Komentar”, dituliskan diantara tanda kurung kurawal
Contoh Judul algoritma_sederhana {algoritma untuk menampilkan isi wadah} Kamus wadah : string Algoritma Output(“memasukan tulisan”) Input(wadah) Output(wadah)
Nama Definisi : sesuatu yang dipakai sebagai identifikasi Aturan pemberian nama : Dalam bahasa pemrograman, setiap “nama” mempunyai aturan penulisan. Pada teks algoritma tidak ada aturan ketat Harus interpretative,tidak menimbulkan kerancuan. Jika singkat harus disertai penjelasan. Harus ditulis utuh (tidak dipisah blank) Harus unik (hanya didefinisikan 1x saja)
Tipe Data Ilustrasi : Penulisan : A : AIR Value / Tipe dari isi yang dapat ditampung wadah Ilustrasi : Penulisan : A : AIR A Wadah/tempat Nama wadah A hanya bisa menampung air Nama Tipe
Tipe Data Definisi : Pola representasi suatu data dalam computer Kegunaan : Mendefinisikan obyek yang akan di program Tipe Data Cara Penulisan: Bilangan : integer char Dasar integer real Bentukan boolean String (tipe dasar khusus) Enumerasi
Contoh penulisan wadah dalam Kamus Type point : <x: integer, y: integer> {koordinat pada sumbu kartesian} Constant phi : real = 3.14 {konstanta, harus menyebutkan tipe data & nilainya} Constant bil : integer = 100 Hasil: integer {variabel, menyebutkan tipe datanya} Jawab : Boolean Titik : point Function inttoreal(i:integer)real {mengkonversi harga i yang bertipe integer menjadi bertipe real} Procedure tulis(input pesan:integer) { I.S : Sembarang F.S : Pesan tertulis dilayar}
Tipe Data : char Nama : char Domain : himpunan yang terdefinisi oleh suatu enemurasi, misal: [‘1’ , ’A’ , ’y’ , return , space] Konstanta : dituliskan diantara tanda petik,misal: ‘A’ , ’Z’
Operator perbandingan Kelompok Operator Arti Hasil Operator perbandingan = Sama dengan Boolean ≠ Tidak sama dengan boolean
Tipe Data : Integer/Bulat Nama : integer Domain : Z Konstanta : 100 , 3, 0 , -3 Bilangan integer mempunyai keterurutan. Suksesor x : x+1 Predesesor : x-1
Operator Aritmatika Kelompok Operator Arti Hasil Operator Aritmatika * Kali Integer + Tambah - Kurang / Bagi Real Div Hasil bagi Mod Sisa hasil bagi Abs Nilai absolut ^ Pangkat integer
Operator Relasional Kelompok Operator Arti Hasil Operator Relasional (perbandingan) < Kurang dari Boolean ≤ Kurang atau sama dengan dari > Lebih besar dari ≥ Lebih atau sama dengan dari = Sama dengan ≠ Tidak sama dengan
Tipe Data : Real/Rill Nama : real Domain : R Konstanta : 0.2 , 18.9 , 100.3 , 12.E-2 Operator : {sama seperti integer, * + - / ^ , tapi tipe hasil real}
Tipe Data : boolean Nama : Boolean Domain : [true,false] Konstanta : true,false
Operator Lojik Kelompok Operator Arti Hasil Operator Lojik AND Dan Boolean OR Atau XOR Ekslusive NOT Negasi EQ Ekivalensi NEQ Negasi ekivalensi
Tabel Kebenaran Operator Boolean Operasi Hasil T AND T T T AND F F F AND T F AND F NOT F NOT T T EQ T T EQ F F EQ T F EQ F Operasi Hasil T OR T T T OR F F OR T F OR F F T XOR T T XOR F F XOR T F XOR F
Tipe Data : String Nama : string Domain : untaian karakter Konstanta : ‘aku’ , ‘IT Telkom’ Operator : Kelompok Operator Arti Hasil Oprator perbandingan = Sama dengan Boolean ≠ Tidak sama dengan konstruksi • Tambah 1 karakter di akhir String o Tambah 1 karakter diakhir & Konkatenasi(gabung) string
Tipe Enumerasi Definisi : Tipe yang definisi domainnya tidak dilakukan menurut suatu aturan (by definition) melainkan dengan melakukan “enumerasi”/menyebutkan satu per satu nilainya. Kata kunci : First Last Succesor Predesesor
Contoh Type Mhs : (Adi,Budi,Cici,Eva,Revi) D3IF : Mhs Cara Mengakses : First (D3IF) ? Last (D3IF) ? Succ (Budi) ? Prec (Revi) ?
Tipe Bentukan Definisi : Tipe yang dibentuk dari beberapa komponen bertipe tertentu (tipe dasar atau tipe yang sudah dikenal) Notasi : Type nama : <elemen1 : tipe, elemen2 : tipe, … >
Contoh Type MissWorld : <nama : string, tinggi : integer, berat : real> Kandidat : MissWorld Cara mengacu : Kandidat.nama Kandidat.tinggi Kandidat.berat Kandidat Ilustrasi : nama tinggi berat
Contoh Domain : <string,integer,real> Konstanta : <“Anastasia” , 175 , 53.5> Operator : Menampilkan data Menguji apakah tinggi & beratnya sudah ideal Mengubah data
Contoh Type body : <tinggi :integer, berat: real> Type MissWorld : <nama :string, badan : body, status : char[1..2] > Kandidat : MissWorld Cara Mengacu : Kandidat.nama Kandidat.badan.tinggi Kandidat.badan.berat Kandidat.status Ilustrasi : badan tinggi berat nama status nama badan status tinggi berat Kandidat
Referensi Liem, Inggriani. Diktat kuliah Algoritma & Pemrograman. ITB. 2003
See you… Thank you!