0% menganggap dokumen ini bermanfaat (0 suara)
26 tayangan35 halaman

Konstruksi Dasar Algoritma-1

Diunggah oleh

Basuni iscar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
26 tayangan35 halaman

Konstruksi Dasar Algoritma-1

Diunggah oleh

Basuni iscar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Judul

{Deskripsi yang menjelaskan algoritma secara ringkas


untuk memudahkan pembaca memahami}
{Keadaan Awal: }
{Keadaan Akhir:}

Kamus
{Bagian tempat mendeklarasikan data, prosedur, dan
fungsi}

Algoritma
{Bagian tempat menuliskan langkat-langkah atau instruksi
penyelesaian masalah }
Program • Nama dalam teks algoritma adalah
kata atau frasa yg digunakan sebagai
identifikasi dari: Program, Prosedur,
Prosedur Fungsi, Variabel, Konstanta, Tipe Data
• Sebagai identitas, maka Nama bersifat
Fungsi unik
Nama • Pilihan kata atau frasa sebaiknya yang
mencermin makna bagi pembaca
Variabel
dalam memahami algoritma
• Konvensi: gunakan tanda garis bawah,
Konstanta pemisah antar kata dalam sebuah
nama; contoh: Luas_Persegi_Panjang,
Keliling_Lingkaran, dll
Tipe Data
Tipe • Tipe data adalah pola representasi

Dasar data dalam komputer


• Mendefinisikan tipe data berarti:
Tipe • Menyebutkan nama tipe data yang

String •
dimaksud dalam Kamus

Tipe Data Mendefinisikan domain nilai yang


dapat dimiliki oleh nama tersebut
Tipe • Menyepakati tentang bagaimana
Enumerasi menuliskan nilai data dari tipe
tersebut
Tipe • Menyepakati tetang operator yang

Bentukan dapat dioperasikan terhadap nilai-


nilai dari tipe data tersebut
• Tipe dasar adalah tipe yang
Boolean sudah didefinisikan dalam
bahasa eksekutor algoritma
Integer • Karena telah didefinisikan, maka
Tipe kita dapat menggunakan nama-
Dasar
Real nama ini dalam teks algoritma
kita

Character
TIPE BOOLEAN
True
Operation Result Operation Result
Nilai
T and T T T or T T
T and F F T or F T
False
F and T F F or T T
F and F F F or F F

Operator Arti Tipe


Hasil T xor T F F xor T T
And Dan Boolean T xor F T F xor F F
Or Atau Bollean
Xor Exclusive Boolean Not T F Not F T
Or
Not Negasi Boolean
TIPE INTEGER
Operasi Aritmatika
Operator Arti Result Type
+ Tambah Integer
- Kurang Integer
* Kali Integer
Operasi Pembandingan
/ Bagi Real
Operator Arti Tipe hasil
Mod Sisa pembagian Integer
> Lebih besar Boolean bulat
< Lebih kecil Bollean Div Bagi Integer
≥ Lebih besar atau Boolean
Abs Nilai absolut Integer
sama dengan
≤ Lebih kecil atau Boolean ^ Pangkat Integer
sama dengan
= Sama dengan Boolean
≠ Tdk sama dengan Boolean
CONTOH

Contoh Hasil Contoh Hasil

3 + 10 3 < 10

87 – 31 87 > 31

5 * 10 5≤5

10 / 3 5<5

10 div 3 5=5

20 mod 5 20 ≠ 5
TIPE REAL
Operasi Aritmatika
Operator Arti Result Type
+ Tambah Real
- Kurang Integer
* Kali Integer
Operasi Pembandingan
/ Bagi Real
Operator Arti Tipe hasil
Mod Sisa pembagian Integer
> Lebih besar Boolean bulat
< Lebih kecil Bollean Div Bagi Integer
≥ Lebih besar atau Boolean
Abs Nilai absolut Integer
sama dengan
≤ Lebih kecil atau Boolean ^ Pangkat Integer
sama dengan
= Sama dengan Boolean
≠ Tdk sama dengan Boolean
TIPE CHARACTER (CHAR)
Domain nilai : {…, ‘a’, ‘b’, ‘c’, … , ‘A’, ‘B’, ‘C’, … , ‘!’, ‘?’, ‘.’, ‘,’, … , RETURN, SPACE, …}

