Anda di halaman 1dari 40

Array Statis

STRUKTUR DATA
PENGERTIAN ARRAY STATIS
Sekumpulan data yang bertipe data sama
yang bisa diakses lewat indeksnya.
REPRESENTASI ARRAY STATIS
Array statis direpresentasikan di memori
secara kontinyu.
Contoh: array Angka (1:5).
Angka(1)
Angka(2)
Angka(3)
Angka(4)
Angka(5)
Angka
DEKLARASI UMUM (1)
Algoritma:



Contoh:

Kamus:
nama_var_array:array[1..maks_array] of tipedata
Kamus:
Angka : array[1..5] of integer
DEKLARASI UMUM (2)
Algoritma:




Contoh:

Kamus:
Const
maks_array = ...

nama_var_array:array[1..maks_array] of tipedata
Kamus:
Const
Maks_Angka = 5

Angka : array[1..maks_Angka] of integer
DEKLARASI UMUM (3)
Algoritma:




Kamus:
Const
maks_array = ...
Type
nama_type_array=array[1..maks_array] of tipedata

nama_var_array : nama_type_array
DEKLARASI UMUM (3)
Contoh:




Kamus:
Const
maks_Angka = 5
Type
array_Angka = array[1..maks_Angka] of integer

Angka : array_Angka
DEKLARASI ARRAY OF RECORD
Algoritma:




Kamus:
Const
maks_array = ...
Type
nama_record = record
< field_1:tipedata_1,
field_2:tipedata_2,
...
field_n:tipedata_n >
endrecord
nama_type_array=array[1..maks_array] of nama_record

nama_var_array : nama_type_array
DEKLARASI ARRAY OF RECORD
Contoh:




Kamus:
Const
Maks_Mhs = 50
Type
Data_Mahasiswa = record
nim,nama:string,
nilai :integer,
indeks :char
endrecord
Mahasiswa = array[1..Maks_Mhs] of Data_Mahasiswa

Mhs : Mahasiswa
OPERASi-OPERASI PADA ARRAY
1. Penciptaan (create)
2. Traversal
3. Pencarian (searching)
4. Pengurutan (sorting)
5. Penghancuran (destroy)

OPERASI PENCIPTAAN
Operasi penciptaan (create) adalah
proses mempersiapkan array untuk
diakses/diproses dengan asumsi elemen
array diisi dengan angka 0 jika elemen
arraynya berupa numerik/bilangan/angka
atau diisi dengan karakter spasi,/, atau
/ jika berupa alphanumerik.
Subrutin Penciptaan
Algoritma secara umum:




Procedure create (Output nama_var_array:nama_type_array)
{I.S: elemen array diberi harga awal agar siap
digunakan}
{F.S: menghasilkan array yang siap digunakan}

Kamus:
indeks : integer

Algoritma:
for indeks 1 to maks_array do
nama_var_array(indeks) 0 {elemen array numerik}
endfor
EndProcedure
OPERASI TRAVERSAL
Operasi traversal adalah proses
mengunjungi setiap elemen array satu
persatu dari elemen pertama sampai
elemen terakhir.
Contoh Operasi Traversal
1. Pengisian elemen array dengan data
2. Menampilkan elemen array
3. Penambahan data di array
4. Penyisipan data di indeks tertentu pada
array
5. Penghapusan data di indeks tertentu pada
array
6. Menentukan nilai maksimum dan minimum
7. Menghitung nilai rata-rata, dsb.


Subrutin Traversal
Procedure traversal (I/O nama_var_array:nama_type_array)
{I.S: data array dan maksimum array sudah terdefinisi}
{F.S: menghasilkan array yang sudah diproses}
Kamus:
indeks : integer
Algoritma:
Inisialisasi {pemberian harga awal terhadap sebuah
variabel}
for indeks 1 to maks_array do
proses
endfor
Terminasi {penutupan yang harus dilakukan setelah
proses selesai}
EndProcedure
Contoh Subrutin Traversal
Procedure Isi_Angka (I/O Angka : array_Angka)
{I.S: array angka (1:5)sudah terdefinisi}
{F.S: menghasilkan array angka (1:5) yang sudah
dimasukan oleh user}

