aboutsummaryrefslogtreecommitdiff
path: root/content/basics.article
diff options
context:
space:
mode:
Diffstat (limited to 'content/basics.article')
-rw-r--r--content/basics.article69
1 files changed, 45 insertions, 24 deletions
diff --git a/content/basics.article b/content/basics.article
index b6a2e40..44f6bfb 100644
--- a/content/basics.article
+++ b/content/basics.article
@@ -4,23 +4,25 @@ Belajar komponen dasar dari program Go.
Para Penggubah Go
https://golang.org
-* Paket
+* Paket ("package")
Setiap program Go terbuat dari paket-paket (`package`).
Program mulai berjalan dalam paket `main`.
-Program ini menggunakan paket dengan meng- `import` `"fmt"` dan `"math/rand"`.
+Program di sebelah menggunakan paket lain dengan meng- `import` `"fmt"` dan
+`"math/rand"`.
Aturannya, nama paket sama dengan elemen terakhir dari path `import`.
-Sebagai contohnya, paket `"math/rand"` terdiri dari berkas-berkas yang dimulai dengan perintah `package`rand`.
+Sebagai contohnya, paket `"math/rand"` terdiri dari berkas-berkas yang dimulai
+dengan perintah `package`rand`.
#appengine: *Catatan:* Lingkungan di mana program di situs ini berjalan adalah
#appengine: deterministik, sehingga setiap kali anda mengeksekusi contoh
#appengine: program `rand.Intn` akan selalu mengembalikan angka yang sama.
#appengine:
#appengine: (Untuk mendapatkan angka yang acak, tambahkan pembangkit angka;
-#appengine: lihat
+#appengine: lihat fungsi
#appengine: [[https://golang.org/pkg/math/rand/#Seed][`rand.Seed`]]
#appengine: .)
@@ -28,7 +30,8 @@ Sebagai contohnya, paket `"math/rand"` terdiri dari berkas-berkas yang dimulai d
* Import
-Kode ini mengelompokan `import` di dalam tanda kurung, atau disebut juga perintah `import` yang "difaktorkan".
+Kode ini mengelompokan `import` di dalam tanda kurung, atau disebut juga
+perintah `import` yang "difaktorkan".
Anda juga bisa menulis perintah `import`, seperti:
@@ -41,7 +44,7 @@ Tapi lebih disarankan untuk menggunakan perintah `import` yang difaktorkan.
* Nama-nama yang diekspor
-Pada Go, sebuah nama diekspor jika ia diawali dengan huruf besar.
+Pada bahasa Go, sebuah nama diekspor jika diawali dengan huruf besar.
Sebagai contohnya, `Pizza` itu nama yang diekspor, sebagaimana juga `Pi`, yang
diekspor dari paket `math`.
@@ -72,7 +75,8 @@ Perhatikan bahwa tipe berada _setelah_ nama variabel.
* Fungsi lanjutan
-Saat dua atau lebih parameter fungsi memiliki tipe yang sama, anda bisa menghilangkan semua tipe kecuali yang terakhir.
+Saat dua atau lebih parameter fungsi memiliki tipe yang sama, anda bisa
+menggabungkannya menjadi satu.
Pada contoh ini, kita singkat
@@ -84,7 +88,7 @@ menjadi
.play basics/functions-continued.go
-* Banyak Kembalian
+* Banyak kembalian
Sebuah fungsi dapat mengeluarkan banyak kembalian.
@@ -94,7 +98,7 @@ Fungsi `swap` mengembalikan dua `string`.
* Kembalian bernama
-Nilai kembalian pada Go bisa dinamakan.
+Nilai kembalian pada Go bisa diberi nama.
Jika nilai kembalian memiliki nama, mereka diperlakukan seperti variabel yang
didefinisikan pada fungsi.
@@ -113,25 +117,30 @@ bila digunakan pada fungsi yang panjang.
* Variabel
-Perintah `var` mendeklarasikan daftar variabel; seperti pada daftar argumen pada fungsi, tipenya berada di akhir.
+Perintah `var` mendeklarasikan daftar variabel; seperti pada daftar argumen
+pada fungsi, tipenya berada di akhir.
-Perintah `var` bisa ditulis pada tingkat paket atau fungsi, seperti pada contoh sebelah.
+Perintah `var` bisa ditulis pada tingkat paket atau fungsi, seperti pada
+contoh sebelah.
.play basics/variables.go
* Variabel dengan inisialisasi
-Deklarasi sebuah variabel bisa mengikutkan inisialisasi, satu per variabel.
+Deklarasi sebuah variabel bisa mengikutkan inisialisasi.
-Jika sebuah inisialisasi ada, maka tipe bisa dihilangkan; variabel akan memiliki tipe dari inisialisasi.
+Jika variabel diinisialisasi, maka tipe dari variabel bisa dihilangkan;
+sehingga variabel akan memiliki tipe sesuai dengan nilai inisialisasi.
.play basics/variables-with-initializers.go
* Deklarasi variabel singkat
-Dalam sebuah fungsi, perintah singkat `:=` bisa digunakan menggantikan `var` dengan tipe implisit.
+Dalam sebuah fungsi, perintah singkat `:=` bisa digunakan menggantikan `var`
+dengan tipe implisit.
-Di luar sebuah fungsi, setiap perintah harus dimulai dengan kata kunci (`var`, `func`, dst), sehingga `:=` tidak bisa digunakan.
+Di luar sebuah fungsi, setiap perintah harus dimulai dengan kata kunci (`var`,
+`func`, dst), sehingga `:=` tidak bisa digunakan.
.play basics/short-variable-declarations.go
@@ -155,10 +164,15 @@ Tipe dasar pada Go yaitu,
complex64 complex128
-Contoh sebelah memperlihatkan variabel dengan beberapa tipe, dan juga deklarasi variabel bisa "difaktorkan" ke dalam blok, seperti pada perintah `import`.
+Contoh sebelah memperlihatkan variabel dengan beberapa tipe, dan juga
+deklarasi variabel bisa "difaktorkan" ke dalam blok, seperti pada perintah
+`import`.
-Tipe `int`, `uint`, dan `uintptr` biasanya memiliki panjang 32 bits pada sistem 32-bit dan 64 bits pada sistem 64-bit.
-Saat anda membutuhkan nilai integer anda sebaiknya menggunakan tipe `int` kecuali anda memiliki alasan tertentu menggunakan tipe berukuran khusus atau _unsigned_integer_.
+Tipe `int`, `uint`, dan `uintptr` biasanya memiliki panjang 32 bits pada
+sistem 32-bit dan 64 bits pada sistem 64-bit.
+Saat anda membutuhkan nilai integer anda sebaiknya menggunakan tipe `int`
+kecuali anda memiliki alasan tertentu menggunakan tipe berukuran khusus atau
+_unsigned_integer_.
.play basics/basic-types.go
@@ -199,20 +213,25 @@ yang terjadi.
* Inferensi tipe
-Saat mendeklarasikan sebuah variabel tanpa menentukan tipe eksplisitnya (baik menggunakan sintaks `:=` atau `var`), tipe variabel disamakan dengan nilai di sebelah kanannya.
+Saat mendeklarasikan sebuah variabel tanpa menentukan tipe eksplisitnya (baik
+menggunakan sintaks `:=` atau `var`), tipe variabel disamakan dengan nilai di
+sebelah kanannya.
-Bila sisi kanan dari deklarasi ditulis tipenya, maka variabel baru memiliki tipe yang sama:
+Bila sisi kanan dari deklarasi ditulis tipenya, maka variabel baru memiliki
+tipe yang sama:
var i int
j := i // j is an int
-Tapi bila sisi kanan berupa konstanta numerik, variabel baru bisa jadi `int`, `float64`, atau `complex128` bergantung kepada presisi dari konstanta:
+Tapi bila sisi kanan berupa konstanta numerik, variabel baru bisa jadi `int`,
+`float64`, atau `complex128` bergantung kepada presisi dari konstanta:
i := 42 // int
f := 3.142 // float64
g := 0.867 + 0.5i // complex128
-Coba ubah nilai awal dari `v` pada contoh kode dan perhatikan bagaimana tipenya berubah.
+Coba ubah nilai awal dari `v` pada contoh kode dan perhatikan bagaimana
+tipenya berubah.
.play basics/type-inference.go
@@ -230,11 +249,13 @@ Konstanta tidak bisa dideklarasikan dengan sintaks `:=`.
Konstanta numerik adalah _nilai_ dengan presisi-tinggi.
-Konstanta yang tidak bertipe menggunakan tipe yang dibutuhkan sesuai dengan konteksnya.
+Konstanta yang tidak bertipe menggunakan tipe yang dibutuhkan sesuai dengan
+konteksnya.
Coba cetak juga `needInt(Big)`.
-(An `int` can store at maximum a 64-bit integer, and sometimes less.)
+(Sebuah `int` dapat menyimpan sebanyak 64-bit integer, dan terkadang lebih
+sedikit, bergantung kepada mesin anda.)
.play basics/numeric-constants.go