Minggu, 29 Juli 2012

Mengenai array

Array adalah susunan/tatanan yang tempatnya/alamatnya urut.
Jadi misal ada array huruf: A B C

  • Di mana letak A: di sebelah kiri B atau sebelum B
  • Di mana letak B: di antara A dan C
  • Di mana letak C: di sebelah kanan B atau setelah B


Pemahaman di atas PENTING karena dalam menggunakan "pointer" kita akan memainkan alamat si "array", jadi jangan sampe bingung ntar y. Inget, pointer tu maenin alamatnya, bukan isinya!

Untuk dapat digunakan, array harus dideklarasikan terlebih dahulu:
Contoh:
    int A[10];
    artinya kita mendeklarasikan array A sebanyak 10 nilai integer
    jadiii, array A bertipe integer, isinya ada 10, dari A[0] - A[9].
    jangan tertipu, biarpun deklarasinya A[10], dalam pemakaiannya A[10] TIDAK ADA


n-Dimensi Array: Array yang memiliki sub-susunan/sub-tingkatan sebanyak (n-1).
Contoh:
    int A[5][10];
    adalah array 2 dimensi yang memiliki satu sub-susunan/sub-tingkatan
    untuk tingkatan array yang paling kiri yang paling tinggi.
    banyaknya data berarti 50 buah, dari A[0][0] - A[4][9]


Nah, dalam contoh tadi, berarti yang letaknya paling awal adalah A[0][0], dilanjutkan oleh A[0][1], BUKAN A[1][0].
Mengapa? Karena tingkatan yang di kiri lebih tinggi daripada yang kanan.
Misalkan
    X=A[10], maka A[5][10] = X[5]
    jadi sekumpulan array sebanyak sepuluh yang diarraykan lagi sebanyak 5.
    Setiap array X memiliki array A yang banyaknya sepuluh:
    X[0] punya A[10]
    X[1] punya A[10]
    ...
    X[4] punya A[10]

    Data pertama dari array tersebut adalah X[0], sementara data pertama dari X[0] adalah A[0], maka array pertama dari A[5][10] adalah A[0][0].
    Data setelah A[0][0] adalah data kedua dari X[0], yang berarti A[0][1].
    Sedangkan data terakhir dari array tersebut adalah X[4], sementara data terakhir dari X[4] adalah A[9], maka array terakhir dari A[5][10] adalah A[4][9].

Sama halnya dengan array lebih dari 2 dimensi:
    A[3][5][10] berarti dimisalkan X=A[10], Y=X[5],
    maka array A[3][5][10] = Y[3]
    Y[0], Y[1], Y[2], masing-masing punya X[5]; sementara X[0], X[1], X[2], X[3], X[4], masing-masing memiliki A[10]

    menuliskan dimensinya dari tingkatan tertinggi (Y), menengah (X), baru terendah (A).
    A[0][0][0] --> data pertama
    A[2][4][9] --> data terakhir
    jumlah data: 3 x 5 x 10 = 150


Keuntungan dalam menggunakan array adalah kita dapat mengakses datanya secara acak (Random Access), jadi kita dapat langsung "comot" A[2][0][3] dari array A[3][5][10] tanpa harus membaca data2 sebelum data tersebut.

Masalah-masalah dalam penggunaan array:
  • Tempat yang terbatas karena kita harus mendeklarasikannya terlebih dahulu agar bisa dipakai.
    Seandainya data ternyata melebihi kapasitas yang kita deklarasikan, maka akan memunculkan error karena data yang berlebih dianggap data asing.
  • Sebaliknya, bila ternyata tempat yang dideklarasikan berlebih atau terlalu banyak, sisa array yang tidak terpakai akan menghabiskan persediaan memori yang ada, sehingga program bisa saja berjalan lambat walau datanya sedikit.

Tidak ada komentar:

Posting Komentar