Your SlideShare is downloading. ×
about array
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

about array

962
views

Published on

If you what the array by definitions and implementation in programming-language, this article is right for you're looking for :)

If you what the array by definitions and implementation in programming-language, this article is right for you're looking for :)

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
962
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Pangalengge Educations --------------------------------------- IV. Pengenalan Array (Larik) Yang dimaksud dengan array (larik), adalah sejumlah data yang bertipe sama dalam satu kelompok dengan posisi yang berurutan. Misalkan: string Rina adalah sekelompok data S dengan jenis karakter yang diposisikan secara berurutan dengan masing-masing elemen: S[0] = R S[1] = i S[2] = n S[3] = a Bila mengulas perihal array, Bahasa Pemrograman C++ sangat cocok digunakan dalam menjelaskan dan mengimplementasikan berbagai teori serta filosofi ini. Meskipun demikian bukan berarti Bahasa Pemrograman BASIC dan JavaScript tidak bisa digunakan dalam mengulas tentang array, hanya tidak lebih luwes bila dibandingkan dengan Bahasa Pemrograman C++. Contoh. Kasus 3.1 berikut ini: Sebuah string dengan nilai: pengerjaan akan dilakukan proses perubahan sebagai berikut: S[10] = {p,e,n,g,e,r,j,a,a,n} S[0]=p S[1]=e S[2]=n S[3]=g S[4]=e S[5]=r S[6]=j S[7]=a S[8]=a S[9]=n Algoritma perubahan: S[9] ← S[0] S[0] ← S[9] ; S[8] ← S[1] S[1] ← S[8] ; S[7] ← S[2] S[2] ← S[7] ; S[6] ← S[3] S[3] ← S[6] ; S[5] ← S[4] S[4] ← S[5] ; Sehingga didapatkan nanti hasilnya: S[10] = { n, a, a, j, r, e, g, n, e, p } kas31.cpp #include <iostream.h> void main() { int i; IV-1
  • 2. Pangalengge Educations --------------------------------------- char smn,s[10]={'p','e','n','g','e','r','j','a','a','n'}; for(i=0;i<5;i++) { smn=s[i]; s[i]=s[9-i]; s[9-i]=smn; } cout << quot;Hasil perubahan: quot;; for(i=0;i<10;i++) { cout << s[i]; } } kas31.bas kas31.html <script language=JavaScript> var s=new Array('p','e','n','g','e','r','j','a','a','n'); for(i=0;i<5;i++) { smn=s[i]; s[i]=s[9-i]; s[9-i]=smn; } document.writeln(quot;Hasil perubahan: quot;); for(i=0;i<10;i++) { document.writeln(s[i]); } </script> Mengadopsi kasus 3.1, namun string yang akan dimanipulasi berasal dari input user, dengan batasan panjang string 10 karakter. kas32.cpp #include <iostream.h> void main() { int i; char smn,s[10]; cout << quot;Masukkan string (maks.10 char): quot;; cin >> s; for(i=0;i<5;i++) { smn=s[i]; s[i]=s[9-i]; s[9-i]=smn; } cout << quot;Hasil perubahan: quot;; for(i=0;i<10;i++) { cout << s[i]; } IV-2
  • 3. Pangalengge Educations --------------------------------------- } Berikut untuk mengantisipasi bila user memasukkan string melebihi 10 karakter atau sama sekali kosong. kas32a.cpp #include <iostream.h> #include <string.h> void main() { int i,pjg; char smn,s[10]; cout << quot;Masukkan string (maks.10 char): quot;; cin >> s; pjg=strlen(s); if(s==quot;quot;||pjg>10) { cout << quot;Maaf, melebihi 10 karakterquot;; } else { for(i=0;i<5;i++) { smn=s[i]; s[i]=s[9-i]; s[9-i]=smn; } cout << quot;Hasil perubahan: quot;; for(i=0;i<10;i++) { cout << s[i]; } } } Semakin jelas ditunjukkan bahwa sebuah string adalah padanan dari kata, bukan sebuah kalimat. Berikut dalam JavaScript sebuah prosedur yang digunakan untuk menangkap sejumlah karakter yang di-input-kan oleh user. Namun ada sebuah prosedur tambahan yang disisipkan untuk membatasi bahwa user hanya bisa mengetikkan dengan maksimal 10 karakter saja. Jelas nanti akan terlihat perbedaan penulisan array untuk ‘[‘ , ‘]’ dan ‘(‘, ‘)’. kas32cc.html <script language=JavaScript> sa=window.prompt(quot;Masukkan string (maks.10 karakter):quot;,quot;0quot;); pjg=sa.length; if(pjg<=0||pjg>10) { document.writeln(quot;Maaf, kosong atau melebihi 10 karakterquot;); } else { document.writeln(quot;Hasil perubahan: quot;); for(i=0;i<sa.length;i++) { document.writeln(sa.charAt(i)); } } IV-3
  • 4. Pangalengge Educations --------------------------------------- </script> kas32.html <script language=JavaScript> sa=window.prompt(quot;Masukkan string (maks.10 karakter):quot;,quot;0quot;); pjg=sa.length; if(pjg<=0||pjg>10) { document.writeln(quot;Maaf, kosong atau melebihi 10 karakterquot;); } else { document.writeln(quot;Hasil perubahan: quot;); for(i=0;i<sa.length;i++) { document.writeln(sa.charAt(i)); } } </script> kas33.html <script language=JavaScript> sa=window.prompt(quot;Masukkan string (maks.10 karakter):quot;,quot;0quot;); pjg=sa.length; if(pjg<=0||pjg>10) { document.writeln(quot;Maaf, kosong atau melebihi 10 karakterquot;); } else { document.writeln(quot;Hasil perubahan: quot;); for(i=0;i<sa.length;i++) { document.writeln(sa.charAt(i)); } } </script> Berikut adalah Algoritma Marbulang+7 untuk melakukan proses enkripsi dari sebuah plaintext dengan panjang maksimal 10 karakter yang di-input-kan oleh user: [char]-1, [char]-2, [char]-3,…, [char]-26 [char]-1 = A atau a, [char]-2 = B atau b, … , [char]-26 = Z atau z string[i]…?…[char]-1 s.d [char]-26 string[i]←([char]-j) + 7 jika string[i] melebihi [char]-26 maka lakukan reset ke [char]-1 i = 0,1,2…9 j = 1,2,3,…,26 IV-4
  • 5. Pangalengge Educations --------------------------------------- kas34.html <script language=JavaScript> var coding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMabcdefghijklmnopqrstuvwxyzab cdefghijklm'; var sa=window.prompt(quot;Masukkan string (maks.10 karakter):quot;,quot;0quot;); pjg=sa.length; if(pjg<=0||pjg>10) { document.writeln(quot;Maaf, kosong atau melebihi 10 karakterquot;); } else { for (var text = '',i=0;i<pjg;i++) { character = sa.charAt(i); position = coding.indexOf(character); if (position > -1) character = coding.charAt(position + 7); text += character; } document.writeln(quot;Hasil enkripsi menggunakan Algoritma Marbulang+7: <b>quot; + text+quot;</b>quot;); } </script> Kasus berikut menyajikan daftar karakter alphabetikal untuk huruf kecil dan besar. kas35.cpp #include <iostream.h> void main() { cout << quot;Tabel Alphabetikal A s.d Znquot;; cout << quot;==========================nquot;; cout << quot;No. Abjad Huruf Besar Abjad Huruf Kecilnquot;; for(int i=0;i<26;i++) { cout.width(2); cout << i+1 << quot; quot; << char(i+65) << quot; quot; << char(i+97) << endl; } } kas35.bas CLS PRINT quot;Tabel Alphabetikal A s.d Zquot; FOR i = 1 TO 26 PRINT i; quot; quot;; CHR$(i + 64); quot; quot;; CHR$(i + 96) NEXT i Untuk lebih interaktif, dapat ditulis kembali sebagai berikut: kas35a.bas CLS PRINT quot;Tabel Alphabetikal A s.d Zquot; INPUT quot;Masukkan batas atas: quot;; a INPUT quot;Masukkan batas bawah: quot;; b FOR i = a TO b PRINT i; quot; quot;; CHR$(i + 64); quot; quot;; CHR$(i + 96) NEXT i IV-5
  • 6. Pangalengge Educations --------------------------------------- kas35.html <script language=JavaScript> alert(quot;Alphabetikal A s.d Zquot;); document.writeln(quot;<table border=1><tr><td>No.</td><td>Abjad Huruf Besar</td><td>Abjad Huruf Kecil</td></tr>quot;); for(i=0;i<26;i++) { document.writeln(quot;<tr><td align=right>quot;+[i+1]+quot;</td><td align=center>quot;+String.fromCharCode(i+65)+quot;</td><td align=center>quot;+String.fromCharCode(i+97)+quot;</td></tr>quot;); } document.writeln(quot;</table>quot;); </script> Kasus 3.6, menyajikan sebuah string dengan panjang 8 karakter dimanipulasi dengan batasan, setiap karakter akan dipindahkan 2 posisi ke depan dari tempat semula. Misalkan: string: selamat1, jika dimanipulasi dengan batasan tersebut akan mendapatkan string baru: t1selama. String asli disebut: plaintext, dan string hasil perubahan disebut: ciphertext, sedangkan batasan yang ditetapkan untuk melakukan perubahan disebut: key. kas36.cpp #include <iostream.h> void main() { int i; char smk,smn,kara[8]; cout << quot;Masukkan kata maks.8 karakter: quot;; cin >> kara; cout << quot;Plaintext: quot; << kara << endl; cout << quot;Ciphertext: quot;; smn=kara[2]; kara[2]=kara[0]; kara[0]=kara[6]; smk=kara[4]; kara[4]=smn; kara[6]=smk; smn=kara[1]; kara[1]=kara[7]; smk=kara[3]; kara[3]=smn; smn=kara[5]; kara[5]=smk; kara[7]=smn; for(i=0;i<8;i++) { cout << kara[i]; } } IV-6
  • 7. Pangalengge Educations --------------------------------------- Kasus 3.7 berikut bertujuan mendapatkan selisih waktu dari input awal dan akhir dari user. Namun hal yang harus dibatasi adalah kemungkinan menit akhir bernilai lebih kecil dibandingkan dengan menit awal. kas37.cpp #include <iostream.h> void main() { int jam2,jam1,menit2,menit1,resultJ,resultM; cout << quot;Jam mulai: quot;; cin >> jam1; cout << quot;Menit mulai: quot;; cin >> menit1; cout << quot;Jam selesai quot;; cin >> jam2; cout << quot;Menit selesai: quot;; cin >> menit2; if(menit2<menit1) { resultJ=jam2-jam1; resultM=menit2-menit1+60; } else { resultJ=jam2-jam1; resultM=menit2-menit1; } cout << quot;Lamanya waktu = quot; << resultJ << quot;.quot; << resultM << quot; jamquot;; } Array bisa diterapkan pada kasus 3.7 sebelumnya, misalkan kas37.cpp dapat dilakukan perubahan sebagai berikut: kas37a.cpp #include <iostream.h> void main() { int jam[2],menit[2],resultJ,resultM; cout << quot;Jam mulai: quot;; cin >> jam[0]; cout << quot;Menit mulai: quot;; cin >> menit[0]; cout << quot;Jam selesai quot;; cin >> jam[1]; cout << quot;Menit selesai: quot;; cin >> menit[1]; if(menit[1]<menit[0]) { resultJ=jam[1]-jam[0]; resultM=menit[1]-menit[0]+60; } else { resultJ=jam[1]-jam[0]; resultM=menit[1]-menit[0]; IV-7
  • 8. Pangalengge Educations --------------------------------------- } cout << quot;Lamanya waktu = quot; << resultJ << quot;.quot; << resultM << quot; jamquot;; } kas37.bas CLS INPUT quot;Jam mulai: quot;; j1 INPUT quot;Menit mulai: quot;; m1 INPUT quot;Jam selesai: quot;; j2 INPUT quot;Menit selesai: quot;; m2 IF m2 < m1 THEN resultJ = j2 - j1 resultM = m2 - m1 + 60 ELSE resultJ = j2 - j1 resultM = m2 - m1 END IF PRINT quot;Lamanya waktu quot;; resultJ; quot;.quot;; resultM; quot; jamquot; kas37.html <html> <head><title>.:Selisih Waktu:.</title> <script language=JavaScript> function HitungAwal() { var jjam2=document.data.jam2.value; var jjam1=document.data.jam1.value; var mmenit2=document.data.menit2.value; var mmenit1=document.data.menit1.value; if(mmenit2<mmenit1) { resultJ=jjam2-jjam1; resultM=mmenit2-mmenit1+60; } else { resultJ=jjam2-jjam1; resultM=mmenit2-mmenit1; } document.writeln(quot;<br>Lamanya waktu = quot;+resultJ+quot;.quot;+resultM+quot; jamquot;); document.writeln(quot;<br><br>Klik <a href=waktu.html>di sini</a> untuk mengulang kembaliquot;); } </script> </head> <body> <form name=data><table border=1> <tr><td>Jam mulai:</td><td><input type=text name=jam1></td></tr> <tr><td>Menit mulai:</td><td><input type=text name=menit1></td></tr> <tr><td>Jam selesai:</td><td><input type=text name=jam2></td></tr> <tr><td>Menit selesai:</td><td><input type=text name=menit2></td></tr> </table> <input type=button value=Hitung! onClick=HitungAwal()><input type=reset value=Hapus> IV-8
  • 9. Pangalengge Educations --------------------------------------- </form> </body> </html> Umumnya sebuah bahasa pemrograman mendukung array sekelompok bilangan pada variabel yang diurutkan. Misalkan 20 bilangan dikelompokkan pada satu buah himpunan, S, dengan masing-masing nilai sebagai berikut: S[0] = -7 S[5] = -537 S[10] = 27 S[15] = 77 S[1] = -47 S[6] = 67 S[11] = 57 S[16] = 471 S[2] = 71 S[7] = 70 S[12] = 72 S[17] = -78 S[3] = 75 S[8] = -375 S[13] = 37 S[18] = -17 S[4] = 17 S[9] = 170 S[14] = 87 S[19] = 67 S[20] = {-7,-47,71,75,17,-537,67,70,-375,170,27,57,72,37,87,77,471,-78,-17,67} Salah satu kelebihan array adalah, mampu menampilkan urutan ke-i yang diminta oleh user. Hal ini bermanfaat bila array tidak dideklarasikan pada badan program, namun langsung ditampung sementara pada ruang memory. Misalkan 5 kali kesempatan user untuk memberi input nilai numerik. Lalu diminta input di urutan ke-berapa, tidak boleh urutan pertama, yang akan ditambahkan dengan suatu konstanta; lalu konstanta berapa yang akan diinginkan oleh user; lalu hasil penjumlahan ini dikalikan dengan hasil pengurangan antara bilangan di urutan ke-5 dengan nilai di urutan ke-k, dimana k adalah urutan ke-i yang ditentukan user tadi dikurangi 1. User selalu memiliki keterbatasan dalam mengingat alphanumerik dibandingkan alphabetikal. kas38.cpp #include <iostream.h> void main() { int i,j,konst,urut=1; float urutan[5],hasl,result,hsl; for(i=0;i<5;i++) { cout << quot;Bilangan ke-quot; << i+1 << quot;: quot;; cin >> urutan[i]; } cout << quot;Urutan keberapa? (!=1): quot;; cin >> j; cout << quot;Masukkan konstanta: quot;; cin >> konst; hsl=urutan[j-1]+konst; hasl=urutan[4]-urutan[j-1-urut]; result=hsl*hasl; cout << quot;Hasilnya = quot; << result; } Perhatikan, urutan array oleh compiler dimulai pada urut ke-0, sehingga jika misalkan 5 array ditetapkan sebagai berikut: IV-9
  • 10. Pangalengge Educations --------------------------------------- urutan[5] = {4,-3,12,6,2} diuraikan sebagai berikut: urutan[0] = 4 urutan[1] = -3 urutan[2] = 12 urutan[3] = 6 urutan[4] = 2 dan user menginginkan urutan ke-2 ditampilkan, maka jika i adalah urutan array, i harus di-increment-kan agar mendapatkan urutan ke-2. Artinya, user mengurutkan array tersebut sebagai berikut: urutan[1] = 4 urutan[2] = -3 urutan[3] = 12 urutan[4] = 6 urutan[5] = 2 Kembali ke kas38.cpp, misalkan user menginginkan urutan ke-2 dengan konstanta bernilai 2, maka hasilnya = 2. Mengapa setiap variabel hasil operasi ditetapkan dalam tipe data float, alasannya agar bisa menampung hasil operasi arithmatika untuk perkalian dan pembagian bila mendapatkan nilai pecahan (tidak bulat). kas38a.cpp #include <iostream.h> void main() { int j,i,shar[5]; for(i=0;i<5;i++) { cout << quot;Bilangan ke-quot; << i+1 << quot;: quot;; cin >> shar[i]; } cout << quot;Pilihan bilangan ke-berapa?: quot;; cin >> j; cout << quot;Anda memilih bilangan ke-quot; << j; cout << quot; bernilai: quot; << shar[j-1]; } kas38b.cpp #include <iostream.h> void main() { int j,i,shar[5]; float hasl; for(i=0;i<5;i++) { cout << quot;Bilangan ke-quot; << i+1 << quot;: quot;; cin >> shar[i]; } cout << quot;Pilihan bilangan ke-berapa?: quot;; cin >> j; cout << quot;Anda memilih bilangan ke-quot; << j; cout << quot; bernilai: quot; << shar[j-1]; IV-10
  • 11. Pangalengge Educations --------------------------------------- hasl=shar[j-1]+2; cout << quot;nJika bilangan yang Anda pilih ditambah dengan 2 = quot; << hasl; } kas38.bas CLS urut = 1 FOR i = 1 TO 5 PRINT quot;Masukkan nilai-quot;; i; quot;: quot;; INPUT a(i) NEXT i INPUT quot;Pilih urutan ke berapa(!=1):quot;; j INPUT quot;Tentukan konstanta:quot;; konst hsl = a(j) + konst hasl = a(5) - a(j - urut) result = hsl * hasl PRINT quot;Hasilnya = quot;; result Terlihat pada kas38.bas, karena looping di-set mulai urutan ke-1, maka untuk statement hsl dan hasl tidak dilakukan decrement 1; berbeda pada kas38.cpp dan kas38.html Berikut sepintas program BASIC untuk mendapatkan 5 nilai array yang di-input-kan user, dan ditampung sementara pada variabel a yang dilakukan secara looping 5 kali. Perhatikan, 5 nilai numerik ini dikelompok dalam sebuah array, a[5]. kas38a.bas CLS FOR i = 1 TO 5 INPUT a(i) PRINT quot;Nilai ke-quot;; i; quot; = quot;; a(i) NEXT i Perhatikan sintaks BASIC berikut ini: kas38b1.bas CLS FOR i = 1 TO 5 INPUT quot;Masukkan nilai[quot;; i; quot;]: quot;;a (i) NEXT i FOR i = 1 TO 5 PRINT quot;Nilai ke-quot;; i; quot; = quot;; a(i) NEXT i Terjadi kesalahan saat proses interpretasi dilakukan, sehingga dilakukan editing yang menghasilkan sebagai berikut kas38b2.bas CLS FOR i = 1 TO 5 PRINT quot;Masukkan nilai[quot;; i; quot;]: quot;; INPUT a(i) NEXT i FOR i = 1 TO 5 PRINT quot;Nilai ke-quot;; i; quot; = quot;; a(i) NEXT i IV-11
  • 12. Pangalengge Educations --------------------------------------- Bisa disimpulkan, sebuah bahasa pemrograman harus memiliki stream untuk menampilkan sebuah statement, dan menerima sebuah value dari user. kas38.html <script language=JavaScript> urutan=new Array(); for(i=0;i<5;i++) { urutan[i]=window.prompt(quot;Ketikkan bilangan:quot;,quot;0quot;); urutan[i]=parseInt(urutan[i]); } document.writeln(quot;Bilangan yang Anda ketikkan:<br>quot;); for(i=0;i<5;i++) { document.writeln(quot;Bilangan ke-quot;+[i+1]+quot;: quot;+urutan[i],quot;<br>quot;); } j=window.prompt(quot;Urutan keberapa?:quot;,quot;tidak boleh 1quot;); kkonst=window.prompt(quot;Masukkan konstanta:quot;,quot;0quot;); konst=parseInt(kkonst); urut=1; hsl = konst + urutan[j-1]; hasl=urutan[4]-urutan[j-1-urut]; result=hsl*hasl; document.writeln(quot;Hasilnya = quot;, result); </script> Ringkasan Array biasa digunakan untuk mendeklarasikan sejumlah data yang ber-tipe sama untuk mewakilkan sekumpulan data yang dipanggil secara beruntun/berurutan. Biasanya dalam deklarasi array dan menjalankannya dibantu logical-structure for…i (perulangan for). Untuk masing-masing Bahasa Pemrograman C++, BASIC, dan JavaScript memiliki kekhasan dalam mendeklarasikan sebuah array. IV-12