MAKALAH STRUKTUR DATA
“ARRAY DAN RECORD”
TUGAS MAKALAH DIPRESENTASIKAN UNTUK
MEMENUHI PERSYARATAN PERKULIAHAN DALAM DISKUSI KELOMPOK DENGAN MATA KULIAH ALGORITMA
DAN PEMROGRAMAN
Dosen Pembimbing : Bambang H Hayadi, S.Kom
Disusun Oleh :
MAHASISWA
LOKAL TEKNIK INFORMATIKA ‘B’
NEDI YANSAH PUTRA
SEMESTER III
PROGRAM STUDI MANAGEMEN INFORMATIKA DAN KOMPUTER
JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAGEMEN INFORMATIKAN DAN KOMPUTER
STMIK AL-QURANIYAH
JL.AFFAN BACHIN NO 13 (0739) 21689 MANNA BENGKULU SELATAN
OKTOBER 2012
BAB II
PEMBAHASAN
A.
ARRAY
Sebuah array dapat dikatakan sebagai suatu himpunan terurut dengan elemen-elemen homogen. Terurut, dimaksudkan bahwa elemen pertama, elemen kedua, dst
masing-masing dapat diidentifikasi. Sedangkan homogen berarti masing-masing elemen tersebut mempunyai tipe data
yang sama.
Array dapat dikelompokkan
atas 2 bagian, yaitu :
1. Array satu dimensi.
2. Array multi dimensi.
ARRAY SATU DIMENSI
Bentuk array yang paling
sederhana adalah array satu dimensi. Array jenis ini dapat dianggap sebagai
sebuah vektor. Suatu array A berdimensi satu dengan N buah elemen, secara fisik
dapat digambarkan sebagai berikut :
A(1)
|
A(2)
|
.....
|
A(I)
|
.....
|
A(n)
|
Indeks dari elemen suatu array menyatakan posisinya dalam urutan
secara umum suatu array A berdimensi satu dengan elemen berjenis data T yang
mempunyai indeks dari L s/d U dituliskan sbb:
A(L:U) = {A(I)}
Untuk I = L, L+1,
L+2, ................., U-1, U,
dimana
masing-masing A(I) berjenis data T.
L disebut sebagai batas bawah dari indeks A dan U sebagai batas
atas dari A.
Jumlah elemen dalam suatu array disebut sebagai range.
Range dari array A(L:U) adalah U - L + 1.
Range dari array B(1:N) adalah N - l + 1= N
ARRAY MULTI DIMENSI
Array dua dimensi adalah
salah satu contoh dari array jenis multi dimensi (dimensi banyak). Array ini
elemen-elemennya merupakan array pula. Bentuk yang dianggap dapat mewakili
array dua dimensi ini adalah matriks.
Suatu array B yang terdiri atas M elemen dimana masing-masing elemennya
berupa array dengan N elemen, dapat digambarkan sebagai suatu tabel MxN, dengan
bentuk sbb:
|
1
|
2
|
3
|
...
|
J
|
...
|
N
|
1
|
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
I
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
M
|
|
|
|
|
|
|
|
Array ini dituliskan : B(1:M,1:N)
= {B(I,J)},
Untuk I = 1,2,...,M
J
= 1,2,...,N
Jumlah elemen (range) dari array B ini adalah M x N.
Secara umum, array 2 dimensi B dengan batas bawah indeks pertama L1, batas atas
indeks pertama U1,
batas bawah indeks kedua L2 batas atas indeks kedua
U2,
dituliskan:
B(L1 : U1, L2 : U2) = {B(I,J)}
Untuk L1 < I < U1 dan L2 < J < U2
Jumlah elemen baris dari array B adalah : ( U2 - L2 + 1 )
Jumlah elemen kolom dari array B adalah : ( U1 - L1 + 1)
Jumlah total elemen array B adalah : (U2 - L2 + 1 )(U1 - L1 + 1)
CROSS SECTION
Yang dimaksud dengan
Cross section dari array 2 dimensi adalah : suatu himpunan yang anggotanya
adalah elemen-elemen dalam satu baris saja atau satu kolom saja. Notasinya
menggunakan *.
Contoh :
Misal diberikan array B(1:M,1:N).
B(4,*) = {B(4,1),
B(4,2), ...,B(4,N)}
B(*,4) = {B(1,4), B(2,4), ...,B(M,4)}
TRANSPOSE
Transpose dari suatu
array dua dimensi, adalah suatu array dua dimensi pula dengan menukar posisi
indeksnya. Transpose dari array
berukuran M x N adalah suatu array
berukuran N x M. Transpose dari
suatu array dari B dinotasikan dengan BT, dan didefinisikan:
B(I,J) = BT (J,I)
Selanjutnya secara umum, suatu array A berdimensi N dapat
dituliskan sbb:
A(L1:U1,L2:U2,...,LN:UN)
Jumlah elemen array ini adalah : N
(U1 - L1 + 1)(U2- L2+ 1)... (UN - LN + 1) (UK - LK + 1)
k=1
Sebagai contoh perhatikan sebuah array berdimensi 3 yang
menggambarkan (berisi) jumlah mahasiswa STMIK Gunadarma untuk kelas pagi dan
malam.
Array ini dapat digambarkan sbb :
Jika array ini diberi nama Gunadarma, maka bentuknya dapat
dituliskan sbb:
Gunadarma(1:2,1:2,1:5)
= {Gunadarma(i,j,k)}
dimana I = 1,2 (1 = pria, 2 = wanita)
J
= 1,2 (1 = pagi, 2 = malam)
K
= 1,2,3,4,5 (kelas 1 s/d 5)
Seluruh mahasiswa pagi dapat ditunjukkan dengan Gunadarma (*,1,*)
sedangkan seluruh mahasiswa malam dapat ditunjukkan dengan :
Gunadarma(*,2,*)
DEKLARASI ARRAY DALAM BAHASA
PEMROGRAMAN.
Misal diberikan array
dengan nama A yang mempunyai 24 elemen dengan masing-masing elemen berjenis
data integer, maka deklarasinya dalam bahasa pemrograman adalah sbb:
COBOL : 01 A_Table
02 A OCCURS 24 TIMES PIC 99
PASCAL : VAR A : ARRAY [1..24] OF INTEGER;
Dalam mendeklarasikan suatu array ada 3 hal yang harus ada pada
deklarasi tersebut, yaitu:
1. Nama array
2. Range dari indeksnya
3. Tipe elemen-elemen
datanya
MAPPING KE STORAGE DARI ARRAY
Ada beberapa cara untuk
menyatakan suatu array pada storage, tetapi konsepnya hampir sama dengan apa
yang ada pada data fungsi.
ARRAY SATU DIMENSI
Misal diberikan array
satu dimensi dengan nama A yang mempunyai indeks 1 s/d N, yaitu A(1:N). Secara
fisik array A(1:N) dapat digambarkan sbb:
A(1)
|
A(2)
|
A(3)
|
...
|
A(I)
|
...
|
A(N)
|
Yang perlu kita ketahui disini adalah : Letak elemen ke I dari
array A(1:N), atau letak masing-masing elemen array pada storage. Letak suatu
elemen biasanya disebut sebagai starting address atau starting location atau
base location. Untuk mengetahui starting address suatu elemen array, perlu
diketahui lebih dulu antara lain :
1. Starting address dari
array yang bersangkutan.
2. Ukuran masing-masing
elemen array atau ruang yang digunakan
masing-masing elemen
array.
Misal starting address dari array A(1:N) adalah B dan masing-masing
elemennya menggunakan ruang sebanyak S
bit. Maka starting address elemen ke I dari array A(1:N) adalah :
B + (I-1) * S
Hal ini disebabkan ada (I - 1) elemen array A, masing-masing dengan
ukuran atau panjang S secara fisik mendahului elemen ke I pada array tersebut.
Secara umum dapat dikatakan bahwa :
Starting address elemen ke I dari array A(L:U) adalah (B
+(I-L)*S jika starting address array A adalah B dan masing-masing elemenya
menggunakan rungan sebanyak S bit.
MAPPING KE STORAGE : ARRAY MULTI DIMENSI.
Prinsip yang digunakan
disini tetap didasarkan pada array satu dimensi. Oleh karena itu untuk array
multi dimensi, linierisasinya dapat dilakukan berdasarkan baris atau kolom.
Contoh :
Misal diberikan array
A(1:3,1:4). Array ini secara fisik dapat digambarkan sbb :
|
1
|
2
|
3
|
4
|
1
|
|
|
|
|
2
|
|
|
|
|
3
|
|
|
|
|
Linierisasi menurut baris akan mengakibatkan bentuk diatas menjadi
:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1
|
|
|
|
2
|
|
|
|
3
|
|
|
Jika B adalah starting address array A(1:3,1:4) dan S adalah ruang
yang digunakan oleh masing-masing elemennya, maka starting address dari elemen
A(I,J) adalah :
B + (I-1) * 4 * S + (J-1) * S
Hal ini karena ada ( I-1) baris, masing-masing dengan panjang 4*S
yang mendahului baris dimana elemen A(I,J) berada dan ada (J-1) elemen
masing-masing dengan panjang S yang mendahului elemen A(I,J) pada baris ke I.
Contoh
Dari array A(1:3,1:4) akan dicari starting adress elemen A(2,4).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
baris
|
1
|
|
|
baris
|
2
|
|
|
baris
|
3
|
|
|
A(2,4)
Starting address A(2,4) =
B + (2 - 1) * 4 * S + (4 - 1) * S
=
B + 7 * S
Secara umum elemen A(I,J) dari array A(l:U,L:U) mempunyai starting
address :
B + (I-L1) * (U2-L2+1) * S +
(J-L2) *
S
Alternatif lain untuk linierisasi adalah dengan menggunakan cara
kolom jika diberikan array A(1:3,1:4) diatas, maka bentuk linierisasinya :
Jika B adalah starting address dari array A(1:4,1:6) dan S adalah
ruang digunakan untuk masing-masing elemenya, maka starting address dari
A(I,J) adalah :
B + (J - 1) * 4 * S + (I - 1) * S
Hal ini disebabkan ada (J - I) kolom masing-masing dengan 4 elemen
yang panjangnya s yang mendahului kolom tempat elemen A(I,J) berada dan ada
(I-1) elemen masing-masing dengan panjang S yang mendahului elemen A(I,J) pada
kolom ke J.
Secara umum dapat dikatakan bahwa :
Elemen A(I,J) dari array A(L1:U1,L2:U2), menurut kolom mempunyai starting
address :
B + (J-L2) * (U1-L1+1) * S +
(I-L1) *
S
Jika starting adress array tersebut adalah B dan masing-masing
elemenya menggunakan ruang sebanyak S bit.
Contoh :
Misal diberikan array K(1:4,1:6) dengan starting address B dan
masing-masing elemenya menggunakan ruang S bit. Maka starting adress dari
elemen k(2,4) adalah :
=
B + (4 - 1) * (4-1+1) * S + (2 - 1) * S
=
B + 3 * 4* S + 1 * S
=
B + 13 * S
B.
RECORD
Record adalah himpunan dari elemen-elemen yang heterogen.
Heterogen adalah elemen-elemennya dapat mempunyai tipe data yang berbeda.
v ELEMENTARY ITEM
adalah suatu field yang tidak mempunyai subfield.
v GROUP ITEM adalah suatu
field yang mempunyai subfield.
v TUPEL adalah
gabungan atribut yang menjadi suatu informasi dari proses basis data.
Contoh RECORD :
PEGAWAI
Job Tittle
|
Emp. No
|
Pay Rate
|
Name
|
Telp. No
|
Analys
|
00012724
|
1.000.000
|
Bob
Geldof
|
7801725
|
Programmer
|
00023451
|
800.000
|
Ceu
Rika
|
7521475
|
(
String(20) )
|
(
String(8) )
|
(
Real(9,2) )
|
(
String(25) )
|
(
String(7) )
|
Record-record yang
tipenya sama : FILE.
Untuk menyatakan suatu
data dalam record yang mempunyai identifikasi yang khusus, maka harus punya 1
field khusus yang disebut KEY (kunci
field).
DEKLARASI RECORD DALAM BAHASA PEMROGRAMAN
PROGRAM DALAM COBOL
DATA DIVISION.
01 PEGAWAI.
02 JOB_TITTLE PIC
X(20).
02 EMP_NO PIC
X(8).
02 PAY_RATE PIC
9(2) V 9(2).
02 NAME PIC
X(25).
02 TELP_NO PIC
X(7).
PROGRAM DALAM PASCAL
Type
Pegawai = Record;
Job_Tittle
: String[20];
Emp_No : String[8];
Pay_Rate
: Real;
Name : String[25];
Telp_No : String[7];
End;
BAB III
PENUTUP
PENUTUP
A.
Kesimpulan
Array adalah
suatu struktur yang terdiri dari sejumlah elemen yang memiliki tipe data yang
sama. Elemen-elemen array tersusun secara sekuensial dalam memori komputer.
Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak
dimensi (multi dimensi).
Structure
(struktur) adalah kumpulan elemen-elemen data yang digabungkan menjadi satu
kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field.
Field data tersebut dapat memiliki tipe data yang sama ataupun berbeda.
Walaupun fieldfield tersebut berada dalam satu kesatuan, masing-masing field
tersebut tetap dapat diakses secara individual.
Setiap ingin
menambahkan data, Anda selalu menggunakan variabel pointer yang baru, akibatnya
Anda akan membutuhkan banyak sekali pointer. Oleh karena itu, ada baiknya jika
Anda hanya menggunakan satu variabel pointer saja untuk menyimpan banyak data
dengan metode yang kita sebut Linked List. Linked list adalah sekumpulan elemen
bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya
terdiri dari dua bagian.
B.
Saran
Dengan tersusunnya makalah ini
diharapkan para pembaca memberi saran dan kritik demi terciptanya kemajuan
dalam pembuatan makalah-makalah berikutnya.
DAFTAR PUSTAKA
No comments:
Post a Comment