Anda di halaman 1dari 24

Array

Array merupakan bagian dasar pembentukan suatu struktur data yang lebih
kompleks. Hampir setiap jenis struktur data kompleks dapat disajikan secara logik
oleh array.
Array : Suatu himpunan hingga elemen yang terurut dan homogen, atau dapat
didefinisikan juga sebagai pemesanan alokasi memory sementara pada
komputer.
Terurut : elemen tersebut dapat diidentifikasi sebagai element pertama, kedua,
dan seterusnya sampai elemen ke-n.
Homogen : setiap elemen data dari sebuah array tertentu haruslah mempunyai
tipe data yang sama.
Karakteristik Array :
1. empunyai batasan dari pemesanan alokasi memory !bersifat statis"
#. empunyai type data sama ! bersifat Homogen"
$. %apat diakses secara acak.
&. 'erurutan ! terstruktur ".
Array mempunyai dimensi :
1. Array %imensi Satu !(ektor"
#. Array %imensi 'anyak.
- %imensi %ua !atriks)Tabel"
- %imensi Tiga !*ubik".
Algoritma & Pemrograman 2 C Hal 1 dari 24 Hal
ARRAY DIMENSI SATU
erupakan bentuk yang sangat sederhana dari array.
Setiap elemen array mempunyai subskrip)indeks.
+ungsi indeks)subskrip ini antara lain :
1. enyatakan posisi elemen pada array tsb.
#. embedakan dengan elemen lain.
Penggambaran secara fisik Array A(1:N) :
A(1) A(2) A(3) A(4) A(N)
Ket : A : nama array
1,2,3,4,,N : indeks s!"skri#
Se$ara !m!m Array Dimensi Sat! A den%an ti#e T dan s!"skri# "er%erak dari & sam#ai
U dit!'is : A(L:U) = (A(I)); I =L , L+1, L+2, , U
Keteran%an : & : "atas "a(a) indeks '*(er "*!nd
U : "atas atas indeks !##er "*!nd
A : nama Array
+anyaknya e'emen array dise"!t Rentang atau Range A(L:U) = U L + 1
Ran%e k)!s!s !nt!k array Dimensi Sat! yan% mem#!nyai "atas "a(a) indeks &,1 dan
"atas atas U,N, maka Range A adalah A(1:N) =( N 1) + 1 = N
Contoh :
Data )asi' #en$atatan s!)! s!at! r!an%an setia# sat! -am, se'ama #eri*de 24 -am dit!'is
da'am "ent!k Array Dimensi Sat! men-adi
Misal :
nama arraynya S!)!, "erarti e'emennya da#at kita t!'is se"a%ai S!)!.I/, den%an
"atas "a(a) 1 dan "atas atas 240
S!)!.I/:menyatakan s!)! #ada -am ke1I dan 12,I2,24
Ran%e S!)!.1:24/,.2411/31,24
Algoritma & Pemrograman 2 C Hal 2 dari 24 Hal
ARRAY DIMENSI BANYAK
Array Dimensi +anyak .M!'ti1Dimensi*na' ARRAY/ :
s!at! array yan% e'emen 4e'emennya "er!#a array -!%a0
Array Dien!i Dua "erlu dua !u#!$ri"%inde$! :
a0 Indeks #ertama !nt!k menyatakan #*sisi "aris
"0 Indeks ked!a !nt!k menyatakan #*sisi k*'*m
Se$ara !m!m Array Dimensi D!a + den%an e'emen1e'emen "erty#e data T dinyatakan
s"" : &(L1:U1,L2:U2)='&(I,())
&12,12,U1, &22,12,U2, dan setia# e'emen +.I,5/ "erty#e data T
Keteran%an : + , nama array
&1 , "atas "a(a) indeks "aris
&2 , "atas "a(a) indeks k*'*m
U1 , "atas atas indeks "aris
U2 , "atas atas indeks k*'*m
5!m'a) e'emen "aris dari array + ada'a) (U2 * L2 + 1)
5!m'a) e'emen k*'*m dari array + ada'a) (U1 L1 + 1)
5!m'a) t*ta' e'emen array ada'a) (U2 L2 + 1) + (U1 L1 + 1)
S!at! array + yan% terdiri atas M e'emen dimana e'emennya "er!#a array den%an N
e'emen, maka da#at di%am"arkan s"":
1 2 3 J .. N
1
2
3