Operasi Pembandingan

Operator Arti Tipe hasil


= Sama dengan Boolean
≠ Tdk sama dengan Boolean
CONTOH

Contoh Hasil Contoh Hasil

6.3 + 5.8 3.0 ≠ 3.5

10 / 3 1/ 3 = 0.333

10 / 2.5 ‘a’ = ‘a’

7.2 * 2.5 ‘T’ = ‘t’

0.003 < 0.3 ‘m’ < ‘z’

8.0 ≥ 5 ‘Q’ > ‘z’


TIPE STRING
Domain nilai : {…, “a”, “ab”, “abc”, … , ‘”Apel”, “Beri”, “Ceri”, … }

Operasi Pembandingan Operasi Konkatenasi

Operator Arti Tipe hasil Operator Arti Tipe hasil


= Sama dengan Boolean • Tambah satu String
≠ Tdk sama dengan Boolean karakter di
akhir string
Tambah satu String
˚ karakter di
awal string
& Konkatenasi String
string
TIPE ENUMERASI
Tipe yang domain nilainya didefinisikan dengan menyebutkan menyebutkan satu per satu anggotanya

Biasa digunakan untuk suatu kumpulan nilai yang sejenis, misalnya:


type Hari = (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu)
type Bulan = (Jan, Feb, Mar, Apr, Mei, Jun, Jul, Ags, Sep, Okt, Nov, Des)

Operasi Mengakses/Mengacu Nila Eleman

Operator Artinya Hasil Contoh:


type Hari = (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu)
First Elemen Nilai elemen
pertama pertama
H : Hari {H adalah variable bertipe Hari}
Last Elemen terakhir Nilai elemen
terakhir maka berikut adalah operasi-operasi yang dapat diterapkan
Succ Successor dari Nilai elemen pada nilai variable H:
sebuah elemen setelahnya
First(H) {menghasilkan nilai Senin}
Pred Predecesor Nilai elemen
Last(H) {menghasilkan nilai Minggu}
dari sebuah sebelumnya
Succ(Rabu) {menghasilkan nilai Kamis}
elemen
Pred(Rabu) {menghasilkan nilai Selasa}
• Nilai atau harga adalah besaran dari tipe data yg
NILAI, EKSPRESI, DAN telah dikenal, contoh
Nilai dari tipe integer, misalnya: 5, 10 dll
NAMA DATA (VARIABLE) Nilai dari tipe real, misalnya 1.5 , 3.14 dll
Nilai dari tipe character, misalnya ‘C’, ‘!’ dll

• Ekspresi adalah rumus perhitungan yang terdiri dari


operator (+ - * / and or dll) dan operan (nilai) yang
dikenakan operasi dalam ekspresi tersebut, contoh:
100 * 0.3
(100 * 0.3) + (75 * 0.7)
(100 + 75) / 2
50 > 10
(50 > 10) and (3 < 1)

• Nama data adalah nama suatu data dari tipe yg


telah dikenal. Nama data diberikan melalui
mekanisme pendefnisiannya dalam Kamus, contoh:

• Konstanta adalan nama data yang nilainya tidak


berubah
• Variabel adalah nama data yang nilainya dapat
berubah
• Nilai sebuah Konstanta diberikan pada saat
PENGISIAN NILAI dideklarasikan pada bagian Kamu. Contoh:
(ASSIGNMENT)

• Nilai sebuah Variabel diberikan melalui aksi /


