Anda di halaman 1dari 17

ARRAY

ARI SULISTIYAWATI

STRUKTUR DATA
ARRAY (LARIK)
1. Pendahuluan
 Larik adalah struktur data statik yang
menyimpan sekumpulan elemen yang bertipe
sama.
 Setiap elemen diakses langsung melalui
indeksnya.
 Indeks larik harus tipe data yang menyatakan
keterurutan misalnya integer atau karakter.

STRUKTUR DATA
 Banyaknya elemen larik harus sudah diketahui
sebelum program dieksekusi.
 Tipe elemen larik dapat berupa tipe sederhana,
tipe terstruktur atau tipe larik lain.
 Nama lain array adalah Larik, tabel atau vektor

STRUKTUR DATA
Cara Pendefinisian Array
1. Sebagai Peubah
Contoh :
L : array[1..50] of integer
NamaMhs : array[‘a’..’j’] of string

2. Sebagai tipe baru


Contoh :
type LarikInt : array[1..100] of integer
P : LarikInt

STRUKTUR DATA
3. Mendefinisikan ukuran maksimum
elemen larik sebagai konstanta
Contoh :
Const Nmaks = 100
type Larikint : array[1..Nmaks] of integer
P : LarikInt

Cara menterjemahkan ke bahasa C :


#define Nmaks 100
typedef int Larikint[Nmaks+1];
Larikint P;

STRUKTUR DATA
Cara Mengacu Elemen Larik

 Elemen larik diacu melalui indeksnya.


Nilai indek harus terdefinisi.

 Contoh cara mengacu elemen larik adalah :


L[4] {mengacu elemen keempat dari larik L }
NamaMhs[‘b’] {mengacu elemen kedua
dari larik NamaMhs}
P[k] {mengacu elemen ke-k dari larik P,
asalkan nilai k sudah terdefinisi }

STRUKTUR DATA
Menginisialisasi Larik

 menginisialisasi elemen larik adalah memberikan


harga awal untuk seluruh elemen larik, misalnya
menginisialisasi dengan nilai 0 seperti di bawah ini :
Procedure InisDgn0(output A:larik, input N:integer)
{menginisialisasi setiap elemen larik A[1..N] dengan nol}
{K. Awal : N adalah banyak elemen efektif larik,
nilainya terdefinisi}
{K. Akhir : seluruh elemen larik A bernilai nol}
Deklarasi :
K : integer
Deskripsi :
for k  1 to N do
A[k]  0
endfor

STRUKTUR DATA
Mengisi elemen larik dari piranti masukan

 Elemen larik dapat diisi dengan nilai yang dibaca dari


piranti masukan seperti contoh di bawah ini :
Procedure BacaLarik(output A:larik, input N:integer)
{mengisi elemen larik A[1..N] dengan nilai yang
dibaca dari piranti masukan}
{K. Awal : N adalah jumlah elemen efektif larik, nilainya
terdefinisi}
{K. Akhir : seluruh elemen larik A berisi nilai-nilai yang dibaca dari
piranti masukan}
Deklarasi :
K : integer
Deskripsi :
for k  1 to N do
read (A[k])
endfor

STRUKTUR DATA
Larik Bertype Terstruktur

Larik tidak hanya dapat berisi data bertype tunggal,


tapi dapat juga berisi data yang bertipe
terstruktur
Contoh :
const Nmaks = 100
type Mahasiswa : record
<nim : integer,
nama_mhs : string,
KodeMK : string,
Nilai : char >
TabMhs : array[1..Nmaks] of Mahasiswa

STRUKTUR DATA
Contoh Cara mengacu elemen TabMhs :
1. TabMhs[2].Nim
mengacu field Nim dari elemen kedua
larik
2. Write(TabMhs[k].KodeMK)
menuliskan field KodeMK dari elemen
ke k dari larik

STRUKTUR DATA
Tugas 1
Buatlah dalam notasi algoritma atau bahasa C :
1.Definisikan sebuah type terstruktur untuk
menyatakan data nasabah disebuah bank. Data
nasabah terdiri atas field Nomor Account, Nama
Nasabah, Alamat Nasabah, Kota Nasabah, dan
Nomor Telpon Nasabah.
Untuk setiap field definisikan type data yang cocok

STRUKTUR DATA
2.Dari soal nomor 1 buatlah program dalam
bahasa pemrograman berbasis bahasa C, untuk
memasukkan data nasabah sebanyak N, dengan
N diinputkan dari papan ketik, kemudian
menuliskan kembali semua data nasabah dalam
bentuk matrik.
Petunjuk :
Gunakan notasi pengulangan untuk
menyelesaikan permasalahan tersebut

Tugas dikumpulkan pada pertemuan


berikutnya disertai listing program dan
contoh keluarannya

STRUKTUR DATA
ADT (Abstract Data Type)
 ADT adalah definisi type dan sekumpulan
primitif (operasi dasar) terhadap type
tersebut.
 Type diterjemahkan menjadi type terdefinisi
dalam bahasa pemrograman yang
bersangkutan, misalnya menjadi record dalam
Pascal/Ada dan Struct dalam bahasa C

STRUKTUR DATA
Primitif dalam konteks pemrograman
prosedural, diterjemahkan menjadi
fungsi dan prosedur.
Primitif dikelompokkan menjadi :
1. Konstruktor/Kreator, pembentuk nilai
type. Biasanya namanya diawali dengan
Make.
2. Selektor, untuk mengakses komponen type.
Biasanya namanya diawali dengan
Get.
STRUKTUR DATA
3. Prosedur Pengubah nilai komponen
4. Validator komponen type, yang
dipakai untuk mengetes apakah dapat
membentuk type sesuai batasan.
5. Destruktor/Dealokator, yaitu untuk
menghancurkan nilai objek, sekaligus
memori penyimpannya
6. Baca/tulis, untuk interface dengan
input/output device

STRUKTUR DATA
7. Operator Relasional terhadap type
tersebut untuk mendefinisikan lebih
besar, lebih kecil, sama dengan dan
sebagainya.
8. Aritmatika terhadap type tersebut,
dalam pemrograman biasanya hanya
terdefinisi untuk bilangan numerik.
9. Konversi dari type tersebut ke type
dasar dan sebaliknya

STRUKTUR DATA
ADT biasanya diimplementasi menjadi dua buah
modul, yaitu :
1. Definisi/spesifikasi type dan primitif
- Spesifikasi type sesuai dengan
bahasa yang dipakai
- Spesifikasi dari primitif sesuai dengan kaidah
dalam konteks prosedural, yaitu :
a. Fungsi : nama, domain, range, dan pre kondisi
jika ada
b. Prosedur : Keadaan Awal, Keadaan Akhir dan
proses yang dilakukan
2. Body/realisasi dari primitif, berupa kode program dalam
bahasa yang bersangkutan. Realisasi fungsi dan prosedur
harus sedapat mungkin memanfaatkan Selektor dan
Konstruktor

STRUKTUR DATA