You are on page 1of 48

ALGORITMA DAN STRUKTUR DATA DASAR

Prof. Dr. Ir. Marimin, M.Sc.

marimin@indo.net.id

1
ALGORITMA PEMROGRAMAN KOMPUTER

• ALGORISM : Proses perhitungan dengan angka arab (1957)

• ALGORITHM : Metode perhitungan (komputasi)

• ALGORITHMA : Langkah – langkah sistematis/logis untuk


pemecahan masalah/pengambilan keputusan

2
ALGORITMA TUKAR–ISI-BEJANA

Diberikan dua buah bejana A dan B, bejana A berikan larutan

berwarna merah, bejana B berisi larutan berwarna biru. Pertukaran

isi kedua bejana itu sedemikian rupa sehingga bejana A berisi larutan

berwarna biru dan bejana B berisi larutan berwarna merah

DESKRIPSI:

1. Tuangkan larutan dari bejana A ke dalam bejana C

2. Tuangkan larutan dari bejana B ke dalam bejana A

3. Tuangkan larutan dari bejana C ke dalam bejana B

3
LATIHAN 1 : Algoritma menghadiri acara di Jakarta

DESKRIPSI:
1.
2.
3.

LATIHAN 2 : Algoritma memperoleh gelar S1 TIN

DESKRIPSI:
1.
2.
3.
4
Model Matematik Tipe Data Abstrak Struktur Data
(TDA)

Algoritma Informal Algoritma Formal Program Komputer


(C, Pascal,…)

Gambar : Skema Penulisan Program

5
ALGORITMA DAN KOMPUTER

Algoritma

translasi

Program dalam Bahasa Tingkat


Tinggi

Kompilasi

Program dalam Bahasa


Mesin

Interprestasi oleh CPU


Operasi
(baca, tulis, hitung perbandingan, dsb)

Gambar : Tahapan pelaksanaan program oleh Komputer


6
PARADIGMA PEMROGRAMAN

• Pemrograman Prosedural : eksekusi program mengikuti pola


berantai, prosedural

• Pemrograman Deklaratif

• Pemrograman Konkuren

• Pemrograman Berorientasi objek

7
ATURAN PENULISAN TEKS ALGORITMA

• Pseudocode

- adalah algoritma-algoritma yang disusun dengan bahasa yang

sudah dekat ke bahasa program, atau bisa juga dalam bentuk

diagram seperti flowchart

• Teks algoritma

- Kepala

- Deklarasi

- Deskripsi Algoritma

8
• Translasi Teks ke Program

- Deklarasi:

berisikan definisi semua nama yang dipakai, meliputi nama tipe,


nama tetapan, nama peubah, nama prosedur dan nama fungsi

- Deskripsi:

berisikan semua langkah/aksi algoritma

9
ALGORITMA DAN FLOWCHART

• Algoritma :langkah-langkah sistematis yang diekspresikan


dengan penyataan

• Flowchart :langkah-langkah sistematis yang diekspresikan


dengan simbol dan gambar

Tipe flowchart :
- System Flow-chart
- Detail Flow-chart

10
 Contoh flowchart:

Mulai

Baca Data

Hitung Penerimaan

Tidak Sudah
Semua

Ya
Stop

Gambar : Flowchart tahap penerimaan barang


11
Mulai

Pengumpulan data dan informasi

Spesifikasi Sistem

Perancangan Sistem

Implementasi dan Verifikasi

tidak cukup

ya

Selesai

Gambar : Flowchart tahap pengembangan sistem 12


 Kepala Algoritma

Kepala algoritma terdiri atas nama algoritma dan penjelasan

(spesifikasi) tentang algoritma tersebut. Algoritma harus ditulis sesuai

dengan spesifikasi yang didefinisikan.


Contoh:
Algoritma Luas_Lingkaran

(menghitung luas lingkaran untuk ukuran jari-jari tertentu. Algoritma

menerima masukan jari-jari lingkaran, menghitung luasnya, lalu

mencetak luas lingkaran ke piranti keluaran)

13
 Deklarasi
Deklarasi adalah bagian untuk mendefinisikan semua nama yang
dipakai di dalam algoritma tersebut, dapat berupa nama tetapan,
nama peubah, nama tipe, nama prosedur dan fungsi.

Contoh:

Deklarasi
{Nama tetapan}
const Npeg = 100 (jumlah pegawai)
const phi = 3.14 (nilai )
{Nama peubah}
Type titik : record (koordinat titik dibidang cartesian)
< x : integer
y : integer
14
>
 Deskripsi
