wa'alaikumussalam wr wb

Hai Heru Adi,

Maksudnya array dalam pemrograman ya...
Kalau begitu, jangan kaitkan dengan cells dalam sebuah worksheet. Anggap
saja tidak ada Excel terlebih dulu.

Array adalah sebuah tipe data yang mampu menampung sebuah list.

*1. Array 1 dimensi,*
berarti sebuah list yang setiap itemnya tidak memiliki anak.
Contoh :
      'cara deklarasi
      dim sArray1Dim( 1 to 3 ) as string
berarti variabel sArray1Dim mampu menampung 3 item yang diletakkan mulai
item nomor 1 sampai item nomor 3. Nilai setiap item bertipe string (teks)

     'cara isi nilai data ke dalam array
     sarray1dim(1)="X"           'item nomor ke-1 berisi teks 'X'
     sarray1dim(2)="Y"
     sarray1dim(3)="Z"

jadi, cara mengisinya dengan disebut satu per satu. Jika nilai yang
dimasukkan ('X','Y','Z') memiliki pola cara pengambilan atau penyusunan
nilainya, maka loop dengan for next berdasar nomor item array bisa
digunakan. Banyak cara mengisi array 1 dimensi.

     'cara baca nilai di dalam array, kemudian ditampilkan dalam msgbox
     dim lNomorItemArray as long
     for lNomorItemArray=1 to 3
            msgbox sarray1dim( lNomorItemArray )   'tampilkan kotak pesan,
dengan teks pesan berupa nilai yang ada dalam array item ke-sekian
     next lNomorItemArray

Jadi bagian (1 to 3) di dalam deklarasi akan melakukan reservasi di RAM
untuk ruang nilai-nilai list atau array sebanyak 3 kamar.
Cara deklarasi :
     dim sArray1Dim( 1 to 3 ) as string
sama dengan cara deklarasi berikut ini ketika baris pertama sebuah module
diberi option :
    option base 1

    public sub Array1ku()
       dim sArray1Dim( 3 ) as string
     'cara isi nilai data ke dalam array
     sarray1dim(1)="X"           'item nomor ke-1 berisi teks 'X'
     sarray1dim(2)="Y"
     sarray1dim(3)="Z"
    end sub

defaultnya, option base adalah 0 alias nomor item array dimulai dari angka
0. Lihat perbandingannya pada option base 0 berikut :
   option base 0

    public sub Array1ku()
       dim sArray1Dim( 3 ) as string
     'cara isi nilai data ke dalam array
     sarray1dim(0)="X"           'item nomor ke-0 berisi teks 'X'
     sarray1dim(1)="Y"
     sarray1dim(2)="Z"
    end sub

*2. Array 2 dimensi,*
berarti setiap item array dimensi ke-1 bisa punya daftar item anak, yaitu
di dimensi ke-2, tetapi nilai yang disimpan adalah nilai dimensi ke-2 nya.
Array yang lebih dari 1 dimensi juga disebut array multidimensi.

Contoh :  (pengaruh option base bisa Anda pikirkan sendiri ya)
   'cara deklarasi
   dim sArray2Dim( 1 to 3 , 1 to 2 ) as string
artinya, sArray2Dim akan menampung data nilai anak milik 3 item Orang Tua
yang setiap item Orang Tua akan mampu menampung 2 item Anak.

   'cara isi nilai ke dalam array 2 dimensi :
   sArray2Dim( 1 , 1 ) = "Anak1"       'Anak1 adalah nama anak ke-1 dari
orang tua ke-1
   sArray2Dim( 1 , 2 ) = "Anak2"       'Anak2 adalah nama anak ke-2 dari
orang tua ke-1
   sArray2Dim( 2 , 1 ) = "Anak3"       'Anak3 adalah nama anak ke-1 dari
orang tua ke-2
   sArray2Dim( 2 , 2 ) = "Anak4"       'Anak4 adalah nama anak ke-2 dari
orang tua ke-2
   sArray2Dim( 3 , 1 ) = "Anak5"       'Anak5 adalah nama anak ke-1 dari
orang tua ke-3
   sArray2Dim( 3 , 2 ) = "Anak6"       'Anak6 adalah nama anak ke-2 dari
orang tua ke-3

Terus, nama orang tuanya dimana ? Ya ditempat lain, seperti di sArray1Dim
di bahasan array 1 dimensi di atas sana.
Jadi, kalau sArray2Dim bekerja sama dengan sArray1Dim bisa mendapatkan
suatu data orang tua beserta anaknya.

Cara ambil nilainya :
    dim lOrtu as long, lAnak as long
    dim sOrtu as string, sAnak as string

    for lortu=1 to 3      'di setiap ortu
         sOrtu=sarray1dim(lortu)

         for lAnak=1 to 2   'di setiap anak milik setiap ortu yang sedang
