Go
adalah salah satu bahasa pemrograman baru yang dikembangkan oleh Robert Griesemer
(perancang Java HotSpot), Rob Pike
(pengembang Plan 9 di laboratorium Bell), Ken Thomson (pengembang bahasa
pemrograman B dan perancang UTF-8). Bahasa pemrograman Goinidipelopori oleh
Google yangmulai dikerjakan atau tepatnya dituliskandi papan pada tanggal 21
September 2007.
Pada
awalnya desain bahasa pemrograman ini hanya dilakukan paruh waktu sambil
melakukan pekerjaan lain yang tidak terkait sama sekali dengan pengembangan
bahasa pemrograman ini. Pada bulan Januari 2008, Ken mulai mengerjakan sebuah compiler yang digunakan untuk
mengeksplorasi berbagai ide, pekerjaan tersebut menghasilkan kode C sebagai output-nya.
Pada
pertengahan tahun bahasa pemrograman ini menjadi proyek full-time dan sudah cukup untukmelakukan produksi kompilasi. Pada
bulan Mei 2008, Ian Taylor sendiri membuat GCC front untuk Go menggunakan rancangan spesifikasi. Russ Cox
bergabung pada akhir 2008 dan membantu memindahkan language dan libraries
dari prototypemenjadirealita.Bahasa
pemrograman Go menjadisebuah proyek publik open
sourcepada bulan November 2009. Tentunya hal ini tidak lepas dari
dukukungan berbagai komunitas yang telah memberikan kontribusi berupa ide,
diskusi dan kode pada pengembangan program ini.
Go
adalah bahasa pemrograman yang ekspresif, ringkas, bersih dan efisien.Saat ini
perkembangan perangkat komputer sangat cepat namun tidak diimbangi dengan
bahasa pemrograman, banyak programmer
yang menemukan kerumitan pada Java atau C++ sehingga harus menuliskan beberapa
kode lagi menggunakan Phyton atau JavaScript, disisi lain isu terhadap konsep garbage-collection dan parallel-computation yang belum didukung
baik oleh beberapa bahasa pemrograman, termasuk munculnya teknologi multicore yang membuat kekhawatiran dan
kebingungan sehingga para pengembang masih mengandalkan dukungan teknologi dari
sistem operasi.
Banyak
hal yang telah dihasilkan oleh laboratorium Bell dalam dunia teknologi
informasi dan komunikasi. Di Indonesia sendiri pernah terdengar bahasa
pemrograman Nusa yang dari Infokom tools-nya
dinamakan Nusaptel. Namun bahasa pemrograman Nusa ini tidak begitu diminati di
Indonesia. Semoga dengan kehadiran bahasa pemrograman Go ini banyak hal-hal
yang dapat dipelajari dan mungkin dapat melahirkan bahasa pemrograman baru
versi Indonesia yang dikompilasi menggunakan bahasa pemrograman Go.
Ada
beberapa poin utama yang perlu diketahui tentang bahasa pemrograman ini yang
dapat menjadi pertimbangan dalam mengembangkan aplikasi Go antara lain sebagai
berikut:
·
Go
Go
adalah bahasa pemrograman yang dikompilasi yang mana proseses kompilasinya
lebih cepat dibandingkan C, concurrent, garbage-collected, dan termasuk tipe bahasa pemrograman statis yang
dikembangkan oleh Google yang langsung berkomunikasi dengan processor (tanpa menggunakan
interpreter).
·
Go
di Google
Pemrograman
Go dirancang oleh Google untuk membantu mengatasi masalah yang dihadapi Google
dan masalah besar di Google.Singkatnya, pengembangan di Google begitu besar, hal
ini membuat beberapa aplikasi menjadi lambat dan sering terjadi kejanggalan, tetapi
efektif untuk digunakan saat ini.
Menurut
keterangan Google bahwa salahsatu tujuan dari proyek Go salah satunya untuk
menghilangkan kelambatan dan kejanggalan pengembangan perangkat lunak di
Google, dan dengan demikian membuat proses lebih produktif dan terukur. Bahasa
pemrograman ini dirancang oleh dan untuk pengembang aplikasi yang menulis,
membaca, mengurangi celah, danmemelihara
sistem perangkat lunak yang besar.
·
Concurrency
Konkurensi
sangat dibutuhkan dalam lingkungan komputasi moderen yang menggunakan multicore webserver dengan multiple client. Jika komputer yang
dijalankan menggunakan single processor maka program masih tetap mendukung
konkurensi namun tidak secara paralel. Namun memang pada awalnya konkurensi
dimaksudkan untuk menangani multi-processor
dan menjalankan aplikasi secara palarel (sebagai contoh: penggunaangoroutine,threads).
·
Garbage Collection
Go
mendukung garbage collection, hal ini
untuk mereduksi waktu dan pekerjaan programmer
dalam mengembangkan aplikasi.Programmertidak
perlu melakukan pembebasan memori(free
memory) ketika selesai menjalakan operasi tertentu karena hal ini sudah
otomatis ditangani oleh garbage
collector.Selain itu Go menyediakan pointer
dalam melakukan manajemen memory dan
menghilangkan pointer arithmetic
untuk menghindari kebingungan pengguna.
·
Open Source
Go
menjadi sebuah proyek publik open sourceunderBSD
Licencepada bulan November 2009.
·
Kelebihan
lain
Go
mendukung bahasa UTF-8 tidak hanya terbatas pada string tetapi juga dalam penulisan kode programnya. Go menjaga
efisiensi penggunaan kode program dengan melemparkan error jika variabel tidak digunakan dalam program dan dapat
dikompilasi di multi-platform.Performa
aplikasi di Go tentu saja dapat dipastikan lebih cepat dan penggunaan memori
lebih sedikit dibandingkan dengan Java atau Scala.
Selain
itu, Go digunakan sebagai backend
untuk menangani Youtube, App Engine,Google Drive, Google Map, Cat-V,
SoundCloud, dotCloud, Canonical, Heroku, Iron.io, SkyDB, Heka Mozilla's, Docker,
NSQ realtime distributed messaging
platform, CloudFlare, Gobot dan beberapa perusahaan lainnya sudah
mulai mengadopsi dan mengembangkan aplikasinya menggunakan bahasa Go ini.
Setelah
mengetahui sedikit penjelasan tentang kenapa Go? Maka di sini lebih ditekankan
secara praktis sebenarnya Go ini dikembangkan untuk menyelesaikan apa? Berikut
beberapa daftar lingkup praktis pengembangan aplikasi menggunakan Go menurut
Rob Pike:
- Web servers.
- Web browsers.
- Web crawlers.
- Search indexers.
- Databases.
- Compilers.
- Programming tools.
- IDEs.
- Bahkan
tidak menutup kemungkinan digunakan untuk pengembangan Operating Systems.
Beberapa
area dalam teknologi informasi di atas dapat memanfaatkan fitur yang telah
ditawarkan oleh Go. Selain itu bahasa pemrograman ini dapat juga dimanfaatkan
untuk information processing terutama
dalam menangani hal-hal yang berkaitan dengan masalah kecepatan pemrosesan
databaik yang berkala maupun realtime.
Dalam
pengembangannya dimasa yang akan datang Go tidak hanya fukus pada beberapa
permasalahan tertentu saja, karena perkembangan teknologi informasi yang begitu
cepat inilah yang mengakibatkan lahirnya bahasa pemrograman Go. Dalam pandangan
pribadi penulis, bahwa Go tidak dirancang untuk menggantikan bahasa pemrograman
yang lain tetapi lebih ke arah saling mendukung dalam upaya menyediakan
aplikasi yang handal, efektif dan efisienkepada pengguna(end-user).
Sebelum
melanjutkan ke pokok bahasan berikutnya, sebaiknya pembaca mengkombinasikan
antara kandungan buku ini dan website http://golang.org/, frequently asked questions yang telah
disediakan online melalui http://golang.org/doc/faq, effective Gohttp://golang.org/doc/effective_go.html,
penjelasan detail spesifikasi Go http://golang.org/ref/spec dan
http://tour.golang.org
untuk menjalankan aplikasi Go secara online.
Dalam
perkembanganya Go telah didukung oleh berbagai pihak dan tentu saja atas asuhan
dari Google sehingga pengembangannya sangat signifikan. Hingga buku ini
diterbitkan, Go sudah mencapai versi 1.2 dan kemungkinan pada pertengahan tahun
2014 akan di rilis versi 1.3. Untuk membuat aplikasi di Go dibutuhkan SDK yang
dapat diperoleh melalui laman http://golang.org/. Go
yang merupakan bahasa kompilasi berjalan baik pada berbagai platform antara
lain sebagai berikut.
|
Operating system
|
Architectures
|
|
FreeBSD 7 or later
|
amd64, 386, arm
|
|
Linux 2.6.23 or later with glibc
|
amd64, 386, arm
|
|
Mac OS X 10.6 or later
|
amd64, 386
|
|
Windows 2000 or later
|
amd64, 386
|
Apabila
dijalankan di atas sistem operasi Windows maka pada Environment Variable secara otomatis terdapat GOROOT yang merupakan lokasi aplikasi Go terinstall biasanya di “C:\Go\”. Selanjutnya yang perlu
dilakukan adalah menambahkan Environment
VariableGOPATH yang nantinya akan digunakan sebagai tempat untuk menyimpan source
dan binarinya yang terkait dengan kebutuhan pengembangan project, misalnya driver untukMySQLatau MongoDB, machine learning, kumpulan rumus untuk operasi matematika dan
sebagainya.
Tentu
saja dalam pengembangan aplikasi tidak lepas dari berbagai aplikasi yang telah
tersedia di internet, yang semuanya akan disimpan pada GOPATH, aplikasi yang bersifatopen
sorce biasanya menggunakan Git atau GoogleCode sebagai repository, oleh sebab itu direkomendasikan juga kepada pembaca
untuk menginstall aplikasi tersebut melalui laman http://git-scm.com/downloads
untuk Git, danMercurial melalui laman http://mercurial.selenic.com/. Jangan
lupa untuk me-restart komputer supaya
konfigurasi Environment Variable dapat terbaca.
Dalam
membuat aplikasi menggunakan console
atau terminal, maka langkah yang harus dilakukan adalah: buatlah sebuah file dengan nama misalnya“helloworld.go”yang dapat menggunakan
aplikasi Notepad++ atau editor tertentu, kemudian letakkan pada folder yang
telah dipersiapkan misalnya “D:\go\”, lalu
tuliskan baris kode program sederhana berikut ini.
|
package main
import
"fmt"
func main()
{
fmt.Printf("hello world!\n")
fmt.Printf("hello sajarwo
anggai!\n")
}
|
Setelah
program selesai dituliskan lalu simpanlah program tersebut, dilanjutkan dengan
membuka console atau terminal, kemudian
arahkan kedirectory tempat file tersebut disimpan dan jalankan
progran dengan menggunakan perintah yang telah disediakan oleh Go berikut ini:
|
go run
helloworld.go
|
Jika
program berjalan normal, maka seharusnya yang tampil pada layar monitor seperti
gambar berikut ini.
Dalam
perkembangan dan perjalanannya, bahasa pemrograman Go banyak didukung oleh
berbagai pengembang IDE dalam mempermudah programmer
dalam menuliskan kode program, salah satunya adalah IDE IntelliJ IDEA yang
menyediakan berbagai macam fitur. IDE ini dikembangkan oleh JetBrains yang
bermarkas di Rusia. Pada pokok bahasan ini penulis memilih IDE IntelliJ IDEA
untuk membuat aplikasi dengan bahasa pemrograman Go atas pertimbangan kemudahan
dalam penggunaannya.
Pertama-tama
yang harus dilakukan adalah menginstall aplikasi IntelliJ IDEA versi Community Edition, selain handal juga
merupakan salah satu produk open source yang
dapat diunduh melalui lamanhttp://www.jetbrains.com/idea/download/.Kemudian
jalankan aplikasi tersebut, lalu pilih menu Plugins dan carilah Go Languageplugin dan pilih tombol Install.
Selanjutnya
untuk membuat project diperlukan
langkah sebagai berikut:
·
Buka Aplikasi IntelliJ IDEA,
·
Pilih “Create
New Project”,
·
Pilih Go
Module,
·
Tentukan Project
name : “HelloWorld”,
·
Tentukan Project
location,
·
Tentukan letak Project SDK dengan cara mengklik tombol New, kemudian tentukan dimana lokasi penyimpanan Go SDK. Pada umumnya
Instalasi Go SDK terdapat padadirectory
“C:\Go”, kemudian pilih Ok.
·
Selanjutnya Create source directory: “src”, kemudian pilih tombol Next.
·
Tentukan Project
SDK yang akan digunakan, kemudian pilih tombol Finish.
·
Pada Project HelloWorld, terdapat navigasi
src, yang didalamnya otomatis terdapat satu buah file“main.go”,doubleclickfile tersebut untuk melihat kode
programnya.
·
Pilih menu Run > Run (Pilih main.go) untuk menjalankan program.
·
Pada bagian bawah terdapat panel output untuk menampilkan hasil program
ketika dieksekusi.
Dengan
demikian dengan kemudahan yang ditawarkan oleh bahasa pemrograman Go, maka
proses instalasi, konfigurasi environment
variable, pembuatan aplikasi sederhana menggunakan console atau terminal, dan pembuatan aplikasi menggunakan IDE telah
selesai dipelajari. Selanjutnya semuanya diserahkan kembali kepada pembaca atas
segala pilihannya dalam mengeksplorasi bahasa pemrograman yang masih tergolong
baru dan belum cukup popular di kalangan programmer
Indonesia.
3. Standar
Input / Output
Dalam
pemrograman komputer, terdapat aliran standar (standard stream) yang akan menghubungkan antara program komputer
dengan lingkungan pengguna. Standar
tersebut adalah standar input,
standar output dan standar error. Bahasa pemrograman Go
mendefinisikan standar stream tersebut dengan menyediakan interface untuk sistem operasi low-level
primitives yang terdapat pada packagesyscall
dan secara tidak langsung dikemas kembali pada package os.
Umumnya
standar input pada lingkungan
pemrograman secara otomatis adalah keyboard.
Bahasa pemrograman Go sendiri mendefinisikannya dengan nama Stdin pada packageos.
|
package main
import ("fmt"; "bufio";
"os"; "strings";)
func main() {
fmt.Printf("Kitik
nama Anda : ")
scn
:= bufio.NewReader(os.Stdin);
data,
_ := scn.ReadString('\n');
fmt.Printf("Selamat
datang %v!", strings.TrimRight(data,"\n"))
}
|
Pada
potongan kode di atas program membutuhkan libraryos
yang tentu saja digunakan untuk mengakses standar stream, bufio yang
digunakan untuk melakukan bufferingyang
mana ukurannya sesuai dengan jumlah karakter yang dimasukkan oleh pengguna, dan
librarystring untuk memecah(slice) string.
Pada
umumnya secara otomatis standar output
adalah layar (screen) yang
ditampilkan oleh monitor. Bahasa pemrograman Go sendiri mendefinisikannya
dengan nama Stdout pada packageos. Namun Go menyediakan library tambahan yang diberi nama packagefmt.Packagefmt ini mengimplementasikan format Input/Output dengan fungsi yang mirip
dengan bahasa C printfdan scanf. Format verba ini berasal dari C, namun
lebih sederhana. Berikut adalah beberapa keterangan yang dapat digunakan untuk
memanipulasi tampilan output.
|
Key
|
Keterangan
|
|
%v
%T
%%
%t
%b
%c
%d
%o
%x
%X
%U
%f
%E
|
the value in
a default format.
a Go-syntax
representation of the type of the value
a literal
percent sign; consumes no value
the word
true or false
base 2
the
character represented by the corresponding Unicode code point
base 10
base 8
base 16,
with lower-case letters for a-f
base 16,
with upper-case letters for A-F
Unicode
format: U+1234; same as "U+%04X"
decimal
point but no exponent, e.g. 123.456
scientific notation,
e.g. -1234.456E+78
|
Untuk
lebih jelasnya silahkan amati dan jalankan kode program berikut ini yang
menerapkan beberapa fungsi standar output.
|
/**
* Created with IntelliJ IDEA.
* User: SNA8
* Date: 10/15/13
* Time: 9:32 PM
*/
package main
import
"fmt"
func main()
{
var i int = 21
var j bool = true;
fmt.Printf("%v
\n", i) // menampilakan nilai i : 21
fmt.Printf("%T
\n", i) // menampilkan tipe data dari variabel i
fmt.Printf("%%
\n") // menampilkan tanda %
fmt.Printf("%t
\n\n", j) // menampilkan
nilai boolean j : true
fmt.Printf("%b
\n", i) // menampilkan nilai boolean j : true
fmt.Printf("%c
\n", '\u042F') // menampilkan unicode russia : Я (ya)
fmt.Printf("%d
\n", i) // menampilkan nilai base 10 : 21
fmt.Printf("%o
\n", i) // menampilkan nilai base 8 :25
fmt.Printf("%x
\n", 15) // menampilkan nilai base 16 : f
fmt.Printf("%X
\n", 15) // menampilkan nilai base 16 : F
fmt.Printf("%U
\n\n", 'Я') // menampilkan unicode
karakter Я : U+042F
var k float64 =
123.456;
fmt.Printf("%f
\n", k) // menampilkan float :
123.456000
fmt.Printf("%E
\n", k) // menampilkan float
scientific : 1.234560E+02
}
|
Pemanfaatan
standar output ini tentu saja sangat bermanfaat bagi para pengembang dalam
menampilkan informasi hasil kode programnya. Selain itu ketika pengembang
melakukan eksperimen dan ingin mengetahui hasil oupur tertentu maka library ini
sangat membatu kelancaran prosesnya. Tidak hanya itu saja, ketika pengembang
mendapatkan kesalahan (error) salah
satu jalan singkat yaitu dengan menampilkan nilai yang dihasilkan lalu
menganalisa hasil tersebut.
Go
menyediakan kemudahan dalam mendefinisikan variabel baik secara eksplisit
maupun implisit. Deklarasi secara eksplisit dapat dituliskan sebagai berikut.
|
// Contoh 1, inisialisasi variabel eksplisit
var
tv ="Test Variabel!"
fmt.Println(tv)
var
a int = 1;
var
b float32 = 2.25;
fmt.Println("Nilai
var a : ", a)
fmt.Println("Nilai
var b : ", b)
|
Penulisan
variabel di atas menggunakan kata kunci var diikuti
dengan nama variabel, tipe data, dan pemberian nilai atau inisialisasi vaiabel
itu sendiri menggunakan simbol (=). Penggunaan
variabel secara explisit ini dapat dituliskan didalam fungsi maupun diluar
fungsi. Sedangkan deklarasi variabel secara implisit hanya dapat dituliskan
didalam fungsi yang mana Go dapat memberikan tipe data secara otomatis pada
suatu variabel berdasarkan nilai (inisialisasi awal) yang diberikan kepada
variabel tersebut.
|
// Contoh 2,inisialisasi variabel implisit
a1
:= 3;
b1
:= 1.9;
fmt.Println("\nTipe
data a1 : ", reflect.TypeOf(a1), " \t = ", a1)
fmt.Println("Tipe
data b1 : ", reflect.TypeOf(b1), " = ", b1)
|
Pada bahasa pemrograman Go terdapat dua tipe komentar:
-
Komentar baris,komentar ini digunakan untuk
satu baris program.
// tuliskan komentar di sini, |
-
Komentar umum, tipe komentar ini digunakan untuk menuliskan komentar lebih dari
satu baris.
|
/**
tuliskan beberapa baris komentar di sini
tuliskan beberapa baris komentar di sini
*/
|
Pada
bahasa pemrograman Go terdapat 25 kata kunci (keywords) yang dapat dituliskan sebagai berikut:
|
break
|
default
|
func
|
interface
|
select
|
|
|
case
|
defer
|
go
|
map
|
struct
|
|
|
chan
|
else
|
goto
|
package
|
switch
|
|
|
const
|
fallthrough
|
if
|
range
|
type
|
|
|
continue
|
for
|
import
|
return
|
var
|
|
Pada
bahasa pemrograman Go juga terdapat 47 operator
dan delimiteryang tidak jauh berbeda
dari beberapa bahasa pemrograman pada umumnya.
|
+
|
&
|
+=
|
&=
|
&&
|
==
|
!=
|
(
|
)
|
|
-
|
|
|
-=
|
|=
|
||
|
<
|
<=
|
[
|
]
|
|
*
|
^
|
*=
|
^=
|
<-
|
>
|
>=
|
{
|
}
|
|
/
|
<<
|
/=
|
<<=
|
++
|
=
|
:=
|
,
|
;
|
|
%
|
>>
|
%=
|
>>=
|
--
|
!
|
...
|
.
|
:
|
|
|
&^
|
|
&^=
|
|
|
|
|
|
Ada
beberapa cara yang dapat digunakan dalam memuat berbagai macam library, baik dari luar maupun yang telah
disediakan oleh bahasa pemrograman Go.
Import declaration Local name of Sin
import "lib/math" math.Sin
import m "lib/math" m.Sin
import . "lib/math" Sin
atau
dapat juga dituliskan seperti berikut ini.
import (
"fmt"
"io/ioutil"
)
Struktur
kontrol pada bahasa pemrograman Go mirip dengan bahasa C, namun cara
penulisannya yang sedikit berbeda. Tidak ada pengulangan dodan while,
semuanya sudah ditangani oleh fordan switchyang lebih fleksibel. ifdan switchmenerima
pernyataan inisialisasi seperti yang terdapat pada for. Selain itu break dan
continue mengambil opsional label
untuk mengidentifikasi dalam melakukan operasinya.
Penggunaan
kondisi atau ifsangat mudah dan
sederhana seperti yang terdapat pada kode program berikut ini:
|
package main
import "fmt"
import "os"
func main() {
var
x int = 10;
var
y int;
if
x < 20 {
y
= 20;
fmt.Println("Nilai
x =",x)
fmt.Println("Nilai
y =",y)
}
//Penggunaan
if dengan statement
if
x = 50; x > y {
fmt.Println("x
> y")
}
os_name,
err := os.Hostname()
if
err == nil {
fmt.Println("\nOs
Name : "+os_name)
}
}
|
Perhatikan
potongan kode di atas, di sana terdapat tiga contoh penggunaan kondisi dengan parameter yang berbeda. Hal ini
menunjukkan bahwa Go programming menawarkan beberapa alternatif kepada programmer dalam mengembangkan aplikasi
yang singkat dan jelas, berikut adalah tampilan ketika program dijalankan.
Bahasa
pemrograman tentu
saja tidak lepas dari kondisi maupun perulangan karena hal tersebut merupakan
dasar dalam menyusun program dalam menyelesaikan berbagai macam persoalan. Go
dalam hal ini menyediakan tiga cara penggunaan perulangan ataufor
yang mirip dengan bahasa C, seperti yang terdapat pada potongan program
berikut.
|
// seperti penulisan for pada bahasa C
for init; condition; post { }
// seperti penulisan while pada bahasa C
for condition { }
// seperti penulisan for(;;)pada bahasa C
for { }
|
Dengan demikian maka hanya dengan menggunakan
for saja programmer dapat menggukan berbagai macam kombinasi sekaligus,
bahasa pemrograman Go mencoba mereduksi penggunaan kode sehingga lebih general, mudah dipahamidan hal juga akan
menjadi pemicu para pengembang dalam mengembangkan aplikasi dengan cara yang
mudah dan berbeda.Berikut adalah implementasi perulangan for
dalam pemrograman Go.
|
package main
import "fmt"
func main() {
for i :=0; i<5; i++ {
fmt.Println("Nilai i = ",i)
}
var j int = 0;
for j<5 {
fmt.Println("Nilai j = ",j)
j++
}
for pos, char := range "САШАРВО" {
fmt.Printf("character %#U starts at byte position
%d\n", char, pos)
}
for {
if j++; j <= (10) {
fmt.Println("Nilai j = ",j)
}else{
break
}
}
}
|
Berikut
adalah tampilan hasil program ketika dijalankan.
Penggunaana switchpada pemrograman Go lebih umum daripada
bahasa C. Ekspresi yang dilewatkan tidak harus constant atau integer.
Selain itu jika switch
tidak mempunyai ekspresi, maka otomatis ekspresi pada switch diberi nilai true.
|
package main
import "fmt"
func main() {
var
karakter byte = '?'
switch
(karakter){
case
'A' : fmt.Println("Karakter
A")
case
'B' : fmt.Println("Karakter
B")
case
'?' : fmt.Println("Karakter
?")
}
var
nilai int32 = 91; // nilai silahkan diubah-ubah
switch
{
case
nilai >90 : fmt.Println("Nilai
Anda A")
case
nilai >70 : fmt.Println("Nilai
Anda B")
case
nilai >60 : fmt.Println("Nilai
Anda C")
default
: fmt.Println("Nilai Anda
D")
}
for
i:=0; i<10;i++{
switch
{
case
i%2 == 0 : fmt.Println("Nilai i % 2 = ",i)
case
i%5 == 0 : fmt.Println("Nilai i % 5 = ",i)
}
}
}
|
Berikut
adalah tampilan hasil program ketika dijalankan.
Salah satu fitur yang unik pada bahasa pemrograman
Go adalah fungsi yang dapat memberikan lebih dari satu nilai kembalian (multiple return value). Dibandingkan
dengan bahasa pemrograman lain, Go adalah bahasa program yang memberikan
kemudahan dalam menyediakan multiple
return value karena tanpa menggunakan bantuan collection atau penggabungan data sebelum di kembalikan (return). Aturan penulisan fungsi dan
method pada Go dapat dituliskan sebagai berikut:
|
func
(<parameter>,…n) (<type return value>,…n){
// isi dari fungsi
}
|
Program diawali dengan kata kunci funclalu diikuti parameter dan jenis return value yang diinginkan. Fungsi
yang dijalankan pertama kali oleh Go sebagai fungsi utama adalah func main()tanpa adanya program utama ini
makaprogram tidak akan dapat berjalan danhanya dapat dikompilasi sebagai library saja.Untuk lebih jelasnya,
silahkan mengamati dan lakukan percobaan program berikut ini.
|
package main
import "fmt"
func main() {
var
nilai, err int
//
silahkan diganti dengan bilangan negatif
nilai,
err = penjumlahan(2,3)
fmt.Println("Hasil
= ", nilai)
fmt.Println("Pesan
= ", err)
}
func penjumlahan(a int, b int) (int, int){
var
err int;
if
a<0 || b<0{ // periksa bilangan negatif
err
= -1
}
else{
err
= 0
}
return
a+b, err;
}
|
Pembuatan fungsi tentu saja dimaksudkan untuk
menangani suatu kegiatan yang sering berulang-ulang dengan cara mengelompokkannya pada bagian tertentu. Selain
itu fungsi juga digunakan untuk mempermudah programmer
dalam mengembangkan kode program yang tertata rapi sesuai dengan bagian dan
tugasnya masing-masing. Aplikasi yang besar atau kompleks tentu saja
membutuhkan fungsi sebagai kunci utama dalam menghindari kesimpang siuran tatanan
baris kode program. Apabila diperhatikan dengan saksama maka sebenarnya func di atas apabila dikombinasikan dengan kondisi
if maka dapat dimanfaatkan
juga untuk melakukan validasi pada kasus-kasus tertentu. Berikut hasil
programnya ketika dijalankan.