TIPE DATA LARIK (ARRAY)
5.1. Tujuan 5.1. Tujuan
1.
1. MeneraMenerangkan ngkan hakekat hakekat dari dari arrayarray 2.
2. MeneraMenerangkan ngkan selseluk-beluuk-beluk k arrayarray 3.
3. MeneraMenerangkan cngkan cara ara menggunamenggunakan kan arrayarray 4.
4. MahasiMahasiswa memswa memahami pengeahami pengertian dartian dan seln seluk-beluk-beluk dariuk dari array array 5.
5. MahasiMahasiswa mengeswa mengetahui cartahui cara menggunaka menggunakan array di an array di dalam prdalam programogram
5.2. Teori 5.2. Teori 5.2.1. Array 5.2.1. Array
Untuk menyimpan sebuah nilai dengan
Untuk menyimpan sebuah nilai dengan tipe data tertentu, digunakan sebuah variabel.tipe data tertentu, digunakan sebuah variabel. Sebagai contoh, dideklarasikan:
Sebagai contoh, dideklarasikan:
in
int t ninilailai1, 1, nilnilaiai2, 2, nilnilai3ai3;;
Art
Artinyinya a terdterdapaapat t 3 3 buah variabuah variabel bel yanyang g akaakan n digdigunakunakan an untuuntuk k memenyinyimpan mpan datdata a berbertitipepe integer
integer. . Dengan jumDengan jumlah data sedikit, misalah data sedikit, misal 10, mungkin metode penulil 10, mungkin metode penulisan san ini maiini maish dapatsh dapat dig
digunakaunakan n namnamun un penpenuliulisan san inini i menjmenjadi adi kurakurang ng efeefektiktif f apaapabilbila a jujumlah mlah data yang data yang akanakan dim
dimasukkasukkan an banybanyak ak (m(misal isal 100)100), , jumjumlah lah data data dindinamiamis, s, ataupataupun un titidak dak didiketaketahui hui jumjumlahlah tepatnya.
tepatnya. Ar
Arraray y dapdapat at didigungunakaakan n sesebagbagai ai solsolususi i pepermrmasaasalalahan han tetersrsebuebut. t. BeBeririkut kut adadalalah ah cocontntohoh penggunaan
penggunaan konsep konsep array.array.
N
Naamma a AAnni i BBuuddi i CCiinntta a DDaanni i EEddi i FFaajjaarr
Nilai
Nilai 80 80 90 90 95 95 95 95 80 80 8585
Gambar 5.1 Ilustrasi array pada data nilai Gambar 5.1 Ilustrasi array pada data nilai
Dari gambar diatas, dapat dilihat terdapat dua buah variabel, Nama dan Nilai yang Dari gambar diatas, dapat dilihat terdapat dua buah variabel, Nama dan Nilai yang maisng-masi
masing ng memimemiliki sejumlah data liki sejumlah data bertibertipe pe stristring ng dan integer. Data dan integer. Data dalam array dalam array disebdisebut sebagaiut sebagai el
bahwa,
bahwa, index index array array dimulai dimulai dari dari index index ke ke 0. 0. Sehingga Sehingga bila bila kita kita membuat membuat array array 6 6 elemen,elemen, makan untuk mengisi nilai elemen pertama digunakan index ke
makan untuk mengisi nilai elemen pertama digunakan index ke 0.0. De
Dengangan n memembmbentuentuk k ararraray y bebertrtipipe e datdata a inintegteger er mimisalsalnynya, a, elelemeemen-en-elelememen n ninilai lai dapdapatat disi
disimpan dalam satu identifmpan dalam satu identifier yang sama. ier yang sama. Fungsi dan ciri utama array adalFungsi dan ciri utama array adalah menyimpanah menyimpan se
serarangkngkaiaian an elelememen en yanyang g berbertitipe pe sasama ma dadan n memempmpunyunyai ai inindedex x dadapat pat didiaksakses es sesecacarara langsu
langsung ng dan acak.dan acak. Di
Dililihat hat dari dimendari dimensinsinya ya arraarray y dapadapat t dibadibagi gi menmenjadi jadi arraarray y sasatu tu didimensmensi, i, dan dan arraarray y mulmultiti dim
dimensiensi. . PerbPerbedaaedaannynnya a mulmulti ti didimensmensi i memmempunypunyai ai titipe pe indindex ex leblebih ih dari satu dari satu atau atau titipe- pe-komponen berupa array
komponen berupa array yang lain.yang lain.
1)
1) Step 1 : Deklarasi dan Inisialisasi array, Step 1 : Deklarasi dan Inisialisasi array, Bentuk variabel dengan tipe array Bentuk variabel dengan tipe array terl
terlebih dahulu, meliputi nama, ukuran, ebih dahulu, meliputi nama, ukuran, dan isi dan isi tipe datanya.tipe datanya.
Typ
Type e nanama ma [e[elemlemen]en];;
atau atau
Ty
Type pe nanama ma [e[elelememen] n] ==
{elemen1,elemen2,elemen_n}; {elemen1,elemen2,elemen_n}; contoh : contoh : 1 1 22 33 44 55 66 Nilai Nilai 80 80 90 90 95 95 97 97 88 88 8585
Urutan deret nilai diatas dapat
Urutan deret nilai diatas dapat didekldideklasariasarikan kan dengan menggunakan tipe dengan menggunakan tipe array :array :
in
int t ninilalai i [6[6];];
atau atau
int
int nilnilai ai [6[6] ] = = {8{80,90,90,0,95,95,97,97,88,88,8585};};
n
niilalaii[0[0] ] nniilalaii[1[1] ] nniilalaii[2[2] ] nniillaiai[3[3] ] nniilalaii[4[4] ] nniilalaii[5[5]] Nilai
Nilai 80 80 90 90 95 95 97 97 88 88 8585
2)
2) Step Step 2 : P2 : Pengaengakseksesan arsan arrayray, Melakukan operasi pada setiap elemen dari, Melakukan operasi pada setiap elemen dari kumpulan data secara individual. Format pengaksesan larik didefinisikan kumpulan data secara individual. Format pengaksesan larik didefinisikan sebagai berikut.
sebagai berikut.
nama
nama [in[index]dex];;
Sebagai contoh, untuk menyimpan nilai kedua
Sebagai contoh, untuk menyimpan nilai kedua yaitu 90 yaitu 90 dari deretan data-data tersebut,dari deretan data-data tersebut, maka dapat
ni
nilalai[i[1] 1] = = 9090;;
Urutan elemen pada array selalu dimulai dari 0, maka nilai 90 diacu dengan nilai index Urutan elemen pada array selalu dimulai dari 0, maka nilai 90 diacu dengan nilai index ke-1, sedangkan untuk menampilkan nilai 97 pada index ke-3 dituliskan dalam bentuk
1, sedangkan untuk menampilkan nilai 97 pada index ke-3 dituliskan dalam bentuk
read
read nilnilai[3ai[3];];
5.2.2. Array Multidimensi 5.2.2. Array Multidimensi
Matriks,
Matriks, adalah array yang memiliki dua atau lebih kolom dengan banyak baris, atau dua adalah array yang memiliki dua atau lebih kolom dengan banyak baris, atau dua atau lebih baris dengan banyak kolom, atau lebih singkatnya adalah array yang ada di atau lebih baris dengan banyak kolom, atau lebih singkatnya adalah array yang ada di dal
dalam am arrarrayay, , tetergrganantuntung g bagbagaiaimanmana a pepenggnggununaaaanynya. a. MiMisasalnlnya ya ada ada sesebuabuah h arrarray ay duduaa dim
dimensi dengan ensi dengan ukuran 2x2 yang ukuran 2x2 yang ditunditunjukkan dengan contoh sebagai berikut :jukkan dengan contoh sebagai berikut :
Tabel 5. 2. Ilustrasi Matriks Tabel 5. 2. Ilustrasi Matriks
1
1,,1 1 11,,22 2
2,,1 1 22,,22 Contoh
Contoh array array 3x3:3x3:
0 0 1 1 22 0 0 1 1 2 2 1)
1) Step 1 Step 1 : Dekla: Deklarasi dan rasi dan InisialisaInisialisasi larisi larik,k,
Type
Type nama nama [elemen_[elemen_baris][ebaris][elemen_kolemen_kolom];lom]; Int
Int nilanilai[3]i[3][4];[4];
2)
2) Step 2 Step 2 : Peng: Pengakseaksesan lsan larikarik,,..
nama
nama [index_[index_baris][inbaris][index_kolodex_kolom];m];
Sebagai contoh, untuk menyi
Sebagai contoh, untuk menyimpan mpan nilnilai ai pada baris kedua pada baris kedua dan kolom ketiga, makadan kolom ketiga, maka dapat dituliskan dalam bentuk
0 0 1 1 22 0 0 1 1 7575 2 2 9090 nil nilai[ai[1]1][2] [2] = = 75;75;
Untuk menampilkan nilai 90 pada baris ketiga dan kolom kedua dapat dituliskan Untuk menampilkan nilai 90 pada baris ketiga dan kolom kedua dapat dituliskan dalam bentuk :
dalam bentuk :
read
read nilai[2nilai[2][1];][1];
5.2.3
5.2.3. . ArrArray ay of of CharChar
Dalam C++ tipe data string dapat diperoleh dengan cara mendefinisikan suatu array bertipe Dalam C++ tipe data string dapat diperoleh dengan cara mendefinisikan suatu array bertipe char
char yayang ng diadiakhikhiri ri dengdengan an karakaraktekter r nulnull(). l(). KarKarena ena pada pada hakhakekatnekatnya ya strstring ing memeruparupakankan kum
kumpulpulan an dari dari varvariabiabel el bertbertipipe e charchar. . MesMeskipukipun n beruberupa pa arrarray, ay, perlperlakukakukan an terterhahadap dap arrarrayay bertipe
bertipe char char sedikit sedikit lebih lebih istimewa. istimewa. Karena Karena terdapat terdapat beberapa beberapa fungsi fungsi yang yang bisa bisa digunakandigunakan untuk memanipulasi langsung array ini. Sedangkan pada array bertipe non char tidak ada untuk memanipulasi langsung array ini. Sedangkan pada array bertipe non char tidak ada fungsi untuk memanipulas
fungsi untuk memanipulasi. i. FungsiFungsi-fungs-fungsi i untuk array untuk array bertibertipe pe char diletakkan pada char diletakkan pada fifilele include string.h.
include string.h.
Sa
Samma a ssepepererti ti dedengngan an ararraray y bibiasasa, a, sstrtriing ng dadapapat t dididefdefiininisisikan kan dadallam am ararraray y dedengnganan mengguna
Gam
Gambar 5. 1. bar 5. 1. SourSource Codece Code ArrArray of ay of charchar
Con
Contoh toh pada pada gamgambar bar 5.1. miri5.1. mirip p dendengan gan contocontoh-ch-contoontoh h padpada a bab bab sesebelbelumnyumnya. a. TipTipe e datadata char masih satu jenis dengan tipe data integer. Karena tipe data char diisi oleh char masih satu jenis dengan tipe data integer. Karena tipe data char diisi oleh karakter-kar
karakakteter r ASASCICII I yayang ng didikodkodekekan an dendengan gan angangka ka inintegteger er dardari i 0 0 – – 127127. . PaPada da perperululanganganan pertama
pertama terlihat terlihat bahwa bahwa elemen elemen kata1 kata1 berturut-turut berturut-turut diisi diisi dengan dengan karakter karakter A A (ASCII (ASCII = = 65),65), B (ASCII = 66), C (ASCII = 66), D (ASCII = 66), dan E (ASCII = 66). Keluaran dari B (ASCII = 66), C (ASCII = 66), D (ASCII = 66), dan E (ASCII = 66). Keluaran dari program
program di di atas atas adalah adalah ::
Gambar 5. 2. Hasil output array of char Gambar 5. 2. Hasil output array of char 5.2.3. Fungsi-Fungsi Dalam String.h
5.2.3. Fungsi-Fungsi Dalam String.h
Sam
Sama a sepseperti dengan erti dengan fifile le inincludclude e yanyang g lalainin, , strstrining.h g.h terterleletak tak di di /us/usr/ir/inclnclude. ude. KiKita ta akanakan meli
melihat hat fungsfungsi i apa saja apa saja yang didukung oleh yang didukung oleh stristring.h.ng.h.
/* Co
/* Copy Spy SRC tRC to DEo DESTST. . */*/ ex
*__rest
*__restrict rict __src)__src) __THROW;
__THROW; /* Cop
/* Copy y no morno more e ththaan n N N chchararacacteters of rs of SRSRC C to DESto DEST. T. */*/ ext
extern ern chachar r *st*strncprncpy y (cha(char r *__r*__restestricrict t __de__dest,st, __
__coconsnst t chchar ar *_*__r_resestrtricict t ____ssrcrc, , sisizeze_t _t ____n)n) __THROW;
__THROW; /* Ap
/* Appepend SRnd SRC ontC onto o DEDESTST. . */*/ ex
extterern n chchar ar *s*sttrrcacat t (c(chhaar r *_*___reressttririct ct ____ddesest, t, ____ccoonsnst t chchaarr *__rest
*__restrict rict __src)__src) __THROW;
__THROW; /* App
/* Appenend d no no momore thare than n N N chchararacacteters frors from m SRSRC C ononto to DEDESTST. . */*/ ex
extterern n chchaar r **sstrtrncncaat t ((chchar ar *_*___rereststririct ct ____ddeestst, , __c__coonsnst t chchaarr *__rest
*__restrict rict __src,__src, siz
size_t e_t __n__n) ) __T__THROHROW;W; /* Co
/* Compmparare e S1 aS1 and S2nd S2. . */*/ ext
exterern n inint t ststrcrcmp mp (__(__coconsnst t chchar ar *__*__s1s1, , ____coconsnst t chachar r *_*__s_s2)2) __THRO
__THROW W __attr__attribute_ibute_pure__pure__;; /* Co
/* Compmparare e N N chchararacacteters of rs of S1 and S2S1 and S2. . */*/ ext
exterern n inint t strstrncncmp mp (__(__coconsnst t chachar r *_*__s_s1, 1, __c__cononst st chchar ar *__*__s2s2, , sisizeze_t_t __n)
__n)
__THRO
__THROW W __attr__attribute_ibute_pure__pure__;; /* Re
/* Retuturn thrn the e llenengtgth h of S. of S. */*/ e exxtteerrn n ssiizzee__t t ssttrrlleen n ((____ccoonnsst t cchhaar r **____ss) ) ____TTHHRROOWW __attribute_pure__; __attribute_pure__; __END_NAMESPACE_STD __END_NAMESPACE_STD Ke
Ketujtujuh uh fufungngsi si di di ataatas s papaliling ng babanynyak ak didipakpakai ai ununtuk tuk mememamaninipulpulasi asi ststriring. ng. JiJika ka AnAndada menggunakan Microsoft Visual C++, fungsi manipulasi string lebih banyak, seperti strstr, menggunakan Microsoft Visual C++, fungsi manipulasi string lebih banyak, seperti strstr, strupr, dan strlwr.
strupr, dan strlwr.
fungsi
fungsi Parameter Parameter KeteranganKeterangan
st
fungsi
fungsi Parameter Parameter KeteranganKeterangan
str
strncpy ncpy soursource, ce, desdest, t, n n mengmengkopi kopi kata kata dari dari soursource ce ke ke daldalam am desdest t sebsebanyanyak nak n karakter
karakter st
strcrcat at sousourcerce, , dedest st menmenamambahbahkan kan ststriring ng dadari ri sousourcrce e ke ke ststriring ng dedest st di di posposisisii akhir
akhir str
strncancat t soursource, ce, desdest, t, n n menamenambahmbahkan kan strstrining dg dari ari soursource ce ke ke strstrining g desdest t di di posposisisii akhir sebany
akhir sebanyak ak b karakter b karakter
sstrtrcmcmp p ss1, 1, ss2 2 mmemembabandndiingngkakan n sstrtriing ng dadari ri ss1 1 dedenngagan n sstrtriing ng dadari ri ss22 st
strnrncmcmp p s1s1, , s2s2, , n n mememmbabandndiingkngkan an sstrtriing ng dadari ri s1 s1 dedenngagan n ststrriing ng dadari ri s2s2 sebany
sebanyak ak n karakter n karakter
ssttrrlleen n S S mmeenngghhaassiillkkaan n ppaannjjaanng g ddaarri i ssttrriinng g ss Fun
Fungsigsi-f-fungsungsi i di di atas dapat atas dapat digdigunakaunakan n pada pada titipe pe strstrining. g. Pada Pada contcontoh oh sebsebelelumnyumnya, a, kitkitaa menampilkan kata ALPHABET dengan melakukan cout satu per satu dari elemen array. menampilkan kata ALPHABET dengan melakukan cout satu per satu dari elemen array. Untuk lebih praktisnya, contoh sebelumnya akan kita ganti dengan program berikut :
Untuk lebih praktisnya, contoh sebelumnya akan kita ganti dengan program berikut :
Gambar 5. 3. Source Code array of char Gambar 5. 3. Source Code array of char
Terl
Terlihat ihat bahwbahwa a strstring ing memeskiskipun pun beruberupa pa arrarray ay namnamun un mememimiliki liki perlperlakuan akuan yang yang berbberbeda.eda. Pen
Pendekldeklarasarasian ian seksekalaligus igus penpengigisian sian arraarray y berbertiptipe e char char berbberbeda eda dendengan gan pendpendekleklarasarasianian sekaligus pengisian nilai array bertipe non char. Keluaran program di atas sbb :
Gambar 5. 4. Output Program Gambar 5. 4. Output Program
5.2.4.
5.2.4. MenangkaMenangkap Inp Inputan putan Berupa Berupa KarakteKarakterr
Suatu saat program kita membutuhkan input dari user berupa karakter. Untuk menangkap Suatu saat program kita membutuhkan input dari user berupa karakter. Untuk menangkap karakter yang dimasukkan, perintahnya sama seperti menangkap inputan biasa pada tipe karakter yang dimasukkan, perintahnya sama seperti menangkap inputan biasa pada tipe data integer atau
data integer atau float. Berikfloat. Berikut ut contoh programnycontoh programnya a ::
Gambar 5. 5. Source Code input karakter Gambar 5. 5. Source Code input karakter
Keluaran dari program Gambar 5.5. adalah : Keluaran dari program Gambar 5.5. adalah :
Gambar 5. 6. Output Program Gambar 5. 6. Output Program
Pada program terdapat 2 buah array masing-masing kata1, dan kata2. Kata1 akan diberikan Pada program terdapat 2 buah array masing-masing kata1, dan kata2. Kata1 akan diberikan inputan oleh user, sedangkan kata2 akan mengcopy isi dari kata1.
inputan oleh user, sedangkan kata2 akan mengcopy isi dari kata1.
Pada baris ke-10 program meminta masukan dari user berupa kata. Karakter yang dapat Pada baris ke-10 program meminta masukan dari user berupa kata. Karakter yang dapat diterima hanya 6 buah. Meskipun user memasukkan sebanyak 9 karakter, maka hanya 6 diterima hanya 6 buah. Meskipun user memasukkan sebanyak 9 karakter, maka hanya 6 karakter pertama yang disimpan. Cara menerima inputan user berupa karakter yaitu dengan karakter pertama yang disimpan. Cara menerima inputan user berupa karakter yaitu dengan perintah
perintah sebagai sebagai berikut.berikut.
cin >>
cin >> kakatata1;1;
Me
Meskiskipun pun katkata1 a1 beberuprupa a ararraray y nanamun mun penpengagaksksesaesan n ararray ray bebertirtipe pe chchar ar dapdapat at dedengangann me
menghnghililangkangkan an ininfoformrmasi asi inindekdeksnysnya, a, sesepeperti rti didituntunjujukkakkan n papada da babariris s ke-ke-11. 11. UntUntuk uk menampilkan sebuah string <array bertipe char> tidak perlu menampilkan satu per satu, menampilkan sebuah string <array bertipe char> tidak perlu menampilkan satu per satu, nam
namun un bibisa sa memenamnampipilkalkan n sesekakaliligus gus dedengngan an titidak dak memenynyertertakaakan n inindekdeks s arrarray ay yanyangg bersangkutan.
bersangkutan.
Unt
Untuk uk dapadapat t mengmengcopy copy isisi i dari arraydari array1 1 ke ke arraarray2, y2, didigunakgunakan an periperintaantaah h strstrncncopy opy sepsepertert di
dituntunjujukkakkan n padpada a babariris s keke-15-15. . IsIsi i karkarakakteter r padpada a ararraray y kakata1 ta1 di di copcopy y ke ke ararraray y kakata2ta2 sebanyak 4 karakter saja, kemudian ditampilkan isinya.
sebanyak 4 karakter saja, kemudian ditampilkan isinya.
Pada baris ke-17 array kata1 dan kata2 dibandingkan. Namun pembandingan hanya sebatas Pada baris ke-17 array kata1 dan kata2 dibandingkan. Namun pembandingan hanya sebatas 4
4 karkarakteakter r sajsaja. a. HasHasililnya nya adaadalah lah ninilai lai 0 0 yang yang beraberarti rti 'tr'true'ue'. . SelSelanjuanjutnytnya, a, menamenampimpilkanlkan ukuran dari array kata1 yang
ukuran dari array kata1 yang berjumberjumlah lah 9 karakter.9 karakter.
Ke
Kesisimpmpululanan, , CaCara ra akakseses s ararraray y bberertitipe pe chchar ar dedengngan an nonon n chchar ar adadalalah ah bbererbebedada. . C+C+++ me
membmberierikan kan fafasisililitas tas khkhusuusus s ununtuk tuk ararraray y bebertrtipipe e chchar. ar. HaHal l inini i ununtuk tuk memmemperpermumudahdah programmer
programmer dalam dalam menggunakan menggunakan tipe tipe data data string. string. Pengaksesan Pengaksesan dengan dengan menghilangkanmenghilangkan ind
ditambahkan oleh C++ karakter null yang berarti tanda akhir string. Seperti array kata1,