Kamus:
i : integer

Algoritma:

for i 1 to maks_Angka do
Input(Angka(i))
endfor

EndProcedure
OPERASI PENCARIAN
Operasi pencarian (searching) adalah
proses menemukan suatu data yang
terdapat dalam suatu array.
Metode Pencarian:
- Sequential Search
- Binary Search
Metode Pencarian
Sequential / Linear Search:
1. Tanpa Boolean
a.Tanpa Sentinel
b.Dengan Sentinel

2. Dengan Boolean
SEQUENTIAL SEARCH (1)
Tanpa boolean tanpa sentinel:
1. Tidak menggunakan variabel
boolean

2. Tidak mempunyai tambahan
elemen di akhir array.

SEQUENTIAL SEARCH (2)
Tanpa boolean dengan sentinel:
1. Tidak menggunakan variabel
boolean

2. Mempunyai tambahan elemen
di akhir array untuk menyimpan
data cari apabila data cari tidak
ditemukan

Contoh Program Dengan Sentinel
SEQUENTIAL SEARCH (3)
Dengan boolean:
1. Menggunakan variabel
boolean

2. Menghasilkan nilai TRUE
atau FALSE di akhir
pencarian
Contoh Algoritma Sequential Search
dengan Boolean
Algortima Seq_Boolean
{I.S : .
F.S : .}

Deklarasi
datacari, I : integer;
ketemu : boolean;

Deskripsi
Input (datacari)
Ketemu := false
I := 1
While (not ketemu and (I = maks_array)) do
Begin
if (datacari = bilangan[i])
then
ketemu := true
else
I := I +1;
End;
BINARY SEARCH (1)
1. Data harus terurut, baik secara ascending atau
descending
2. Mekanismenya adalah dengan cara membagi larik
menjadi dua bagian yaitu bagian kiri (indeks
terkecil/Ia) sampai ke indeks tengah dan bagian
kanan mulai dari indeks tengah sampai indeks
terbesar (Ib)
3. Indeks tengah (k) : (Ia+Ib) div 2 (posisi tengah larik)
BINARY SEARCH (2)
4. Jika data yang dicari lebih kecil dari data
di posisi tengah, maka pencarian
dilanjutkan ke bagian kiri

5. Jika data yang dicari lebih besar dari
data di posisi tengah, maka pencarian
dilanjutkan ke bagian kanan
KASUS BINARY SEARCH (1)
Data yang dicari = 7
Banyak data = 5
Angka



Angka


3 7 12 15 29
1 2 3 4 5
Ia k Ib
Bag. Kiri Bag. Kanan
3 7
1 2
Ia Ib
k
Bag. Kiri Bag. Kanan
KASUS BINARY SEARCH (2)
Angka




Angka


3 7
1 2
Ia Ib
k
Bag. Kiri Bag. Kanan
7
2
Ib
Ia
k
Angka 7 ditemukan pada indeks
ke-2
OPERASI PENGURUTAN
Metode-metode Pencarian (sorting):
a. Bubble Sort
b. Selection Sort
c. Insertion Sort
d. Radix Sort
e. Merge Sort
f. Quick Sort
TUGAS
BUBBLE SORT
Proses menyusun data acak dengan cara
menggelembungkan data yang kecil.
Jika akan disusun secara ascending, maka
penggelembungan dilakukan dari kanan ke
kiri (bawah ke atas).
Tapi jika akan disusun secara descending,
maka penggelembungan dilakukan dari kiri
ke kanan (atas ke bawah)
CONTOH BUBBLE SORT ASC
Array
Awal:
5 3 7 9 2 3 6 4 3 1
L. 1 1 5 3 7 9 2 3 6 4 3
L. 2 1 2 5 3 7 9 3 3 6 4
L. 3 1 2 3 5 3 7 9 3 4 6
L. 4 1 2 3 3 5 3 7 9 4 6
L. 5 1 2 3 3 3 5 4 7 9 6
L. 6 1 2 3 3 3 4 5 6 7 9
L. 7 1 2 3 3 3 4 5 6 7 9
L. 8 1 2 3 3 3 4 5 6 7 9
L. 9 1 2 3 3 3 4 5 6 7 9
SELECTION SORT (1)
Proses menyusun data acak dengan cara
menyeleksi atau menentukan data terbesar
atau data terkecil dari elemen array yang
ditinjau.
- Maximum Sort
- Minimum Sort