diproses (lortu)
               sAnak=sarray2dim( lortu , lanak )
               msgbox "Nama ortu : " & sOrtu & vbcrlf & "Nama Anak ke-" &
lanak & " : " & sanak
         next lAnak
    next lortu

nah... cara sArray1Dim dan sArray2Dim ini adalah cara termudah untuk
memahami apa itu array. Jadi, suatu array, sebenarnya setiap itemnya hanya
menyimpan 1 nilai.

Silakan diulang dan dimantabkan dulu...
Kalau sudah, baru beranjak ke hal berikut ini...

*** kalau pengen suatu array bisa menampung nilai nama orang tua dan nama
anak sekaligus bagaimana ?
Kalau dengan array 2 dimensi, ada 3 nama ortu yang masing-masing punya 2
anak, berarti ada 3 x 2 = 6 nama anak. Setiap nama anak akan memiliki
pasangan berupa nama ortu. Jadi, dimensi ke-1 memiliki item sebanyak jumlah
anak, dan dimensi ke-2 berisi item sebanyak jumlah kelompok yang ada.
Kelompok yang ada yaitu kelompok 1 berupa nama-nama ortu dan kelompok 2
berupa nama-nama anak.

Deklarasinya :
     dim sArrayOrtuAnak( 1 to 6 , 1 to 2 ) as string

Cara isi :
   sarrayortuanak( 1 , 1 ) = "X"              'X adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-1
   sarrayortuanak( 1 , 2 ) ="Anak1"       'Anak1 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-1
   sarrayortuanak( 2 , 1 ) = "X"              'X adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-2
   sarrayortuanak( 2 , 2 ) ="Anak2"       'Anak2 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-2
   sarrayortuanak( 3 , 1 ) = "Y"              'Y adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-3
   sarrayortuanak( 3 , 2 ) ="Anak3"       'Anak3 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-3
   sarrayortuanak( 4 , 1 ) = "Y"              'Y adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-4
   sarrayortuanak( 4 , 2 ) ="Anak4"       'Anak4 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-4
   sarrayortuanak( 5 , 1 ) = "Z"              'Z adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-5
   sarrayortuanak( 5 , 2 ) ="Anak5"       'Anak5 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-5
   sarrayortuanak( 6 , 1 ) = "Z"              'Z adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-6
   sarrayortuanak( 6 , 2 ) ="Anak6"       'Anak6 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-6

Bingung kan membayangkannya.... Nah... biasanya terus disusun yang lebih
manusiawi menjadi begini :
Nomor baris         Ortu         Anak
1                            X            Anak1
2                            X            Anak2
3                            Y            Anak3
4                            Y            Anak4
5                            Z            Anak5
6                            Z            Anak6
lebih mudah dimengerti kalau berbentuk tabel dibanding berbentuk array
ya.... (gak setuju juga gpp)

Kalau array sArrayOrtuAnak diputar dimensinya bagaimana ?
Misal :
     dim sArrayPutar( 1 to 2 , 1 to 6 ) as string
lalu diisi dengan :
   sarrayortuanak( 1 , 1 ) = "X"              'X adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-1
   sarrayortuanak( 2 , 1 ) ="Anak1"       'Anak1 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-1
   sarrayortuanak( 1 , 2 ) = "X"              'X adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-2
   sarrayortuanak( 2 , 2 ) ="Anak2"       'Anak2 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-2
   sarrayortuanak( 1 , 3 ) = "Y"              'Y adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-3
   sarrayortuanak( 2 , 3 ) ="Anak3"       'Anak3 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-3
   sarrayortuanak( 1 , 4 ) = "Y"              'Y adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-4
   sarrayortuanak( 2 , 4 ) ="Anak4"       'Anak4 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-4
   sarrayortuanak( 1 , 5 ) = "Z"              'Z adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-5
   sarrayortuanak( 2 , 5 ) ="Anak5"       'Anak5 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-5
   sarrayortuanak( 1 , 6 ) = "Z"              'Z adalah anggota kelompok
ke-1, yaitu nama ortu dari anak ke-6
   sarrayortuanak( 2 , 6 ) ="Anak6"       'Anak6 adalah anggota kelompok
ke-2, yaitu nama anak dari anak ke-6
Jadinya :
Nomor baris       Item1       Item2       Item3      Item4      Item5
Item6
1                            X            X               Y
Y            Z             Z
2                         Anak1     Anak2      Anak3     Anak4
Anak5     Anak6

enakan mana melihat datanya kalau ada 1juta anak SD se indonesia yang
didaftar ke dalam array ?
kalau saya, suka yang bentuknya hasil deklarasi ( 1 to 6 , 1 to 2 ), tapi
mungkin saya rada gak normal menurut banyak pengguna Excel.
(untung pakai Excel itu tidak ada requirements hanya untuk orang normal)

