• Tidak ada hasil yang ditemukan

Outline. Ekuivalensi Notasi Algoritmik Dengan ETNA. Struktur Umum

N/A
N/A
Protected

Academic year: 2021

Membagikan "Outline. Ekuivalensi Notasi Algoritmik Dengan ETNA. Struktur Umum"

Copied!
12
0
0

Teks penuh

(1)

Ekuivalensi

 

Notasi

 

Algoritmik

 

Dengan

 

ETNA

wijanarto

Outline

Struktur

 

Program

Type,

 

konstanta,

 

deklarasi,

 

assignment

Input/output

Analisis

 

kasus

Pengulangan

Subprogram

 

(fungsi,

 

prosedur)

Type

 

data

 

koleksi:

 

array

Struktur

 

Umum

Notasi

 

Algoritmik

Program <nama

program>

Program

 

<nama

program>

{

 

Spesifikasi

 

teks

 

algoritmik

 

secara

 

umum

 

}

KAMUS

{

 

Definisi

 

konstanta,

 

type,

 

deklarasi

 

variabel,

 

spesifikasi

prosedur,

 

fungsi

 

}

ALGORITMA

ALGORITMA

{

 

Teks

 

algoritma

 ‐

tidak

 

berada

 

di

 

antara

 

tanda

 

kurung

kurawal

 

}

Struktur

 

Umum

Notasi

 

Algoritmik

Program <nama

program>

Program

 

<nama

program>

{

 

Spesifikasi

 

teks

 

algoritmik

 

secara

 

umum

 

}

KAMUS

{

 

Definisi

 

konstanta,

 

type,

 

deklarasi

 

variabel,

 

spesifikasi

prosedur,

 

fungsi

 

}

ALGORITMA

ALGORITMA

{

 

Teks

 

algoritma

 ‐

tidak

 

berada

 

di

 

antara

 

tanda

 

kurung

kurawal

 

}

(2)

Struktur

 

Umum

ETNA

[lib][macro][declType][variable]

[constant][function][mainfunction]

Program {

}

Type,

 

Konstanta,

 

Variable,

Assignment

Konstanta

 

Dan

 

Variable

Notasi Algoritmik ETNA Konstanta constant <nama>:<type>=<harga> Konstanta Constant<nama>:<type>=<harga>; Deklarasi Variable <nama> : <type> Inisialisasi/Assignment Deklarasi Variable

Var <nama> : <type> [Init] ;

Inisialisasi/Assignment

<nama> ← <harga> <nama><harga>

Konstanta

 

Dan

 

Variable

Program Test

{Tes konstanta, variable, assignment, inisialisasi...}

KAMUS

Constant lima : Real = 5.0 ; Constant PI : Real = 3.14 ; {Deklarasi Variabel} Var L, r : Real ;

KAMUS

{Konstanta}

