Golang Bagian 12

Array

Neraka ngoding
Neraka Ngoding
10 min readMar 19, 2020

--

Okayyy lagi blog kali ini kita akan bahas tipe data yang built in. Menurut saya jenis tipe data dapat dikategorikan berdasarkan sifat built in. Jenis tipe data ada dua jenis :

  1. Tipe data built in yaitu bawaan dari bahasa pemograman itu sendiri, tipe data built in dibagi dua : primitive seperti Integer, Floating Point, dan String adn Non Primitive seperti Array,Slice, dan Map.
  2. Tipe data non built in yaitu tidak bawaan dari bahasa pemograman itu sendiri, teman-teman harus mendeklarasi kan sendiri kalau bahasa Golang pakai Struct (akan dibahas pada blog kedepan) yang sudah pasti non primitive.

Array bahasa sederhananya kumpulan data yang mempunyai tipe data yang sama untuk bahasa pemograman Statically Typed seperti Golang, ada juga Array yang tipe datanya beda-beda seperti di bahasa pemograman Dynamic Typed seperti JavaScript atau PHP (silahkan baca diblog Golang Bagian 8 saya bahas sedikit tentang Statically dan Dynamic Typed). Contoh kasus :

“Buat lah variabel di Golang kumpulan data Integer 20,254,23, 45,67 print jumlah totalnya”.

Programnya bisa dicoba disini.

Program 1

Penjelasan program 1 :

  • Baris 1 kita akan menyimpan program ini di package main supaya di-compile menjadi executable(dijelaskan di post Golang Bagian 2).
  • Baris 3–5 kita akan menggunakan package fmt didalamnya terdapat fungsi Println yang berfungsi untuk print output ke standard output seperti monitor.
  • Baris 7 kita menggunakan fungsi khusus main sebagai pintu masuk program Go.
  • Baris 9 deklarasi variabel x dengan tipe data Array Integer dengan jumlah anggota 5.
  • Baris 10 array index pertama atau 0 diisi dengan 20.
  • Baris 11 array index kedua atau 1diisi dengan 254.
  • Baris 12 array index ketiga atau 2 diisi dengan 23.
  • Baris 13 array index keempat atau 3 diisi dengan 45.
  • Baris 14 array index kelima atau 4 diisi dengan 67.
  • Baris 16 deklarasi variabel total dengan tipe data Integer dengan nilai 0.
  • Baris 18 dan 21 looping dari i=0 sampai len(x) yaitu panjang array dari x = 5.
  • Baris 20 total ditambah akumulatif dengan anggota Array x ke i.
  • Baris 23 print total.

Ouput :

Baris 9 sampai 14 program 1 bisa dibuat simple menjadi seperti ini :

Jika arraynya panjang bisa dibuat seperti ini kebawah :

Teman-teman harus perhatikan kalau seperti diatas 67 itu ada koma dibelakangnya tujuannya katanya supaya kalau baris kodenya mau di-comment seperti dibawah gampang.

Tek tek bengek kaya gitu dilakukan designer bahasa pemograman supaya

“Kode harus sederhana dan mudah dirubah/maintain karena seiring dengan pengembangan program akan semakin komplex”

kalau buat coder pemula kayanya seperti iseng banget padahal tidak. Bisa juga seperti ini.

Contoh programnya bisa dicoba disini

Program 2.

Penjelasan program 2 :

  • Baris 1 kita akan menyimpan program ini di package main supaya di-compile menjadi executable(dijelaskan di post Golang Bagian 2).
  • Baris 3–5 kita akan menggunakan package fmt didalamnya terdapat fungsi Println yang berfungsi untuk print output ke standard output seperti monitor.
  • Baris 7 kita menggunakan fungsi khusus main sebagai pintu masuk program Go.
  • Baris 9 deklarasi variabel x dengan tipe data array Integer dengan jumlah anggota 5 dengan nilai index pertama atau 0 =>20, index ketiga atau 2 =>23, dan index kelima atau 4=>67. index kedua dan ke empat diisi dengan default Integer 0.
  • Baris 13 dan 16 looping dari i=0 sampai len(x) yaitu panjang array dari x = 5.
  • Baris 15 total ditambah akumulatif dengan anggota array x ke i.
  • Baris 18 print total.

Ouput :

Array Multidimensi

Array dapat dikategorikan menjadi dua yaitu :

  1. Array dimensi satu seperti Array dibahas diatas yaitu kumpulan data.
  2. Array multi dimensi yaitu Array didalam Array.

Contoh Array dua dimensi bisa dipakai untuk merepresentasikan matrik seperti gambar 1 dibawah.

Gambar1

Ingat lagi pelajar sma,kalau lupa bisa baca lagi disini.

Contoh kasus :

“Buatlah matrix 2 x 3 atau 2 baris 3 kolom dengan tipe data Integer, kemudian print semua elemennya ke monitor”

Programnya bisa dicoba disini.

