notasi algoritmik

63
20/1/'07 Pengantar 1 Notasi Algoritmik

Upload: griffith-parry

Post on 04-Jan-2016

76 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: Notasi Algoritmik

20/1/'07 Pengantar 1

Notasi Algoritmik

Page 2: Notasi Algoritmik

20/1/'07 Pengantar 2

Teks Algoritma

Terdiri atas tiga bagian• Judul • Kamus / deklarasi• Algoritma

Page 3: Notasi Algoritmik

20/1/'07 Pengantar 3

Contoh teks algoritma

Page 4: Notasi Algoritmik

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

Page 5: Notasi Algoritmik

20/1/'07 Pengantar 5

NAMA

Definisi Sesuatu yang dipakai sebagai identifikasi:

Modul program, algoritma, skema program dsbFungsi

ProsedurType

Tempat penyimpanan (nama variabel)Konstanta

Page 6: Notasi Algoritmik

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”

Page 7: Notasi Algoritmik

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

Page 8: Notasi Algoritmik

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

Page 9: Notasi Algoritmik

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

Page 10: Notasi Algoritmik

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

Page 11: Notasi Algoritmik

20/1/'07 Pengantar 11

Contoh pendefinisian kamus

Page 12: Notasi Algoritmik

20/1/'07 Pengantar 12

ALGORITMA

Definisi Bagian teks algoritma yang berisi

instruksi atau pemanggilan aksi yang telah didefinisikan

Page 13: Notasi Algoritmik

20/1/'07 Pengantar 13

Komponen AlgoritmaKomponen teks algoritmik dalam pemrograman

prosedural dapat berupa

Instruksi dasar, seperti I/ O, assignment

Sequence

Analisa kasus

Pengulangan

Page 14: Notasi Algoritmik

Tipe Dasar dan Komposisi

Page 15: Notasi Algoritmik

23/1/'07 Type 15

TYPEDefinisi:Pola representasi suatu data dalam komputer

Kegunaan:Mendefinisikan objek yang akan diprogram

Page 16: Notasi Algoritmik

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

Page 17: Notasi Algoritmik

23/1/'07 Type 17

Macam-macam TYPE

Type dasar

Bilangan logika/boolean

Bilangan bulatBilangan riil

Karakter

Page 18: Notasi Algoritmik

23/1/'07 Type 18

Bilangan logika

Page 19: Notasi Algoritmik

23/1/'07 Type 19

Tabel kebenaran operator boolean

Page 20: Notasi Algoritmik

23/1/'07 Type 20

Bilangan bulat

Page 21: Notasi Algoritmik

23/1/'07 Type 21

Bilangan riil

Page 22: Notasi Algoritmik

23/1/'07 Type 22

Karakter

Page 23: Notasi Algoritmik

23/1/'07 Type 23

String

Page 24: Notasi Algoritmik

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

Page 25: Notasi Algoritmik

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

Page 26: Notasi Algoritmik

23/1/'07 Type 26

Contoh Type Hari

Page 27: Notasi Algoritmik

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

Page 28: Notasi Algoritmik

23/1/'07 Type 28

Notasi Type Bentukan (Komposisi)

Type nama_type < elemen_1 : type_1,elemen_2 : type_2,elemen_3 : type_3,……………………>

Page 29: Notasi Algoritmik

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}

>

Page 30: Notasi Algoritmik

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}

Page 31: Notasi Algoritmik

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

Page 32: Notasi Algoritmik

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]

Page 33: Notasi Algoritmik

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

Page 34: 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}

Page 35: Notasi Algoritmik

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)

Page 36: Notasi Algoritmik

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

Page 37: Notasi Algoritmik

23/1/'07 Type 37

Notasi algoritmik

type JADWAL : < J : J am, D: Dosen, Mk: Matakuliah, K: Kelas >

Notasi Algoritmik

Page 38: 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

Page 39: Notasi Algoritmik

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

Page 40: Notasi Algoritmik

Komponen Algoritma

Page 41: Notasi Algoritmik

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

Page 42: Notasi Algoritmik

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

Page 43: Notasi Algoritmik

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

Page 44: Notasi Algoritmik

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

Page 45: Notasi Algoritmik

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

Page 46: Notasi Algoritmik

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)

Page 47: Notasi Algoritmik

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)

Page 48: Notasi Algoritmik

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

Page 49: Notasi Algoritmik

29/1/'07 Komponen Algoritma 49

Notasi algoritmik untuk penulisan harga

Page 50: Notasi Algoritmik

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

Page 51: Notasi Algoritmik

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

Page 52: Notasi Algoritmik

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

Page 53: Notasi Algoritmik

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 * -

Page 54: Notasi Algoritmik

29/1/'07 Komponen Algoritma 54

Contoh type ekspresi untuk type dasar• Logik (boolean)

• Numerik• Character dan string

Page 55: Notasi Algoritmik

29/1/'07 Komponen Algoritma 55

Contoh Ekspresi boolean

Diberikan sebuah kamus & algoritma untuk mendefinisikan nama variabel

Page 56: Notasi Algoritmik

29/1/'07 Komponen Algoritma 56

Contoh Ekspresi boolean

Page 57: Notasi Algoritmik

29/1/'07 Komponen Algoritma 57

Contoh Ekspresi Numerik

Diberikan sebuah kamus dan algoritma untuk mendefinisikan nama variabel

Page 58: Notasi Algoritmik

29/1/'07 Komponen Algoritma 58

Contoh ekspresi numerik dan hasilnya

Page 59: Notasi Algoritmik

29/1/'07 Komponen Algoritma 59

Contoh Ekspresi character dan string

Diberikan sebuah kamus dan algoritma untuk mendefinisikan nama

Page 60: Notasi Algoritmik

29/1/'07 Komponen Algoritma 60

Contoh Ekspresi character dan string

Page 61: Notasi Algoritmik

29/1/'07 Komponen Algoritma 61

LATIHAN SOAL

• Didefinisikan nama dalam kamus sebagai berikut :

Page 62: Notasi Algoritmik

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.

Page 63: Notasi Algoritmik