Tutorial Golang, belajar golang Part 5
Hallo semua, pada kali ini adalah tutorial dasar golang yang ke part 5. Jika belum mengikuti part sebelumnya, bisa klik link dibawah.
Jika sudah mengikuti tutorial dari 1 sampai 4 maka bisa melanjutkan ke part 5 ini.
Pada kali ini kita akan belajar tentang golang package private or public ,golang interface, dan pointer.
Golang package private and public
Pada golang memiliki package antar filenya, jika file tersebut berada di sebuah folder maka package nya adalah sesuai dengan nama folder tersebut.Setiap file yang memiliki package selain “main” maka bisa diimport ke dalam file main. Ketika diimport, jika ada function atau struct atau interface maka bisa digunakan pada file main.go atau file lain . Asalkan function tersebut atau yang lain itu dalam keadaan Public.Apa tandanya public ?
Type Data struct {}type data struct{}
jika nama function atau struct atau interfacenya adalah huruf kecil maka itu adalah private, jika huruf depannya huruf kapital, maka itu adalah public dan bisa digunakan pada file lain.
contoh package public
Pertama saya membuat file baru didalam folder bernama management, lalu membuat struct dengan nama Idol. Sturct ini public karena huruf kapital.Struktur foldernya seperti berikut
lalu para file part5.go seperti berikut
Untuk menggunakan struct Idol pada folder management, saya mengimportnya lalu membuat variabel penampung yang merupakan nilai dari management.Idol. Ketika ingin menggunakan struct Idol, maka harus diawali dengan nama foldernya seperti ini “management.idol”, lalu isi data nya , dan bisa di print hasilnya. Jadi intinya huruf kecil itu private, kalau huruf besar itu public.
interface
Interface adalah kumpulan method yang tidak memiliki isi, hanya di definisikan sebagai kontrak dengan nama tertentu.Contoh nya seperti berikut.
pertama saya membuat suatu interface bernama hitung, yang memiliki kontrak luas(), dan keliling() yang akan digunakan sebagai function. lalu membuat 2 struct, yaitu lingkaran dan persegi. Jika ingin menggunakan untuk menghitung luas, maka akan menggunakan interface hitung.luas() yang di gunakan pada function, contoh nya seperti ini
func (p persegi) luas() float64 {return math.Pow(p.sisi, 2)}
p adalah struct dari persegi, dan luas adalah kontrak pada interface hitung lalu mengembalikan float64. dan didalam function tersebut melakukan perhitungan.
Jika ingin menggunakan interface, maka harus membuat function sesuai kontrak yang telah didefinisikan pada interface.
Pointer
Pointer adalah referensi atau alamat memori. Variabel pointer ini memiliki alamat memori variabel tersebut.Ketika variabel pointer valuenya 48, alamatnya bukan 48 namun dimana value dari variabel itu yaitu 48 disimpan pada memori. Contohnya seperti berikut
Pada pointer diatas, saya membuat variabel nomrA dengan nilai 48, lalu pada variabel nomorB memiliki nilai dari pointer A namun valuenya itu alamat dari nilai variabel nomorA. Lalu pada saat nomor b di print maka hasilnya alamat dari value nomorA, namun jika di print nomorB dengan tanda “*” maka hasilnya adalah 48 dari value nomorA.
Pada pointer cukup ingat, kalau * itu mengambil nilai dari variabel tersebut, jika & maka itu mengambil alamat dari value variabel tersebut.
itu lah materi saya hari ini tentang interface, package public dan private, dan pointer. JIka ingin melihat full code nya bisa dilink ini
terim kasih sudah membaca!