Program 3.

Penjelasan program 3 :

  • Baris 1 kita akan menyimpan program ini di package main supaya di-compile menjadi executable(dijelaskan di post Golang Bagian 2).
  • Baris 3–5 kita akan menggunakan package fmt didalamnya terdapat fungsi Println yang berfungsi untuk print output ke standard output seperti monitor.
  • Baris 7 kita menggunakan fungsi khusus main sebagai pintu masuk program Go.
  • Baris 9 sampai 13 deklarasi Array dua dimensi 2 x 3 atau matrik 2 x 3 atau dua baris 3 kolom dengan nilai baris pertama 1,2,3 dan baris kedua 4,5,6.
  • Baris 15 dan 23 looping dari i=0 sampai i = 1 untuk looping baris matrix.
  • Baris 17 dan 21 looping dari j=0 sampai j= 2 untuk looping kolom matrik.
  • Baris 19 print elemen matrik dari x[0][0] baris 1 kolom 1 = 1 sampai x[1][2] baris 2 kolom 3 = 6.

Ouput :

Array Tiga Dimensi

Gambar 2. https://www.construct.net/en/tutorials/arrays-beginners-170/3-dimensional-arrays-5

Array tiga dimensi paling mudah direpresentasikan dengan sistem kordinat Cartesius x,y, z seperti gambar 3 dibawah.

Gambar 3 . https://id.wikipedia.org/wiki/3_dimensi

Setiap titik Array tiga dimensi bisa direpresentasikan sama x,y,z seperti gambar 2 width adalah x, height adalah y, dan depth adalah z.

  • (0,0,0) nilainya adalah 1.
  • (4,4,2) nilainya adalah 2.

Program untuk merepresentasikan Gambar 2 bisa dicoba disini.

Program 4.

Penjelasan program 4 :

  • Baris 1 kita akan menyimpan program ini di package main supaya di-compile menjadi executable(dijelaskan di post Golang Bagian 2).
  • Baris 3–5 kita akan menggunakan package fmt didalamnya terdapat fungsi Println yang berfungsi untuk print output ke standard output seperti monitor.
  • Baris 7 kita menggunakan fungsi khusus main sebagai pintu masuk program Go.
  • Baris 9 sampai 20 deklarasi Array tiga dimensi 5(x) x 5(y) x (z).
  • Baris 22 dan 33 looping dari i=0 sampai i = 4 untuk looping matrik dimensi ke-satu atau x.
  • Baris 24 dan 31 looping dari i=0 sampai i = 4 untuk looping matrik dimensi ke-duaatau y.
  • Baris 26 dan 29 looping dari i=0 sampai i = 2 untuk looping matrik dimensi ke-tiga atau z.
  • Baris 28 print elemen matrik ke- x[i][j][k].

Ouput :

Array multi dimensi juga bisa lebih dari tiga. Teman-teman pernah dengar Machine Learning atau Artificial Intelligence yang konon katanya bisa kaya difilm-film seperti: The Matrix,Divergence,Terminator, dan lain lain, dengan TensorFlow.

“Machine Learning itu isinya banyak banget Array multi dimensi coy!!!”

Gambar 4.

Copy Array

Sekarang kita bahas copy Array, tetapi sebelum bahas ini kita harus tahu dulu apa itu by reference dan by value.

By Reference itu adalah kalau kita punya satu variabel dicopy ke variabel lain, maka jika terjadi perubahan pada variabel lain akan berubah juga di variabel awalnya yang artinya copy by reference menunjuk pada memory address yang sama, walaupun nama variabelnya berbeda.

By value itu adalah kalau kita punya satu variabel dicopy ke variabel lain, maka jika terjadi perubahan pada variabel lain variabel awalnya tidak ikut berubah yang artinya copy by value menunjuk pada memory address yang berbeda.

Contoh copy by value bisa dicoba disini

Program 5.

Penjelasan program 5

  • Baris 1 kita akan menyimpan program ini di package main supaya di-compile menjadi executable(dijelaskan di post Golang Bagian 2).
  • Baris 3–5 kita akan menggunakan package fmt didalamnya terdapat fungsi Println yang berfungsi untuk print output ke standard output seperti monitor.
  • Baris 7 kita menggunakan fungsi khusus main sebagai pintu masuk program Go.
  • Baris 9 deklarasi Array x dengan tipe data Integer dengan jumlah anggota 5.
  • Baris 10 Array x index ke-0 diisi dengan 20.
  • Baris 11 Array x index ke-1 diisi dengan 254.
  • Baris 12 Array x index ke-2 diisi dengan 23.
  • Baris 13 Array x index ke-3 diisi dengan 45.
  • Baris 14 Array x index ke-4 diisi dengan 67.
  • Baris 16 print “Array x Awal”.
  • Baris 18 dan 21 looping dari i =0 sampai <len(x)=5.
  • Baris 20 print “x[0]=20” sampai “x[4]=67”.
  • Baris 23 copy Array x ke Array y by value.
  • Baris 25 Array y index ke-0 dirubah dari 20 menjadi 200.
  • Baris 26 Array y index ke-1 dirubah dari 254 menjadi 2540.
  • Baris 27 Array y index ke-2 dirubah dari 23 menjadi 230.
  • Baris 28 Array y index ke-3 dirubah dari 45 menjadi 450.
  • Baris 29 Array y index ke-4 dirubah dari 67 menjadi 670.
  • Baris 31 dan 34 looping dari i =0 sampai i<len(y)=5.
  • Baris 33 print “y[0]=200” sampai “y[4]=670”.
  • Baris 36 print “Array x setelah y dirubah tetap tidak dirubah”.
  • Baris 38 dan 41 looping dari i =0 sampai i<len(x)=5.
  • Baris 40 print “x[0]=20” sampai “x[4]=67”.