Deskripsi merupakan bagian inti suatu algoritma yang berisikan
langkah-langkah penyelesaian masalah

Contoh:

Deskripsi:
read (a,d)

if c < d then
ea+b
else
ea-b
endif
write (e)

15
Konstanta dan Variabel
Deklarasi Konstanta
Konstanta di deklarasikan pada awal Pragram sebelum Begin-End
Untuk Mendeklarasikannya Harus diawali dengan kata Baku Const

Bentuk Umum
Const
NamaKonstanta1 = NilaiKonstanta1;
NamaKonstanta2 = NilaiKonstanta2;
………….
NamaKonstantaN = NilaiKonstantaN;
Contoh :
Const
pi = 3.14;
Radius = 25.6;
LuasLingkaran = pi*Radius;
Maximum = 100;
JumlahMhs = 15256;
Simbol = ‘***’;
NamaPT = ‘P.T. XYZ’;
16
Konstanta Bertipe

Bentuk Umum

Const
NamaKonstanta1: Tipe1 = NilaiKonstanta1
NamaKonstanta2: Tipe2 = NilaiKonstanta2
…………………..
NamaKonstantaN:TipeN = NilaiKonstantaN

Contoh

Const
BanyakData : byte=250;
JumlahMahasiswa : integer = 15000;
JudulHalaman : string[25] = ‘Pendapatan Tahunan’;
CheckPosisi : boolean = true;

17
Variabel
Tipe Data Sederhana :
Bentuk Umum  Integer
Var  Boolean
NamaVariabel1, NamaVariabel2  Real
………..  Karakter
NamaVariabel1N: TipeData1;  String
………..
NamaVariabelNN : TipeDataN;

Contoh
Var Defaultnya = 256
Nilai1, Nilai2, Nilai3 : byte;
Nama : string[30];
JmlData : interger;

18
ALGORITMA EUCLIDEAN

• Algoritma Euclidean adalah suatu proses untuk menemukan pembagi bersama


terbesar (common greatest divisor) dari dua bilangan bulat
• Contoh:
Algoritma EUCLIDEAN
Diberikan 2 buah bilangan bulat positif m dan n (m > n). Carilah pembagi
bersama terbesar, pbt, dari kedua bilangan tsb.,yaitu bilangan bulat positif
terbesar yang habis membagi m dan n
Deskripsi:
1. Bagilah m dengan n dan misalkan r adalah sisanya
2. Jika r = 0 maka n adalah jawabannya;
stop.
tetapi jika r  0, lanjutkan ke langkah 3
3. Ganti nilai m dengan n dan nilai n dengan nilai r, lalu ulang kembali ke
langkah 1
19
STRUKTUR DATA
• Tipe Data Abstrak (TDA)

- TDA adalah suatu model matematika, disertai sekumpulan operasi terhadap

model tersebut.

- TDA digunakan sebagai sarana perantara sebelum struktur data yang

sebenarnya dituliskan dalam bahasa pemrograman yang akan digunakan

- Untuk merepresentasikan suatu TDA, digunakan struktur data yang berisi

sekumpulan variabel, yang bisa terdiri atas beberapa tipe data, dan

mempunyai bermacam-macam jenis dan cara relasi antara setiap variabel

20
DATA DASAR (PRIMITIF)

 Merupakan elemen data yang berdiri sendiri


 Tipe data dasar :
• Bilangan Logika

• Bilangan Bulat

• Bilangan Riil

• Karakter

21
 BILANGAN LOGIKA
- Nama tipe untuk bilangan logik adalah boolean
- Ranah nilai True dan False
- Operasi : Not, and, or, xor

A B A and B A or B A xor B

true true true true false

true false false true true

false true false true true

false false false false false

22
Boolean

Type data boolean biasa digunakan untuk mempresentasikan logika


Type data ini hanya dapat bernilai True(1) atau False(0)

Type Range Ukuran (Byte)

Boolean Byte-sized 1 (8 bit)


ByteBool Byte-sized 1 (8 bit)
WordBool Word-sized 2 (16 bit)
LongBool LongInt-sized 2 (16 bit)

23
 BILANGAN BULAT
- Nama tipe untuk bilangan bulat adalah integer

- Ranah nilai tidak terbatas (tergantung hardware)

- Contoh : 5, 10, 100

- Operasi
a. Operasi Aritmetika: +, -, *, div, mod

