Cara membuat Package di Golang

Di Go, package adalah cara untuk mengorganisir dan mengelompokkan kode ke dalam unit-unit yang dapat digunakan kembali. Sebuah package adalah kumpulan file Go yang berada dalam satu direktori. Setiap file dalam package biasanya mengandung beberapa fungsi, variabel, atau tipe data yang saling terkait.

Jika file go.mod berada di dalam satu folder bersama dengan file-file Go lainnya, Anda dapat membuat package di dalam folder tersebut. Struktur direktorinya akan terlihat seperti ini:

project-folder/
  ├── go.mod
  ├── main.go
  └── mypackage/
      └── mypackage.go

Di sini, go.mod dan main.go berada di dalam folder project-folder, dan folder mypackage juga berada di dalam project-folder.

Langkah-langkahnya adalah sebagai berikut:

1. Buat File .go di dalam Folder Package:

Buat file-file .go di dalam folder package (mypackage). Misalnya, buat file mypackage.go di dalam folder mypackage:

// mypackage/mypackage.go
package mypackage

import "fmt"

func SayHello() {
    fmt.Println("Hello from mypackage!")
}

2. Penggunaan Package di Dalam Proyek:

Anda dapat mengimport dan menggunakan package mypackage di dalam file main.go atau file-file Go lainnya yang berada di dalam folder yang sama:

// main.go
package main

import "./mypackage"

func main() {
    mypackage.SayHello()
}

Dalam contoh ini, main.go mengimport mypackage dengan menggunakan path lokal ("./mypackage") karena keduanya berada di dalam folder yang sama. Anda dapat mengganti path ini sesuai dengan struktur folder proyek Anda.

3. Menjalankan Proyek:

Untuk menjalankan proyek, Anda dapat menggunakan perintah go run di dalam folder project-folder:

cd project-folder
go run main.go

Outputnya akan menjadi:

Hello from mypackage!

Dengan struktur seperti ini, package mypackage berada di dalam folder yang sama dengan go.mod, sehingga dapat diimpor dan digunakan dengan relatif menggunakan path lokal sesuai dengan struktur folder proyek Anda.

Di bab berikutnya akan dibahas tentang bagaimana membuat multi return Function di Golang

Last updated