CONTOH MAXIMUM SORT ASC
Array
Awal:
5 3 7 9 2 3 6 4 3 1
L. 1 5 3 7 1 2 3 6 4 3 9
L. 2 5 3 3 1 2 3 6 4 7 9
L. 3 5 3 3 1 2 3 4 6 7 9
L. 4 4 3 3 1 2 3 5 6 7 9
L. 5 3 3 3 1 2 4 5 6 7 9
L. 6 2 3 3 1 3 4 5 6 7 9
L. 7 2 1 3 3 3 4 5 6 7 9
L. 8 2 1 3 3 3 4 5 6 7 9
L. 9 1 2 3 3 3 4 5 6 7 9
SELECTION SORT (2)
Array
Awal:
5 3 7 9 2 3 6 4 3 1
SILAKAN DICOBA UNTUK
MAXIMUM SORT DSC, MINIMUM
SORT ASC dan MINIMUM SORT
DSC !!!
OPERASI PENGHANCURAN
Penghancuran (destroy) array adalah
proses mengembalikan data array ke nilai
awal.
TUGAS
Kelompok Tugas:

1. Sequential Search Tanpa Sentinel (Insertion Sort Asc)
2. Sequential Search Tanpa Sentinel (Radix Sort Asc)
3. Sequential Search Dengan Sentinel (Merge Sort Asc)
4. Sequential Search Dengan Sentinel (Quick Sort Asc)
5. Sequential Search Dengan Boolean (Insertion Sort Dsc)
6. Sequential Search Dengan Boolean (Radix Sort Dsc)
7. Binary Search (Merge Sort Dsc)
8. Binary Search (Quick Sort Dsc)

Catatan:
Kasus yang diambil setiap kelompok harus berbeda

TUGAS
Buatlah Makalah per kelompok dengan isi
sebagai berikut:
1. Kasus (Asumsi + Batasan)
2. Teori dari Metode Sorting yang digunakan
3. Algoritma dari kasus yang harus
diselesaikan
4. Listing program
5. Layar tampilan
6. Kontribusi masing-masing anggota
kelompok
TUGAS
Ketentuan:

1. Buat menjadi 8 kelompok
2. Tipe data yang digunakan minimal array of
record dengan minimal jumlah field = 3
3. Gunakan modul atau subrutin berparameter
(minimal 5 prosedur dan 2 fungsi)
4. Gunakan operasi-operasi yang telah dijelaskan
mulai dari operasi penciptaan sampai operasi
penghancuran
5. Penyelesaian kasus menggunakan menu pilihan
6. Cover berisi judul, Nama dan NIM, serta kelas
Contoh Cover
Tugas Struktur Data ke-1
Sequential Search Tanpa Sentinel
Dengan Insertion Sort secara Ascending

Oleh:
Kelas : StrukDat-
Nama NIM

{logo UNIKOM}

Program Studi Teknik Informatika
Fakultas Teknik dan Ilmu Komputer
UNIKOM
2014
MATERI AKAN DATANG
SINGLE LINKED LIST

Anda mungkin juga menyukai