notasi algoritmik
DESCRIPTION
Notasi Algoritmik. Teks Algoritma. Terdiri atas tiga bagian Judul Kamus / deklarasi Algoritma. Contoh teks algoritma. Pada setiap bagian akan didefinisikan & dituliskan NAMA atau komentar Komentar dituliskan diantara tanda kurung kurawal. - PowerPoint PPT PresentationTRANSCRIPT
20/1/'07 Pengantar 1
Notasi Algoritmik
20/1/'07 Pengantar 2
Teks Algoritma
Terdiri atas tiga bagian• Judul • Kamus / deklarasi• Algoritma
20/1/'07 Pengantar 3
Contoh teks algoritma
20/1/'07 Pengantar 4
Pada setiap bagian akan didefinisikan & dituliskan NAMA atau komentar
Komentar dituliskan diantara tanda kurung kurawal.
Teks yang dituliskan diluar tanda kurung kurawal adalah teks algoritma
20/1/'07 Pengantar 5
NAMA
Definisi Sesuatu yang dipakai sebagai identifikasi:
Modul program, algoritma, skema program dsbFungsi
ProsedurType
Tempat penyimpanan (nama variabel)Konstanta
20/1/'07 Pengantar 6
Aturan pemberian NAMA
1. Dalam bahasa pemrograman, setiap nama mempunyai aturan penulisan. Pada teks algoritma tidak ada aturan ketat.
2. Pemilihan nama harus interpretatif, tidak menimbulkan kerancuan, jika singkat harus disertai penjelasan.contoh: x-y akan membingungkan sebab mungkin “x minus y”
20/1/'07 Pengantar 7
3. Nama merupakan satu kesatuan leksikal, maka sebuah nama harus dituliskan secara utuh (tidak dipisah blank) supaya satu nama dapat dibedakan dengan nama lainnya (besaran leksikal lain)
4. Dimulai dg alphabet5. Tdk boleh memuat operator matematik6. Bersifat unik
20/1/'07 Pengantar 8
Semua nama dalam program harus unik, artinya suatu nama hanya didefinisikan satu
kali saja
Semua nama yang dipakai dalam teks algoritma harus sudah didefinisikan pada
salah satu bagian teks algoritma
20/1/'07 Pengantar 9
JUDULBagian teks algoritma tempat mendefinisikan apakah
teks tsb adalah program, prosedur, fungsi, atau modul
Setelah judul tuliskan spesifikasi singkat dari teks algoritma.
Bagian judul identik dengan judul buku dan intisari pada suatu teks ilmiah dalam suatu makalah
berbahasa Indonesia
20/1/'07 Pengantar 10
KAMUS
Definisi Bagian teks algoritma tempat mendefinisikan:
Nama typeNama konstanta
Nama informasi (nama variabel)Nama prosedur, sekaligus spesifikasi
Nama fungsi, sekaligus spesifikasi
20/1/'07 Pengantar 11
Contoh pendefinisian kamus
20/1/'07 Pengantar 12
ALGORITMA
Definisi Bagian teks algoritma yang berisi
instruksi atau pemanggilan aksi yang telah didefinisikan
20/1/'07 Pengantar 13
Komponen AlgoritmaKomponen teks algoritmik dalam pemrograman
prosedural dapat berupa
Instruksi dasar, seperti I/ O, assignment
Sequence
Analisa kasus
Pengulangan
Tipe Dasar dan Komposisi
23/1/'07 Type 15
TYPEDefinisi:Pola representasi suatu data dalam komputer
Kegunaan:Mendefinisikan objek yang akan diprogram
23/1/'07 Type 16
Mendefinisikan type berarti
Menentukan nama type dalam kamus
Definisi domain harga
Konvensi penulisan konstanta bertype tsb
Operator terhadap objek bertype tsb
23/1/'07 Type 17
Macam-macam TYPE
Type dasar
Bilangan logika/boolean
Bilangan bulatBilangan riil
Karakter
23/1/'07 Type 18
Bilangan logika
23/1/'07 Type 19
Tabel kebenaran operator boolean
23/1/'07 Type 20
Bilangan bulat
23/1/'07 Type 21
Bilangan riil
23/1/'07 Type 22
Karakter
23/1/'07 Type 23
String
23/1/'07 Type 24
Type yang definisi domainnya tidak dilakukan menurut suatu aturan (by definition) melainkan dengan melakukan “enumerasi” atau menyebut
satu per satu nilai anggotanya
Type Enumerasi
23/1/'07 Type 25
Katakunci Pada type enumerasi dikenal cara akses suatu nilai
anggota melalui katakunci
Last, yaitu anggota nilai yang terakhir
First, yaitu anggota nilai yang pertama
Successor(elemen) yaitu anggota nilai yang berikutnya dari elemen
Predesesor(elemen) yaitu anggota nilai yang sebelumnya dari elemen
23/1/'07 Type 26
Contoh Type Hari
23/1/'07 Type 27
Suatu TYPE yang dibentuk (dan diberi nama) dari beberapa komponen bertype tertentu, jadi merupakan kumpulan elemen bertype
dasar atau bertype yang sudah dikenal
Type bentukan
23/1/'07 Type 28
Notasi Type Bentukan (Komposisi)
Type nama_type < elemen_1 : type_1,elemen_2 : type_2,elemen_3 : type_3,……………………>
23/1/'07 Type 29
Contoh 1: Type PointType point menyatakan absis & ordinat
real pada sumbu kartesian
Notasi algoritmik
Type point: < x: real, {absis} y: real {ordinat}
>
23/1/'07 Type 30
Deklarasi variabelDeklarasi variabel P
P : point { artinya P adalah sebuah point }
Cara mengacu elemen P
P.x {menghasilkan nilai absis bernilai real}P.y {menghasilkan nilai ordinat bernilai real}
23/1/'07 Type 31
Domain: <real,real>Konstanta:<5.0,6.0> <6.0,100.0>Operator:• Operator terhadap point harus dibuat:
– Operator aritmatika (+,-,dot product, cross product)– Operator relasional (EQ, NEQ)– Operator lain (IsOrigin, IsOnSbX, dll)
• Operasi real terhadap P.x dan P.y
23/1/'07 Type 32
Contoh 2: Type JAMType J AM menyatakan representasi J AM
dalam notasi HH:MM:SS
HH bernilai [0..23]
MM bernilai [0..59]
SS bernilai [0..59]
23/1/'07 Type 33
Notasi Algoritmik
Type JAM : < HH: integer[0..23], {jam}MM: integer[0..59], {menit}SS: integer[0..59] {detik}
>
Notasi algoritmik
23/1/'07 Type 34
Deklarasi variabel
Deklarasi variabel J
Cara mengacu elemen J
J : JAM {artinya: J adalah sebuah JAM}
J .HH {menghasilkan nilai bagian jam}J .MM {menghasilkan nilai bagian menit}J .SS {menghasilkan nilai bagian detik}
23/1/'07 Type 35
Domain: < integer, integer, integer >Konstanta:<0,0,0> <15,20,30>Operator:• Operator terhadap JAM harus dibuat (konversi
jamtodetik, detiktojam, operasi aritmatika, dll)• Operasi integer terhadap komponen HH,MM,SS
(J1=J2, J1≠J2,J1<J2, dll)
23/1/'07 Type 36
Contoh 3. Sistem Penjadwalan
type J ADWAL menyatakan representasi sistem penjadwalan di STTTelkom
type Jam : integer[7..17]type Dosen : stringtype Matakuliah : stringtype Kelas : string
23/1/'07 Type 37
Notasi algoritmik
type JADWAL : < J : J am, D: Dosen, Mk: Matakuliah, K: Kelas >
Notasi Algoritmik
23/1/'07 Type 38
Deklarasi Variabel
J adwal_kuliah: JADWAL
J adwal_kuliah.JJadwal_kuliah.DJadwal_kuliah.MKJadwal_kuliah.K
Jika dideklarasikan sebuah NAMA Jadwal_kuliah
Cara mengacu elemen di JADWAL
23/1/'07 Type 39
• Domain: sesuai dengan domain masing-masing komponen
• Konstanta: <7,’RMB’,’CS3024’,’IF2803’><9,’ADR’,’CS1023’,’TI3003’>
• Operator:– Untuk jadwal, tidak terdefinisi operator– Tapi kita dapat mengadakan
• Operasi integer thd Jadwal_kuliah.J• Operasi string thd Jadwal_kuliah.D, dst
Komponen Algoritma
29/1/'07 Komponen Algoritma 41
Harga / Nilai
Harga dalam algoritma dapat diperoleh dari
Suatu besaran bertype yang telah dikenal
Isi suatu nama, yaitu nama informasi atau nama konstanta
Hasil penghitungan suatu ekspresi
Hasil yang dikirim suatu fungsi
Konstanta tanpa diberi nama yang dipakai langsung
29/1/'07 Komponen Algoritma 42
Manipulasi HARGA
1. Diisikan ke NAMA informasi (nama variabel) yang mempunyai type sesuai dengan harga tersebut dengan instruksi “assignment”
2. Diacu saja dari suatu nama, untuk dipakai dalam perhitungan atau ekspresi
3. Dituliskan ke piranti keluaran (layar, printer, menyalakan signal, ...)
4. Dipakai dalam ekspresi , tergantung typenya
29/1/'07 Komponen Algoritma 43
Pengisian nama informasi
Suatu nama informasi dapat dipakai dalam ekspresi jika harganya telah terdefinisi
Ada dua cara untuk mengisi suatu nama informasi dengan harga, yaitu dengan:
assignment, atau
dibaca dari suatu piranti masukan
29/1/'07 Komponen Algoritma 44
Assignment adalah instruksi primitif algoritmik untuk menyimpan harga
pada suatu nama informasi yang isinya boleh bervariasi (“variabel”)
dengan perkataan lain adalah memberikan harga pada suatu nama variabel
Dengan pemberian harga ini, harga lama yang disimpan tidak lagi berlaku, yang berlaku adalah harga paling akhir yang
diberikan
29/1/'07 Komponen Algoritma 45
Notasi algoritmik untuk assignment
Dengan syarat:• bagian kiri dan bagian kanan tanda pemberian harga (← )
bertype sama• <nama> dan <nama1> (bagian kiri tanda ← ) harus
merupakan nama informasi, tidak boleh nama konstanta, type, fungsi atau prosedur
• nama yang tertulis di bagian kanan tanda ← (misalnya nama2 atau nama konstanta atau nama yang dipakai dalam ekspresi) boleh berupa nama informasi, nama fungsi, nama konstanta
• semua nama yang dipakai dalam assignment tidak boleh berupa nama type atau nama prosedur
29/1/'07 Komponen Algoritma 46
Pemberian Harga Dari Piranti Masukan
Notasi algoritmik
suatu harga dapat diisikan ke suatu nama informasi melalui pembacaan harga tersebut dari piranti
masukan (keyboard, mouse, scanner, dsb)
29/1/'07 Komponen Algoritma 47
Notasi algoritmik
Syarat • list nama adalah satu atau lebih nama
informasi• nama yang muncul pada list-nama
hanya boleh berupa nama informasi, dan tidak boleh nama lain (nama konstanta, type, fungsi atau prosedur)
29/1/'07 Komponen Algoritma 48
Penulisan Nama Informasi
Suatu harga yang disimpan dalam memori komputer harus dapat dikomunikasikan ke
dunia luar untuk diinterpretasikan oleh pemakai program
Dalam hal ini, harga harus dapat dituliskan ke suatu piranti keluaran, misalnya layar,
printer
Instruksi algortimik untuk menuliskan nama informasi adalah instruksi penulisan atau
output
29/1/'07 Komponen Algoritma 49
Notasi algoritmik untuk penulisan harga
29/1/'07 Komponen Algoritma 50
Syarat • list nama adalah satu atau lebih nama :
boleh nama INFORMASI, nama KONSTANTA.atau nama FUNGSI berikut parameternya. Khusus untuk nama Fungsi, lihat pemakaian fungsi
• nama-nama dalam list-nama tidak boleh berupa nama TYPE atau PROSEDUR
• nama yang akan dituliskan sudah terdefinisi harganya. Jika suatu nama informasi, didefinisikan dengan assignment atau instruksi input
29/1/'07 Komponen Algoritma 51
Ekspresi
Ekspresi suatu “rumus perhitungan", yang terdiri dari operan dan
operator
Ekspresi uner adalah ekspresi dengan operator uner, yaitu
operator yang hanya membutuhkan satu operan
29/1/'07 Komponen Algoritma 52
Ekspresi (cont’d)Ekspresi biner adalah ekspresi
dengan operator biner (membutuhkan dua operan) dapat dituliskan dalam 3
macam notasi, yaitu :• Notasi infix: operan1 operator
operan2• Notasi prefix: operator operan1
operan2• Notasi postfix/suffix/Polish: operan1
operan2 operator
29/1/'07 Komponen Algoritma 53
Contoh • infix :
13 * 5((3 * 5) + (4 div 7) )- (a * b)
• prefix : * 13 5- +* 3 5 div 4 7 * a b
• suffix/Polish : 13 5 *3 5 * 4 7 div + a b * -
29/1/'07 Komponen Algoritma 54
Contoh type ekspresi untuk type dasar• Logik (boolean)
• Numerik• Character dan string
29/1/'07 Komponen Algoritma 55
Contoh Ekspresi boolean
Diberikan sebuah kamus & algoritma untuk mendefinisikan nama variabel
29/1/'07 Komponen Algoritma 56
Contoh Ekspresi boolean
29/1/'07 Komponen Algoritma 57
Contoh Ekspresi Numerik
Diberikan sebuah kamus dan algoritma untuk mendefinisikan nama variabel
29/1/'07 Komponen Algoritma 58
Contoh ekspresi numerik dan hasilnya
29/1/'07 Komponen Algoritma 59
Contoh Ekspresi character dan string
Diberikan sebuah kamus dan algoritma untuk mendefinisikan nama
29/1/'07 Komponen Algoritma 60
Contoh Ekspresi character dan string
29/1/'07 Komponen Algoritma 61
LATIHAN SOAL
• Didefinisikan nama dalam kamus sebagai berikut :
29/1/'07 Komponen Algoritma 62
• Berikut ini adalah contoh ekspresi dalam notasi infix untuk kamus dia atas. Periksalah apakah ekspresi yang dituliskan benar. Jika benar tentukan jenis hasilnya, jika salah koreksilah.