Ouput :

Program copy by reference bisa dicoba disini.

Program 6.

Penjelasan program 6 :

  • Baris 1 kita akan menyimpan program ini di package main supaya di-compile menjadi executable(dijelaskan di post Golang Bagian 2).
  • Baris 3–5 kita akan menggunakan package fmt didalamnya terdapat fungsi Println yang berfungsi untuk print output ke standard output seperti monitor.
  • Baris 7 kita menggunakan fungsi khusus main sebagai pintu masuk program Go.
  • Baris 9 deklarasi Array x dengan tipe data Integer dengan jumlah anggota 5.
  • Baris 10 Array x index ke-0 diisi dengan 20.
  • Baris 11 Array x index ke-1 diisi dengan 254.
  • Baris 12 Array x index ke-2 diisi dengan 23.
  • Baris 13 Array x index ke-3 diisi dengan 45.
  • Baris 14 Array x index ke-4 diisi dengan 67.
  • Baris 16 print “Array x Awal”.
  • Baris 18 dan 21 looping dari i =0 sampai <len(x)=5.
  • Baris 20 print “x[0]=20” sampai “x[4]=67”.
  • Baris 23 copy Array x ke Array y by reference.
  • Baris 25 Array y index ke-0 dirubah dari 20 menjadi 200.
  • Baris 26 Array y index ke-1 dirubah dari 254 menjadi 2540.
  • Baris 27 Array y index ke-2 dirubah dari 23 menjadi 230.
  • Baris 28 Array y index ke-3 dirubah dari 45 menjadi 450.
  • Baris 29 Array y index ke-4 dirubah dari 67 menjadi 670.
  • Baris 31 dan 34 looping dari i =0 sampai i<len(y)=5.
  • Baris 33 print “y[0]=200” sampai “y[4]=670”.
  • Baris 36 print “Array x setelah y dirubah ikut berubah”.
  • Baris 38 dan 41 looping dari i =0 sampai i<len(x)=5.
  • Baris 40 print “x[0]=200” sampai “x[4]=670”.

Output :

Mungkin teman-teman punya pertanyaan bagaimana kalau Array nya dinamik jumlahnya tidak fixed, misalkan diawal coding Array dideklarasi sebagai Array Integer dengan jumlah lima, tetapi dibagian kode lainya ternyata perlu lebih dari lima, gimana caranya di-Golang?. Sebelum masuk kekode tentang penanganan dinamik Array kita harus tau dulu sedikit tentang SLICE.

SLICE Adalah struktur data mirip Array, tetapi jumlah anggotanya bisa berubah tidak fixed seperti Array. Kenapa namanya beda tidak Array dinamis aja? karena SLICE diiimplementasikan oleh desainer bahasa golang berbeda dengan Array. Contoh bisa dicoba disini

Program 7.

Penjelasan program 7:

  • Baris 1 kita akan menyimpan program ini di package main supaya di-compile menjadi executable(dijelaskan di post Golang Bagian 2).
  • Baris 3–5 kita akan menggunakan package fmt didalamnya terdapat fungsi Println yang berfungsi untuk print output ke standard output seperti monitor.
  • Baris 7 kita menggunakan fungsi khusus main sebagai pintu masuk program Go.
  • Baris 9 deklarasi Slice x dengan tipe data Integer. Teman-teman perhatikan mirip dengan deklarasi Array, tetapi [] tidak ada jumlah nya seperti Array.
  • Baris 11 nambah satu anggota Slice x menjadi 5 dimana index ke-5 adalah lima.
  • Baris 13 print Slice x.

Output :

Slice sangat powerfull sekali akan saya oprek pada blog berikutnya. Okayyy segitu dulu teman-teman stay safe yah, semoga kita bisa bebas dari pandemik COVID-19 ASAP. Silahkan baca blog Golang lain nya di sini.

--

--

Neraka ngoding
Neraka Ngoding

Coder terbaik sebatununggal-bandung, west java, indonesia belum terkalahkan selama 15 tahun. “Coder adalah Identitas bukan profesi”