constant lima : real = 5.0 constant PI : real = 3.14 {Deklarasi Variabel} L, r : real I : integer ALGORITMA I ← 1 {Inisialisasi} Var L, r : Real ; Var I : Integer ; Program { I ← 1 //Inisialisasi r ← 10.0 //Inisialisasi ... } r ← 10.0 {Inisialisasi} ...

(3)

Assignment

Assignment <nama1> ← <nama2> <nama> ← <konstanta> <nama>←<ekspresi> Assignment <nama1> ← <nama2> <nama> ← <konstanta> <nama>←<ekspresi> nama  ← ekspresi

nama1 ← nama1 <opr> nama2

Contoh: L ← PI * r * r x ← x * y i ← i + 1 i ← i – 1 nama  ← ekspresi nama1 ← nama1 <opr> nama2

Contoh:

L ← PI * r * r ; x ← x * y ; i ← i + 1 ; i ← i – 1 ;

Type

 

Data

 

Character

Contoh

 

deklarasi:

 

Var

 

CC:Character;

C

t h k

t t

Contoh

 

konstanta:

‘c’

 

karakter

 

c

‘0’

karakter

 

0

‘\013’

karakter

 

vertical

 

tab

Jenis

jenis

 

character:

– [signed]

 

Character

unsigned

 

Character

 

Character

 

pada

 

dasarnya

 

adalah

 

integer

 

1

 

byte

 

(8

 

bits)

Type

 

Data

 

Integer

Contoh

 

deklarasi:

 

Var

 

i

 

:

 

Integer;

 

Var

 

j:

 

Short

 

Integer;

Contoh

 

konstanta:

 

1

 

2

0

 

1

Jenis

jenis

 

integer

[signed]

 

Integer

Natural

 

size

 

of

 

integers

 

in

 

host

 

machine,

 

eg.

 

32

 

bits

No

 

shorter

 

than

 

short

 

int,

 

no

 

longer

 

than

 

long

 

int

[signed]

 

short

 

[

Integer

]

Min.

 

16

 

bits

 

of

 

integer

[signed]

long [

Integer

]

[signed]

 

long

 

[

Integer

]

Min.

 

32

 

bits

 

of

 

integer

unsigned

 

Integer

,

 

unsigned

 

short

 

[

Integer

],

 

unsigned

 

long

[Integer]

• Positive integers only and 0

Type

 

Data

 

Real

Contoh

 

deklarasi:

 

Var

 

f1

 

:

 

Real;

 

Var

 

f2:

 

Double;

Contoh

 

konstanta:

 

3.14

 

0.0

 

1.0e+2

 

5.3e

2

Jenis

jenis

 

Real

Real

• Single‐precision floating point

• 6 digits decimal

Double

• DoubleDouble precision‐precision floating point floating point

• Eg. 10 digits decimal

Long

 

Double

• Extended‐precision floating point

(4)

Type

 

Data

 

Boolean

ETNA

 

tidak

 

menyediakan

 

type

 

boolean

Ada banyak cara untuk mendefinisikan boolean

Ada

 

banyak

 

cara

 

untuk

 

mendefinisikan

 

boolean

Cara

 

1:

 

Digunakan

 

nilai

 

integer

 

untuk

 

menggantikan

 

nilai

 

true

 

&

 

false:

true

 

=

 

nilai

 

bukan

 

0

false

 

=

 

0

Cara

 

2:

 

Definisikan

 

sbg.

 

konstanta:

f

b

l

d h

Def

boolean

 

unsigned

 

char

Def

true

 

1

Def

false

 

0boole

Type

 

Data

 

Boolean

Cara

 

3:

 

Definisikan

 

dalam

 

file

 

header,

 

misal:

 

boolean.h

Contoh

 

penggunaan

Uses “boolea h”

#IfNDef

 

BOOLEAN_H

#Def

 

BOOLEAN_H

#Def

 

boolean

 

Unsigned

 

Character

#Def

 

true

 

1

#Def

 

false

 

0

#Endif

 

Cara

 

2:

 

Definisikan

 

sbg.

 

Uses “boolea.h” Program{ Var Found : boolean; … Found true; … }

Ca a

e

s a sbg

konstanta:

Def

boolean

 

Unsigned

 

Character

Def

true

 

1

Def

false

 

0

 

Type

 

Data

 

String

Dalam

 

ETNA,

 

string

 

adalah

 

pointer

 

ke

 

array

 

dengan elemen character

dengan

 

elemen

 

character

Contoh

 

konstanta

 

string:

 

Ini sebuah string

Konstanta

 

string

 

berada

 

di

 

antara

 

double

 

quotes

 

 

String

 ≠ 

array

 

of

 

char

Representasi

p

 

internal

 

string

g

 

selalu

 

diakhiri

 

character

 

‘\0’,

 

sedang array

 

of

 

character

 

tidak

Jadi,

 

string

 

“A”

 

sebenarnya

 

terdiri

 

atas

 

dua

 

buah

 

character

 

yaitu

 

‘A’

 

dan

 

‘\0’

Type

 

Data

 

String

Contoh

 

deklarasi

 

dan

 

inisialisasi

Var msg1[] : Caharacter <== “ini string”;

Var

 

msg1[]

 

:

 

Caharacter

 

<==

 

ini

 

string ;

Var

 

msg2[37]

 

:

 

Character;

 

Var

 

msg3^

 

:

 

Character;

Contoh

 

cara

 

assignment

 

nilai:

strcpy(msg2,

 

“pesan

 

apa”);

 

msg3 = (Character ^) CAlokasi (20 * SizeOf(Character));

msg3

 

=

 

(Character )

 

CAlokasi (20

   

SizeOf(Character));

 

strcpy(msg3,

 

“”);

 

/*

 

HATI

HATI,

 

cara

 

di

 

bawah

 

ini

 

SALAH!

 

*/

msg3

 

=

 

“Kamu

 

pesan

 

apa”;

(5)

Type

 

Enumerasi

Notasi Algoritmik ETNA KAMUS

{ Definisi type } Type Hari : (senin, selasa,

rabu, kamis, jumat, sabtu)

{ Deklarasi variable } H : Hari KAMUS /*Definisi type */ Type Hari = Enum (senin, selasa, rabu, kamis, jumat, sabtu) /*Deklarasi variable */ Var Hari : H ALGORITMA { Assignment } H ← senin /* ALGORITMA */ /* Assignment */ H senin;   /* H = 1 */

Type

 

Bentukan

Notasi Algoritmik ETNA KAMUS { Definisi Type } type namatype : < elemen1 : type1, elemen2 : type2, ... > { Deklarasi Variable } nmvar1 : namatype KAMUS { Definisi Type } Type namatype  < elemen1 : type1, elemen2 : type2, ... > { Deklarasi Variable }

Var nmvar1 : namatype; nmvar2 : type1 {misal} Var nmvar2:type1 ;

ALGORITMA { Akses Elemen } nmvar2 ← nmvar1.elemen1 nmvar1.elemen2 ← <ekspresi> /* Akses Elemen */ nmvar2 ← nmvar1.elemen1 nmvar1.elemen2 ← <ekspresi>

Type

 

Bentukan

 

(Contoh)

Notasi Algoritmik ETNA { Definisi Type } type Point : < X : integer, Y : integer > { Deklarasi Variable } P : Point Bil : integer {misal}

{ Definisi Type } Type Point = Struktur

< X : integer, Y : integer >

{ Deklarasi Variable }

Var Avr : Point; Var Bil : Integer //misal

ALGORITMA /* Akses Elemen */ ALGORITMA { Akses Elemen } Bil ← P.X P.Y ← 20 / Akses Elemen  / Bil P.X; P.Y 20;

Type

 

Bentukan

 

(Contoh)

Contoh Type Bentukan dalam  ETNA

Type Struktur 

<

Var nama : Array [ 1 To 20 ] Of Character, Var nim : Integer,

Var nilai : Integer > Mhs

Type Struktur meter1

/* tag, utk menyebut struct … */ <

Var  m : Integer, Var cm : Integer > meterku, metermu Type Struktur meter

/* tag, utk menyebut struct … */

Var M1 : Struktur meter  ;

/* cara 3 : INI yang membuat TYPE BARU 

/ tag, ut e yebut st uct / < Var  m : Integer, Var cm : Integer > / ca a 3 ya g e buat U */ Type  Point  < Var x : Real, Var y : Real > 

(6)

Type

 

Bentukan

 

(Contoh)

Contoh Type Bentukan dalam  ETNA

Type   point   =  Struktur ype point Struktur namat^ 

< Var x : Real, Var y : Real; > Type nama  < Var k : Integer, Var l : Integer; >   /* type */ Type  pointprt  Struktur point^

//typedef struct tagx /* nama tag */ Type tags = Struktur 

Type  cc = nama Type  cp^ = nama   

/*‐‐> ok sebab tidak pakai TAG */ < Var i : Integer,

Var j : Integer; > namat  /* nama type */

Type   infotype  Integer Type address Struktur tElmtList^ Type tElmtlist = Struktur  

<

Var info : infotype , Var  next^  : Struktur tElmtlist; > ElmtList

Operator

Notasi Algoritmik ETNA Ekspresi Infix:

<opn1> <opr> <opn2> Contoh: X + 1

Ekspresi Infix:

<opn1> <opr> <opn2> Contoh: X + 1 Operator Numerik: + * / Operator Numerik: + * / / Div Mod / Div Mod

Operator

Notasi Algoritmik ETNA Operator Relasional: > < Operator Relasional: > < > < ≥ ≤ = ≠ > < ≥ ≤ = <> Operator Logika: AND OR NOT Operator Logika: And Or Not Operator Bit: shl /*shift left*/ shr/*shift right*/ & /*and*/ | /*or*/ Xor /*xor*/ Negasi /*not*/

Input/Output

(7)

Input

Notasi Algoritmik ETNA

Input(<list‐nama>) Input(<list‐nama>)

Contoh: Input(X) //{x integer} Input(X, Y) Input(F) //{F real} Input(s) //{s string} Contoh: Input(“%d”,&X); /*x integer*/ Input(“%d %d”, &X, &Y); Input(“%f”,&F); /*F real*/ Input(“%s”,s); /*s string*/

Contoh format sederhana:

%d untuk type integer %f untuk typeyp real %c untuk type character %s untuk type string

Output

Notasi Algoritmik ETNA

Output(<list‐nama>) Output(“<format>”, <listnama>);

Contoh: Output(X) //{x integer} Output(X, Y) Output(“Contoh output”) Output(“Namaku: ”, nama) Output(F) //{F real} Output(CC) //{c character} Contoh: Output(“%d”,X); /*x integer*/ Output(“%d %d”, X, Y); Output(“Contoh output”); Output(“Namaku: %s”, nama); Output(“%f”,F); /*F real*/ Output(“%c”,CC); /*CC char*/ Contoh format sederhana sama seperti pada input

Analisa

 

Kasus

Analisis

 

Kasus

Notasi Algoritmik ETNA Satu Kasus: if k di i h Ifkondisi Then Bl k if kondisi then aksi Block Dua Kasus Komplementer: if kondisi‐1 then aksi‐1

else { not kondisi‐1 } aksi‐2

Contoh: Ifkondisi‐1 Then Blok

Else{ not kondisi‐1 }

Block Block adalah { Statement Constan Variabel }

(8)

Analisis

 

Kasus

 

(>

 

2

 

kasus)

Notasi Algoritmik ETNA depend on nama k di i 1 k i 1 If(kondisi‐1) k i 1 kondisi‐1 : aksi‐1 kondisi‐2 : aksi‐2 ... kondisi‐n : aksi‐n aksi‐1; else If(kondisi‐2) aksi‐2; ... Else If(kondisi‐n) aksi‐n; depend on nama kondisi‐1 : aksi‐1 k di i 2 k i 2 If(kondisi‐1) aksi‐1; l f(k di i 2) kondisi‐2 : aksi‐2 ... else : aksi‐else Else If(kondisi‐2) aksi‐2; ... Else aksi‐else;

Analisis

 

Kasus

 

(>

 

2

 

kasus)

Jika kondisi‐1, kondisi‐2… dapat dinyatakan dalam bentuk: nama = const‐exp (const‐exp adalah suatu ekspresi konstan), maka dapat digunakan switch.

Notasi Algoritmik ETNA depend on nama kondisi‐1 : aksi‐1 kondisi‐2 : aksi‐2 ... kondisi‐n : aksi‐n Depend onnama { kondisi‐1 : Block‐1 kondisi‐2 : Block‐2 ... kondisi‐n : Block‐n } depend on nama kondisi‐1 : aksi‐1 kondisi‐2 : aksi‐2 ... else : aksi‐else Depend onnama { kondisi‐1 : Block‐1 kondisi‐2 : Block‐2 ...

Else : Block‐else

}

Pengulangan

Pengulangan

Notasi Algoritmik ETNA Pengulangan berdasarkan Repeat kondisi berhenti: repeat Aksi

until kondisi‐stop

Block

Until(kondisi‐stop)

Pengulangan berdasarkan kondisi ulang:

while (kondisi‐ulang) do Aksi

While(kondisi‐ulang) Do Block

(9)

Pengulangan

Notasi Algoritmik ETNA Pengulangan berdasarkan nama Traversal [Awal  To  Akhir]  [Step expr] pencacah: i traversal [Awal..Akhir] Aksi Block Catatan:

i Traversal [ To  exp2 ekivalen dengan: i1; While (exp2)  Do Block i Inc; /* !exp2 */

Pengulangan

Notasi Algoritmik ETNA Pengulangan berdasarkan dua Traversal { aksi: iterate Aksi‐1 stop kondisi‐stop Aksi‐2 Statement If (kondisi‐stop) Then Exit Else Statement; }

Subprogram

Fungsi

 

(Notasi

 

Algoritmik)

func on NAMAF (param1 : type1, param2 : type2, …) → type‐hasil

{ Spesifikasi fungsi }

KAMUS LOKAL

{ Semua nama yang dipakai dalam algoritma dari fungsi }

ALGORITMA

{ f i l i ik

{ Deretan fungsi algoritmik:

pemberian harga, input, output, analisis kasus, pengulangan } { Pengiriman harga di akhir fungsi, harus sesuai dengan typehasil }

(10)

Fungsi

 

(ETNA)

Function NAMAF (param1 : type1, param2 : type2, …) : type‐hasil [Constant] [Constant] [Variabel] { [Constant] [Variabel] [Statement] → hasil }

Pemanggilan

 

Fungsi

 

(ETNA)

Uses <stdio.h> Function Max(Var a,b : Integer):Integer {{ If (a>b) Then a; Elseb; } Program { Nama Max(a,b); Output (Max(a,b)); }

Procedure

 

(Notasi

 

Algoritmik)

procedure

 

NAMAP

 

(input

 

nama1

 

:

 

type1,

 

input/output nama2 : type2,

input/output

 

nama2

 

:

 

type2,

 

output

 

nama3

 

:

 

type3

)

{

 

Spesifikasi,

 

Initial

 

State,

 

Final

 

State

 

}

KAMUS

 

LOKAL

{

 

Semua

 

nama

 

yang

 

dipakai

 

dalam

 

BADAN

 

PROSEDUR

 

}

ALGORITMA

{ BADAN PROSEDUR }

{

 

BADAN

 

PROSEDUR

 

}

{

 

Deretan

 

instruksi

 

pemberian

 

harga,

 

input,

 

output,

analisis kasus,

 

pengulangan atau prosedur }

Procedure

 

(ETNA)

Procedure

 

NAMAP

 

(

  

In

 

type1

 

nama1,

 

Out type2 *nama2,

Out

 

type2

 

nama2,

 

Out

 

type3

 

*nama3)

{

/*

 

KAMUS

 

LOKAL

 

*/

/*

 

Semua

 

nama

 

yang

 

dipakai

 

dalam

 

BADAN

 

PROSEDUR

 

*/

/*

 

ALGORITMA

 

*/

/* D

t

i t k i

b i

h

i

t

t

t

/*

 

Deretan

 

instruksi

 

pemberian

 

harga,

 

input,

 

output,

analisis kasus,

 

pengulangan atau prosedur */

(11)

Procedure

 

(Contoh)

Uses

 

<stdio.h>

Procedure

 

NAMAP

 

(

  

In

 

Var

 

a,b

 

:

 

Integer,

 

Out

 

c:

 

Integer)

{

If

(a>b)

 

Then

c

 

a

Else

c

 

b;

}

Type

 

Data

 

Koleksi

 

:

 

Array

Array

 

Statik

Notasi Algoritmik ETNA { Deklarasi Variabel } Type  nm_array [nmax] : Integer

nm_array : array [0..nmax‐1] of type‐array Var nm_array : Array [awal <To/..> Akhir] Of type { Cara Mengacu Elemen } nm_arrayindeks nm_array[indeks] Contoh: TabInt : array [0..99] of integer TabIn ←1 Type TabInt[100]: Integer; Var TabInt : Array [1..100] Of Integer; Var TabInt : Array [1 To 100] Of Integer; TabIn  ← 1 X ← TabInt10

Array

 

Dinamik

ETNA Deklarasi

Var TabInt^ : type ;

Alokasi

TabInt(Integer*) CAlokasi(100 * SizeOf(Integer));

Inisalisasi

(TabInt + i)^ 9;

Dealokasi

(12)

Array

 

2

 

Dimensi

 

(Statik)

Notasi Algoritmik ETNA

{Deklarasi Array} Var nm_array : Array [awal <To/..> Akhir, 

nm_array : array [0..nmax1‐

1] of array [0..nmax2‐1] of type‐array awal <To/..> Akhir] Of type {Cara mengacu elemen} nm_arrayidx1,idx2 nm_array[idx1,idx2] Contoh: Tab2D : array [0..2] of array [0..3] of integer Var TabInt : Array [1..3,1..4] Of Integer; Tab2D[i,j]9; XTab2D[2,4] array [0..3] of integer Tab2Di,j← 9 X ← TabInt2,3 XTab2D[2,4]

Type

 

Data

 

Pointer

Format

Var

 

<nama>^

 

:

 

<type>

yp

 

;

;

Contoh

Var

 

i^:Integer;

 

/*pointer

 

ke

 

integer*/

Var

 

f^

 

:

 

float;

 

/*pointer

 

ke

 

real*/

Var

 

cc^

 

:

 

Character;

 

/*pointer

 

ke character*/

Var

 

FT^

 

:

 

FILE;

 

/*handle

 

suatu

 

file*/

Var

 

( ) [

(T)^[10] :

]

 

Integer;

g ; / p

 

/*pointer

 

ke

 

array

y g

 

dg

 

10

 

elemen

 

integer*/

g

/

Var

 

T^[10]:

 

Integer;

 

/*pointer

 

ke

 

array

 

dg

 

10

 

elemen

 

bertype

 

pointer

ke

 

integer*/

Var

 

p^

 

:

 

void;

 

/*pointer

 

ke

 

objek

 

yg

 

tdk

 

diketahui

 

typenya*/

Type

 

Data

 

Union

Sama

 

dengan

 

Struktur

 

hanya

 

keyword

 

“St kt ” di

ti d

“U i

Referensi

Dokumen terkait

Saya yang bertanda tangan di bawah ini menyatakan dengan sesungguhnya bahwa skripsi saya yang berjudul “Analisis Faktor-Faktor Yang Mempengaruhi Praktik Perataan Laba Pada

Kebutuhan output dari sistem adalah berupa gambar tentang beberapa peristiwabersejarah dan tokohpahlawan kemudian teks untuk penjelasan nama dan informasi

Perangkat keras (hardware) terdiri dari sensor LDR (Light Dependent Resistor), sensor hujan, mikrokontroler Atmega 8, motor DC, LCD dan Lampu pijar .Sedangkan

Dalam hal ini, kegiatan diselenggarakan dengan mengundang peserta dari tim ahli PLD UIN Sunan Kalijaga, perwakilan siswa/siswi penyandang disabilitas, mahasiswa difabel

Di sisi lain, dengan pengetahuan yang benar maka para dokter Indonesia tidak lagi mudah ditipu oleh penjaja dari dalam dan luar negeri yang menjual sertifikat atau

Peserta pameran wajib mengisi Form 15 yang berisikan spesifikasi mendetail terkait dengan setiap barang yang akan didisplay selama pameran (seperti nama, jumlah, model dan

T he 2nd edition of SugarTech Indonesia 2016 held annually is Indonesia’s largest specialized sugar and bioethanol technology event that brings together an international

Hasil penelitian ini menunjukkan bahwa implementasi program Kartu Macca di Kabupaten Soppeng telah sesuai dengan Peraturan Bupati Soppeng Nomor 23 Tahun 2016,