instruksi yg disebut Assignment (  ) atau melalui
alat masukan dengan perintah input (
<nama_variable> ), seperti pada contoh gambar
di sebelah kiri.
• Nama data atau variabel harus bertipe sama
dengan nilai data yang di-assign kepadanya
• Konstanta tidak bisa diubah nilai melalui perintah
assignment maupun perintah input.
PERINTAH INPUT DAN • Input
Instruksi input() adalah instruksi untuk membaca data
OUTPUT dari alat masukan (keyboard, mouse, scanner, dll)
dan menyimpan nilai yang dibaca ke variable.
Berikut adalah bentuk-bentuk instruksi input() yang
dapat digunakan dalam notasi algoritmik.
input ( <variabel> )
input ( <list-variabel> )
• Output
Instruksi output() adalah instruksi untuk mencetak
atau menampilkan nilai data ke alat keluaran (layer,
printer, plotter, dll)
Berikut adalah bentuk-bentuk instruksi outpu() yang
dapat digunakan dalam notasi algoritmik.
output ( <nilai-data> )
output ( <list-nilai> )
Nilai data dapat berupa konstanta, nama variabel,
maupun ekspresi
Judul
{Deskripsi yang menjelaskan algoritma secara ringkas
untuk memudahkan pembaca memahami}
{Keadaan Awal: }
{Keadaan Akhir:}

Kamus
{Bagian tempat mendeklarasikan data, prosedur, dan
fungsi}

Algoritma
{Bagian tempat menuliskan langkat-langkah atau instruksi
penyelesaian masalah }
Program Luas_Persegi _Panjang
{Program menghitung luas persegi panjang}
{Keadaan Awal: apapun}
{Keadaan Akhir: nilai luas persegi panjang tercetak di
layar sesuai dengan input data panjang dan lebar
persegi panjang}

Kamus
P : integer {Panjang}
L : integer {Lebar}
Luas : integer

Algoritma
Input (P)
Input (L)
Luas  P * L
Output (Luas)
Program Luas_Persegi _Panjang
{Program menghitung luas persegi panjang}
{Keadaan Awal: apapun}
{Keadaan Akhir: nilai luas persegi panjang tercetak di
layar sesuai dengan input data panjang dan lebar
persegi panjang}

Kamus
Panjang : integer
Lebar : integer
Luas : integer

Algoritma
Input (P)
Input (L)
Luas  P * L
Output (Luas)
Program Luas_Persegi _Panjang
{Program menghitung luas persegi panjang}
{Keadaan Awal: apapun}
{Keadaan Akhir: nilai luas persegi panjang tercetak di
layar sesuai dengan input data panjang dan lebar
persegi panjang}

Kamus
P : integer {Panjang}
L : integer {Lebar}
L : integer {Luas}

Algoritma
input (P)
input (L)
Luas  P * L
output (Luas)
PERSOALAN MENUKAR ISI GELAS
A B C
• Ada tiga gelas A, B, dan C
• Gelas A berisi cairan merah, Gelas B berisi cairan biru,
dan Gelas C kosong
Proses
• Bagaimana urutan langkah-Langkah untuk menukar isi
gelas A dan B?

A B C
DEFINISI PERSOALAN MENUKAR ISI
GELAS
A B C
• {Keadaan awal: Isi gelas A merah, Isi gelas B
biru, gelas C kosong}
• Instruksi-1
• Instruksi-2
• ...
• Instruksi-n
• {Keadaan akhir: Isi gelas A biru, isi gelas B
merah, gelas C kosong}

A B C
Program Tukar_AB
{Program menukar isi variabel A dan B
Nilai variabel A dan B di baca dari alat input
Program mencetak Nilai A dan B sebelum ditukar,
dan setelah ditukar}
{Keadaan Awal: apapun}
{Keadaan Akhir: nilai variable A dan B tercetak pada
alat keluaran sebelum ditukar dan setelah ditukar}
Kamus
A : integer
B : integer
C : integer

Algoritma
……………….. {membaca nilai A}
……………….. {membaca nilai B}
output (“Nilai sebelum ditukar”)
………………..
………………..
………………..
output (“Nilai sebelum ditukar”)
……………….. {membaca nilai A}
……………….. {membaca nilai B}
Judul
{Deskripsi yang menjelaskan algoritma secara ringkas
untuk memudahkan pembaca memahami}
{Keadaan Awal: }
{Keadaan Akhir:}

