• Tidak ada hasil yang ditemukan

TIPE DATA LARIK (ARRAY)TIPE DATA LARIK (ARRAY)

Dalam dokumen Pemrograman-1 (Halaman 54-65)

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,

Dalam dokumen Pemrograman-1 (Halaman 54-65)