I B(I,J)

M
Array diatas dit!'iskan :
+.1:M, 1:N/ , +.I,5/ 6
Algoritma & Pemrograman 2 C Hal 3 dari 24 Hal
Unt!k I , 1,2,3,0,M dan
5 , 1,2,3,00, N
5!m'a) e'emen array + : M 7 N
Array + "er!k!ran "er*rder : M 7 N
CRSS SEC!IN
Cross Section dari array berdimensi dua adalah suatu himpunan yan
an!tanya adalah elemen"elemen dalam satu baris sa#a atau satu $!l!m
sa#a.
Notasinya : *
Misal
Array B(1%M &1%N) ' (B(I,J))&
I ' 1,2,3,..,M dan
J ' 1,2,3,.,N
Ma$a suatu *r!ss +e,ti!n %
B(-,.) ' (B(-,1), B(-,2), B(-,3),, B(-,N))
B(.,-) ' (B(1,-), B(2,-), B(3,-),, B(M,-))
!RANSPSE
Transpose dari suatu array berdimensi dua adalah menu$ar p!sisi
inde$snya ( menu$ar p!sisi baris men#adi $!l!m atau $!l!m men#adi baris).

/ransp!se suatu array dari B dinotasikan B


T
B adalah array dua dimensi, B(I,J) maka B
T
(J,I)
A adalah array dua dimensi yan ber!rder M 0 N memepunyai transp!se
( A
/
) N 0 M
Algoritma & Pemrograman 2 C Hal 4 dari 24 Hal
ARRAY DIMENSI !I"A
Banya$nya inde$s yan diperlu$an array dimensi tia adalah 3
1ada umumnya, suatu array berdimensi N memerlu$an N inde$s untu$
setiap elemennya.
Secara acak array berdimesi N ditulis sbb:
A(21%31, 22%32, .., 2N%3N ) ' (A(I1,I2,,IN)) denan 2
4
5' I
4
5'3
4
, $
' 1,2,3,, N
Contoh :
1enya#ian data menenai #umlah mahsis6a Mana#emen In7!rmati$a
3ni8ersitas 9unadarma berdasar$an tin$at, untu$ $elas pai dan malam dan
#enis $elamin.
Jawab :
M:+ ' nama array
I ' 1,2,3,4,- (tin$at 1;-)
J ' 1,2 (1 ' pai& 2 ' malam )
4 ' 1,2 (1 ' pria& 2' 6anita)
M:+ (1%-, 1%2,1%2)
Jadi %
M:+(3,2,2)
#umlah mahasis6a tin$at 3 MI $elas malam untu$ #enis $elamin 6anita
*r!ss +e,ti!n M:+ (1,.,2)
#umlah mahasis6a tin$at 1 MI $elas pai atau malam dan ber#enis
$elamin 6anita.
MAPPIN" KE S!RA"E DARI ARRAY
+$ema penya#ian dapat die8aluasi berdasar$an 4 $ara$teristi$ yaitu %
Algoritma & Pemrograman 2 C Hal 5 dari 24 Hal
1. 4esederhanaan dari a$ses elemen
2. Mudah ditelusuri
3. <7isiensi dari utilitas st!rae
4. Mudah di$emban$an
ARRAY SA!# DIMENSI
Misal:
=iberi$an array denan nama B yan mempunyai inde$s 1 s;d N yaitu A(1%N).
*ara untu$ menyimpan array tersebut adalah sedemi$ian sehina urutan
se,ara 7isi$ dari elemen"elemen adalah sama denan urutan l!i$ dari elemen.
3ntu$ menetahui Address A6al ( +tartin Address) dari elemen suatu array
A(I) perlu di$etahui %
1. Address A6al dari array yan bersan$utan
2. 3$uran dari masin"masin elemen array
Address A6al dari array dinyata$an denan n!tasi Address A6al yaitu B
( Base ocation)
Masin"masin elemennya menuna$an ruan sebanya$ S byte.
Address a6al dari elemen $e"I dari array A(1%N) adalah %
B ! (I " # ) * S
Address A6al yan mempunyai batas ba6ah tida$ sama denan satu
,elemen $e"I dari array A(2%3) adalah % B ! ( I" ) * S
Misal :
A ( 1%>), address a6al dari elemen A(-) adalah % B ? ( - @1) . +
Algoritma & Pemrograman 2 C Hal 6 dari 24 Hal
A ( 3%A), address a6al dari elemen A(B) adalah % B ? (B " 3 ) . +
A ("3%4), address a6al dari elemen A(2) adalah % B ? (2 @(" 3) ) . +
ARRAY M#$!I DIMENSI
Mem!ri $!mputer linier, ma$a untu$ memeta$an array dimensi banya$ $e
st!rae harus dilinier$an.
Alternati7 untu$ pelinieran tersebut adalah %
$o% &a'or
Biasanya diuna$an *CBC2, 1A+*A2
Menyimpan pertama $ali baris pertama dari array, $emudian baris $edua,
$etia dst
Array Date ( 1%3 , 1%-)
1 2 3 4 -
1
2 Rate(2,3)
3
Men#adi
$ate((,))
Baris 1 Baris 2 Baris 3
Array A(I,J) dari array yan dide7inisi$an sebaai array
A(21%31 , 22%32), mempunyai
*ddress a%al : B ! (I " #) * (+( " ( !#) * S ! ( J " () * S
Contoh :
Array A(1%3, 1%-) dan elemen A(2,3) mempunyai address a6al %
B ? (2"1) . (-"1?1) . + ? (3"1) . +
Algoritma & Pemrograman 2 C Hal 7 dari 24 Hal
B ? - . + ? 2 . +
B ? > . +
Array A(2%4, 3%-) dan elemen A(3,4) mempunyai address a6al %
B ? (3"2) . (-"3?1) . + ? (4"3) . +
B ? 1 . 3 . + ? 1 . +
B ? 4 . +
Column &a'or
Biasanya diuna$an ECD/DAN
Menyimpan 4!l!m pertama dari array $emudian $!l!m $edua, $etia, dst
Men#adi
Date ( 2,3)
Kolom 1 Kolom 2 Kolom 3 Kolom 4 Kolom 5
Array A(I,J) dari array yan dide7inisi$an sebaai array
A(21%31 , 22%32) mempunyai
*ddress a%al : B ! (J " () * (+# " # !#) * S ! ( I " #) * S
Contoh :
Array A(1%3, 1%-) dan elemen A(2,3) mempunyai address a6al %
B ? (3"1) . (3"1?1) . + ? (2"1) . +
B ? B . + ? 1 . +
B ? > . +
Array A(2%4, 3%-) dan elemen A(3,4) mempunyai address a6al %
B ? (4"3) . (4"2?1) . + ? (3"2) . +
B ? 1 . 3 . + ? 1 . +
Algoritma & Pemrograman 2 C Hal 8 dari 24 Hal
B ? 4 . +
ARRAY SE"I!I"A (!RIN"#$AR ARRAY)
*da ( macam
1. 3pper /rinular
<lemen diba6ah dia!nal utama adalah F
2. 2!6er /rinular
<lemen diatas dia!nal utama adalah F
+uatu array dimana elemen dia!nalnya #ua n!l disebut Strictly
(upper,lo%er) Trin-ular.
1ada array 2!6er /rinular denan N baris, #umlah ma$simum elemen 5G F
pada baris $e"I adalah I

N
Total elemen /0 1 adalah I 2 ( N * ( N!#)) ,(
32#
3ntu$ N $e,il % tida$ ada masalah
3ntu$ N besar %
1. <lemen yan sama denan n!l tida$ usah disimpan dalam mem!ri
2. 1ende$atan terhadap masalah ini adalah denan pelinieran array dan
hanya menyimpan array yan tida$ n!l.
1. Misal
A array seitia atas ber!rder N 0 N
B array berseitia ba6ah denan !rder ( N"1) 0 ( N"1)
A dan B dapat disimpan sebaai array * ber!rder N 0 N
* (I,J) ' A(I,J) untu$ I 5' J
*(I?1,J) ' B(I,J) untu$ I G' J
Algoritma & Pemrograman 2 C Hal 9 dari 24 Hal
2. Misal
A array seitia atas ber!rder N 0 N
B array berseitia ba6ah denan !rder N 0 N
A dan B dapat disimpan sebaai array * ber!rder N 0 ( N ? 1 )
* (I,J?1) ' A(I,J) untu$ I 5' J
*(I,J) ' B(I,J) untu$ I G' J
3. Misal
A dan B $eduanya merupa$an array seitia atas
Ma$a untu$ menyimpannya se,ara bersama"sama denan mela$u$an
transp!se terhadap salah satu array tersebut.
Array * ber!rder N 0 (N?1)
* (I,J?1) ' A(I,J) untu$ I 5' J
*(J,i) ' B(I,J) untu$ I G' J
SPARSE ARRAY
+uatu type $husus yan lain dari array
=i$ata$an +parse atau #aran $arena elemen"elemen yan tida$ n!lnya
relati7 lebih sedi$it #umlahnya
+etiap elemen bu$an n!l pada sparse array dua dimensi dapat
direpresentasi$an dalam 7!rmat ($o%4Subscript, Column4subscript,
5alue).
/riple ini dapat diurut berdasar$an D!6"+ubs,ript Ma#!r dan *!lum"
+ubs,ript Min!r dan disimpan dalam bentu$ 8e$t!r.
1enya#ian lain dari +parse Array adalah denan menuna$an da7tar
ber$ait; 2in$ed 2ist.
Algoritma & Pemrograman 2 C Hal 10 dari 24 Hal
S!ACK
$INEAR $IS!
2inear list adalah suatu stru$tur data yan merupa$an himpunan terurut
dari satuan data atau dari re,!rd.
<lemen yan terdapat dalam da7tar disebut simpul;n!de.
=a7tar disebut 2inear $arena elemen nampa$ seperti baris, bah6a setiap
simpul ($e,uali simpul pertama dan tera$hir) selalu memili$i elemen
penerus lansun (su$ses!r) dan elemen pendahulu lansun (predes!r).
Misalnya dide7inisi$an suatu linear list A yan terdiri atas / buah elemen
sebaai beri$ut %
A'H a1,a2,, a/ I
Ji$a / ' F , ma$a A di$ata$an sebaai 6Null ist7 (list hampa).
+uatu elemen dapat dihapus (delete) dari sembaran p!sisi pada linear list .
+uatu elemen baru dapat dimasu$$an (inserti!n) $edalam list dan dapat
menempati sembaran p!sisi pada list tersebut.
Jadi suatu linear list dapat ber$uran atau bertambah setiap saat
*!nt!h % 7ile merupa$an linier list yan elemen"elemennya berypa re,!rd.
DE%INISI S!ACK
ST*C3 adalah suatu bentu$ $husus dari linear list di mana !perasi
penyisipan dan penhapusan atas elemen"elemennya hanya dapat dila$u$an
pada satu sisi sa#a yaitu p!sisi a$hir dari list. 1!sisi ini disebut pun,a$ atau
disebut sebaai 6T89(S)7.
1rinsip +ta,$ adalah I:8 ( ast In :irst 8ut ) atau /era$hir masu$
pertama $eluar.
+etiap elemen tida$ dapat di$eluar$an (1C1 $eluar) sebelum semua elemen
diatasnya di$eluar$an.
Algoritma & Pemrograman 2 C Hal 11 dari 24 Hal
<lemen teratas (pun,a$) dari sta,$ din!tasi$an sebaai /C1(+)
Misal diberi$an sta,$ + sebaai beri$ut %
S2 ; S(,S(,<<<, ST = maka T89(S) 2 ST
3ntu$ menun#u$$an #umlah elemen suatu sta,$ diuna$an n!tasi
N8>(S).
=ari sta,$ diatas ma$a NC<2(+) ' /.
NC<2(+) menhasil$an nilai inteer.
Ji$a diberi$an sebuah sta,$ + ' HA,B,*,=I ma$a sta,$ + ini dapat diambar$an
sebaai beri$ut %
/C1
/C1
PERASI PADA S!ACK
1. *D<A/< (+/A*4)
2. I+<M1/J (+/A*4)
3. 13+: (<2<M<N, +/A*4)
4. 1C1 (+/A*4)
C$>*T>(S)
Operator ini berfungsi untuk membuat sebuah stack kosong (menjadi hampa) dan
didefinisikan bahwa
N8> (C$>*T> (S)) 2 1 dan
T89 (C$>*T>(S)) 2 null , tidak terde?inisi
Algoritma & Pemrograman 2 C Hal 12 dari 24 Hal
D
C
B
A
A
B
C
D
A B C D
D C B A
IS>&9T@(S)
Cperat!r ini ber7unsi untu$ menentu$an apa$ah suatu sta,$ adalah sta,$
$!s!n (hampa) atau tida$ . Cperasinya a$an bernilai b!!lean denan
de7inisi sebaai beri$ut %
IS>&9T@(S) 2 true, #i$a + adalah sta,$ $!s!n atau NC<2(+) ' F
:alse, #i$a + bu$an sta,$ $!s!n atau NC<2(+) F
*atatan % I+<M1/J(*D<A/<(+)) ' true
9+SA(>,S)
Cperat!r ini ber7unsi untu$ menambah$an satu elemen $e dalam sta,$ .
N!tasi yan diuna$an adalah 9+SA(>,S)
Artinya % menambah$an elemen < $e dalam sta,$ +
<lemen yan baru masu$ ini a$an menempati p!sisi /C1 #adi
T89(9+SA(>,S)) 2 >
A$ibat dari !perasi ini #umlah elemen dalam sta,$ a$an bertambah,
artinya NC<2 (+) men#adi lebih besar atau sta,$ men#adi tida$ $!s!n
(I+<M1/J(13+:(<,+)) ' 7alse )
989(S)
Cperat!r ini ber7unsi untu$ meneluar$an satu elemen dari dalam sta,$,
n!tasinya 989(S)
<lemen yan $eluar dari dalam sta,$ adalah elemen yan berada pada
p!sisi /C1.
A$ibat dari !perasi ini #umlah elemen sta,$ a$an ber$uran atau NC<2(+)
ber$uran 1 dan elemen pada p!sisi /C1 a$an berubah.
Cperat!r ini tida$ dapat diuna$an pada sta,$ $!s!n, artinya
989(C$>*T>(S)) 2 error condition dan
989(9+SA(>,S)) 2 S
*atatan % /C1(13+:(<,+)) ' <
Algoritma & Pemrograman 2 C Hal 13 dari 24 Hal
&'e'e
Adalah suatu bentu$ $husus dari linear list denan !perasi penyisipan
(inserti!n) hanya pada salah satu sisi ( Dear; bela$an) dan !perasi
penhapusan (deleti!n) hanya diperb!leh$an pada sisi lainnya (Er!nt;
depan) dari list.
Antrean K ' H K1, K2, K3,.., K/I
Er!nt(K) ' baian depan dari antrean K
Dear(K) ' baian bela$an dari antrean K
N!el(K) ' Jumlah elemen di dalam antrean ( berhara inteer)
Jadi % Er!nt(K) ' K/
Dear(K) ' K1
N!el(K) ' /
Antrean ber!perasi se,ara :I:8 ( :irst In :irst 8ut) yan pertama masu$,
yan pertama $eluar.
8perasi dasar pada *ntrean :
1( CREA!E(&)
Cperat!r untu$ membentu$ suatu antrean hampa
K ' H,.,I
NC<2(*D<A/<(K)) ' F
EDCN/(*D<A/<(K)) ' tida$ dide7inisi$an
D<AD(*D<A/<(K)) ' tida$ dide7inisi$an
)( ISEMP!Y(&)
Cperat!r yan menentu$an apa$ah antrean K hampa atau tida$.
Cperand dari !perat!r I+<M1/J adalah antrean.
:asilnya bertipe data B!!lean
I+<M1/J(K) '/D3< #i$a K adalah antrean hampa (NC<2(K) ' F)
EA2+< #i$a K bu$an antrean $!s!n (NC<2(K) F)
Algoritma & Pemrograman 2 C Hal 14 dari 24 Hal
*( INSER!(E+&)
Cperat!r yan menyisip$an elemen < $e dalam antrean K
*att % <lemen K ditempat$an pada baian bela$an antrean dan antrean
men#adi lebih pan#an
K ' H A, B, *, =I
D<AD(IN+<D/(<,K)) ' <
EDCN/(K) ' A
NC<2(K) ' -
I+<M1/J(IN+<D/(<,K)) ' EA2+<
,( REM-E(&)
Cperat!r yan menhapus elemen baian depan dari antrean K dan antrean
men#adi lebih pende$
Ji$a NC<2(K) ' F ma$a
D<MCL<(K) ' <DDCD ( 3N=<DE2CM)
9enya'ian dari antrean :
1. Cne 6ay list
2. Array
Menun#u$$an baaimana suatu antrean dalam array Kueue denan N
elemen
1. Antrean mula"mula terdiri dari elemen AAA, BBB, ***, ===
1 2 3 4 - B > A N
EDCN/(K) ' AAA % 1
D<AD(K) ' === % 4
Algoritma & Pemrograman 2 C Hal 15 dari 24 Hal
AAA BBB CCC DDD .
2. D<MCL<(K)
1 2 3 4 - B > A N
EDCN/(K) ' BBB % 2
D<AD(K) ' === % 4
3. IN+<D/(<<<,K)
1 2 3 4 - B > A N
EDCN/(K) ' BBB % 2
D<AD(K) ' <<< % -
4<+IM132AN %
3ntu$ setiap $ali penhapusan nilai EDCN/ bertambah
3ntu$ setiap $ali penambahan nilai D<AD a$an bertambah
Antrean yan disimpan dalam array denan - l!$asi mem!ri sebaai array
+ir$ular.
1. 1ada A6al :ampa
EDCN/ ' F
D<AD ' F
1 2 3 4 -
2. A dan B dimasu$$an
EDCN/ % 1
D<AD % 2 1
2 3 4 -
3. *, = , dan < dimasu$$an
EDCN/ %1
D<AD % -
1 2 3 4 -
Algoritma & Pemrograman 2 C Hal 16 dari 24 Hal
BBB CCC DDD .
BBB CCC DDD ..
. !
!
A B
A B C D
4. A, B, dan * dihapus
EDCN/ % 4
D<AD %-
1 2 3 4 -
-. E dimasu$$an
EDCN/ % 4
D<AD % 1
1 2 3 4 -
B. = dihapus
EDCN/ % -
D<AD %1
1 2 3 4 -
>. 9 dan : dimasu$$an
EDCN/ % -
D<AD % 3
1 2 3 4 -
A. < dihapus
EDCN/ %1
D<AD % 3
1 2 3 4 -
*B8$IT&* CINS>$T
KIN+<D/(K3<3<, N, EDCN/, =A/A)
1. (Apa$ah antrean penuh)
Ji$a EDCN/ ' 1 dan D<AD ' N atau Ji$a EDCN/ ' D<AD?1, ma$a Mrite %
CL<DE2CM, return.
2. Ji$a EDCN/ ' N322 ma$a EDCN/ %' 1, D<AD %' 1
=alam hal ini
Ji$a EDCN/ ' N ma$a D<AD %' 1
=alam hal lain
D<AD %' D<AD ? 1
Algoritma & Pemrograman 2 C Hal 17 dari 24 Hal
D
" D
"
" # $
" # $
3. K3<3<(D<AD) %' =A/A ( masu$$an elemen baru)
4. Deturn
*B8$IT&* CD>>T>
K=<2</<(K3<3<, N, EDCN/, D<AD, =A/A)
1. (Apa$ah antrean $!s!n)
Ji$a EDCN/ ' N322, ma$a Mrite % 3N=<DE2CM, return.
2. =A/A %' K3<3<(EDCN/)
3. (EDCN/ mendapat nilai baru)
Ji$a EDCN/ 'D<AD ma$a EDCN/ %' N322
D<AD %' N322
=alam hal ini
Ji$a EDCN/ %' N ma$a EDCN/ %' 1
=alam hal lain
EDCN/ %' EDCN/ ? 1
4. Deturn
$INK $IS!
9>ND*A++*N
=alam suatu linier list $ita dapat mela$u$an !perasi penyisipan atau
penhapusan atas elemen"elemennya pada sembaran p!sisi.
Misal$an ada 1-FF item yan merupa$an elemen dari suatu linier list. Ji$a
elemen $e"-B a$an $ita $eluar$an, ma$a elemen $e"1 s;d elemen $e"--
tida$ a$an berubah p!sisinya pada linier list tersebut. /etapi elemen $e@
->a$an men#adi elemen $e"-B, elemen $e"-A a$an men#adi elemen $e"->
Algoritma & Pemrograman 2 C Hal 18 dari 24 Hal
dst. +elan#utnya, #i$a $ita sisip$an satu elemen pada p!sisi setelah elemen
$e"41, ma$a elemen $e"42 s;d elemen $e"1-FF a$an berubah p!sisinya.
3ntu$ menyata$an $eadaan diatas diperlu$an suatu $!nsep yan berbeda
denan $!nsep se$uensial sebelumnya.
$inke. /is0 merupa$an suatu ,ara n!n"se$uensial yan diuna$an untu$
merepresentasi$an suatu data.
D>:INISI
$inke. /is0 (1ne 2ay /is0) adalah suatu $umpulan elemen data (yan
disebut sebaai n!de) dimana urutannya ditentu$an !leh suatu p!inter.
+etiap elemen (n!de) dari suatu lin$ed list terdiri atas dua baian, yaitu%
INEC berisi in7!rmasi tentan elemne data yan bersan$utan.
N<O/ (lin$ 7ield;ne0t p!inter 7ield), berisi alamat dari elemen (n!de)
selan#utnya yan ditu#u.
Beri$ut ini sebuah ,!nt!h lin$ed list yan terdiri atas 4 n!de%
In7! ne0t in7! ne0t in7! ne0t in7! ne0t
N!de $e"1 n!de $e"2 n!de $e"3 n!de $e"4
1ada n!de $e"4 7ield N<O/@nya berisi N#$$ + artinya n!de $e"4 tsb adalah
n!de tera$hir.
Algoritma & Pemrograman 2 C Hal 19 dari 24 Hal
!%&&
Star
N!de"n!de dalam lin$ed list tida$ harus selalu diambar$an paralel seperti
pada ambar diatas. 2in$ed list pada ,!nt!h diatas dapat pula
diambar$an seperti beri$ut ini%
In7! ne0t
In7! ne0t
In7! ne0t

In7! ne0t
CA!A!AN :
Ada dua hal yan men#adi $eruian denan representasi suatu data
denan lin$ed list ini,
yaitu%
1. =iperlu$an ruan tambahan untu$ menyata$an;tempat 7ield p!inter.
2. =iperlu$an 6a$tu yan lebih banya$ untu$ men,ari suatu n!de dalam
lin$ed list.
+edan$an $euntunannya adalah %
1. Jenis data yan berbeda dapat di"lin$
2. Cperasi D<MCL< atau IN+<D/ hanya dila$u$an denan menubah
p!inter"nya sa#a .
89>$*SI D*S*$ 9*D* IN3>D IST
Ada beberapa aturan yan dide7inisi$an pada !perasi didalam lin$ed list
yaitu%
Ji$a 1 adalah suatu 8ariabel p!inter, ma$a nilainya adalah alamat atau
l!$asi dari 8ariabel lain yan ditu#u.
Cperasi yan dide7inisi$an pada suatu 8ariabel p!inter adalah%
Algoritma & Pemrograman 2 C Hal 20 dari 24 Hal
null
N!de $e"4
1. /est apa$ah sama denan N322
2. /est untu$ $esamaan denan8ariabel p!inter lain
3. Menetap$an sama denan N322
4. Menetap$an menu#u $e n!de lain
N!tasi yan dide7inisi$an sehubunan denan !perasi diatas adalah
1. NC=< (1), artinya n!de yan ditun#u$ !leh p!inter 1
2. INEC (1), artinya nilai INEC dari n!de yan ditun#u$ p!inter 1
3. N<O/ (1), artinya hubunan (lin$) selan#utnya dari n!de yan ditun#u$
!leh p!inter 1
+ebaai ,!nt!h, perhati$an lin$ed list diba6ah ini%
In7! ne0t
start In7! ne0t in7! ne0t
n!de $e"2
n!de $e"1
n!de $e"3
In7! ne0t

NC=< (1) ' n!de yan ditunu$ !leh 1 yaitu n!de pertama
INEC (1) ' A
N<O/ (1) ' n!de $edua
INEC (N<O/(N<O/(1))) ' *
Algoritma & Pemrograman 2 C Hal 21 dari 24 Hal
B
*
*
D
null
1
MEN"3AP#S S#A!# NDE DARI $INKED $IS! (REM-E)
3ntu$ menhapus n!de dalam lin$ed list diuna$an pr!,edure
%REENDE(
Ji$a K adalah suatu 8ariabel p!inter, ma$a ED<<NC=< (K) a$an
menyebab$an n!de yan ditun#u$ !leh 8ariabel p!innter K dihapus dalam
lin$ed list.
1erhati$an lin$ed list beri$ut %
2an$ah $e"1 %
K %' Ne0t (1)
In7! ne0t in7! ne0t in7! ne0t
1 K
In7! ne0t
.
2an$ah $e"2 %
Ne0t (1) %' Ne0t (K)
In7! ne0t
In7! ne0t in7! ne0t in7! ne0t
Algoritma & Pemrograman 2 C Hal 22 dari 24 Hal
2an$ah $e"3 %
Ereen!de (K)
1r!,edure Ereen!de (K)
(a) Ne0t (K) %' A8ail
(b) In7! (K) %' Null
(,) A8ail %' K
&>N@ISI93*N S+*T+ N8D> 3>D**& IN3>D IST
3ntu$ menyisip$an n!de dalam lin$ed list diuna$an pr!,edure GETNODE
Ji$a N<M adalah suatu 8ariabel p!inter, ma$a 9</NC=< (N<M) a$an
menyebab$an n!de yan ditun#u$ !leh 8ariabel p!inter N<M disisip$an
$edalam lin$ed list.
1erhati$an lin$ed list beri$ut%
1r!,edure 9etn!de (N<M)
I7 A8ail ' Null
/hen !ut"!7"7ree"spa,e
(a) else bein
9etn!de %' A8ail
(b) A8ail %' Ne0t (A8ail)
(,) Ne0t (9etn!de) %' Null&
<nd&
*l-oritma menyisipkan sebuah node %
(a) 9etn!de (N<M)
(b) In7! (N<M) %' Name&
(,) K %' Ne0t (1)
(d) Ne0t (1) %' N<M
Algoritma & Pemrograman 2 C Hal 23 dari 24 Hal
(e) Ne0t (N<M) %' K
Algoritma & Pemrograman 2 C Hal 24 dari 24 Hal

Anda mungkin juga menyukai