Kamus
Constant Pi : real = 3.1429
GajiTotal, GajiPokok, Tunjangan, PotGaji : real
Mid1, Mid2 : integer
Urutan, Ranking : integer Tipe Hasil atau
Ekspresi
CC1, CC2 : character Komentar
S1, Message : string Urutan – 1
Found : boolean
CC1 or CC2
Function AddXY (X, Y : integer) → integer Found and (Urutan > 100)
{Menghasilkan penjumlahan X + Y} (Urutan^2) + GajiTotal +
Algoritma AddXY (Mid1, Mid2)
Urutan * 2 / Ranking
Message & S1
Message = “HELLO”
Start AKSI SEKUENSIAL
Tuang isi gelas A • Aksis sekuensial (sequential statement) adalah
ke Gelas C sederetan instruksi elementer dan/atau aksi yang
akan dilaksanakan oleh mesin (komputer)
Tuang isi gelas B
ke Gelas A berdasarkan urutan penulisannya
• Aksi sekuensial merupakan struktur kontrol paling
Tuang isi gelas C sederhana dalam
ke Gelas B

End
Program SEQ1 Program SEQ2
{Contoh penulisan aksi sekuensial} {Contoh penulisan aksi sekuensial dengan tanda titik
koma}

Kamus Kamus
i : integer i : integer
x : real x : real
Flag : boolean Flag : boolean

Algoritma Algoritma
input (i) input (i) ; x  0.0 ; Flag  true
x  0.0 output (x) ; output (i * 2, Flag)
Flag  true
output (x)
output (i * 2, Flag)
Program SEQ3
{Contoh aksi sekuensial yang mempengaruhi hasil jika
urutannya diubah }

Kamus
i : integer

Algoritma
{state: i belum terdefinisi}
input (i)
{state: i terdefinisi; berisi nilai hasil input}
output (i)
{state: i tertulis ke dalam alat keluaran}
Program HelloX
{Menulis Hello berikut nama yang dibaca dari alat masukan
ke alat keluaran }

Kamus
nama : string

Algoritma
input (nama)
output (“Hello”, nama)
Program Jarak
{ dibaca v dan t, menghitung S = v * t dan menuliskan
hasilnya }
{ menggunakan nama antara }

Kamus
v : integer {kecepatan dalam satuan m/detik}
t : integer {waktu dalam satuan detik}
S : integer {jarak dalam meter yang ditempuh dalam
waktu t dgn kecepatan v, pada gerak lurus
beraturan}

Algoritma
input (v, t)
S=v*t
output (S)
Program Jarak2
{ dibaca v dan t, menghitung jarak v * t dan menuliskan
hasilnya }
{ tanpa menggunakan nama antara }

Kamus
v : integer {kecepatan dalam satuan m/detik}
t : integer {waktu dalam satuan detik}

Algoritma
input (v, t)
output (v * t)
Program Jarak3
{ dibaca v dan t, menghitung jarak v * t dan menuliskan
hasilnya }
{ tanpa menggunakan nama antara }

Kamus
v : integer {kecepatan dalam satuan m/detik}
t : integer {waktu dalam satuan detik}

Algoritma
output (“Ketikkan data kecepatan: “)
input (v)
output (“Ketikkan data waktu temput: “)
input (t)
output (“Jarak temput: “, v * t)
Program JamMenitDetik
{ dibaca n nilai integer dalam satuan detik }
{ menghitung konversi nilai n detik ke dalam J (jam),
M (menit), dan D (detik sisanya) dan mencetak hasil
ke alat keluaran}

Kamus
n : integer [0..999999] {data yg dibaca}
H : integer ≥ 0 {Hari}
J : integer [0..23] {Jam}
M : integer [0..59] {Menit}
D : integer [0..59] {Detik}
rH : integer [0..86399] {sisa detik dalam perhitungan Hari}
rJ : integer [0..3599] {sisa detik dalam perhitungan Jam}

Algoritma
input (n) {0 ≤ n ≤ 999999}
H  n div 86400; rH  n mod 86400
{n = H * 86400 + rH and 0 ≤ rH < 86400}
J  rH div 3600 ; rJ  rH mod 3600
{n = H * 86400 + J * 3600 + rJ and 0 ≤ rH < 86400 and 0 ≤ rJ <
3600}
M = rJ div 60 ; D  rJ mod 60
{n = H * 86400 + J * 3600 + rJ and 0 ≤ rH < 86400 and 0 ≤ rJ <
3600
and 0 ≤ M < 60 and 0 ≤ D < 60}

Anda mungkin juga menyukai