Anda di halaman 1dari 10

Algoritma dan Pemrograman 2

(IF1082)
Pertemuan Ke-2
Array (Larik)
Disusun Oleh :
Wilis Kaswidjanti, S.Si., M.Kom.
Jurusan Teknik Inormatika
Fakultas Teknologi Industri
!ni"ersitas Pem#angunan $asional %&eteran'
(ogyakarta
200)
Algoritma dan Pemrograman 2 (IF1082)
Judul *ateri : Array (Larik)
+eskri,si *ateri : Materi ini menaku! su"!okok "ahasan array
dimensi satu, dimensi dua, !erhitun#an matriks, dan !en#enalan dimensi n den#an
men##unakan ti!e data array
Tu-uan Instruksional K.usus :
$. Mende%inisikan dan mem"uat matriks den#an men##unakan ti!e data array
&. Men#im!lementasikan ti!e data array untuk matrik
'. Men##unakan de%inisi matriks untuk !erhitun#an matriks
/eerensi :
(uku )eks
Munir, *inaldi (&++,), Algoritma dan Pemrograman dalam Bahasa Pascal dan
C, (uku &, -disi Keti#a, .ener"it /n%ormatika (andun#, (a" ', hal 001$$'.
2hari"aldi, 3. (&++4), Modul Kuliah Algoritma Pemrograman II, -disi Kedua,
5o#yakarta
(uku Auan6*e%erensi
(rassard, 7illes ($888), Fundamentals of algorithma, .rintee9all.
:arne, Stroustru! (. ($880), C++ Programming language, A) ;).
Kristanto, Andri (&++'), Algoritma pemrograman C++, 7raha /lmu.
Shildt,9er"ert (&+++), The Complete Reference C++, M7raw19ill.
Sed#ewik, *. (&+++), Algoritma Third edition In C part 5, Addison Wesley.
A//A( (LA/IK)
P0$+A1!L!A$
Array atau "iasa dise"ut larik adalah koleksi data dimana setia! elemen memakai
nama yan# sama dan "erti!e sama dan setia! elemen diakses den#an mem"edakan indeks
arraynya. Setia! rini data dise"ut den#an elemen array. Setia! array da!at dio!erasikan
men##unakan !emilih elemen yan# dise"ut indeks. Karena itu indeks harus "erti!e yan#
mem!unyai keterurutan (ada suksesor dan ada !redesor) misal /nte#re, (oolean, 2har.
:adi array di!akai untuk menyajikan sekum!ulan data yan# "erti!e sama, dan
disim!an den#an urutan yan# sesuai den#an indeks seara kontinu.
2ontoh Array : <ntai karakter, da%tar nomor tele!on, da%tar "elanja, ta"el !ajak,
=ektor, matriks.
I2I
A3 +eklarasi Array
Setia! identi%ier yan# akan di#unkan harus di!esan dahulu dalam kamus6deklarasi
"eserta ti!e data yan# akan ditam!un#nya. Demikian !ula den#an ti!e data array
"eserta ti!e elemen1elemen yan# akan ditam!un#nya harus !ula di!esan dalam
kamus6deklarasi.
:ika kita memesan =aria"el "iasa (ti!e data sederhana dan strin#), maka kita hanya
menentukan ti!enya, namun jika memesan array, maka harus !ula ditentukan
"anyaknya elemen (misal dari $..$++).
>aria"el array dideklarasikan den#an menantumkan ti!e dan nama =aria"le yan#
diikuti den#an "anyaknya lokasi memori yan# in#in di"uat.
2ontoh :
Dalam Al#orima :
: array?$..,@ o% inte#er
)er"entuk , =aria"el den#an indeks dari $ sma!ai den#an , "erti!e inte#er.
Dalam "ahasa 2AA :
int ?,@B
2AA seara otomatis akan menyediakan lokasi memori sesuai den#an yan#
dideklarasikan, dimana nomor indeks selalu dimulai dari +.
int ?,@ C D1$&, +, &+, E,, $,,$FB
3ilai suatu =aria"el array da!at ju#a diinisialisasi seara lan#sun# se!erti yan#
terda!at di dalam tanda kurun# kurawal !ada saat deklarasi di atas.
int G?,@ C ?+@B
Deklarasi =aria"le array sekali#us men#isi setia! lokasi memorinya den#an
nilai +.
)i!e data yan# akan ditam!un# array "isa sem"aran# ti!e data misal /nte#er,
(oolean, 2har, *eal, Strin# "ahkan yan# terstruktur se!erti Set, *eord atau array
la#i.
43 Array +imensi 2atu
(entuknya (.seudoode) :
(entuknya (2AA):
Den#an :
ti!e : menyatakan jenis elemen array (int, har dan lain1lain)
ran#eindeks : menyatakan indeks awal sam!ai dem#an indeks akhir dari =ar
array yan# di"uat
ukuran : menyatakan jumlah maksimal elemen array

3ilai indeks awal dan indeks akhir yan# dideklarasikan di al#oritma tidak di!erlukan
!ada deklarasi "ahasa 2AA. .ada "ahasa 2AA hanya "anyak elemennya saja (ukuran).
:adi ukuran C indeksakhir H indeksawal A $.
namaI=ar : array ?ran#eindeks@ o% ti!e namaI=ar : array ?ran#eindeks@ o% ti!e
tipe nama_var[ukuran]; tipe nama_var[ukuran];
2ontoh :
Al#oritma :
Al#oritma .an#katDua
Deklarasi
sJuare : array ?$..$++@ o% inte#er
i,k : inte#er
Deskri!si
%or i $ to $+ do
k i A $
sJuare?i@ k K k
out!ut(L.an#kat dari L,k,L adalah L, sJuare?i@)
end%or
.ro#ram 2AA :
#include<iostream.h>
main()
{
int square[1];
int i!k;
"or(i#; i<1; i$$)
{
k # i $ 1;
square[i] # k % k;
cout<<&'n(an)kat dari &<<k<<& adalah &<< square[i];
*
*
Out!ut :
.an#kat dari $ adalah $
.an#kat dari & adalah 4
.an#kat dari ' adalah 8
.an#kat dari 4 adalah $M
.an#kat dari , adalah &,
.an#kat dari M adalah 'M
.an#kat dari 0 adalah 48
.an#kat dari E adalah M4
.an#kat dari 8 adalah E$
.an#kat dari $+ adalah $++
53 Array +imensi +ua
Array dua dimensi meru!akan array yan# terdiri dari m "uah "aris dan n "uah kolom.
(entuknya da!at "eru!a matriks atau ta"el.
.ada !rinsi!nya matriks ham!ir sama den#an array. Matriks adalah sekum!ulan
in%ormasi "erti!e sama yan# setia! indi=idu elemennya terde%inisi "erdasarkan dua
indeks (yan# "iasanya dikonotasikan den#an "aris dan kolom).
/ndeks !ada matriks harus mem!unyai "atasan dan si%at yan# sama den#an indeks
!ada array satu dimensi.
Serin# dikatakan "ahwa matriks adalah array dua dimensi, ta!i !atut di!erhatikan
"ahwa !en#ertian "erdimensi dua ("aris dan kolom) adalah dalam !emikiran kita
(!enyajian lo#ika).
.en#aturan letak elemen matriks dalam memori kom!uter selalu teta! se"a#ai deretan
Lsel yan# linierL. .en#ertian dua dimensi ini hanya untuk mem!ermudah !ro#rammer
dalam meranan# !ro#ramnya.
Seara umum dimensi dan "anyaknya elemen Array6Matriks se"enarnya tidak
di"atasi oleh 2om!iler, teta!i di"atasi oleh keter"atasan *AM yan# disediakan.
Karena matriks men##unakan memory internal. Struktur data ini !raktis untuk
di!akai, namun memori yan# di!akai "esar.
2ontoh matriks yan# serin# kita lihat sehari1hari adalah ta"el.
Deklarasi array (.seudoode) :
Deklarasi array (2AA):
2ontoh :
Se"uah matrik A "erukuran &G' da!at dideklarasikan se"a#ai "erikut :
Al#oritma :
a : array ?$..&,$..'@ o% inte#er
namaI=ar : array ?ran#eindeks$,ran#eindeiks&@ o% ti!e namaI=ar : array ?ran#eindeks$,ran#eindeiks&@ o% ti!e
tipe nama_var[ukuran1][ukuran+]; tipe nama_var[ukuran1][ukuran+];
a$,$ $$
a$,& 0
a$,' 4
a&,$ $&
a&,& '
a&,' 8
2AA :
int a[+][,] # {{11! -! .*!{1+! ,! /**;
yan# akan menem!ati lokasi memori den#an susunan "erikut :
+ $ &
+ $$ 0 4
$ $& ' 8
Dan de%inisi =aria"el untuk setia! elemen terse"ut adalah :
+ $ &
+ a?+@?+@ a?+@?$@ a?+@?&@
$ a?$@?+@ a?$@?$@ a?$@?&@
2ontoh .ro#ram $ :
#include<iostream.h>
main()
{
int 0[,][,]#{{1!+!,*!{.!1!2*!{-!3!/**;
int i!4;
"or(i#; i<,; i$$)
{
"or(4#; 4<,; 4$$)
cout<<0[i][4]<<5 5;
cout<<endl;
*
*
Out!ut :
$ & '
4 , M
0 E 8
2ontoh .ro#ram & :
#include<stdio.h>
void print0rra6(int [][,]);
main()
{
int matrik1 [+][,] # { {1! +! ,*! {.! 1! 2**;
int matrik+ [+][,] # { {1! +! ,*! {.! 1**;
int matrik, [+][,] # { {1! +*! {.* *;
print0rra6(matrik1);
print0rra6(matrik+);
print0rra6(matrik,);
return ;
*
void print0rra6(int a[][,])
{ int i! 4;
"or(i#; i<#1; i$$)
{ "or(4#; 4<#+; 4$$)
print"(57d 5! a[i][4]);
print"(5'n5);
*
*
Out!ut :
$ & '
4 , M
$ & '
4 , +
$ & +
4 + +
2ontoh .ro#ram ' :
88pro)ram pen4umlahan matrik
#include<iostream.h>
main()
{
int 0[,][+]#{{1!+*!{,!.*!{1!2**;
int 9[,][+]#{{-!3*!{/!1*!{11!1+**;
int :[,][+];
int i!4;
cout<<5;atrik 0 # 'n5;
"or(i#; i<, ; i$$)
{
"or(4#; 4<+ ; 4$$)
cout<<0[i][4]<<5 5;
cout<<endl;
*
cout<<5;atrik 9 # 'n5;
"or(i#; i<, ; i$$)
{
"or(4#; 4<+ ; 4$$)
cout<<9[i][4]<<5 5;
cout<<endl;
*
88pen4umlahan matri<
"or(i#; i<, ; i$$)
"or(4#; 4<+ ; 4$$)
:[i][4]#0[i][4] $ 9[i][4];
cout<<5;atrik : # 'n5;
"or(i#; i<, ; i$$)
{
"or(4#; 4<+ ; 4$$)
cout<<:[i][4]<<5 5;
cout<<endl;
*
*
+3 Array +imensi 4anyak
(entuknya dalam "ahasa 2AA :
2ontoh :
P0$!T!P
Array meru!akan suatu ti!e data terstruktur. Deklarasi ti!e ini tidak hanya da!at
untuk data satu dimensi teta!i "isa sam!ai n dimensi. Array dua dimensi "iasanya di!akai
untuk !erhitun#an matriks dua dimensi.
ti!e namaI=ar?ukuran$?ukuran&@. . .?ukuran3@B ti!e namaI=ar?ukuran$?ukuran&@. . .?ukuran3@B
int data_huru"[+][.][2]; int data_huru"[+][.][2];
26AL-26AL
Diketahui matriks A dan matriks ( se"a#ai "erikut :
A C

E 0 4
M ' &
( C

M E
4 &
, '


(uatlah !ro#ram untuk men#hitun#
matriks 2 C matriks A K matriks (

Anda mungkin juga menyukai