You are on page 1of 7

88A?

ulMLnSl SA1u

Sebuah array dlmensl saLu yang mlsalnya klLa berl nama nlLAl dapaL klLa bayangkan
berbenLuk seperLl Cambar 21

nllal (1) nllal (2) nllal (3) nllal (n)

SubscrlpL aLau lndeks darl elemen array menyaLakan poslsl elemen pada uruLan dalam
array LersebuL noLasl yang dlgunakan bagl elemen array blasanya adalah nama array
dllengkapl dengan subcrlpL

Secara umum suaLu array dlmensl saLu A dengan Llpe daLa 1 dan subscrlpL bergerak
darl L sampal dengan u dlLulls sebagal A(Lu) (A(l)) l L L+1 L+2 u dan seLlapelemen A(l) berLlpe
daLa 1

Sebagal conLoh klLa dapaL menullskan daLa hasll pencaLaLan suhu suaLu ruangan
seLlap saLu [am selama perlode 24 [am dalam sebuah array dlmensl saLu
Parga mlnlmum darl subscrlpL darl array dlsebuL baLas bawah aLau lower bound
sedangkan harga makslmumnya dlsebuL baLas aLas aLau upper bound !adl pada array dl
aLas L merupakan baLas bawah dan u baLas aLas

Sedangkan unLuk array ''suhu'' yang elemennya dapaL klLa Lulls sebagal SuPu(l) baLas bawahnya adalah
1 dan baLas aLasnya 24 SuPu(l) menyaLakan suhu pada [am ke1 dan l memenuhl 1 l 24 l
merupakanlnLeger

8aLas bawah darl array pada beberapa apllkasl Lldak selalu dlambll 1 kadangkadang
dlambll baLas bawah nol bahkan [uga negaLlf 8anyaknya elemen sebuah array dlsebuL
renLang aLau range !adl array A(Lu) mempunyal range sebesar uL+1 Secara khusus
blla Ll dan un maka range darl array A(ln) adalah nl+1 n

A88A? ulMLnSl 8An?Ak

Sebuah array dlmensl banyak aLau mulLldlmenslonal array dldeflnlslkan sebagal sebuah
array yang elemennya berupa array pula Mlsal array 8 mempunyal M elemen berupa
array pula yang Lerdlrl darl n elemen

unLuk lLu dlperlukan dua buah subscrlpL ?ang perLama dlgunakan unLuk menyaLakan
poslsl barls sedangkan yang kedua unLuk poslsl kolom Secara umum array dlmensl dua
8 dengan elemen berLlpe daLa 1 subscrlpL barls darl l sampal M subscrlpL kolom darl l
sampal n dlLulls sebagal 8(1M 1n) (8(l!)) l 1 2 M dan ! 1 2n dengan
seLlap elemen 8(l!) berLlpe daLa 1 Array 8 LersebuL dlkaLakan berukuran aLau berorder Mx n ul slnl
banyak elemen array adalah M*n

ConLoh darl array dlmensl dua sangaL banyak klLa [umpal Mlsalnya nllal u[lan 300
mahaslswa Cunadarma LlngkaL 3 unLuk 8 maLa kullah dapaL klLa sa[lkan sebagal array
dlmensl dua yang berorder 300 x 8 Llemen 8(l!) menyaLakan nllal mahaslswa kel
unLuk maLa kullah ke!

SeperLl halnya pada array dlmensl saLu pada array dlmensl dua baLas bawah unLuk
subscrlpL l maupun ! dapaL dlambll secara umum Mlsalnya baLas bawah subscrlpL barls
adalah L1 subscrlpL kolom adalah L2 sedangkan baLas aLas subscrlpL barls adalah u1 dan
unLuk kolom adalah u2 maka array dlmensl dua LersebuL dapaL dlnoLaslkan sebagal 8(L1u1 L2u2)
(8(l!)) L1 1 u1 L2 ! u2 dengan seLlap elemen 8(l!) berLlpe daLa 1

8anyaknya elemen pada seLlap barls adalah u2 L2 + 1 dan pada seLlap kolom adalah u1L1+l sehlngga
banyaknya elemen pada array 8 semua ada (u2L2 +1) * (u1L1 +1)
?ang dlmaksud dengan crosssecLlon suaLu array berdlmensl dua adalah pengambllan
salah saLu subscrlpL mlsalnya subscrlpL barls unLuk LeLap aLau konsLan semenLara subscrlpLyang
saLunya lagl klLa ubahubah sepan[ang rangenya

noLasl yang umum dlgunakan adalahnoLasl * (asLerlsk) bagl subscrlpL yang berubahubah nllalnya
LersebuL

ConLohnya penullsan 8(*4) menyaLakan semua elemen pada kolom ke4 yaknl
(8(14)8(24) 8(34) 8(M4)) seperLl LerllhaL pada Cambar 23

uengan mudah dapaL dlmengerLl bahwa 8(11*) menun[ukkan semua elemen pada
barls ke11

1ranspose darl suaLu array dlmensl dua adalah penullsan barls men[adl kolom (kolom
men[adl barls) darl suaLu array !adl Lranspose darl array berorder M x n adalah array
berorder n x M 1ranspose darl array 8 dlnoLaslkan sebagal 81 8erdasarkan deflnlsl maka[elas 8(l!)
81(!l) ConLohnya 8(33) 81(33)

engerLlan dl aLas dapaL klLa perluas unLuk array dlmensl Llga dlmensl empaL sampal
dlmensl n Array dlmensl n klLa Lulls sebagal

A(L1u1 L2u2 Ln un) (A(l1 l2 ln))
dengan Lk lk uk unLuk seLlap k 1 2 n
8anyaknya elemen darl array A LersebuL adalah
l(uk Lk + 1) (u1L1+1) * (u2 L2+1) * (un Ln + 1)

ConLoh array dlmensl Llga adalah penya[lan daLa mengenal banyaknya mahaslswa
darl20 perguruan Llnggl dl !akarLa berdasarkan LlngkaL (LlngkaL 1 2 sampal dengan 3) dan [enls
kelamln (prla aLau wanlLa) Mlsalnya array LersebuL dlnamakan MPS Ambll
sebagal subscrlpL perLama LlngkaL l 1 23 subscrlpL kedua [enls kelamln (prla 1
wanlLa 2) ! 12 dan subscrlpL ke3 erguruan 1lnggl adalah k 1220 !adl
MPS(4217) menyaLakan [umlah mahaslswa LlngkaL 4 wanlLa darl perguruan Llnggl
ke 17

Array dlmensl Llga dapaL klLa bayangkan seperLl Cambar 24

engerLlan crosssecLlon pada array dlmensl banyak adalah sama seperLl pada array
dlmensl dua Mlsalnya MPS(4*17) menun[ukkan [umlah mahaslswa LlngkaL 4 darl
perguruan Llnggl 17 (maslngmaslng unLuk prla serLa wanlLa) MPS(**3)
menun[ukkan [umlah mahaslswa unLuk maslngmaslng LlngkaL prla serLa wanlLa
darl perguruan Llnggl 3

MLnuLkLA8ASlkAn A88A? uALAM 8APASA LM8CC8AMAn

Mlsalkan klLa hendak mendeklaraslkan array 1LM yang merupakan array dlmensl
saLu dengan nllal subscrlpL 1 sampal 24 dan maslngmaslng elemen berLlpe daLa lnLeger
(nllalnya anLara 0 hlngga 99 dera[aL)

ualam 8ahasa CC8CL dapaL dlLulls

01 1A8LL1LM
02 1LM CCCu8S 24 1lMLS lC 99
ualam bahasa ascal
var Lemp array l24) of lnLeger
ualam 8ahasa 8ASlC klLa dapaL mendeflnlslkan array 1LM LersebuL dengan sLaLemenL

ulM 1LM(24)
1lga hal harus dlkemukakan dalam mendeklaraslkan suaLu array yaknl
1 nama array
2 range darl subscrlpL
3 Llpe daLa darl elemen array

8ahasa ascal memperkenankan baLas bawah subscrlpL yang bukan 1 conLohnya
adalah var graflk array 100 100 of lnLeger

ualam CC8CL subscrlpL harus dlmulal darl 1

unLuk menyaLakan elemen kel darl array CC8CL dan 8ASlC menggunakan kurung
blasa yaknl 1LM(l) sedangkan ascal menggunakan kurung slku yaknl Lempl
unLuk mendeklaraslkan sebuah array nllal darl 300 mahaslswa unLuk 8 maLa kullah
dalam CC8CL dlLulls

01 1A8LLnlLAl
02 MPS CCCu8S 300 1lMLS
03 nlLAl CCCu8S 8 1lMLS
lC 99v9
ualam ascal dlLulls
var nllal Array130018 of real
dan dalam 8ASlC dapaL dlLulls
ulM nlLAl(3008)

ualam CC8CL makslmum dlmensl yang dapaL dlLerlma adalah 3 (Lhree dlmenslonal)
conLohnya

01 MPS1A8LL
02 1lnCkA1 CCCu8S 3 1lMLS
03 SLx CCCu8S 2 1lMLS
04 MPS CCCu8S 20 1lMLS
lC 9(3)

dan dalam ascal

var mhs Array13 12 120 of lnLeger
ualam bahasa pemrograman seperLl lC818An dan CC8CL alokasl unLuk array
dalam sLorage memerlukan wakLu dalam proses kompllasl karenanya baLas bawah dan
baLas aLas harus dlkemukakan keLlka mendeflnlslkan array

CC8CL dan ascal ([uga bahasa laln yang memungklnkan pendeklaraslan array) mempunyalfaslllLas
unLuk melakukan manlpulasl anLarelemen array Cperasl yang sesual denganLlpe daLa array LersebuL
dapaL dlker[akan dengan mudah conLohnya dalam CC8CL
CCMu1L 1C1AL_uAP(l) uAP_L8_!AM(l) * !uMLAP!AM(l)
1erllhaL bahwa keLlga varlabel dl aLas adalah array

LML1AAn A88A? ulMLnSl SA1u kL S1C8ACL
SeperLl halnya sLrukLur daLa yang laln ada beberapa cara unLuk menya[lkan array dl dalammemorl
Skema penya[lan dapaL dlevaluasl berdasarkan 4 karakLerlsLlk yaknl

1 kesederhanaan darl akses elemen
2 mudah unLuk dlLelusurl
3 eflslensl darl uLlllLasl sLorage
4 mudah dlkembangkan

umumnya Lldaklah mungkln unLuk mengopLlmalkan keempaL fakLor LersebuL
sekallgus andang array saLu dlmensl nCLC dengan baLas bawah subscrlpL 1 dan baLas aLas subscrlpL
n Salah saLu cara unLuk menylmpan array lnl adalah sedemlklan sehlngga uruLan flslk darl elemen
sama dengan uruLan loglk darl elemen SLorage unLuk elemen nCLC(l+1) adalah berdamplngan dengan
sLorage unLuk elemen nCLC(l) unLukseLlap l 1 2 3 n1 unLuk menghlLung alamaL (address) awal
darl elemen nCLC(l) dlperlukan unLuk mengeLahul 2 hal yaknl

1 address awal darl ruang sLorage yang dlalokaslkan bagl array LersebuL
2 ukuran darl maslngmaslng elemen array

Address awal darl array klLa nyaLakan dengan 8 dlsebuL [uga baselocaLlon Mlsalkan
bahwa maslngmaslng elemen darl array mendudukl S byLe Maka address awal darl elemenkel adalah
8 + (l1) * S

Sekarang klLa perluas persamaan dl aLas unLuk mendapaL address darl elemen kel darl
array yang mempunyal baLas bawah subscrlpL Lldak sama dengan 1 erhaLlkan array Z(410)
maka address awal darl Z(6) adalah

8 + (64) * S
unLuk array Z2 (22) mlsalnya address awal darl Z2(l) adalah
8 + (l (2)) * S
Maka secara umum unLuk array
A88A?(Lu)
elemen A88A?(l) mempunyal address awal
8 + (uL) *

18lnCuLA8 A88A? (A88A? SLCl1lCA)
Akan klLa Lln[au beberapa aspek pellnearan suaLu array yang khusus yaknl Lrlngular array
1rlngular array dapaL merupakan upper Lrlngular (seluruh elemen dl bawah dlagonal
uLama 0) aLaupun lower Lrlngular (seluruh elemen dl aLas dlagonal uLama 0)
ualam array lower Lrlangular dengan n barls [umlah makslmum elemen 0 pada
barls kel adalah 1 karenanya LoLal elemen 0 Lldak leblh darl

n
z l n ( n+1) / 2
l l

8umus lnl berlaku pula unLuk array upper Lrlngular dengan n barls kalau n besar
alangkah balknya kalau elemen nol Lldak usah klLa slmpan dalam memorl SuaLu pendekaLanLerhadap
problema lnl adalah dengan pellnearan array dan dengan hanya menylmpanbaglan array yang Lldak nol

Mlsalkan klLa menylmpan array upper Lrlngular 1 secara barls dalam array saLu dlmensl
S dengan baLas subscrlpL l sampal n(n+l)/2 Llemen 1(11) dlslmpan sebagal S(1) elemen1(12) sebagal
S(2) dan seLerusnya sehlngga elemen 1(1n) dlslmpan sebagal S(n)
Maka elemen 1(22) dlslmpan sebagal S(n+1) (karena 1(21) 0) 1erakhlr sekall elemen1(nn) akan
dlslmpan sebagal S(n(n+1)/2)

kadangkadang suaLu program menggunakan leblh darl saLu array Lrlngular unLuk
lLu klLa dapaL menylmpan 2 array sekallgus Mlsalnya array A upper Lrlangular berorder nx n dan array 8
lower Lrlangular berorder (n1) x (n1) Mereka dapaL klLa slmpan
sebagal array C berorder n x n ul slnl C(l!) A(l!) unLuk l ! dan C(l+1!) 8(l!)
unLuk l !

Sekarang apablla array A upper Lrlngular berorder n x n sedangkan array 8 lower
Lrlngular [uga berorder n x n maka array C yang mengandung keduanya harus berorder
n x (n+1) ul slnl elemen A(l!) dlslmpan sebagal C(l!+1) unLuk l ! dan 8(l!)
dlslmpan sebagal C(l!) unLuk l !

8LCC8u
Sebuah record merupakan koleksl saLuan daLa yang heLerogen yaknl Lerdlrl darl berbagal
Lype SaLuan daLa LersebuL serlng dlsebuL sebagal fleld darl record lleld dlpanggll dengan
menggunakan namanya maslngmaslng SuaLu fleld dapaL Lerdlrl aLas beberapa subfleld
Sebagal ConLoh daLa personalla darl seorang pegawal suaLu perusahaan dl Amerlka SerlkaLmerupakan
sebuah record yang dapaL Lerdlrl darl berbagal fleld dan subfleld seperLl berlkuL lnl

1 nCMC8!AMlnAnSCSlAL
2 nAMA yang Lerdlrl aLas

nAMA8LLAkAnC
nAMAuLAn
nAMA1LnCAP

3 ALAMA1 Lerdlrl aLas

!ALAn
nCMC8 8uMAP
nAMA!ALAn
kC1A
nLCA8A8AClAn
kCuLCS
4 MLnlkAP
dan sebagalnya lagl

ada record LersebuL dl aLas saLuan daLa seperLl nAMA 8LLAkAnC aLaupun kC1A
merupakan Llpe daLa sLrlng sedangkan daLa laln seperLl CA!l CkCk 1un!AnCAn
!A8A1An dan berbagal daLa yang akan dlolah secara maLemaLls akan dlslmpan dengan
Llpe daLa numerlk blsa lnLeger maupun real uaLa MLnlkAP blsa dlgunakan Llpe daLa
boolean aLau loglkal

SeperLl Lelah klLa paparkan Lerdahulu array berbeda dengan record yaknl array berslfaL
homogen (Lerdlrl darl Llpe daLa yang sama) dan komponen array Lldak memlllkl nama
sendlrl dan hanya dlberl ldenLlflkasl oleh poslsl mereka dl dalam array enggunaan
keduanya dl dalam program [uga berbeda [lka penggunaan array pada umumnya akan
dlslmpan dl memorl uLama kompuLer (berslfaL semenLara) sedangkan record blasanya
dlgunakan dalam flllng yang akan dlslmpan dl memorl sekunder kompuLer seperLl hard
dlsk dlskeL dan lalnnya

Sebuah record memberl lnformasl LenLang berbagal kondlsl darl obyek padapermasalahan yang nyaLa
seharlharl SeLlap fleld memberl uralan LenLang saLu aLrlbuL darl obyeknya Sebuah record blasanya
dlberl ldenLlflkasl oleh keynya key aLau kuncl adalah salah saLu aLau leblh fleld yang dlplllh unLuk
Lu[uan penyampalan lnformasl yang Ler[adl dl dalam record yang bersangkuLan

koleksl darl record yang sama sLrukLur fleldnya dlsebuL suaLu flle aLau berkas !adl koleksl
darl record semua pegawal perusahaan membenLuk sebuah flle personalla ada umumnya
record dlslmpan membenLuk flle dalam uruLan sesual dengan nllal darl key maslngmaslng
ul dalam suaLu flle L8SCnALlA fleld nCMC8 !AMlnAn SCSlAL darl seorang pegawal
dapaL dlgunakan sebagal key ul dalam bahasa pemrograman LlngkaL Llnggl record dapaL
dlnyaLakan sebagal sLrukLur daLa (CC8CL dan L/1) dapaL dladakan speslflkasl LenLang
nama record fleld dan subfleld yang bersangkuLan

You might also like