Array dan Slice
Di jurnal ini akan membahas tentang data struktur array. Dimana pembahasannya mencakup beberapa karakteristik dasar (fundamental) dan bagaimana implementasinya ketika menggunakannya di program.
Pembukaan
Array adalah koleksi dari elemen yang mempunyai kapasitas yang nilainya ditentukan di awal pembuatannya, dimana di golang ukurannya adalah tetap (fixed-size
), sehingga tidak bisa diperbesar atau ditambah kapasitasnya. Selain itu tipe data elemennya juga tetap atau sama.
Untuk setiap elemen dari array memiliki index
berupa angka yang menggambarkan posisi urutan dari elemen di arraynya, index ini bisa digunakan untuk mengakses elemennya. Index array ini dimulai dari 0
. Secara default value dari empty array
adalah zero values (seperti: 0
, 0.0
, false
, atau ""
).
Slice mirip seperti array tapi memiliki ukuran atau panjangnya dinamis (ukuran bisa berubah atau tidak fixed
). Slice menerapkan sistem referensi dari array. Sehingga perubahan slice bisa mengakibatkan slice lainnya berubah jika mempunyai alamat (address
) yang sama.
Untuk mengetahui ukuran atau panjang array maupun slice dapat menggunakan function len(varYangDiCek)
Sandbox
Array dibuat dengan [panjangArray]TypeData
Element array dapat berupa tipe data apapun bahkan array. misal untuk kasus nested array (array multidimensi). Berikut contoh beberapa cara penulisannya
jika penulisan secara vertical wajib menambahkan tanda koma di akhir
Untuk deklarasi tanpa mengetahui panjang array dapat mengguakan ellipses operator (...
) di dalam panjang arraynya
dengan hal tersebut maka panjang array akan menyesuaikan data yang di initialisasi.
Jika tidak menuliskan ukuran array dan tidak memakai ...
operator maka yang terbuat adalah slice (disebut slice literal). Contoh:
Secara default code var mySlice []int
akan menghasilkan panjang 0. Jika mau membuat slice bisa mengguakan function make()
sehingga bisa membuat ukuran secara dinamis.
Tiga hal yang ada di slice dari make:
type
->
type data element yang akan dibuat ke slicelength
->
panjang element yang di set ke slicecapacity <optional>
->
maks size yang di set
Implementasi
Iterasi array ataupun slice
membuat slice dari array
Function di slice
Latihan
TODO add repl.it link dari soal latihan golang array dan slice
Last updated