Nah... deklarasi yang ( 1 to 6 , 1 to 2 ) akan menghasilkan tabel yang baik
yang berkaidah tabel database, dan pastinya mudah dikerjakan oleh suatu
array, karena setiap dimensi ke-1 array memiliki data yang utuh yang
dijabarkan di dalam dimensi ke-2 array.

*3. array 3 dimensi*
Ini berarti ada 1 dimensi lagi yang menyimpan suatu nilai.
Misal, dimensi ke-3 menyimpan nama pelajaran sekolah anak yang paling
disukai.
 dim sArray3Dim( 1 to 3 , 1 to 2 , 1 to 1 ) as string
 sArray3Dim( 1 , 1 , 1 ) = "Matematika"    'anak ke-1 dari ortu ke-1 suka
matematika
 sArray3Dim( 1 , 2 , 1 ) = "PKn"                'anak ke-2 dari ortu ke-1
suka PKn
 sArray3Dim( 2 , 1 , 1 ) = "IPA"                 'anak ke-1 dari ortu ke-2
suka IPA
 sArray3Dim( 2 , 2 , 1 ) = "IPA"                 'anak ke-2 dari ortu ke-2
juga suka IPA
 sArray3Dim( 3 , 1 , 1 ) = "Prakarya"        'anak ke-1 dari ortu ke-3 suka
Prakarya
 sArray3Dim( 3 , 2 , 1 ) = "Seni"               'anak ke-2 dari ortu ke-3
juga suka Seni

nah... array seperti inipun bisa disusun menjadi array 2 dimensi menjadi :
Masih hanya ada 6 item, yaitu 3 ortu x 2 anak per ortu x 1 mapel per anak =
6 item
dengan data setiap anak membentuk 3 kelompok, yaitu :
> kelompok 1 adalah nama ortu,
> kelompok 2 adalah nama anak,
> kelompok 3 adalah nama pelajaran yang paling disukai
  dim sArray3Kelompok( 1 to 6 , 1 to 3 ) as string
  sArray3Kelompok( 1 , 1 ) ="X"
  sArray3Kelompok( 1 , 2 ) ="Anak1"
  sArray3Kelompok( 1 , 3 ) ="Matematika"
  sArray3Kelompok( 2 , 1 ) ="X"
  sArray3Kelompok( 2 , 2 ) ="Anak2"
  sArray3Kelompok( 2 , 3 ) ="PKn"
dst
yang kalau disusun lebih manusiawi menjadi :
nomor baris       ortu       anak      mapel
1                         X        Anak1      Matematika
2                         X        Anak2      PKn
dst

Udah ah...
itu tadi dasar array...
kalau menggunakan array multidimensi untuk urusan yang ruwet, saya ndak
mudeng.
btw, mau seruwet apapun urusannya, bermain dengan bentuk tabel yang baik
banyak kolom kelompok (kolom tabel) yang dijaga berkaidah tabel database
yang baik, akan lebih mudah dibayangkan. Tapi, pendapat ini biasanya gak
cocok dengan programmer yang suka coding. Tapi biarlah perbedaan
pendapatnya tetap ada dan pada sisi masing-masing.

So,
Punya data 17 dimensi ? Bisa disusun menjadi array 17 dimensi atau bentuk
tabel yang sejatinya adalah array 2 dimensi. Disesuaikan dengan kebutuhan
kenyamanan dalam memprosesnya saja.

Nanti masih ada array di dalam setiap item array. Namanya Jagged Array.
Contoh sederhananya, array daftar sheet beserta area range data yang berisi
nilai, seperti :
  dim vJagged( 1 to 1 , 1 to 2 ) as variant
  untuk wadah 1 sheet (1 to 1) yang setiap sheet ada daftar 2 area data (1
to 2), sedangkan setiap area data ada dimensi baris dan kolomnya

   sJagged(1,1)=range("b2:c5").value    'sheet ke-1 area data ke-1 berisi
array nilai dari range b2:c5 alias 4 baris x 2 kolom
   sJagged(1,2)=range("b4:b5").value    'sheet ke-1 area data ke-2 berisi
array nilai dari range b4:b5 alias 2 baris x 1 kolom



wassalamu'alaikum wr wb
Kid


2015-12-14 20:02 GMT+07:00 Heru Adi [email protected] [belajar-excel] <
[email protected]>:

>
>
> Assalamu'alaikum.
> Selamat sore rekan-rekan milis excel .
> Saya mau bertanya apakah fungsi dan kegunaan dari array dua dimensi /
> multidimensi ?
> Mohon diberi contoh studi kasus yang menggunakan konsep array dua dimensi
> / multidimensi ini.
> Sebelumnya saya ucapkan terimakasih kepada rekan-rekan atas jawabannya.
> Saya sangat ingin tahu contoh penerapan dari array dua dimensi /
>  multidimensi ini.
>
> Rgds,
>
> Heru Adi S
>
> Dikirim dari Yahoo Mail pada Android
> <https://overview.mail.yahoo.com/mobile/?.src=Android>
>
> 
>

Kirim email ke