Contoh: 20 div 5 = 4
10 mod 3 = 1
b. Operasi Perbandingan: <, <, >, >, =, 

24
Integer

Tipe data Integer adalah tipe data yang nilainya merupakan bilangan
Bulat

Type Range Ukuran Format


(Byte)
ShortInt -128..127 1 Signed 8 bit
Integer -32768..32767 2 Signed 16 bit
LongInt -2147483648.. 4 Signed 32 bit
2147483648
Byte 0..256 1 Unsigned 8 bit
Word 0..65535 2 Unsigned 32 bit

25
 BILANGAN RIIL
- Nama tipe untuk bilangan riil adalah real

- Ranah nilai tidak terbatas

Dalam implementasinya tipe real mempunyai rentan nilai yang terbatas

- Contoh : 3.5, 3.9

- Bilangan Riil : a. Presisi tunggal (teliti sampai 7 desimal)

b. Presisi ganda (teliti sampai 17 desimal)

- Operasi
a. Operasi Aritmetika: +, -, *, /
b. Operasi Perbandingan: <, <, >, >, =,

26
Real

Tipe data Real biasa digunakan untuk mempresentasikan nilai pecahan.

Type Range Ukuran Digit


(Byte)
Real ± 2.9 x 10 -39… 6 11-12
±1.7x 10 38
Single ± 1.5 x 10 -45… 4 7-8
± 3.4x 10 38
Double ± 5 x 10 -324… ± 8 15-16
1.7x 10 308
Extended ± 3.4x10-4932… ±
1.1x 10 4932

27
 KARAKTER
- Nama tipe untuk karakter adalah char

- Contoh: huruf latin

- Ranah nilai semua huruf didalam alfabet, angka desimal, tanda baca,
operator numerik dan karakter-karakter khusus seperti $, #, @, ^, ~ dan
lain-lain.

- Operasi : <, >, >, =, 

Contoh: ‘a’ = ‘a’ (hasil true)


‘A’ = ‘a’ (hasil false)

28
TIPE DATA KOMPOSIT

• Merupakan bentukan dari data dasar


• Statis
- Enumerated
- Set
- String
- Record
- Array
• Dinamis
- Linked List
- Stack & Queue
- Tree
29
Tipe Data Enumerasi

Adalah tipe data baru yang elemennya disebutkan satu per satu

Bentuk Umum
Type
<NamaType> = (elemen1, elemen2, …, elemenN)

Contoh
Type
Hari = (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu);
Var HariKerja = Hari;
Begin
……
For HariKerja :=Senin to Sabtu do
(Mengerjakan Statement perulangan)
End.

30
• Latihan : Susun algoritma
1. Eucledian
2. Penyusunan data
3. Pemilihan data
4. Pengulangan kalimat

31
PEMILIHAN

• Menganalisa kasus dari suatu masalah artinya menentukan konsidi


boolean (bernilai true atau false) dan menentukan aksi yang dilakukan
jika kondisi tersebut berlaku

• Penentuan kondisi boolean dan aksi yang dilakukan bergantung pada


jumlah kasus yang terdapat pada masalahnya.

a. Satu Kasus
- Notasi algoritmik yang digunakan : IF - THEN
- Struktur
if <kondisi> then
aksi
endif 32
Contoh:
if x > 100 then
Xx+1
endif
b. Dua Kasus
- Notasi algoritmik yang digunakan : IF – THEN – ELSE
- Struktur
if <kondisi> then
aksi1
else
aksi2
endif

33
Contoh:
if a > 0 then
write (‘bilangan positif’)
else
write (‘bilangan bukan positif’)
endif
c. Tiga Kasus atau lebih

- Notasi algoritmik yang digunakan sebagaimana pada masalah


dengan dua kasus: IF – THEN – ELSE

- Struktur

34
if <kondisi1> then

aksi1

else

if <kondisi2> then

aksi2

else

if <kondisi3> then

aksi3

endif

endif

endif
35
Contoh:
Algoritma jenis_bilangan
Deklarasi:
bil : integer
Deskripsi:
read (bil)
if bil > 0 then
write (‘bilangan positif’)
else
if bil < 0 then
write (‘bilangan negatif’)
else
if bil = 0
write (‘nol’)
endif
endif
36
endif
c. Struktur CASE

- Untuk menyelesaikan masalah dua atau lebih, struktur CASE dapat


menyederhanakan penulisan if – then – else

