Jadi mari kita mulai dengan perbedaan antara array Satu Dimensi dan Dua Dimensi bersama dengan grafik perbandingan.
Grafik perbandingan:
Dasar untuk Perbandingan | Satu dimensi | Dua dimensi |
---|---|---|
Dasar | Menyimpan daftar elemen tunggal dari tipe data yang serupa. | Menyimpan 'daftar daftar' atau 'array array' atau 'array array satu dimensi'. |
Pernyataan | / * deklarasi di C ++ ketik variable_name [size]; * / / * deklarasi di Jawa ketik variable_name []; variabel_name = tipe baru [ukuran]; * / | / * deklarasi di C ++ ketik variable_name [size1] [size2]; * / / * deklarasi di Jawa ketik variable_name = new int [size1] [size2]; * / |
Deklarasi Alternatif | / * Di Jawa int [] a = int baru [10]; * / | / * Di Jawa int [] [] a = new int [10] [20]; * / |
Ukuran Total dalam Bytes | Total Bytes = sizeof (tipe data variabel array) * ukuran array. | Total Bytes = sizeof (tipe data variabel array) * ukuran indeks pertama * ukuran indeks kedua. |
Menerima parameter | Itu dapat diterima dalam sebuah pointer, array berukuran atau array tidak berukuran. | Parameter yang menerimanya harus menentukan dimensi paling kanan dari sebuah array. |
Ukuran | Satu dimensi. | Dua dimensi. |
Definisi Array Satu Dimensi (array 1-D)
Array Satu Dimensi atau Dimensi Tunggal dianggap sebagai "daftar variabel tipe data yang serupa", dan setiap variabel dapat diakses secara jelas dengan menentukan indeksnya dalam tanda kurung siku yang didahului dengan nama array itu.
Mari kita bahas dalam Konteks C ++
// deklarasi di C ++ ketik variable_name [size];
Di sini tipe menyatakan tipe data variabel array, dan ukuran menentukan jumlah elemen yang akan disimpan array.
Misalnya, jika kita ingin mendeklarasikan array yang akan berisi saldo setiap bulan dalam setahun.
// contoh int month_balance [12];
Bulan _balance adalah variabel array yang akan menampung 12 bilangan bulat, yang akan mewakili saldo setiap bulan. Sekarang, jika kita ingin mengakses saldo bulan 'April' kita cukup menyebutkan nama variabel diikuti oleh kurung siku yang berisi nilai indeks untuk bulan April yaitu 'month_balance [3]'. Tetapi karena 'April' adalah bulan keempat tahun ini tetapi kami telah menyebutkan '[3]' karena semua array memiliki 0 sebagai indeks elemen pertama mereka.
Di Jawa, ini bisa dilakukan sebagai
// deklarasi di tipe Java variable_name []; variabel_name = tipe baru [ukuran];
Di sini, awalnya kami telah mendeklarasikan variabel array dengan tipenya dan kemudian kami telah mengalokasikan memori untuk itu menggunakan 'baru' dan menetapkan 'baru' untuk variabel array yang dideklarasikan. Mari kita ambil contoh di atas jika kita ingin mendeklarasikan array yang akan mengandung saldo di setiap bulan dalam setahun.
// contoh int month_balance []; month_balance = int baru [12];
Di sini, 'baru' mengalokasikan memori ke variabel array “month_balance”, jadi sekarang, mont_balance sekarang akan menahan memori untuk 12 nilai integer.
Array dapat diinisialisasi ketika diumumkan. Inisialisasi array adalah daftar nilai yang dipisahkan koma yang dikelilingi oleh kurung kurawal.
//contoh
int month_balance = {100, 500, 200, 750, 850, 250, 630, 248, 790, 360, 450.180};
Definisi Larik Dua Dimensi (array 2-D)
Baik C ++ dan Java mendukung array multidimensi. Salah satu bentuk paling sederhana dari array multidimensi adalah, array dua dimensi atau array 2-D. Array dua dimensi dapat dianggap sebagai 'array array' atau 'array array satu dimensi'. Untuk mendeklarasikan variabel array dua dimensi, kita harus menentukan nama array diikuti oleh dua tanda kurung di mana indeks kedua adalah set kedua tanda kurung kotak.
Array dua dimensi disimpan dalam bentuk matriks baris-kolom, di mana indeks pertama menunjukkan baris dan indeks kedua menunjukkan kolom. Indeks kedua atau paling kanan dari array berubah sangat cepat dibandingkan dengan indeks pertama atau paling kiri saat mengakses elemen-elemen dari array.
// deklarasi di C ++ ketik variable_name [size1] [size2];
Misalnya, kami ingin menyimpan saldo setiap 30 hari di setiap bulan dalam setahun, dalam array 2-D.
// contoh int month_balance [12] [30];
Di Jawa, array dua dimensi diperoleh oleh
// deklarasi di Java type variable_name = new int [size1] [size2]; // example int month_balance = new int [12] [30];
Karena kita tidak bisa melewatkan seluruh array sebagai parameter ke suatu fungsi, sebuah pointer ke elemen pertama array dilewatkan. Argumen yang menerima array dua dimensi harus mendefinisikannya sebagai dimensi paling kanan. Dimensi paling kanan diperlukan karena kompiler membutuhkannya, untuk mengonfirmasi panjang setiap baris jika ingin mengindeks array dengan benar. Jika indeks paling kanan tidak disebutkan, kompiler tidak dapat menentukan dari mana baris berikutnya dimulai.
// contoh dalam Java void accepting_funct (int a [] [10]) {. . . }
Ketika memori secara dinamis dialokasikan ke array dua dimensi di Jawa, indeks paling kiri ditentukan, dan dimensi yang tersisa dapat dialokasikan secara terpisah yaitu semua baris array mungkin tidak dengan ukuran yang sama.
// contoh di Java int month_balance = new int [12] []; month_balance [0] = int baru [31]; month_balance [1] = int baru [28]; month_balance [2] = int baru [31]; month_balance [3] = int baru [30]; month_balance [4] = int baru [31]; month_balance [5] = int baru [30]; month_balance [6] = int baru [31]; month_balance [7] = int baru [30]; month_balance [8] = int baru [31]; month_balance [9] = int baru [30]; month_balance [10] = int baru [31]; month_balance [11] = int baru [30]; month_balance [12] = int baru [31];
Tetapi tidak ada untungnya melakukannya.
Perbedaan Kunci Antara Array Satu Dimensi dan Dua Dimensi
- Array satu dimensi adalah daftar yang elemen-elemennya memiliki tipe data yang sama. Di sisi lain, array dua dimensi adalah daftar yang elemen-elemennya adalah array tipe data yang serupa.
- Dalam C ++, ketika array satu dimensi diterima oleh parameter fungsi penerima, tidak perlu menyebutkan ukuran array, kompiler memahami bahwa array jenis (datatype yang disebutkan bersama dengan parameter) dengan panjang tertentu harus diterima. Dalam array dua dimensi, indeks kedua atau paling kanan harus ditentukan karena kompiler perlu tahu di mana akhir baris tunggal dan baris baru dimulai.
- Dalam C ++, array satu dimensi disimpan di lokasi memori yang berdekatan dalam urutan yang diindeks, sedangkan array dua dimensi juga disimpan di lokasi memori yang berdekatan, tetapi karena ada beberapa baris dalam array dua dimensi, penyimpanan baris pertama diikuti oleh yang kedua dan ketiga dan seterusnya.
catatan:
Melewati keduanya, array satu dimensi dan juga, array dua dimensi ke suatu fungsi adalah sama yaitu keduanya dilewati hanya dengan nama array
// contoh passing_funt (name_of_array);
Kesimpulan:
Dalam array satu dimensi dan dua dimensi, indeks memainkan peran yang sangat penting karena merupakan satu-satunya hal yang secara spesifik mengidentifikasi elemen dalam array. Array satu dimensi dan dua dimensi dapat diinisialisasi pada saat deklarasi mereka.