- Struktur case
Case (nama)
<konsidi1> : aksi1
<kondisi2> : aksi2
<kondisi3> : aksi3
.
.
.
<kondisiN> : aksiN
[otherwise aksiX]
endcase 37
Contoh:

Algoritma kata_untuk_angka
Deklarasi:
A : integer {angka yang dibaca}
Deskripsi:
read (A)
case A
A = 1 : write (‘satu’)
A = 2 : write (‘dua’)
A = 3 : write (‘tiga’)
A = 4 : write (‘empat’)
endcase
38
STRUKTUR PENGULANGAN

• Struktur pengulangan terdiri atas dua bagian :

1. Kondisi pengulangan, yaitu ekspresi boolean yang harus


dipenuhi untuk melaksanakan pengulangan.
2. Badan (body) pengulangan, yaitu satu atau lebih aksi yang akan
diulang.
• 3 macam struktur pengulangan:

1. While-do
2. Repeat-Until
3. For

39
1. Struktur While-Do

while <kondisi> do
aksi
endwhile

Aksi (atau runtunan aksi) akan dilaksanakan berulangkali sepanjang

<kondisi>boolean masih tetap bernilai true. Jika <kondisi> false,

badan pengulangan tidak akan dilaksanakan. Pengulangan selesai

40
Contoh :
Algoritma Jumlah_Deret
DEKLARASI
N : integer {banyaknya suku deret, nilainya positif}
angka : integer {suku deret}
jumlah : integer {jumlah deret}
DESKRIPSI
read (N) {banyaknya suku deret}
Jumlah 0 {inisialisasi jumlah deret}
angka 1 {suku deret}
while angka < N do
jumlah jumlah + angka {jumlah deret sekarang}
angka angka + 1 (suku deret berikutnya}
endwhile
{angka > N } {kondisi setelah pengulangan berhenti}
write (jumlah) 41
2. Struktur Repeat - until

repeat
uksi
until <kondisi>

Pada struktur repeat – until aksi (atau sekumpulan aksi) dilaksanakan

minimal sekali, karena kondisi pengulangan diperiksa pada akhir

struktur dan akan dilaksanakan sampai (until) kondisi yang diseleksi

di until tidak terpenuhi

42
Contoh :
Algoritma Jumlah_Deret
DEKLARASI
N : integer {banyaknya suku deret, nilainya positif}
angka : integer {suku deret}
jumlah : integer {jumlah deret}
DESKRIPSI
read (N) {banyaknya suku deret}
Jumlah 0 {inisialisasi jumlah deret}
angka 1 {suku deret}
repeat
jumlah jumlah + angka {jumlah deret sekarang}
angka angka + 1 (suku deret berikutnya}
until angka > N
write (jumlah)
43
3. Struktur For

for peubah nilai_awal to nilai akhir do


aksi
endfor

Struktur for digunakan untuk menghasilkan pengulangan sejumlah

kali tanpa menggunakan kondisi apapun, kondisi ini menyebabkan

aksi diulang sejumlah kali (tertentu)

44
Contoh :
Algoritma Jumlah_Deret
DEKLARASI
N : integer {banyaknya suku deret, nilainya positif}
angka : integer {suku deret}
jumlah : integer {jumlah deret}
DESKRIPSI
read (N) {banyaknya suku deret}
Jumlah 0 {inisialisasi jumlah deret}
for angka  1 to N
jumlah jumlah + angka {jumlah deret sekarang}
endfor
write (jumlah)

45
• Latihan :semua algoritma
1. Eucliden
2. Penyusunan data
3. Pemilihan data
4. Pengulangan kalimat

46
TRANSLASI DARI TEKS ALGORITMA
KE TEKS PROGRAM

Algoritma menghitung nilai rata-rata :

{Menghitung nilai rata-rata sekumpulan bilangan bulat yang dibaca


dari piranti masukan}

DEKLARASI
X : integer {peubah data bilangan bulat}
N : integer {banyaknya data bilangan bulat, N >0}
K : integer {pencacah jumlah pengulangan}
Jumlah : integer {jumlah seluruh data bilangan bulat}
rata : real {rata-rata data bilangan bulat}
47
DESKRIPSI
read (N) {baca banyaknya data}
k 1 {mulai dari data pertama}
jumlah 0
while k < N do
read (0)
jumlah jumlah + x
k k + 1 {cacah pengulangan selanjutnya}
endwhile

{k > N}
rata jumlah/N {rata-rata data bilangan bulat}
write (rata)

48

You might also like