golang for beginner(1) -...

104
MODUL PENDAHULUAN KURSUS GOLANG FOR BEGINNER Laboratorium Pengembangan Komputerisasi UNIVERSITAS GUNADARMA Versi 1.0 Tahun Penyusunan 2018

Upload: others

Post on 17-Jul-2020

48 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

MODUL PENDAHULUAN KURSUS

GOLANG FOR BEGINNER

Laboratorium Pengembangan Komputerisasi

UNIVERSITAS GUNADARMA

Versi 1.0

Tahun Penyusunan 2018

Page 2: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 2

KATA PENGANTAR

Modul ini merupakan modul pendahuluan yang disusun sebagai materi persiapan bagi mahasiswa peserta kursus sebelum setiap pertemuan kursus yang akan dimulai. Materi setiap pertemuan selalu dimulai dengan penjelasan tentang objektif yang akan dicapai dari proses belajar dalam pertemuan tersebut.

Modul GOLANG terdiri dari 8 pertemuan materi :

1. Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data, Konversi Data, Konstanta, Defer, dan Operator Pada Golang 3. Perulangan, Percabangan (Seleksi Kondisi) pada Bahasa Pemrograman Go 4. Struct, Pointer, Slice dan Map Menggunakan Bahasa Pemrograman Go 5. Polymer : Installasi, Running Staterkit 6. Polymer: Struktur folder dan Layout 7. Polymer : Client Side Routing pada Polymer 8. Polymer : Web Server, JSON, Polymer Menggunakan Bahasa Pemrograman Go

Secara umum, materi pendahuluan pada setiap pertemuan akan menjelaskan konsep atau teori mengenai topik yang akan dibahas, dan menerangkan secara garis besar langkah yang diperlukan dalam menjalankan suatu software utilitas atau aplikasi yang mendukung pembahasan topik yang dibahas dalam materi tersebut.

Setiap peserta kursus sangat diharapkan untuk mempelajari dengan seksama modul pendahuluan ini, mengingat pemahaman yang baik atas materi ini, akan sangat membantu pada waktu proses belajar selama kegiatan kursus berlangsung, terutama dalam mengerjakan soal-soal Pre-test.

Untuk mengikuti perkembangan teknologi di masa mendatang, maka modul pendahuluan ini disusun oleh Lembaga Pengembangan Komputerisasi Universitas Gunadarma dengan bantuan tim yang bekerja secara penuh yaitu, Drs. Hasin Widjadi, MMSI , Ricky Agus T., ST., SSi., MM , Rheza Andika., SKom., MMSI., Guntur Eka Saputra, ST., MMSI., Ahmad Hidayat, SKom., MMSI., Aria Samudera Elhamidy, Kahfi Fazrin, dan Krisan Alifari.

Jakarta, Oktober 2018

Lembaga Pengembangan Komputerisasi Universitas Gunadarma

Page 3: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 3

DAFTAR ISI

HALAMAN JUDUL ..................................................................................................... 1

KATA PENGANTAR .................................................................................................... 2

DAFTAR ISI ................................................................................................................ 3

Pertemuan 1

Konsep Dasar Bahasa Pemrograman Go ................................................................. 6

1.1 Instalasi Go ................................................................................................... 6 1.2 Go Command ................................................................................................ 10

Pertemuan 2

Variabel, Tipe Data, Konversi

Data, Konstanta, Defer, dan Operator Pada Golang ................................................ 12

2.1 Variabel ....................................................................................... 12 2.1.1 Deklarasi Variabel Dengan Tipe Data ........................................... 13 2.1.2 Deklarasi Variabel Tanpa Tipe Data ............................................. 13 2.1.3 Deklarasi Variabel Menggunakan Keyword Var .......................... 14 2.1.4 Deklarasi Variabel Multi Variabel ................................................ 15 2.1.5 Deklarasi Variabel Underscore ..................................................... 16 2.1.6 Deklarasi Variabel Menggunakan Keyword New ......................... 17 2.1.7 Deklarasi Variabel Menggunakan Keyword Make ....................... 17

2.2 Tipe Data ....................................................................................... 18 2.2.1 Tipe Data Numerik Non-Desimal ................................................. 18 2.2.2 Tipe Data Numerik Desimal .......................................................... 19 2.2.3 Tipe Data Bool (Boolean) ............................................................ 20 2.2.4 Tipe Data String ............................................................................ 21 2.2.5 Nilai nil dan Nilai Default Tipe Data ............................................ 22

2.3 Konversi Data ....................................................................................... 22 2.3.1 Konversi Data Menggunakan strconv ........................................... 22 2.3.2 Konversi Data Menggunakan Casting ........................................... 29 2.3.3 Konversi Data Interface {} Menggunakan Teknik Type Assertions 31

2.4 Konstanta ...................................................................................................... 32 2.4.1 Penggunaan Konstanta .................................................................. 32 2.4.2 Penggunaan Fungsi fmt.Print () ..................................................... 33

2.5 Defer ............................................................................................... 33 2.5.1 Penerapan Kata Kunci defer .......................................................... 34 2.5.2 Penerapan Fungsi os.Exit () ........................................................... 34

2.6 Operator ............................................................................................... 35 2.6.1 Operator Aritmatika ...................................................................... 35 2.6.2 Operator Perbandingan .................................................................. 35 2.6.3 Operator Logika ............................................................................ 36

Page 4: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 4

Pertemuan 3

Perulangan, Percabangan (Seleksi Kondisi) pada Bahasa Pemrograman Go ..... 37

3.1 Perulangan pada Bahasa Pemrograman Go .................................................. 37 3.1.1 Perulangan dengan memasukkan variabel counter perulangan .... 38 3.1.2 Perulangan for mirip seperti konsep while. ................................... 38 3.1.3 Menuliskan kata kunci for tanpa argumen atau kondisi ................ 39 3.1.4 Perulangan dengan menggunakan kombinasi kata kunci

for dan range ................................................................................. 40 3.1.5 Perulangan dengan menggunakan kombinasi kata kunci

Break dan continue ....................................................................... 40 3.1.6 Perulangan Bersarang .................................................................... 41 3.1.7 Perulangan dengan memberikan teknik pemberian label ............. 42

3.2 Percabangan (Seleksi Kondisi) pada Bahasa Pemrograman Go ................... 43 3.2.1 Seleksi Kondisi Menggunakan Kata Kunci if, else if, dan else ..... 44 3.2.2 Variabel Temporary pada statemen if-else .................................... 45 3.2.3 Seleksi Kondisi Menggunakan Kata Kunci switch-case ............... 45 3.2.4 Pemanfaatan case untuk Banyak Kondisi ..................................... 46 3.2.5 Kurung Kurawal Pada Kata Kunci case dan default ..................... 47 3.2.6 Switch Dengan Gaya if-else .......................................................... 48 3.2.7 Penggunaan Kata Kunci fallthrough dalam statement switch ....... 49 3.2.8 Seleksi Kondisi Bersarang ............................................................. 50

Pertemuan 4

Struct, Pointer, Slice dan Map Menggunakan Bahasa Pemrograman Go ............ 53

4.1 Pointer ........................................................................................................... 53 4.2 Struct ............................................................................................................. 54 4.3 Slice ............................................................................................................. 59 4.4 Map ............................................................................................................. 64

Pertemuan 5

Polymer : Installasi, Running Staterkit ................................................................... 68

5.1 Pengenalan Polymer Project .......................................................................... 68 5.1.1 Kelebihan Polymer Project ................................................................ 68 5.2 Instalasi Polymer Project ................................................................................ 69 5.2.1 Instalasi git ........................................................................................ 69 5.2.2 Instalasi NodeJS ................................................................................ 72 5.2.3 Instalasi Polymer dengan bower ....................................................... 74 5.3 Memulai Starter Kit dengan Polymer ............................................................. 75 5.4 Menjalankan Starter Kit ................................................................................. 77

Pertemuan 6

Polymer: Struktur folder dan Layout ...................................................................... 79

6.1 Struktur folder Polymer .................................................................................... 79 6.2 Layout Polymer ................................................................................................. 83

6.2.1 Fitur pada webcomponents Polymer ................................................... 84

Page 5: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 5

Pertemuan 7

Polymer : Client Side Routing pada Polymer ........................................................... 87

7.1 Client Side Routing ........................................................................................... 87 7.2 Perpindahan Lokasi ........................................................................................... 89

Pertemuan 8

Polymer : Web Server, JSON, Polymer Menggunakan Bahasa Pemrograman Go ................................................................. 90

8.1 Arsitektur Web Server Go ................................................................................. 90 8.2 Menjalankan Web Server Golang ..................................................................... 91 8.3 Pembuatan Route dalam Golang ....................................................................... 91 8.4 JavaScript Object Notation (JSON) .................................................................. 93

8.4.1 Encode Suatu Object Menjadi JSON ...................................... 94 8.4.2 Decode JSON Menjadi Suatu Object ...................................... 95 8.4.3 Membuat API sederhana dengan format data JSON ............... 96

8.5 Web Component ............................................................................................... 98 8.5.1 Spesifikasi Web Component ................................................... 98 8.5.2 Penggunaan Web Component pada Polymer .......................... 98

DAFTAR PUSTAKA .. ................................................................................................. 104

Page 6: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 6

Konsep Dasar Bahasa Pemrograman Go

Objektif :

• Mahasiswa dapat mengetahui cara instalasi Go

• Mahasiswa dapat memahami perintah dasar bahasa pemrograman Go

1.1 Instalasi Go

Bahasa pemrograman Go (Golang) merupakan bahasa pemrograman yang lebih mudah

dipahami dari segi syntax, dan dari segi efisiensi Golang memiliki performa seperti dari

C/C++. Salah satu kelebihan yang dimiliki Golang yaitu terdapat package/modul yang

disediakan terbilang lengkap. Karena bahasa ini open source, banyak sekali developer yang

juga mengembangkan modul-modul lain yang dapat dimanfaatkan. Sehingga banyak

perusahaan yang tertarik untuk mengembangkan platformnya dengan menggunakan Golang.

Untuk memulai menggunakan Golang perlu dilakukan instalasi sesuai dengan tahapan dan

persyaratan yang dibutuhkan. Golang tersedia untuk platform Windows, Linux dan macOS.

Persyaratan Sistem (System requirements) Persyaratan yang dibutuhkan Golang untuk sistem operasi dan arsitektur sebagai berikut :

Gambar 1.1 Sistem operasi dan arsitektur yang didukung Golang.

(Sumber : https://golang.org/doc/install)

Tahapan Instalasi

File instalasi Golang dapat diunduh melalui https://golang.org/dl/ yang tersedia untuk

platform Windows, macOS dan Linux. Setelah mengunduh file tersebut dapat mengikuti

tahapan instalasi pada penjelasan berikutnya.

1

Page 7: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 7

Windows

Berikut ini adalah tahapan instalasi Golang pada sistem operasi Windows yaitu :

1. Pada tahapan instalasi tidak ada yang berbeda dengan tahapan pada umumnya.

Silahkan jalankan file unduhan untuk memulai instalasi Golang.

2. Tekan tombol Next untuk melanjutkan setiap tahapan yang tampil.

Gambar 1.2 Tahapan instalasi Golang pada Windows

3. Pada langkah berikutnya adalah menentukan letak folder tujuan instalasi disimpan,

folder instalasi baku yang diarahkan ada pada C: \go\bin seperti terlihat pada gambar

1.3.

Gambar 1.3 Folder tujuan instalasi Golang pada Windows

Page 8: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 8

4. Setelah menentukan folder tujuan instalasi klik tombol Next untuk melanjutkan. Klik

tombol Install untuk memulai instalasi dan tunggu sampai selesai kemudian tekan

tombol Finish.

Gambar 1.4 Memulai instalasi Golang pada Windows

5. Pastikan folder Go sudah terdapat di dalam Direktori C:

Gambar 1.5 Folder instalasi Go pada Windows Explorer

6. Setelah selesai melakukan instalasi Golang, selanjutnya harus mengatur terlebih dahulu

environment dari komputer yang akan digunakan. Untuk itu silahkan masuk ke System

properties melalui menu Setting>Control Panel>System>Advance system setting pada tab

Advanced pilih Environtment Variables dan tekan “New” kemudian buatlah variable GOPATH

dengan value = C:\golang dan GOROOT dengan value = C:\Go\ seperti pada gambar 1.6.

GOROOT adalah path dimana Go SDK tersimpan dan GOPATH tertuju pada direktori tempat

proyek Golang, kedua parameter ini bersifat wajib.

Page 9: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 9

Gambar 1.6 System Properties

7. Untuk memastikan bahwa Golang telah terinstal, ketik perintah go env pada command

prompt, hasilnya terlihat pada gambar 1.7.

Gambar 1.7 Perintah go env pada command prompt

8. Setelah GOPATH berhasil dikenali, perlu disiapkan 3 buah sub folder didalamnya

seperti pada gambar 1.8 dengan kriteria sebagai berikut :

- Folder src , adalah path dimana proyek Golang disimpan.

- Folder pkg , berisi file hasil kompilasi.

- Folder bin , berisi file executable hasil build.

Page 10: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 10

Gambar 1.8 Folder penyimpanan proyek Golang

Linux

Berikut ini adalah tahapan instalasi Golang pada sistem operasi Linux yaitu :

1. Unduh Go SDK pada link (sesuaikan dengan tipe OS dan arsitektur yang digunakan)

https://golang.org/dl/

2. Extract file arsip. tar-C/usr/local/ -xzf go1.X.X.platform-arch.tar.gz

3. Edit .profile atau .bashrc, lalu tambahkan variabel PATH, GOPATH dan GOBIN

4. Untuk PATH, arahkan ke folder bin tempat ekstraksi SDK (eg : /usr/local/go/bin) Export PATH=$PATH:/usr/local/go/bin

5. Untuk GOPATH, set Go PATH ke folder tempat proyek-proyek Go disimpan export GOPATH=/home/<user>/GoWorkspace

6. Untuk GOBIN, arahkan ke folder binari (hasil kompilasi Go). (eg : $GOPATH/bin) export PATH=$PATH:/usr/local/go/bin export GOBIN=$GOPATH/bin

7. Kemudian cek apakah Go sudah bisa diakses dari luar folder. $ go version

1.2 Go Command Bahasa pemrograman Go menyediakan perintah (command) go untuk keperluan

pengembangan aplikasi. Perintah ini dilakukan melalui command line, seperti

perintah untuk melakukan kompilasi, testing dan eksekusi program. Pada tabel 1.1

terdapat daftar perintah go berikut penjelasan pemakaiannya.

Page 11: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 11

Tabel 1.1 Daftar Perintah go Perintah Penjelasan

build Melakukan kompilasi paket dan dependensi

clean Menghapus file-file object atau file executable

doc Menampilkan dokumentasi paket atau simbol

env Menampilkan pengaturan pada Go

fix Menjalankan perintah untuk melakukan perbaikan pada paket

fmt Menjalankan perintah untuk melakukan format code

generate Menghasilkan file-file Go melalui source

install Kompilasi dan install paket serta dependensinya

get Download dan install paket serta dependensinya

list Menampilkan list paket

run Kompilasi dan menjalankan aplikasi Go (non-library).

test Melakukan testing paket-paket Go

tool Menjalankan perintah spesifik pada go tool

version Menampilkan versi Go

vet Static analyzer yang berfungsi untuk mencari potensi error pada kode.

Penjelasan perintah – perintah go ini juga dapat dilihat melalui command line

dengan mengetikan perintah go help yang terlihat pada gambar 1.9

Gambar 1.9 Perintah go help

Page 12: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 12

Variabel, Tipe Data, Konversi Data, Konstanta, Defer, dan Operator Pada Golang

Objektif :

• Mahasiswa mampu memahami dan menggunakan variabel di Golang • Mahasiswa mampu memahami dan menggunakan tipe data yang sesuai dengan

penerapan pada Golang. • Mahasiswa mampu memahamii jenis-jenis dan menggunakan operator pada

Golang. • Mahasiswa mampu dan menggukan konversi tipe yang sesuai dengan data pada

Golang. • Mahasiswa mampu memahami dan menggunakan konsep Defer pada Golang.

Di dalam modul pendahuluan ini dijelaskan secara umum dan khusus mengenai variabel yang dapat

dideklarasikan di dalam Golang. Jenis-jenis tipe data yang terdapat pada Golang dan cara

menggunakannya dalam penerapan di dalam Golang. Operator yang digunakan tidak hanya sebagai

symbol, tetapi juga dalam hitunagn matematis dalam pengolahan data, dan data tersebut dapat

dikonversi menjadi tipe data yang disesuaikan dengan kebutuhan pengguna. Penggunaan konstanta

yang digunakan di dalam Golang dan mahasiswa dapat memahami perbedaan dengan variabel, serta

konsep Defer yang dapat diterapkan dalam kode program Golang sebagai akhir dari perintah atau

pernyataan di dalam Golang.

2.1. VARIABEL

Variabel merupakan tempat menyimpan atau menampung sebuah nilai data. Variabel di dalam

Golang diadopsi menjadi dua jenis penulisan, yaitu dapat dituliskan nama variabel diikuti dengan tipe

data dan ada yang tidak. Golang memiliki beberapa jenis deklarasi variabel, yaitu deklarasi variabel

dengan tipe data, variabel tanpa tipe data, menggunakan keyword var, multi variabel, underscore,

menggunakan keyword new, dan menggunakan keyword make.

2

Page 13: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 13

2.1.1. Deklarasi Variabel Dengan Tipe Data

Pendeklarasian variabel dengan jenis ini adalah sebuah variabel harus diikuti atau disertai

dengan jenis tipe data tertentu. Tipe data ini akan menentukan sebuah nilai data yang tersimpan di dalam

sebuah variabel. Istilah tipe data yang digunakan dalam suatu variabel ini disebut dengan metode

manifest typing.

Bentuk Umum:

var nama_variabel tipe_data

Adapun contoh dalam penerapan jenis deklarasi variabel ini sebagai berikut:

Gambar 2.1 Contoh Penerapan Variabel Lokal

Kata kunci var digunakan sebagai awal dalam mendeklarasi sebuah variabel dan diikuti dengan

nama variabel, dan tipe data yang digunakan. Variabel yang digunakan yaitu nama_depan dan

nama_belakang yang sudah dideklarasi pada baris ke 6. Berikut ini hasil keluaran dari kode program

gambar 2.1.

Gambar 2.2 Hasil Keluaran Program Deklarasi Dengan Tipe Data

2.1.2. Deklarasi Variabel Tanpa Tipe Data

Dalam deklarasi jenis ini berlawanan dengan deklarasi tipe data. Jenis deklarasi ini tidak harus

menggunakan tipe data yang ditulis setelah nama variabel. Deklarasi jenis ini tetap menggunakan tipe

data yang dimana tipe datanya ditentukan sendiri oleh tipe data nilainya, jenis deklarasi ini disebut

dengan metode type inference.

Page 14: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 14

Bentuk Umum:

nama_variabel := nilai_data

Berikut ini contoh penggunaan deklarasi variabel tanpa tipe data:

Gambar 2.3 Contoh Penerapan Deklarasi Variabel Tanpa Tipe Data

Variabel nama_belakang menyimpan nilai data “Bernadi” yang merupakan tipe datanya

adalah String. Tipe data dari variabel nama_belakang ditentukan sendiri oleh nilai datanya yang

menggunakan tanda petik dua (“ “). Tanda := hanya digunakan sekali di awal pada saat deklarasi saja

yang menandakan bahwa variabel tersebut tidak diikuti oleh deklarasi tipe data. Berikut adalah hasil

kelauran dari program gambar 2.3, seperti pada gambar 2.4.

Gambar 2.4 Hasil Keluaran Program Deklarasi Variabel Tanpa Tipe Data

2.1.3. Deklarasi Variabel Menggunakan Keyword Var

Menggunakan kata kunci var dapat dilakukan dalam mendeklarasikan suatu variabel. Bentuk

umum untuk menggunakan deklarsi variabel ini adalah:

var nama_variabel tipe_data

var nama_variabel tipe_data = nilai_data

Dapat diperhatikan bahwa kata kunci var dapat digunakan dengan cara 2 deklarasi yang

berbeda. Jika menggunakan kata kunci var dan terdapat nilai data, maka menggunakan operator (=),

bukan (:=).

Page 15: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 15

Gambar 2.5 Contoh Penerapan Deklarasi Variabel Keyword var

Hasil keluaran dari kode program pada gambar 2.5 ketika masukkan untuk nama_depan adalah

“Budi”, yaitu:

Gambar 2.6 Hasil Keluaran Program Deklarasi Variabel Keyword var

2.1.4. Deklarasi Variabel Multi Variabel

Deklarasi ini digunakan untuk mendukung Golang dalam mendeklarasikan variabel secara

bersamaan. Deklarasi ini dapat dituliskan dalam satu baris perintah deklarasi variabel dan menggunakan

tanda koma ( , ) sebagai pembatas.

Berikut ini bentuk umum dari cara deklarasi variabel jenis ini:

Bentuk umum 1:

var nama_var1, nama_var2, nama_varN tipe_data

nama_var1, nama_var2, nama_varN = nilai1, nilai2, nilaiN

Bentuk umum 2:

var nama_var1, nama_var2, nama_varN tipe_data = nilai1, nilai2, nilaiN

Bentuk umum 3:

nama_var1, nama_var2, nama_varN := nilai1, nilai2, nilaiN

Page 16: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 16

Contoh program berikut ini mendeklarasikan dalam 3 bentuk umum yang sudah dideklarasikan.

Program dapat dilihat pada gambar 2.7 berikut ini:

Gambar 2.7 Contoh Penerapan Deklarasi Multi Variabel

Hasil keluaran dari kode program pada gambar 2.7, yaitu:

Gambar 2.8 Hasil Keluaran Program Deklarasi Multi Variabel

2.1.5. Deklarasi Variabel Underscore

Deklarasi variabel jenis ini digunakan sebagai predefined variabel yang dapat digunakan untuk

nilai yang tidak digunakan. Golang merupakan Bahasa pemrograman yang memiliki aturan unik bahwa

tidak boleh ada satupun yang tidak digunakan. Semua variabel yang dideklarasikan harus digunakan,

jika tidak maka program akan gagal dikompilasi. Deklarasi ini menggunakan tanda ( = ) untuk mengisi

nilai data dan tidak perlu menggunakan ( :=) karena sifatnya yang predefined. Variabel jenis ini sering

dimanfaatkan untuk menampung nilai balik fungsi yang tidak digunakan dan isi variabel ini tidak dapat

ditampilkan.

Page 17: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 17

Berikut ini contoh penerapan variabel Underscore ( _ ):

Gambar 2.9 Contoh Penerapan Deklarasi Variabel Underscore

2.1.6. Deklarasi Variabel Menggunakan Keyword New

Deklarasi variabel dengan menggunakan kata kunci new digunakan untuk mencetak data

pointer dengan tipe data tertentu dan nilai data dari default-nya menyesuaikan tipe datanya. Berikut ini

contoh penerapan dalam variabel jenis ini:

Gambar 2.10 Contoh Penerapan Deklarasi Variabel Menggunakan Keyword new

Gambar 2.11 Hasil Keluaran Program Deklarasi Variabel Menggunakan Keyword new

Variabel nama menampung data bertipe pointer string. Jika ditampilkan yang tampil adalah

nilai alamat memori nilai tersebut (notasi heksadesimal) dan untuk menampilkan nilai aslinya, variabel

tersebut harus menggunakan tanda asterisk ( * ) karena harus di-dereference terlebih dahulu. (dipelajari

lebih lanjut pada bagian pointer dan dereference)

2.1.7. Deklarasi Variabel Menggunakan Keyword Make

Deklarasi variabel menggunakan kata kunci make hanya bisa digunakan untuk pembuatan

beberapa jenis variabel saja, yaitu :

• Channel

Page 18: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 18

• Slice

• Map

Jenis ini akan dibahas pada bagian khusus di pertemuan selanjutnya.

2.2. TIPE DATA

Secara umum dalam Bahasa pemrograman untuk merepresentasikan dan mengolah data

membutuhkan tipe data yang sesuai dengan masukkan data ke dalam sistem. Golang memiliki beberapa

tipe data yang dapat dikelompokkan menjadi tipe data numerik (decimal dan non-desimal), string,

dan Boolean.

2.2.1. Tipe Data Numerik Non-Desimal

Tipe data numerik non-desimal merupakan tipe data yang digunakan untuk nilai data bilangan

bulat. Tipe data numerik non-desimal juga disebut dengan non floating point. Di Golang, secara umum

terdapat dua tipe data yang perlu diketahui, yaitu:

• uint, adalah tipe data untuk bilangan positif (bilangan cacah), dan

• int, adalah tipe data untuk bilangan bulat (bilangan negative dan positif)

Kedua tipe data di atas terbagi menjadi beberapa jenis tipe data lagi yang dibagi berdasarkan

jangkauan cakupan nilainya. Jenis tipe data numerik non-decimal sebagai berikut:

Tabel 2.1 Tipe Data Numerik Non-Desimal

No Tipe Data Cakupan Nilai Terendah Cakupan Nilai Tertinggi

1 uint8 0 255

2 uint16 0 65535

3 uint32 0 42949672995

4 uint64 0 18446744073709551615

5 uint sama dengan uint32 atau uint64 (tergantung nilai)

6 byte sama dengan uint8

7 int8 -128 127

8 int16 -32768 32767

9 int32 -2147483648 2147483647

Page 19: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 19

10 int64 -9223372036854775808 9223372036854775807

11 int sama dengan int32 atau int64 (tergantung nilai)

12 rume sama dengan int32

Berikut ini contoh penggunaan tipe data numerik non-desimal:

Gambar 2.11 Penerapan Tipe Data Numerik Non-Desimal

Ketika dijalankan kode program pada gambar 2.11, maka akan tampil seperti berikut:

Gambar 2.12 Hasil Keluaran Program Tipe Data Numerik Non-Desimal

Pada tipe data variabel bilangan_positif sudah dideklarasikan dengan tipe data uint dengan

nilai awal 70, sedangkan tipe data variabel bilangan_negatif menyesuaikan nilai datanya, yaitu -777

yang termasuk ke dalam tipe data int16. Perintah %d pada fmt.Printf() digunakan untuk memformat

keluaran data numerik.

2.2.2. Tipe Data Numerik Desimal

Tipe data numerik decimal digunakan untuk bilangan yang memiliki angka dibelang koma, atau

bilangan pecahan. Tipe data jenis ini ada dua, yaitu float32 dan float64. Perbedaan kedua tipe data ini

terletak pada jangkauan nilai. Jangakauan nilai ini merujuk ke spesifikasi yang telah diatur dan

dikelauarkan oleh IEEE-754 32-bit floating-point numbers.

Page 20: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 20

Berikut ini contoh penggunaan dalam tipe data numerik decimal:

Gambar 2.13 Penerapan Tipe Data Numerik Desimal

Ketika dijalankan kode program pada gambar 2.13, maka hasil keluarannya adalah:

Gambar 2.14 Hasil Keluaran Program Tipe Data Numerik Desimal

Perintah %f digunakan untuk mengkonversi data numerik decimal menjadi tipe data string.

Digit decimal yang dihasilkan 6 digit angka. Untuk mengontrol jumlah bilangan angka dibelakang koma

dapat menggunakan perintah %.nf, n dapat diganti menjadi bilangan, sesuai dengan kebutuhan

pengguna.

2.2.3. Tipe Data bool (Boolean)

Tipe data Boolean ini dideklarasikan dengan kata kunci bool. Tipe data ini hanya memiliki dua

nilai, yaitu true dan false. Tipe data ini secara umum digunakan dalam seleksi kondisi dan perulangan.

Berikut ini contoh penggunaan tipe data Boolean:

Gambar 2.15 Penerapan Tipe Data Boolean

Page 21: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 21

Jika kode program pada gambar 2.15 dijalankan, maka hasil keluaran seperti pada gambar 2.16

berikut:

Gambar 2.16 Hasil Keluaran Penerapan Tipe Data Boolen

Perintah %t digunakan untuk memformat data dengan tipe data bool yang digunakan dalam

fungsi fmt.Printf().

2.2.4. Tipe Data string

Dalam menggunakan tipe data string, nilai data diapit oleh tanda petik dua (“) atau tanda quote.

Selain itu, dapat juga menggunakan tanda grave accent/backticks ( ‘ ), tanda ini terletak di sebelah kiri

tombol 1. Kelebihan string yang dideklarasikan dengan menggunakan grave accent adalah membuat

semua karakter di dalamnya termasuk ke dalam string.

Berikut contoh penerapannya:

Gambar 2.17 Penerapan Tipe Data String

Berikut ini hasil keluaran dari penerapan string dengan tanda quote dan grave accent.

Gambar 2.18 Hasil Keluaran Tipe Data String

Page 22: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 22

2.2.5. Nilai nil dan Nilai Default Tipe Data

nil bukan termasuk ke dalam tipe data, melainkan sebuah nilai. Variabel yang isi nilainya nil,

berarti variabel tersebut memiliki nilai kosong.

Semua tipe data yang dibahas di atas memiliki nilai default. Artinya meskipun variabel

dideklarasikan dengan tanpa nilai awal, aka nada nilai default-nya.

Tabel 2.2 Nilai Default Tipe Data

Tipe Data Nilai Default

string “ “ (string kosong)

bool false

numerik non-desimal 0

numerik desimal 0.0

nil tidak dapat digunakan pada tipe data yang sudah dibahas di atas, karena seuanya memiliki

nilai default pada saar deklarasi. Ada beberapa tipe data yang bisa di-set nilainya dengan nil,

diantaranya pointer, tipe data fungsi, slice, map, channel, interface kosong atau interface{}.

2.3. KONVERSI DATA

Konversi data digunakan untuk mengubah tipe data dari suatu variabel yang mengandung nilai

data menjadi tipe data yang dibutuhkan atau disesuaikan dengan program.

Berikut dijelaskan macam-macam konversi yang terdapat pada Golang:

2.3.1 Konversi Data Menggunakan strconv

strconv mengandung banyak fungsi yang sangat membantu untuk keperluan konversi data.

Berikut ini merupakan beberapa fungsi dalam package tersebut yang bisa dimanfaatkan.

a. Fungsi strconv.Atoi()

Fungsi ini dapat digunakan untuk mengkonversi data dari tipe string ke int. Mengembalikan 2

buah nilai balik, yaitu hasil konversi dan error (jika konversi sukses, maka error akan berisi nil).

Berikut ini contoh dalam penerapan fungsi strconv.Atoi():

Page 23: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 23

Gambar 2.19 Penerapan Fungsi strconv.Atoi()

Setelah dijalankan kode program pada gambar 2.19, maka akan menghasilkan seperti pada

gambar 2.20.

Gambar 2.20 Hasil Keluaran Penerapan Fungsi strconv.Atoi()

b. Fungsi strconv.Itoa()

Fungsi ini merupakan kebalikan dari strconv.Atoi yang digunakan untuk mengkonversi int ke

string.

Berikut ini contoh penerapan dari fungsi strconv.Itoa():

Page 24: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 24

Gambar 2.21 Penerapan Fungsi strconv.Itoa()

Jika dijalankan kode program pada gambar 2.21, maka akan menghasilkan hasil keluaran

seperti pada gambar 2.22 berikut ini:

Gambar 2.22 Hasil Keluaran Penerapan Fungsi strconv.Itoa()

c. Fungsi strconv.ParseInt()

Fungsi ini digunakan untuk mengkonversi tipe data string yang berbentuk numerik dengan basis

tertentu ke tipe numerik non-desimal dengan lebar data bisa ditentukan.

Pada contoh seperti gambar 2.23, nilai data “789” dengan tipe string yang ditentukan basis

numeriknya 10, akan dikonversi ke jenis tipe data int64.

Berikut ini penerapan pada fungsi strconv.ParseInt() pada gambar 2.23:

Gambar 2.23 Penerapan Fungsi strconv.ParseInt ()

Ketika dijalankan kode program pada gambar 2.23 akan tampak hasil keluaran seperti gambar

2.24.

Gambar 2.24 Hasil Keluaran Penerapan Fungsi strconv.ParseInt()

Page 25: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 25

Fungsi ini dapat juga digunakan untuk mengkonversi tipe data dari string “1010” ditentukan

basis numeriknya 2 (biner), akan dionversi ke jenis tipe data int8.

Gambar 2.25 Penerapan Lain dari Fungsi strconv.ParseInt()

Berikut ini hasil kode program gambar 2.25 yang dijalankan pada gambar 2.26.

Gambar 2.26Hasil Keluaran Penerapan Lain dari Fungsi strconv.ParseInt()

d. Fungsi strconv.FormatInt()

Fungsi ini digunakan untuk mengkonversi data numerik dengan tipe data int64 ke string dengan

menggunakan basis numerik bisa ditentukan sendiri.

Berikut ini contoh penerapan dalam fungsi strconv.FormatInt() pada gambar 2.27.

Gambar 2.27 Penerapan Fungsi strconv.FormatInt()

Page 26: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 26

Ketika dijalankan kode program gambar 2.27, maka akan menghasilkan keluaran pada gambar

2.28.

Gambar 2.28 Hasil Keluaran Fungsi strconv.FormatInt()

e. Fungsi strconv.ParseFloat()

Fungsi dapat digunakan untuk mengkonversi string ke numerik decimal dengan lebar data yang

bisa ditentukan.

Berikut ini contoh penerapan fungsi strconv.ParseFloat() pada gambar 2.29:

Gambar 2.29 Penerapan Fungsi strcov.ParseFloat()

String “78.99” akan dikonversi ke tipe data float dengan lebar float32. Hasil konversi dengan

fungsi ini disesuaikan dengan standar IEEE Standard for Floating-Point Arithmetic. Berikut ini hasil

keluaran dari kode program yang dijalankan pada gambar 2.29:

Gambar 2.30 Hasil Keluaran Fungsi strcov.ParseFloat()

f. Fungsi strconv.FormatFloat()

Fungsi ini digunakan untuk mengkonversi data bertipe float64 ke string dengan format eksponen,

lebar digit desimal, dan lebar tipe data bisa ditentukan.

Page 27: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 27

Berikut ini contoh konversi tipe data seperti pada kode program gambar 2.31:

Gambar 2.31 Penerapan Fungsi conv.FormatFloat()

Kode program pada gambar 2.31, nilai data pada variabel bil adalah “78.99” yang bertipe

float64, kemudian dikonversi ke dalam tipe data string dengan format eksponen f (tanpa eksponen),

jangkauan digit decimal sebanyak 6 digit, dan lebar tipe data float64. Berikut ini ketika dijalankan kode

program di atas seperti pada gambar 2.32:

Gambar 2.32 Hasil Keluaran Fungsi conv.FormatFloat()

Format eksponen pada Golang dapat disajikan dengan beberapa cara, seperti pada tabel 2.3.

Tabel 2.3 Format Eksponen Golang

Format Eksponen Keterangan

b -ddddp±ddd, a, eksponen biner (basis 2)

e -d.dddde±dd, a, eksponen desimal (basis 10)

E -d.ddddE±dd, a, eksponen desimal (basis 10)

f -ddd.dddd, tanpa eksponen

Page 28: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 28

g Akan menggunakan format eksponen e untuk eksponen besar dan f untuk

selainnya

G Akan menggunakan format eksponen E untuk eksponen besar dan f untuk

selainnya

g. Fungsi strconv.ParseBool

Fungsi ini digunakan untuk mengkonversi string ke tipe data bool. Berikut ini contoh penerapan

fungsi strconv.ParseBool seperti pada gambar 2.33:

Gambar 2.33 Penerapan Fungsi strconv.ParseBool()

Berikut ini hasil keluaran ketika dijalankan kode program pada gambar 2.33, seperti pada

gambar 2.34:

Gambar 2.34 Hasil Keluaran Fungsi strconv.ParseBool()

h. Fungsi strconv.FormatBool()

Fungsi ini digunakan untuk mengkonversi tipe data bool ke string. Contoh penerapan dengan

fungsi ini, seperti pada gambar 2.35:

Page 29: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 29

Gambar 2.35 Penerapan Fungsi strconv.FormatBool()

Ketika dijalankan kode program pada gambar 2.35, maka hasil keluaran dapat terlihat seperti

gambar 2.36.

Gambar 2.36 Hasil Keluaran Fungsi strconv.FormatBool()

2.3.2 Konversi Data Menggunakan Casting

Konversi data dengan menggunakan metode Casting adalah konversi tipe data dengan

menggunakan keyword atau kata kunci. Penggunaan konversi ini dengan memanggil tipe data sebagai

fungsi dan menyisipkan nilai data yang akan dikonversi sebagai parameter.

Berikut ini contoh penerapan secara umum untuk menerapkan konversi data menggunakan

Casting seperti pada gambar 2.37:

Gambar 2.37 Penerapan Secara Umum Konversi Data Casting

Page 30: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 30

Gambar 2.38 Hasil Keluaran Konversi Data Casting

Casting string ↔ byte

Tipe data string sebenarnya adalah slice/array byte. Pada Bahasa pemrograman Golang, sebuah

karakter biasa (bukan Unicode) direpresentasikan oleh sebuah elemen slice byte. Nilai slice tersebut

adalah data int yang (default-nya) berbasis desimal, yang merupakan kode ASCII dari karakter biasa

tersebut.

Cara mendapatkan slice byte dari sebuah data string adalah dengan menggunakan Casting ke

tipe [ ] byte. Tiap elemen byte memiliki isi data numerik dengan basis desimal. Berikut ini adalah

contoh string dalam variabel teks1 yang dikonversi ke dalam [ ] byte. Tiap elemen slice byte tersebut

kemudian ditampilkan satu per satu, seperti pada gambar 2.39 dan hasil dari kode program tersebut

tampak pada gambar 2.40 berikut ini:

Gambar 2.39 Penerapan String ke Byte

Gambar 2.40 Hasil Keluaran String ke Byte

Contoh berikutnya di bawah ini merupakan kebalikan dari contoh penerapan pada gambar 2.39.

Sebuah [] byte akan dicari bentuk string -nya. Contoh penerapan tersebut tampak pada kode program

di gambar 2.41 dan hasil keluarannya tampak pada gambar 2.42.

Page 31: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 31

Gambar 2.41 Penerapan Byte ke String

Gambar 2.42 Hasil Keluaran Byte ke String

Kode program pada gambar 2.41 merupakan beberapa kode byte string yang dituliskan sebagai

rangkaian slice, yang ditampung oleh variabel b. Kemudian, nilai variabel tersebut dikonversi (cast) ke

dalam tipe data string untuk kemudian ditampilkan dengan perintah fmt.Printf(“%s \n”, s).

2.3.3 Konversi Data interface{} Menggunakan Teknik Type Assertions

Konversi data dengan teknik type assertions merupakan teknik casting data interface{} ke

segala jenis tipe (dengan syarat datatersebut memang bisa di-casting).

Berikut merupakan contoh penerapannya. Disiapkan variabel nilai_data bertipe

map[string]interface{} dengan value berbeda-beda tipe datanya.

Page 32: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 32

Gambar 2.43 Penerapan Type Assertions

Gambar 2.44 Hasil Keluaran Type Assertions

Pernyataan nilai_data[“nama”].(string) memiliki arti bahwa nilai_data[“nama”] dicasting

sebagai string.

Tipe asli data variabel interface{} bisa diketahui dengan cara meng-casting interface{} ke tipe

type. Namun, casting ini hanya bisa dilakukan pada switch.

2.4. KONSTANTA

Konstanta adalah variabel yang memiliki nilai tetap atau tidak bisa diubah. Inisialisasi nilai

hanya dilakukan sekali pada awal program, setelah itu data tidak dapat diubah nilainya.

2.4.1 Penggunaan Konstanta

Penggunaan seperti dalam matematika adalah nilai phi (22/7) atau (3.14), kecepatan Chaya

(299.792.458 m/s) adalah contoh nilai data yang tepat jika dideklarasikan sebagai konstanta daripada

variabel karena nilainya sudah pasti dan tidak berubah.

Cara penerapan constanta sama seperti variabel pada umumnya, hanya dengan menggunakan

kata kunci const. Contoh:

Page 33: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 33

Gambar 2.45 Penerapan Konstanta pada Golang

Jika dijalankan kode program pada gambar 2.45, maka akan tampil hasil keluaran seperti pada

gambar 2.46.

Gambar 2.46 Hasil Keluaran Kode Program Penerapan Konstanta

2.4.2 Penggunaan Fungsi fmt.Print()

Fungsi ini memiliki peran yang sama seperti fungsi fmt.Println(), pembedanya fungsi

fmt.Print() tidak menghasilkan baris baru di akhir hasil keluarannya.

2.5. DEFER

Defer digunakan untuk mengakhirkan eksekusi sebuah pernyataan, sedangkan Exit digunakan

untuk menghentikan program. Dua bahasan ini digabungkan agar hubungan antara keduanya dapat

dengan lebih mudah dipahami.

Page 34: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 34

2.5.1 Penerapan Kata Kunci defer

Ketika eksekusi program sudah sampai pada akhir blok fungsi, pernyataan yang di defer baru

akan dijalankan.

Defer dapat ditempatkan di mana saja, awal maupun akhir blok program. Berikut contoh

penerapan.

Gambar 2.47 Penerapan Kode Program Defer

Kata kunci defer digunakan untuk mengakhirkan pernyataan. Pada kode program gambar 2.47,

fmtPrintln(“Selesai.)” di-defer, hasilnya string “Selesai.”.

Gambar 2.48 Hasil Keluaran Penerapan Defer

2.5.2 Penerapan Fungsi os.Exit()

Exit digunakan untuk menghentikan program secara paksa pada saat itu juga. Semua

pernyataan setelah Exit tidak akan dieksekusi, termasuk juga defer.

Fungsi os.Exit() berada dalam package os. Fungsi ini memiliki sebuah parameter bertipe

numerik yang wajib diisi. Angka yang dimasukkan akan muncul sebagai exit status ketika program

berhenti.

Page 35: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 35

Gambar 2.49 Penerapan os.Exit()

Meskipun defer fmt.Println(“Selesai.”) ditempatkan sebelum os.Exit(), pernyataan tersebut

tidak akan dieksekusi, karena fungsi program tersbeut pada tengah kode program, dan dihentikan secara

paksa.

Gambar 2.50 Hasil Keluaran Penerapan os.Exit()

2.6 OPERATOR

Operator merupakan symbol yang memiliki arti yang secara umum digunakan oleh bahasa

pemrograman untuk operasi matematika. Secara umum, operator dibagi menjadi tiga kategori, yaitu

Operator Aritmatika, Perbandingan, dan Logika.

2.6.1 Operator Aritmatika

Operator aritmatika adalah operator yang diguanakn untuk operasi yang sifatnya

mengoperasikan perhitungan. Golang mendukung beberapa operator aritmatika standar, seperti pada

tabel 2.4.

Tabel 2.4 Operator Aritmatika

Tanda Keterangan

+ Penjumlahan

- Pengurangan

* Perkalian

/ Pembagian

% Modulus / Sisa hasil pembagian

2.6.2 Operator Perbandingan

Operator perbandingan digunakan untuk menentukan kebenaran suatu kondisi. Hasilnya berupa

nilai Boolean, true atau false.

Page 36: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 36

Berikut tabel 2.5 yang berisikan operator perbandingan yang digunakan di Golang.

Tabel 2.5 Operator Perbandingan

Tanda Keterangan

== Apakah nilai kiri sama dengan nilai kanan

!= Apakah nilai kiri tidak sama dengan nilai kanan

< Apakah nilai kiri lebih kecil daripada nilai kanan

<= Apakah nilai kiri lebih kecil atau sama dengan nilai kanan

> Apakah nilai kiri lebih besar dari nilai kanan

>= Apakah nilai kiri lebih besar atau sama dengan nilai kanan

2.6.3 Operator Logika

Operator ini digunakan untuk mencari benar tidaknya kombinasi data bertipe bool (yang bisa

berupa variabel bertipe bool, atau hasil dari operator perbandingan).

Beberapa operator logika standar yang bisa digunakan:

Tabel 2.6 Operator Perbandingan

Tanda Keterangan

&& Kiri dan Kanan

|| Kiri atau Kanan

! Negasi / nilai kebalikan

Page 37: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 37

Perulangan, Percabangan (Seleksi Kondisi) pada Bahasa Pemrograman Go

Objektif :

• Mahasiswa Diharapkan Mampu Mengetahui Dan Memahami Macam-Macam

Struktur Perulangan Bahasa Pemrograman Go.

• Mahasiswa Diharapkan Mampu Mengetahui Dan Memahami Macam-Macam

Struktur Percabangan (Struktur Kondisi) Bahasa Pemrograman Go.

3.1 Perulangan pada Bahasa Pemrograman Go Perulangan secara umum adalah proses mengulang-ulang eksekusi blok kode tanpa

henti selama kondisi yang dijadikan acuan terpenuhi. Biasanya disiapkan sebuah variabel untuk

melakukan iterasi (perulangan) atau sebuah variabel penanda kapan perulangan akan

diberhentikan. Pada bahasa pemrograman Go, kata kunci perulangan hanya terdapat for saja,

walaupun demikian kemampuannya merupakan gabungan for , foreach , dan while pada bahasa

pemrograman lain.

Terdapat beberapa cara menggunakan statemen for standar, yaitu :

1. Memasukkan variabel counter perulangan beserta kondisinya setelah kata kunci for.

2. Menuliskan kondisi setelah kata kunci for (hanya kondisi). Konsepnya mirip seperti

while seperti bahasa pemrograman lain.

3. Menuliskan kata kunci for tanpa argumen atau kondisi.

4. Perulangan dengan menggunakan kombinasi kata kunci for dan range.

5. Perulangan dengan menggunakan kombinasi kata kunci break dan continue.

6. Perulangan bersarang.

7. Perulangan dengan memanfaatkan teknik pemberian label.

3

Page 38: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 38

3.1.1 Perulangan dengan memasukkan variabel counter perulangan.

Cara perulangan ini yaitu memasukkan variabel counter perulangan beserta

kondisinya setelah kata kunci for. Bentuk umum ini hampir sama seperti bahasa

pemrograman C/C++.

Bentuk umum :

Contoh Program:

Perulangan di atas hanya akan berjalan ketika variabel i bernilai dibawah 5, dengan ketentuan

setiap kali perulangan, nilai variabel i akan dilakukan iterasi atau ditambahkan 1 ( i++ artinya

ditambah satu, sama seperti i = i + 1 ). Karena i pada awalnya bernilai 0, maka perulangan akan

berlangsung sebanyak 5 kali, yaitu ketika i bernilai 0, 1, 2, 3, dan 4.

3.1.2 Perulangan for mirip seperti konsep while.

Konsep perulangan ini yaitu menuliskan kondisi setelah kata kunci for (hanya kondisi).

Deklarasi dan iterasi variabel counter tidak dituliskan setelah kata kunci, tetapi hanya kondisi

perulangan saja. Konsepnya mirip seperti while milik bahasa pemrograman lain.

Bentuk umum :

Contoh Program:

For inisialisasi;kondisi;iterasi{ statement }

For kondisi { statement

iterasi }

Page 39: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 39

Pada program diatas, kata kunci for diberikan sebuah kondisi yaitu jika variabel i kurang dari

5, maka perulangan akan terus dilakukan yaitu diwakili oleh iterasi variabel i++. Karena i pada

awalnya bernilai kurang dari 5 yaitu nol, maka perulangan akan berlangsung sebanyak 5 kali,

yaitu ketika i bernilai 0, 1, 2, 3, dan 4.

3.1.3 Menuliskan kata kunci for tanpa argumen atau kondisi.

Cara berikut ini adalah perulangan dengan kata kunci for ditulis tanpa kondisi. Dengan

ini akan dihasilkan perulangan tanpa henti (sama dengan for bernilai true ). Pemberhentian

perulangan dapat dilakukan dengan menggunakan bantuan kata kunci break.

Bentuk umum :

Contoh Program:

For { statement

iterasi kondisi break

}

Page 40: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 40

Pada perulangan tanpa henti di atas, variabel i yang nilai awalnya nol akan dilakukan proses

inkrementasi. Ketika nilai i sudah mencapai 5, kata kunci break digunakan untuk menghentikan

perulangan.

3.1.4 Perulangan dengan menggunakan kombinasi kata kunci for dan range

Cara ini digunakan untuk melakukan perulangan data bertipe array yang jumlah

itemnya sudah ditentukan.

Bentuk umum :

Contoh Program:

Pada program diatas, array fruits diambil elemennya secara berurutan. Nilai setiap elemen

ditampung variabel yaitu variabel fruit (tanpa huruf s), sedangkan indeks nya ditampung pada

variabel i sesuai jumlah dari item yang ditentukan sebelumnya yaitu sebanyak 4.

3.1.5 Perulangan dengan menggunakan kombinasi kata kunci break dan continue.

Kata kunci break digunakan untuk menghentikan secara paksa sebuah perulangan yang

berjalan, sedangkan continue dipakai untuk memaksa program untuk lanjut ke perulangan

berikutnya.

Var array = [ ]type{..,..,..} For var, var := range var_array { statement }

Page 41: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 41

Bentuk umum :

Contoh Program:

Berikut adalah penjelasan dari program diatas:

1. Dilakukan perulangan dimulai dari angka 1 hingga 10 dengan i sebagai variabel

iterasinya.

2. Ketika i adalah bilangan ganjil (dapat diketahui dari i % 2 , jika hasilnya 1 , berarti

ganjil), maka akan dipaksa lanjut ke perulangan berikutnya.

3. Ketika i lebih besar dari 8, maka perulangan akan berhenti.

4. Nilai i akan ditampilkan.

3.1.6 Perulangan bersarang.

Cara pengaplikasian perulangan bersarang pada pemrograman Go kurang lebih sama

dengan perulangan bersarang pada bahasa pemrograman lainnya, yaitu dengan menulikan blok

statement perulangan didalam perulangan.

Bentuk umum :

For inisialisasi;kondisi;iterasi{ kondisi1 {continue}

kondisi2 {break} statement

}

For inisialisasi;kondisi;iterasi{ For inisialisasi;kondisi;iterasi

{ statement } statement

}

Page 42: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 42

Contoh Program :

Pada kode program di atas, yang akan dieksekusi pertama kali yaitu statemen for terdalam dan

fungsi fmt.Println() dipanggil tanpa disisipkan parameter. Cara seperti ini bisa digunakan untuk

menampilkan baris baru. Kegunaannya sama seperti output dari statement fmt.Print("\n").

3.1.7 Perulangan dengan memanfaatkan teknik pemberian label.

Pada salah satu kasus perulangan bersarang, break dan continue akan berlaku pada blok

perulangan dimana break dan continue jika digunakan. Ada cara agar kedua kata kunci ini bisa

tertuju pada perulangan terluar atau perulangan tertentu, yaitu dengan memanfaatkan teknik

pemberian label.

Bentuk umum :

nama_label: For inisialisasi;kondisi;iterasi{

For inisialisasi;kondisi;iterasi{ kondisi { break nama_label }

statement }

}

Page 43: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 43

Contoh Program :

Pada program diatas, sebelum kata kunci for terluar, terdapat baris kode nama label outerLoop:.

Maksud dari kode tersebut adalah sengaja disiapkan untuk sebuah label yang bernama

outerLoop untuk for dibawahnya. Penamaan label bisa saja diganti dengan nama lain, hanya

harus diakhiri dengan tanda titik dua atau colon ( : ). Kemudian pada for bagian dalam, terdapat

seleksi kondisi untuk pengecekan nilai i . Ketika nilai tersebut sama dengan 3, maka kata kunci

break dipanggil dengan target perulangan yang diberikan label outerLoop , dan perulangan

tersebut akan dihentikan.

3.2 Percabangan (Seleksi Kondisi) pada Bahasa Pemrograman Go Seleksi kondisi digunakan untuk mengontrol alur program. Analoginya mirip seperti

fungsi keran air pada sebuah rumah. Kapan air diperbolehkan keluar dan kapan harus berhenti

yang diatur oleh keran tersebut. Sama seperti pada seleksi kondisi, kapan sebuah blok kode

akan dieksekusi dan juga dikontrol. Nilai dijadikan acuan oleh seleksi kondisi adalah nilai

bertipe bool, bisa saja berasal dari variabel, ataupun hasil operasi perbandingan. Nilai tersebut

menentukan blok kode mana yang akan dieksekusi.

Pada bahasa pemrograman Go, terdapat 2 macam kata kunci untuk seleksi kondisi,

yaitu if else dan switch. Pada bab ini kita akan mempelajarinya satu-persatu. Sebagai catatan,

pada bahasa pemrograman Go tidak mendukung seleksi kondisi menggunakan ternary, seperti:

var data = (isExist ? "ada" : "tidak ada") adalah invalid dan menghasilkan error.

Page 44: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 44

3.2.1 Seleksi Kondisi Menggunakan Kata Kunci if, else if, dan else

Penerapan if-else pada bahasa pemrograman Go, sama seperti pada bahasa

pemrograman lainnya, yang membedakan hanya pada tanda kurungnya (parentheses), di

bahasa pemrograman Go tidak perlu ditulis tanda kurung.

Bentuk umum :

Contoh Program :

Pada program diatas, terdapat empat kondisi, yang terpenuhi adalah if point > 5 , karena nilai

variabel point memang lebih besar dari 5. Maka blok kode tepat dibawah kondisi tersebut akan

dieksekusi (blok kode ditandai kurung kurawal buka dan tutup), hasilnya text "lulus" muncul

sebagai output. Skema if else pada bahasa pemrograman Go sama seperti pada pemrograman

umumnya, yaitu di awal seleksi kondisi menggunakan if, dan ketika kondisinya tidak terpenuhi

maka akan menuju pada statement else (jika ada). Ketika terdapat banyak kondisi, maka

gunakankanlah statement else if .

IF kondisi{ statement }Else If kondisi{ statement }Else If{ statement }Else{ statement }

Page 45: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 45

Catatan, pada bahasa pemrograman lain, ketika terdapat seleksi kondisi yang isi blok-

nya hanya 1 baris, maka kurung kurawal boleh tidak dituliskan. Namun, berbeda dengan aturan

di bahasa pemrograman Go, kurung kurawal harus tetap dituliskan meski isinya hanya 1 blok

satement.

3.2.2 Variabel Temporary pada Statemen if - else

Pengertian dari variabel temporary adalah variabel yang hanya bisa digunakan pada

blok seleksi kondisi dimana ia ditempatkan saja. Penggunaan variabel ini membawa beberapa

manfaat, antara lain:

1. Scope atau cakupan variabel jelas, hanya bisa digunakan pada blok seleksi kondisi

itu saja.

2. Kode menjadi lebih rapih.

3. Ketika nilai variabel tersebut didapat dari sebuah komputasi, perhitungan tidak

perlu dilakukan di dalam blok masing-masing kondisi.

Bentuk umumnya sama seperti statement if-else biasa, yang berbeda adalah penggunaan dari

nilai variabelnya saja.

Contoh Program :

Pada variabel percent nilainya didapat dari hasil perhitungan, dan hanya bisa digunakan pada

deretan blok seleksi kondisi itu saja. Deklarasi variabel temporary hanya bisa dilakukan

melalui metode type inference, yaitu menggunakan tanda :=. Penggunaan kata kunci var tidak

diperbolehkan karena akan menyebabkan error.

3.2.3 Seleksi Kondisi Menggunakan Kata Kunci switch - case

Switch merupakan seleksi kondisi yang sifatnya fokus pada satu variabel, lalu kemudian

dicek nilainya. Perlu diketahui, switch pada pemrograman Go memiliki perbedaan dibanding

Page 46: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 46

bahasa lain. Pada pemrograman Go, ketika sebuah case terpenuhi, tidak akan dilanjutkan ke

pengecekkan case selanjutnya, meskipun tidak ada kata kunci break. Konsep ini berkebalikan

dengan switch pada umumnya, yaitu ketika sebuah case terpenuhi, maka akan tetap dilanjut

untuk mengecek case selanjutnya kecuali jika ada kata kunci break.

Bentuk umum :

Contoh program :

Pada kode di atas, tidak terdapat kondisi atau case yang terpenuhi karena nilai variabel point

tetap/konstanta sama dengan 6. Ketika hal seperti ini terjadi, blok kondisi default akan

dipanggil. Bisa dikatakan bahwa default merupakan else dalam sebuah statement switch.

3.2.4 Pemanfaatan case untuk Banyak Kondisi

Sebuah case dapat menampung banyak kondisi. Cara penerapannya yaitu dengan

menuliskan nilai pembanding-pembanding variabel yang dilakukan switch setelah kate kunci

case dipisah oleh tanda koma ( , ).

Switch var{ case nilai1 :

statement case nilai n :

statement default :

statement }

Page 47: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 47

Bentuk umum :

Contoh program :

Pada program diatas, kondisi case 7, 6, 5, 4: akan terpenuhi ketika nilai variabel point adalah

7 atau 6 atau 5 atau 4, selain itu maka akan diteruskan pada statemen default.

3.2.5 Kurung Kurawal Pada Kata Kunci case dan default

Tanda kurung kurawal ( { } ) dapat diterapkan pada kata kunci case dan default . Tanda

kurung kurawal ini bersifat opsional, dapat digunakan juga dapat tidak digunakan. Baiknya jika

dipakai pada blok kondisi yang didalamnya terdapat banyak statement, maka kode akan terlihat

lebih rapih dan mudah dilakukan perawatan.

Bentuk umumnya sama seperti statement switch case biasa, yang berbeda adalah

penggunaan dari statement default -nya saja.

Switch var{ case nilai1 :

statement case nilai 2,3,4,5,dst :

statement default :

statement }

Page 48: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 48

Contoh program :

Perhatikan kode program diatas, dapat dilihat pada kata kunci default terdapat kurung kurawal

yang mengapit 2 statement didalamnya.

3.2.6 Switch Dengan Gaya if - else

Salah satu hal unik pada pemrograman Go yaitu, statement switch dapat digunakan

dengan gaya seperti statement if-else. Nilai yang akan dibandingkan tidak dituliskan setelah

kata kunci switch, melainkan akan ditulis langsung dalam bentuk perbandingan dalam kata

kunci case.

Bentuk umum :

var nama_var Switch{ case nama_var:

statement case (kondisi)

statement default :

statement }

Page 49: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 49

Contoh program :

Pada kode program di atas, kode program switch diubah ke dalam gaya if-else. Variabel point

dihilangkan dari kata kunci switch , lalu kondisi-kondisinya dituliskan pata setiap case.

3.2.7 Penggunaan Kata Kunci fallthrough dalam statement switch

Seperti yang sudah dijelaskan sebelumnya, bahwa konsep switch pada pemrograman

Go memiliki perbedaan dengan bahasa lain. Ketika sebuah case terpenuhi, pengecekkan

kondisi tidak akan diteruskan pada case-case setelahnya. Untuk mengantisipasi agar

pengecekan diteruskan pada case selanjutnya, maka dibutuhkan kata kunci fallthrough untuk

memaksa proses pengecekkan diteruskan pada case selanjutnya.

Bentuk umum :

var nama_var Switch{ case nama_var:

statement case (kondisi)

statement fallthrough

default : statement

}

Page 50: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 50

Contoh program :

Pada program diatas, setelah melakukan pengecekkan case (point < 8) && (point > 3) selesai,

maka akan dipaksa dilanjut ke pengecekkan case point < 5 , karena terdapat statement

fallthrough.

3.2.8 Seleksi Kondisi Bersarang

Seleksi kondisi bersarang merupakan seleksi kondisi yang berada didalam seleksi

kondisi lain, yang mungkin juga berada dalam seleksi kondisi lain, dan seterusnya. Seleksi

kondisi bersarang bisa dilakukan pada statement if - else, switch, ataupun kombinasi keduanya.

Page 51: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 51

Bentuk umum :

var nama_var If kondisi{

Switch nama_var{ case nama_var:

statement default :

statement }

} Else { If kondisi{

statement } Else If kondisi{

statement } Else { statement If kondisi{ statement } } }

Page 52: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 52

Contoh program :

Pada program diatas, terdapat dua statement kondisi yang dikombinasikan untuk menyeleksi

nilai dari variabel point.

Page 53: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 53

Struct, Pointer, Slice dan Map Menggunakan Bahasa Pemrograman Go

Objektif :

• Mahasiswa dapat memahami konsep penggunaan struct, pointer, slice dan map

• Mahasiswa dapat memahami hubungan antara struct dan pointer.

• Mahasiswa dapat memahami hubungan slice dan map.

4.1 Pointer

Pointer adalah sebuah variabel yang nilainya berisi alamat memori dari variabel lain. Dalam bahasa pemrograman Golang pendeklarasian sebuah pointer ditandai dengan * (asterik) yang diikuti oleh tipe data dari variabel tersebut, contoh:

Pada Golang untuk mengambil alamat memori dari sebuah variabel dapat menggunakan tanda & (ampersand) yang diletakkan sebelum nama dari variabel (dalam notasi heksadesimal), contoh:

4

Page 54: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 54

Sedangkan untuk mengambil atau mengubah nilai dari pointer dapat menggunakan tanda * (asterik) yang diletakkan sebelum nama dari variabel, contoh:

4.2 Struct

Struct pada Golang digunakan untuk menyimpan beberapa properti atau fungsi dalam 1 wadah. Struct sering digunakan dalam pembuatan skema database, skema JSON, skema XML, dll. Untuk mendeklarasikan sebuah struct dapat menggunakan keyword type diikuti nama dari struct tersebut dan keyword struct pada Golang, contoh:

Pada gambar di atas, struct Mahasiswa memiliki 3 buah properti yaitu NPM bertipe string, Nama bertipe string, dan Umur bertipe unsigned integer (bilangan cacah, 0, 1, 2, 3, …, dst).

Page 55: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 55

Inisialisasi struct

Inisialisasi struct pada Golang dapat dilakukan dengan 4 cara, diantaranya:

1. Menggunakan keyword var, cara akan ini membuat sebuah variabel lokal dengan nilai default pada setiap properti sama dengan kosong (0 untuk int, 0.0 untuk float, “” untuk string, nil untuk pointer, dst), contoh:

2. Menggunakan fungsi new, cara ini akan mengalokasikan memori dan mengembalikan nilai bertipe pointer dengan nilai default pada setiap propertinya sama dengan kosong (0 untuk int, 0.0 untuk float, “” untuk string, nil untuk pointer, dst), contoh:

Page 56: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 56

3. Memberikan nilai diikuti dengan nama dari properti tersebut, cara ini dapat dilakukan saat pendeklarasian sebuah struct. Urutan properti pada pendeklarasian struct tidak akan mempengaruhi proses pendeklarasian, contoh:

4. Jika urutan properti sudah diketahui, nama properti dapat dihilangkan pada saat pendeklarasian struct, contoh:

Page 57: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 57

Urutan properti perlu diperhatikan pada saat menggunakan cara di atas, dikarenakan Golang akan memasukkan nilai ke dalam properti sesuai dengan urutan, berikut adalah contoh urutan yang salah:

Page 58: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 58

Pengisian Nilai Struct

Pengisian sebuah nilai struct dapat dilakukan dengan cara mengakses properti struct terlebih dahulu. Pengaksesan properti pada struct menggunakan . (dot) yang diikuti oleh nama instance dan nama properti dari struct tersebut, contoh:

Embedded struct

Embedded struct adalah sebuah struct yang diletakkan di dalam sebuah struct lain. Struct jenis ini merepresentasikan sebuah hubungan pada struct, contoh:

Page 59: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 59

Pada contoh di atas, struct Mahasiswa memiliki relasi one-to-one terhadap struct StudentSite. Karena satu mahasiswa memiliki satu akun studentsite. Untuk mendefinisikan bahwa kedua struct tersebut saling berhubungan diperlukan sebuah field yang menjembatani kedua struct tersebut, dalam hal ini field AkunStudentSite pada struct Mahasiswa.

4.3 Slice

Pengenalan Slice

Slice adalah reference/referensi elemen array, jika suatu array pada dasarnya sudah

memiliki ukuran yang tetap, berbeda dengan slice yang ukurannya dapat secara dinamis dan

mengacu secara fleksibel kepada elemen sebuah array. Slice dapat dibentuk, atau bisa

dihasilkan dari suatu manipulasi sebuah array atau slice lainnya, perubahan pada data di setiap

elemen slice dapat berdampak pada slice lain yang memiliki alamat memori yang sama.

Inisialisasi Slice

Pembuatan slice memilki cara yang hampir sama seperti pembuatan array, namun

terdapat perbedaan saat melakukan pendefinisian jumlah elemen awal deklarasi. Berikut adalah

contoh pembuatan slice.

Output dari kode diatas akan menampilkan isi dari slice dengan indeks pertama yaitu

dbms.

Nilai Dasar Pembentukan Slice

Seperti yang sudah dijelaskan sebelumnya, slice dapat dibentuk dari array yang sudah

didefinisikan, dengan teknik 2 indeks untuk mengambil elemen-elemennya. Berikut adalah

contoh pembentukan slice dari array.

Berdasarkan kode diatas, variabel baru bernama kursus_saya akan mengambil isi dari

variabel kursus yang dimulai dari indeks ke-0 hingga elemen sebelum indeks ke-3. Berikut

beberapa contoh dari pembentukan slice.

Page 60: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 60

Tabel 4.1 Contoh Pembentukan Slice

Kode Output Penjelesan

kursus[0:2] [dbms, erp] Dimulai dari elemen indeks ke-0 sampai sebelum indeks ke-1

kursus[0:6] [dbms, erp, server-os, networking, desktop, web]

Diulai dari elemen indeks ke-0 sampai sebelum indeks ke-6

kursus[0:0] [] Dimulai dari elemen indeks ke-0 sampai sebelum indeks ke-0, akan menghasil kan slice kosong

kursus[6:6] [] Dimulai dari elemen indeks ke-6, akan mengahasilkan slice kosong

kursus[:] [dbms, erp, server-os, networking, desktop, web]

Mengambil seluruh elemen

kursus[2:] [server-os, networking, dekstop, web]

Mengambil seluruh elemen dimulai dari indeks ke-2

kursus[:2] [dbms, erp] Mengambil seluruh elemen sampai elemen sebelum indeks ke-2

Seperti dijelaskan sebelumnya bahwa slice merupakan tipe data reference atau referensi, jika

suatu slice dibentuk dari slice lainnya maka data elemen slice yang baru akan memiliki alamat

memori yang sama dengan slice yang lama. Perubahan pada slice baru tersebut akan

mempengaruhi slice yang lama, untuk lebih jelasnya dapat dilihat pada contoh di bawah.

Selain pembentukan slice dengan teknik 2 indeks, pembentukan slice dapat dilakukan dengan

teknik 3 indeks. Teknik ini digunakan ketika ingin menentukan kapasitas dari slice yang baru

ketika dibentuk, namun nilai dari kapasitas slice yang akan dibentuk tidak boleh melebihi

Page 61: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 61

kapasitas slice yang akan di slicing. Berikut contoh penggunaan dari slice dengan teknik 3

indeks.

Membuat Slice Dengan Make

Selain cara diatas, suatu slice dapat juga dibentuk dengan menggunakan keyword make,

pembuatan slice dengan keyword make ini akan membuat suatu array yang dinamis. Pada

contoh dibawah mungkin tidak akan terlihat perbedaanya dengan array pada umumnya, namun

akan terlihat ketika kode yang akan digunakan lebih kompleks.

Fungsi Dalam Slice

Seperti hal nya dalam array, terdapat fungsi-fungsi dasar yang dapat dioperasi kan dalam

penggunaan slice, yaitu sebagai berikut :

1. Fungsi len()

Fungsi len() digunakan untuk menghitung jumlah elemen dari suatu slice. Berikut adalah

contoh dari fungsi len().

2. Fungsi cap()

Fungsi cap() digunakan untuk menghitung kapasitas maksimum yang tersedia dalam suatu

slice, nilai fungsi cap() akan memiliki nilai seperti fungsi len() ketika pertama dibuat, namun

dapat berubah seiring terjadinya operasi slice. Berikut adalah contoh dari fungsi cap().

Page 62: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 62

Dapat dilihat diatas pada saaat pembuatan slice pertama kali akan menghasilkan nilai cap()

sama seperti nilai len(), lalu saat membuat slice baru dengan indeks [0:3] atau dimulai dari

indeks ke-0 sampai indeks sebelum ke-3, nilai cap tetap 6 dikarenakan pada saat pengambilan

indeks dimulai dari 0 tidak terjadi perubahan pada indeks pertamanya, lain hal dengan

pembuatan slice berikutnya dengan indeks [1:3] atau dimulai dari indeks ke-1 sampai indeks

sebelum ke-3, nilai cap berubah menjadi 5 dikarenakan saat pengambilan indeks dimulai dari

indeks ke-1, maka terjadi perubahan pada indeks pertamanya yang berarti indeks ke-0 sudah

dihilangkan, oleh karena itu nilai kapasitasnya berkurang.

Fungsi Append()

Fungsi append() digunakan untuk menambahkan elemen pada slice. Elemen yang baru

ditambahkan akan di posisikan setelah indeks paling akhir. Dan nilai balik dari append() adalah

slice yang sudah ditambahkan nilai baru. Berikut adalah contoh penggunaan append().

Nilai kosong dari suatu slice adalah nil. Nilai len() dan cap() dari slice nil

adalah 0.

Page 63: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 63

Dalam penggunaan append() terdapat beberapa yang harus diperhatikan, yaitu:

a. Append() akan membuat referensi baru ketika nilai dari kapasitas (cap) sama dengan jumlah

elemen (len).

b. Append() akan mengisi kapasitas yang tersedia ketika nilai kapasitas (cap) lebih besar dari

pada (len), dan akan merubah nilai referensi slice yang berhubungan.

Berdasarkan contoh gambar ditatas dapat diperhatikan ketika slice kursus_saya melakukan

operasi append() dengan nilai data yang dimasukan adalah “manajemen-tik”, dikarenakan

nilai kapasitas lebih besar dari pada jumlah elemen, maka elemen yang ditambah akan

memasuki elemen yang kosong, yaitu elemen terakhir atau indeks ke-3, seperti penjelasan

diatas ketika melakukan append() maka nilai referensi slice yang berhubungan dengan slice

tersebut akan ikut berubah, dapat dilihat pada gambar diatas baris ke 9, bahwa slice kursus

merubah indeks ke-3 (networking) dengan manajemen tik.

3. Fungsi Copy()

Fungsi copy() digunakan untuk menduplikasi elemen slice pada parameter ke-2 untuk

parameter ke-1, nilai balik dari fungsi copy() adalah jumlah nilai yang berhasil di duplikasi.

Berikut contoh penggunaan fungsi copy().

Pada contoh diatas slice kursus_beginner akan diduplikasi untuk slice kursus. Nilai kapasitas

dari slice kursus adalah 5 elemen, dan nilai kapasitas dari slice kursus_beginner adalah 6

elemen, ketika dilakukan fungsi copy() dari parameter ke-2 (kursus_beginner) untuk

parameter ke-1 (kursus) akan menghasilkan nilai balik 5, dikarenan jumlah dari kapasitas slice

kursus hanya 5 walaupun nilai kapasitas yang diduplikasi dari kursus_beginner adalah 6.

Page 64: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 64

4.4 Map Pengenalan Map

Map adalah tipe data asosiatif yang ada di Golang, berbentuk key-value . Untuk setiap

data (atau value ) yang disimpan, disiapkan juga key-nya. Key memiliki sifat unik, karena

digunakan sebagai penanda (atau identifier) untuk pengaksesan value yang bersangkutan.

Kalau dilihat, map mirip seperti slice, hanya saja indeks yang digunakan untuk pengaksesan

bisa ditentukan sendiri tipe-nya (indeks tersebut adalah key)

Inisialisasi Map

Pembentukan Map dapat dilakukan dengan keyword map serta diikuti dengan tipe data

key dan value -nya. Berikut adalah contoh pembentukan suatu map .

Pada contoh diatas dibentuk suatu map dengan tipe data key-nya adalah integer dan

tipe data value -nya adalah string. Pada dasarnya nilai suatu map adalah nil atau kosong, lalu

untuk melakukan penge-set-an pada suatu map dapat dilakukan dengan menggunakan key

yang diikuti kurang kotak berserta value yang ingin dimasukan, seperti contoh pada gambar

diatas baris ke 3. Pengambilan value pada suatu map dapat dilakukan hanya dengan keyword

map diikuti dengan key dari value yang ingin diambil, pengambilan value yang dimana key-

nya tidak terdaftar dalam map akan memberikan nilai default dari tipe data value tersebut.

Pada contoh gambar diatas baris ke 6, map sesi tidak memiliki key 0 sehingga ketika key 0

dipanggil akan mengeluarkan string kosong, hal ini berdasarkan nilai default dari tipe data

string.

Terdapat cara lain untuk melakukan penge-set-an suatu nilai map, yaitu dengan cara

memasukan semua nilai yang ingin dimasukan dalam kurung kurawal, seperti contoh pada

gambar dibawah ini.

Page 65: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 65

Key dan value dituliskan dengan pembatas tanda titik dua ( : ). Sedangkan tiap itemnya

dituliskan dengan pembatas tanda koma ( , ).

Tipe data value dari suatu map tidak hanya dapat digunakan untuk tipe data primitive saja

namun dapat pula digunakan pada tipe data seperti struct dan slice, berikut adalah contoh

penggunaannya.

• Penggunaan Map dengan Struct

Bagian ini tidak akan dijelaskan kembali cara membuat suatu struct karena sudah dibahas

pada bagian sebelumnya. Pada contoh diatas map dibuat dengan tipe data key berupa string

dan tipe data value nya adalah sebuah struct Kursus berisi variabel sesi ber tipe data integer

dan variabel materi ber tipe data string.

Page 66: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 66

• Penggunaan Slice dengan Map

Pada contoh diatas variabel Kursus memiliki tipe data slice yang dimana memiliki

value ber tipe data map. Untuk inisialisasi setiap value dari slice dilakukan seperti inisialisasi

menggunakan map, dapat dilihat pada baris 2, 3, dan 4. Setiap inisialisasi yang dilakukan sama

seperti insialisasi pada map, lalu untuk megambil data dari variabel Kursus tersebut dapat

dilakukan dengan cara mengambil indeks ke-berapa dari slice tersebut lalu diikuti key dari map

tersebut, seperti contoh pada baris ke-7 dilakukan pengambilan data pada indeks slice ke-0 dan

diikut dengan mengambil value dari key kursus dan key sesi, selain itu dapat pula diambil

datanya menggunakan for := range yang sudah dibahas pada bagian perulangan sebelumnya.

Menghapus Item Map

Untuk menghapus suatu item dalam variabel map dapat menggunakan fungsi delete().

Penggunaan fungsi ini dapat digunakan dengan memasukan objek map dan key item yang ingin

dihapus sebagai parameter fungsi ini. Berikut adalah contoh penggunaan fungsi delete().

Menguji Keberadan Suatu Item Key Dalam Map

Pada pembahasan sebelumnya, jika suatu key yang tidak terdapat dalam map diakses maka

nilai yang akan dikeluarkan adalah nilai default dari tipe data value variabel map tersebut.

Untuk mencegah mengeluarkan nilai default, golang menyediakan suatu fungsi untuk

Page 67: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 67

mengatahui apakah dalam sebuah variabel map tersebut terdapat item dengan key tertentu,

yaitu dengan memanfaatkan 2 variabel untuk menampung nilai pengaksesan item. Variabel ke-

2 akan berisikan nilai bool yang menunjukan ada tau tidak item yang dicari. Berikut adalah

contoh variable map :

Pada contoh diatas variabel nilai bertugas menampung isi dari map sesi dengan key 1,

dan variabel status akan terisi dengan bool(true) jika ditemukan key tersebut dan bool(false)

jika tidak ditemukan.

Page 68: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 68

Polymer : Installasi, Running Staterkit

Objektif :

• Mahasiswa dapat mengenal material design Polymer Project

• Mahasiswa dapat melakukan instalasi Polymer Project

• Mahasiswa dapat menjalankan Polymer starter kit

5.1 Pengenalan Polymer Project

Polymer Project milik Google adalah sebuah framework dan perwujudan dari Material

Design mereka untuk web. Saat ini Polymer Project sudah mencapai versi 3.0 dengan semakin

banyaknya fitur dan pengembangan di dalamnya. Framework ini sudah support berbagai

browser modern seperti IE(10+), Chrome, Safari dan Firefox.

Pengembangan Polymer dimulai pada 14 November 2013 dengan merilis sebuah

Polyfill. Project ini terus berkembang menjadi sebuah perpustakaan desain web yang meliputi

pedoman gaya visual (melalui Material Design), data binding, dan sejumlah komponen web

"Core" dan "Paper". Komponen Core awalnya direncanakan akan mencakup fungsi generik

yang akan menjadi penting untuk sebagian besar situs, sementara komponen Paper

dimaksudkan untuk menyediakan komponen yang lebih khusus dengan konsep Material

Design yang membentuk bagian penting dari desain-desainnya.

Sebuah tonggak utama dicapai dengan merilis versi 0.5, yang dianggap sebagai versi

pertama dari proyek ini dan siap digunakan oleh pengadopsi awal. Akhirnya pada 29 Mei 2015

Google merilis Polymer 1.0. Versi 1.0 secara signifikan meningkatkan kinerja Polymer,

mengurangi beban hingga 7 kali lipat. Dengan versi 1.0 Google membagi elemen dari proyek

Polymer dan membedakan katalog elemen dari Polymer polyfill & webcomponents-sugaring.

5.1.1 Kelebihan Polymer Project

1. Memungkinkan kita untuk membuat Custom Elements yang ditawarkan web

component. Custom element ini bisa kita beri nama sendiri dan dapat digunakan

lagi untuk sendiri ataupun dapat didistribusikan ke pengembang lain.

5

Page 69: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 69

2. Membuat template dengan gaya dan aksi yang sesuai kepeluan kita.

3. Menyediakan elemen UI dan non UI siap pakai yang desainnya sama dengan

material desain android L.

5.2 Instalasi Polymer Project

Untuk dapat meng-install Polymer Project cara yang digunakan adalah dengan

menggunakan bower. Sebelum itu dibutuhkan NodeJS dan git yang dibutuhkan untuk proses

instalasi.

5.2.1 Instalasi git

Git adalah salah satu sistem pengontrol versi (Version Control System) pada proyek

perangkat lunak yang diciptakan oleh Linus Torvalds. Pengontrol versi bertugas mencatat

setiap perubahan pada file proyek yang dikerjakan oleh banyak orang maupun sendiri. Git

dikenal juga dengan distributed revision control (VCS terdistribusi), artinya penyimpanan

database Git tidak hanya berada dalam satu tempat saja.

Gambar 5.1 Ilustrasi git

Semua orang yang terlibat dalam pengkodean proyek akan menyimpan database Git,

sehingga akan memudahkan dalam mengelola proyek baik online maupun offline. Dalam Git

terdapat merge untuk menyebut aktifitas penggabungan kode.

Selain itu, berikut ini ada beberapa menfaat dari Git.

Page 70: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 70

1. Dapat menyimpan seluruh versi source code;

2. Dapat memahami cara kolaborasi dalam proyek;

3. Dapat ikut berkontribusi ke poryek open-source;

4. Lebih aman digunakan untuk kolaborasi, karena kita bisa tahu apa yang diubah dan

siapa yang mengubahnya;

5. Dapat memahami cara deploy aplikasi modern;

6. Dapat membuat blog dengan SSG.

Tahap Instalasi

File instalasi git dapat diunduh melalui https://git-scm.com/ yang tersedia untuk

platform Windows, macOS dan Linux. Setelah mengunduh file tersebut dapat mengikuti

tahapan instalasi pada penjelasan berikutnya.

Gambar 5.2 Halaman awal web git

Windows

Berikut ini adalah tahapan instalasi git pada sistem operasi Windows yaitu :

1. Pada tahapan instalasi tidak ada yang berbeda dengan tahapan pada umumnya. Silahkan

jalankan file unduhan untuk memulai instalasi git.

Page 71: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 71

2. Tekan tombol Next untuk melanjutkan setiap tahapan yang tampil, pilih lokasi yang akan

digunakan untuk instalasi git klik Next untuk melanjutkan.

Gambar 5.3 Folder tujuan instlasi git

3. Setelah memilih folder lokasi instalasi git, klik Next untuk melanjutkan proses

instalasi. Klik Install untuk melakukan instalasi.

Gambar 5.4 Proses instalasi git

4. Tunggu hingga proses instalasi selesai, setelah itu klik Finish.

Gambar 5.5 Memulai instalasi git pada windows

Page 72: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 72

5.2.2 Instalasi NodeJS

Node.js adalah perangkat lunak yang didesain untuk mengembangkan aplikasi berbasis

web dan ditulis dalam sintaks bahasa pemrograman JavaScript. Bila selama ini kita mengenal

JavaScript sebagai bahasa pemrograman yang berjalan di sisi client / browser saja, maka

Node.js ada untuk melengkapi peran JavaScript sehingga bisa juga berlaku sebagai bahasa

pemrograman yang berjalan di sisi server, seperti halnya PHP, Ruby, Perl, dan sebagainya.

Node.js dapat berjalan di sistem operasi Windows, Mac OS X dan Linux tanpa perlu ada

perubahan kode program. Node.js memiliki pustaka server HTTP sendiri sehingga

memungkinkan untuk menjalankan server web tanpa menggunakan program server web seperti

Apache atau Nginx.

Tahapan Instalasi

File instalasi NodeJS dapat diunduh melalui https://nodejs.org/en/ yang tersedia untuk

platform Windows, macOS dan Linux. Setelah mengunduh file tersebut dapat mengikuti

tahapan instalasi pada penjelasan berikutnya.

Gambar 5.6 Halaman web NodeJS

Windows

Berikut ini adalah tahapan instalasi NodeJS pada sistem operasi Windows yaitu :

1. Pada tahapan instalasi tidak ada yang berbeda dengan tahapan pada umumnya. Silahkan

jalankan file unduhan untuk memulai instalasi NodeJS.

2. Tekan tombol Next untuk melanjutkan setiap tahapan yang tampil.

Page 73: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 73

Gambar 5.7 Tahap instalasi NodeJS

3. Pada langkah berikutnya adalah menentukan letak folder tujuan instalasi disimpan,

folder instalasi baku yang diarahkan ada pada C: \Program Files\nodejs seperti terlihat

pada gambar 1.3.

Gambar 5.8 Folder tujuan instalasi NodeJS

Page 74: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 74

4. Untuk memilih Custom Setup yang diinginkan klik tombol Next. Untuk melanjutkan

klik tombol Install.

Gambar 5.9 Memilih Custom Setup NodeJS

5. Setelah itu tunggu hingga proses instalasi selesai lalu klik Finish.

Gambar 5.10 Proses instalasi NodeJS pada windows

5.2.3 Instalasi Polymer dengan bower

Ada 2 cara yang bisa digunakan untuk instalasi polymer, yaitu melalui Bower atau

download file ZIP secara manual. Bower adalah sebuah Package Manager untuk library web,

mirip dengan Composer untuk mendownload beberapa komponen dari proyek polymer

termasuk beberapa library pihak ketiga yang dibutuhkan, Anda juga dapat mendownload

library lain menggunakan bower. Pada pembahasan ini akan dijelaskan instalasi Polymer

dengan Bower.

Tahap

1. Buka gitbash lalu ketikan $ npm install -g bower untuk menginstal bower.

Page 75: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 75

Gambar 5.11 Instalasi bower menggunakan git

2. Setelah bower berhasil di-install lakukan kembali instalasi Polymer CLI

Gambar 5.12 Instalasi Polymer CLI

3. Setelah berhasil, tahap selanjutnya adlalah meng-install Polymer Project. Untuk versi

yang digunakan adalah Polymer 2.0

Gambar 5.13 Instalasi Polymer versi 2.0

5.3 Memulai Starter Kit dengan Polymer

Setelah semua berhasil diinstal coba dengan membuat directory baru lalu yang akan

digunakan. Lalu buka git dan ketikan polymer init untuk mengunduh template polymer yang

akan digunakan.

Gambar 5.14 Tahapan instalasi Starterkit

Page 76: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 76

Akan muncul tampilan opsi untuk memilih template, pada materi ini Polymer yang

digunakan adalah versi 2 dan yang template yang akan digunakan adalah adalah starter kit.

Sehingga pilih nomor 6. Seperti yang terdapat pada gambar 5.14.

Untuk template yang lain adalah :

• element : template kosong untuk membat elemen.

• application : template aplikasi kosong.

• shop : template toko online.

Gambar 5.15 Instalasi Starter kit

Secara otomatis akan terunduh file dan package ke dalam directory yang telah dibuat

sebelumnya. Seluruh komponen web yang telah diunduh akan tersimpan dalam direktori

bower_components.

Page 77: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 77

Gambar 5.16 File dan package yang telah diunduh

5.4 Menjalankan Starter Kit

Untuk menyalakan server gunakan polymer serve pada command, maka file yang

berada di bawah directory tadi dapat diakses dengan menggunakan web server.

Gamnbar 5.17 Menjalankan web server

Kemudian jalankan server, lalu buka http://localhost:8081/ pada web browser, akan tampil

seperti terlihat pada gambar 5.18.

Page 78: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 78

Gambar 5.18 Tampilan dasar web starter kit

Page 79: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 79

Polymer : Struktur folder dan Layout

Objektif :

• Memahami struktur foder Polymer

• Memahami layout Polymer

6.1 Struktur folder Polymer Polymer merupakan salah satu webcomponent yang dimiliki Google. Webcomponent

adalah kumpulan fitur pada web browser yang memungkinkan untuk membuat widget (atau

yang lebih dikenal dengan istilah component) dalam pengembangan web. Layaknya konsep

plugin pada wordpress atau CMS serupa, component ini siap dipakai ulang pada halaman

HTML manapun tanpa memerlukan library atau framework tambahan..

Sebagai sebuah webcomponent, Struktur folder pada Polymer sendiri terdiri dari

beberapa directory, antara lain : bower_components, images, node_modules, src, dan test.

Gambar 6.1 Struktur folder pada Polymer Starter kit

6

Page 80: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 80

1. Folder bower_components

Folder bower_components adalah folder yang terbentuk setelah menginstall beberapa

package, Bower akan membuat sebuah diretory baru dengan nama bower_components

dimana semua package yang diinstall akan berada di dalamnya. Misalnya jika

menginstall bower di sebuah diretory dengan nama contoh maka susunan directory akan

menjadi seperti berikut:

Gambar 6.2 Directory bower_components

Pada directory bower_components ini komponen web berada, baik komponen web

yang sudah ada maupun komponen web yang akan ditambahkan.

2. Folder images

Folder images berisi semua gambar yang digunakan pada polymer.

Gambar 6.3 Directory images

Page 81: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 81

3. Folder node_modules

Folder node_modules adalah directory untuk module node yang telah diinstall melalui

npm.

Gambar 6.4 Directory node_modules

4. Folder src

Dalam folder src inilah aplikasi yang akan buat nanti berada. Semua halaman web yang

dibuat berada di sini.

Gambar 6.5 Directory src

Page 82: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 82

5. Folder test

Secara default polymer sudah menyediakan library-library yang dibutuhkan untuk

dapat melakukan unit testing. Direktori ini berfungsi untuk menyimpan seluruh file test

yang dibuat untuk kemudian dijalankan.

Gambar 6.6 Directory test

6. File lainnya

a. Bower.json

Bower.json membantu Bower memahami proyek yang dibuat. Bower merekam

meta data seperti nama proyek, versi, pencipta, ijin, dependensi, dan lain-lain.

Sebelumnya, file ini diberi nama component.json, tapi kemudian diubah menjadi

bower.json agar tidak terjadi konflik dengan alat lain yang menggunakan nama file

yang sama.

b. Index.html

Index.html adalah sebuah file yang menjadi indeks sebuah website. File ini

otomatis dibuka saat kita membuka website dengan memanggil nama domain

website. Index html adalah default file dan merupakan file paling penting bagi

website. Tanpa file index.html, jika kita membuka website maka browser akan

menampilkan file-file lain dalam bentuk tampilan folder bukan tampilan website

sesuai design.

c. Manifest.json

Manifest.json adalah JSON sederhana yang memberikan kemampuan untuk

mengontrol bagaimana aplikasi terlihat oleh pengguna sesuai dengan platform

yang digunakan (misalnya layar beranda perangkat seluler dan dekstop),

mengarahkan apa yang bisa diluncurkan pengguna, dan menentukan tampilannya

pada saat peluncuran.

d. Package.json

Page 83: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 83

File ini digunakan oleh npm untuk mengunduh dan memasang library tambahan

yang kita butuhkan dalam aplikasi yang akan kita buat.

e. Polymer.json

File ini digunakan untuk menyimpan informasi tentang struktur proyek, dan

konfigurasi pembangunan yang diinginkan. Ini digunakan oleh Polimer CLI

sebagai cara untuk memahami struktur aplikasi web.

6.2 Layout Polymer

Polymer memungkinkan programer untuk mengimpor layout pada komponen yang

terdapat pada file .html yang terpisah. Contoh sederhananya, misal programer punya banyak

aplikasi web yang dibangun dengan framework yang berbeda-beda. Dengan satu codebase

HTML yang sama programer bisa membuat sebuah footer menjadi component, sehingga footer

tersebut dapat dipasang di semua aplikasi web kita menggunakan HTML Imports.

Sebagai contoh mengimpor komponen footer :

<link rel="import" href="my-footer.html">

Kemudian memanggilnya dengan Custom Element yang sudah kita definisikan.

<my-footer></my-footer>

Tidak hanya footer, component bisa saja berupa datepicker, login modal, ads banner,

custom button bahkan proses autentifikasi single sign on. Banyak hal, baik komponen visual

maupun non-visual. Setiap component tidak harus memiliki UI karena sebuah template

umumnya terdiri dari blok HTML, CSS dan JS. Bisa saja isinya hanya berupa blok javascript.

Polymer juga dapat melakukan impor komponen secara banyak secara bersamaan.

Gambar 6.7 Impor komponen pada polymer

Page 84: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 84

6.2.1 Fitur pada webcomponents Polymer

Web components itu terdiri dari 4 fitur, yaitu:

1. HTML Imports, untuk menggunakan ulang dokumen HTML di dokumen HTML yang

lain.

2. Custom Element, untuk membuat tag HTML kita sendiri.

3. HTML Template, untuk menyimpan subkonten yang dirender saat runtime. Terdiri

dari Blok HTML, CSS dan JS.

4. Shadow DOM, untuk mengenkapsulasi DOM (termasuk style / css)

sebuah component.

Contoh Kode Sederhana untuk Membuat Sebuah Component

• Contoh index.html :

Gambar 6.8 Index.html pada webcomponent

Page 85: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 85

• Contoh my-footer.html

Melakukan impor untuk file my-footer.html lalu memanggilnya dalam tag <body></body>.

Gambar 6.8 my-footer.html

Template my-footer.html menyimpan subkonten yang dirender saat runtime yang terdiri dari Blok HTML, CSS dan JS.

1. HTML Import

Yang perlu diperhatikan pada kode diatas adalah pengunaan attributeid="my-

footer-link"pada baris<link id="my-footer-link" rel="import"

href="my-footer.html"> untuk mengidentifikasi DOM. Karena pengambilan

template membutuhkan fungsi import pada node tersebut. Lihat

document.querySelector('#my-footer-link').import.

Page 86: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 86

2. Custom Element

Spesifikasi terbaru saat ini adalah Custom Elements v1. Dimana definisi custom elemen

berupa class yang mengekstensi elemen lainclass MyFooter extends HTMLElement

dan di register dengan formatwindow.customElements.define([nama elemen],

[nama class]).Dengan aturan penamaan [nama elemen] harus kebab-case dan [nama

class] harus CamelCase.

3. HTML Template

Blok HTML dan CSS yang berada di dalam tag <template></template>

merupakan HTML Template yang kemudian akan dienkapsulasi di dalam Shadow DOM.

4. Shadow DOM

Bagian selanjutnya adalah tentang Shadow DOM. Kuncinya ada pada kode

this.attachShadow({mode: 'open'}).Thispada baris tersebut adalah node dari elemen

<my-footer></my-footer>. Dengan perintah attachShadow maka shadow root

akan di-inject di dalam node my-footer. Kemudian baris ini

.appendChild(document.importNode(template.content, true)) akan

menambahkan semua DOM (blok HTML dan CSS) yang ada pada tag

<template></template>berada di bawah Shadow DOM milikmy-footer.

Kelebihan menggunakan Shadow DOM adalah enkapsulasi. Artinya semua behaviour

(termasuk<style></style>yang berisi CSS) milik node yang berada di dalam Shadow

Root tidak akan berpengaruh ke luar node lain.

Page 87: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 87

Polymer : Client Side Routing pada Polymer

Objektif :

• Memahami konsep client side routing pada Polymer

• Memahami penggunaan app-location, app-route, iron-page pada Polymer

• Memahami fungsi-fungsi yang digunakan dalam perpindahan halaman pada

Polymer

7.1 Client Side Routing

Routing adalah mekanisme di mana sebuah request (URL atau HTTP method) akan ditangani

oleh kode program pada route tersebut. Client side routing mirip seperti server side routing.

Hanya saja jika pada server side routing didefinisikan pada sisi back-end (Golang, PHP, Ruby,

Python, dll), sedangkan client side routing didefinisikan pada sisi front-end (Javascript).

Routing pada polymer menggunakan 3 elemen utama, yaitu <app-location>, <app-route>,

dan <iron-pages>.

1. <app-location>, adalah elemen yang menyediakan sinkronisasi antara browser

location dengan state dari aplikasi yang dibuat. Ketika aplikasi berjalan, secara otomatis

‘app-location’ akan mengamati perubahan nilai dari browser location. Jika browser

location berubah, ‘app-location’ akan mengupdate sebuah objek dengan nama ‘route’.

Objek ini nantinya akan digunakan oleh ‘app-route’ atau elemen lain.

2. <app-route>, pada gambar di bawah, 'app-location' akan menghasilkan sebuah nilai

berupa 'route'. Lalu, nilai dari properti 'route.path' akan dibandingkan dengan nilai dari

properti 'pattern'. Jika sesuai, 'app-route' akan mengubah nilai dari properti 'data' sesuai

7

Page 88: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 88

dengan nilai pada properti 'pattern'. Jika, 'route.path' adalah '/home', maka nilai dari

properti 'data' adalah { "page": "home" }

3. <iron-pages>, elemen ini berfungsi untuk menampilkan halaman yang terseleksi.

Pada gambar di atas, terdapat 4 properti pada elemen ‘iron-pages’ di antaranya

‘selected’, ‘attr-for-selected’, ‘fallback-selection’, dan ‘role’.

1. Selected, nilai dari properti akan berubah seiringan dengan berubahnya nilai dari

properti ini (page).

2. Attr-for-selected, properti ini berfungsi memilih atribut apa yang akan dijadikan acuan

saat menampilkan sebuah halaman.

3. Fallback-selection, jika halaman yang dicari tidak dapat ditemukan maka akan

ditampilkan halaman sesuai dengan nilai dari properti ini, dalam hal ini not-found.

4. Role, berfungsi meningkatkan accessibility dari sebuah halaman.

Page 89: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 89

7.2 Perpindahan Lokasi

Untuk berpindah dari satu halaman ke halaman lain pada polymer, anda dapat menggunakan

fungsi ‘history.pushState’ disertai dengan pemanggilan fungsi ‘window.dispatchEvent’,

contoh:

Pada gambar di atas, ketika sebuah halaman berubah, ‘app-location’ akan menjalankan

event ‘location-changed’ pada window objek.

Pada gambar di atas, fungsi ‘observers’ adalah sebuah fungsi yang akan dijalankan

ketika ada perubahan nilai pada suatu properti. Dimana fungsi tersebut akan menjalakan fungsi

‘_routePageChanged’ dengan ‘routeData.page’ sebagai argumen.

Fungsi akan menerima sebuah argumen yaitu ‘page’ di mana nilainya berupa string.

Pada gambar di atas jika ‘this.page’ bernilai kosong maka nilai dari ‘this.page’ adalah ‘home-

page’.

Page 90: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 90

Polymer : Web Server, JSON, Polymer Menggunakan Bahasa Pemrograman Go

Objektif :

• Memahami konsep penggunaan Web Server

• Memahami pembuatan file JSON dengan Golang

• Memahami penggunaan Web Component pada polymer

8.1 Arsitektur Web Server Go

Bahasa pemrograman Go menyediakan package net/http yang berisi berbagai macam fitur untuk keperluan pembuatan aplikasi berbasi web. Termasuk di dalamnya routing, server, templating, dan lainnya. Go memiliki web server sendiri, dan web server tersebut berada di dalam Go, tidak seperti bahasa lain yang servernya terpisah dan perlu di-instal sendiri (seperti PHP yang memerlukan Apache, .NET yang memerlukan IIS). Web Server Go sudah tersedia ketika melakukan instalasi Go pada suatu sistem operasi. Berikut ini adalah cara untuk menjalankan web server golang. :

Gambar 8.1 Web Server Go

Penjelasan Kode :

● Import (“net/http”) Package “net/http” menyediakan berbagai fitur untuk keperluan pembuatan Aplikasi berbasis web.

8

Page 91: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 91

• http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {}) \Merupakan suatu fungsi yang harus tersedia ketika menjalankan web server Go, pada bagian “/” digunakan untuk melakukan modifikasi url ketika menjalan web server Go, jika tanda / diubah menjadi “/belajar” maka url yang semula berupa http://localhost:8085 akan berubah menjadi http://localhost:8085/ belajar.

● http.ListenAndServe(":8085", nil) Digunakan untuk menjalankan web server Go beserta template yang sudah disiapkan sebelumnya, aplikasi Go akan berjalan dengan url http://localhost:8085.

8.2 Menjalankan Web Server Golang Kekuatan super power yang dimiliki Go salah satunya adalah kemudahan dalam

membuat dan menjalankan web servernya. Tidak ada cara khusus untuk menjalankan web server Go, cukup menjalankan file main Go melalui command prompt maka web server tersebut akan secara otomatis ikut berjalan, berikut contoh cara menjalankan dan hasil Output -nya :

Gambar 8.2 Command Prompt

Lalu buka web browser dan ketikan pada url “localhost:8085” sesuai dengan port pada kode yang dibuat, tampilan web dapat dilihat pada Gambar 8.3.

Gambar 8.3 Tampilan Web

8.3 Pembuatan Route dalam Golang Pada bagian sebelumnya sudah dijelaskan cara menjalankan Aplikasi golang dengan

route yang digunakan. Pada sub bab ini akan dibahas lebih men-detail mengenai cara menggunakan route berdasarkan pengembalian respon dalam web server golang, yaitu sebagai berikut :

Page 92: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 92

1. Respon Data Dari Fungsi Route Secara Langsung Kode response yang ingin dikembalikan di tuliskan pada fungsi route yang dideklarasikan secara langsung, contoh dari cara ini dapat dilihat pada Gambar 8.1.

2. Respon Data Menggunakan Fungsi Terpisah Penggunaan cara ini dengan menuliskan kode response pada fungsi yang berbeda dengan fungsi route, cara ini dapat menghasilkan kode yang lebih rapih dan terstruktur, penggunaan cara ini dapat dilihat pada Gambar 8.4.

Gambar 8.4 Respon fungsi terpisah

3. Respon Menggunakan Template Html

Template memberikan kemudahan dalam mendesain tampilan view aplikasi website. Pada Go menyediakan engine template sendiri, dengan banyak fitur yang tersedia di dalamnya. Pada bagian ini akan dibahas contoh sederhana penggunaan template untuk menampilkan data. Hal pertama yang perlu disiapkan dengan membuat template. Buatlah file index. html lalu isi dengan kode seperti gambar 8.5 berikut.

Gambar 8.5 Kode dari index.html

Kode {{.nama }} adalah representasi variabel nama yang dikirim dari route. Kode tersebut nantinya digantikan dengan isi variabel nama. Selanjutnya ubah isi file main.go dengan kode berikut

Page 93: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 93

Gambar 8.6 Main.go

Kemudian jalankan server, lalu buka http://localhost:8081/ pada web browser, maka data nama akan tampil seperti terlihat pada gambar 8.6.

Gambar 8.7 Tampilan Web

Fungsi template. ParseFiles( ) digunakan untuk parsing template, mengembalikan 2 data yaitu instance template-nya dan error (jika ada). Pemanggilan method Execute( ) akan membuat hasil parsing template ditampilkan ke layar web browser.

8.4 JavaScript Object Notation (JSON) JSON memiliki singkatan dari JavaScript Object Notation yang dimana merupakan

sebuah format untuk berbagi data. Seperti dapat kita lihat dari namanya, JSON diturunkan dari bahasa pemrograman javaScript, akan tetapi format ini tersedia bagi banyak bahasa lain termasuk Golang. JSON biasanya dilafalkan seperti nama "Jason.". JSON menggunakan

Page 94: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 94

ekstensi .JSON saat ia berdiri sendiri. Saat didefinisikan di dalam format file lain (seperti di dalam .html), ia dapat tampil didalam tanda petik sebagai JSON string, atau ia dapat dimasukkan kedalam sebuah variabel. Format ini sangat mudah untuk ditransfer antar server web dengan klien atau browser.

Golang menyediakan package encoding/JSON yang berisikan banyak fungsi untuk kebutuhan operasi JSON. Di bagian ini, akan dibahas bagaimana menggunakan operasi Encode & decode suatu JSON/object.

8.4.1 Encode Suatu Object Menjadi JSON

Encode merupakan pengirim mengkodean informasi yang akan disampaikan ke dalam simbol atau isyarat, pada bagian ini akan membahas cara melakukan encode suatu object berupa struct pada golang menjadi JSON, sebelum menggunakan fungsi JSON pada golang diwajibkan terlebih dahulu untuk menambahkan package tambahan pada import, package yang digunakan adalah "encoding/JSON", setelah itu fungsi yang digunakan untuk merubah suatu object menjadi JSON adalah fungsi json.Marshal, fungsi ini tidak hanya dapat merubah suatu variabel object berupa struct namun dapat juga merubah suatu map[string]interface{} atau slice. Berikut adalah contoh merubah suatu data berupa slice dan struct menjadi suatu JSON, dapat dilihat pada Gambar 8.8.

Gambar 8.8 Encode Object to JSON

Page 95: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 95

Pertama deklarasikan terlebih dahulu suatu struct mahasiswa dengan 2 properti yaitu Nama dan Kursus, kedua properti tersebut bertipe data string dengan tambahan nama properti “nama_mahasiswa” dan “kursus_mahasiswa” ketika dilakukan suatu operasi JSON. Kemudian buat dan isikan suatu variable data_mahasiswa bertipe data struct mahasiswa, untuk merubah data_mahasiswa menjadi suatu JSON, digunakan fungsi JSON.Marshal(data_mahasiswa) yang di masukkan kedalam tipe data result, lalu untuk melihat apakah data tersebut sudah berhasil diubah menjadi format data JSON dapat dilakukan cetak variabel result, untuk Output dari program diatas dapat dilihat pada Gambar 8.9.

Gambar 8.9 Output JSON

8.4.2 Decode JSON Menjadi Suatu Object

Decode merupakan proses dimana penafsiran suatu pesan dan menterjemahkan menjadi informasi yang berarti. Dalam bahasa Golang data JSON bertipe data string . Dengan menggunakan fungsi “json.Unmarshal” , JSON string dapat dikonversi menjadi bentuk objek, dapat dalam bentuk variabel objek hasil struct . ,map[string]interface{}, atau slice. Berikut adalah contoh merubah suatu JSON menjadi suatu object slice struct, dapat dilihat pada Gambar 8.10.

Gambar 8.10 Decode JSON to Object

Page 96: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 96

Hasil decode nantinya akan disimpan ke variabel objek cetakan struct User. Selanjutnya siapkan data json string sederhana. Perlu dilakukan casting ke tipe []byte , karena fungsi ”json.Unmarshal“ hanya menerima data bertipe []byte Dalam penggunaan fungsi json.Unmarshal , variabel penampung hasil decode harus di-pass dalam bentuk pointer, contohnya seperti &data_mahasiswa.

8.4.3 Membuat API sederhana dengan format data JSON

API (Application Programming Interface) adalah sebuah teknologi untuk memfasilitasi pertukaran informasi atau data antara dua atau lebih aplikasi perangkat lunak. Sebuah API mendefinisikan bagaimana cara programmer memanfaatkan suatu fitur tertentu dari sebuah komputer . API tersedia untuk sistem windowing, sistem file, sistem basis data dan sistem jaringan.

Pada umumnya format data yang digunakan adalah XML, YAML atau JSON. Salah satu contoh API yang dimiliki oleh perusahaan startup raksasa adalah Facebook API yang dimana memiliki suatu fitur yang diberikan oleh Facebook kepada Developer aplikasi untuk mengembangkan aplikasinya yang kemudian dapat dipergunakan dalam halaman Facebook.

Berikut ini adalah contoh pembuatan API sederhana menggunakan Bahasa pemrograman golang, dapat dilihat pada Gambar 8.11.

Page 97: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 97

Gambar 8.11 API Sederhana

Pembuatannya memiliki kesamaan dengan sub bab Encode Suatu Object Menjadi JSON, namun kali ini tidak ditampilkan pada terminal melainkan mengeluarkan hasil json melalui URL pada web dengan cara dapat dilihat pada Gambar baris ke 10-12. Hasil yang didapatkan dapat dilihat pada Gambar 8.12.

Gambar 8.12 Output API

Page 98: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 98

8.5 Web Component Web Component adalah sekumpulan platform API web yang memungkinkan untuk

membuat tag HTML khusus yang dapat digunakan berkali-kali, dan dienkapsulasi untuk digunakan di halaman web dan aplikasi web. Komponen dibuat berdasarkan standar Komponen Web yang didesain agar berfungsi di seluruh web browser modern, dan dapat digunakan dengan library JavaScript atau kerangka yang bekerja dengan HTML. Web Component didasarkan pada standar web yang ada pada saat ini. Fitur untuk mendukung Web Component saat ini sedang ditambahkan ke spesifikasi HTML dan DOM, membiarkan pengembang web dengan mudah memperluas HTML dengan elemen baru dengan gaya enkapsulasi dan perilaku khusus yang dimiliki.

8.5.2 Spesifikasi Web Component

Komponen web didasarkan pada empat spesifikasi utama, yaitu :

1. Custom Element Spesifikasi Custom Element digunakan sebagai dasar untuk merancang dan menggunakan jenis elemen DOM baru.

2. Shadow DOM Spesifikasi Shadow DOM mendefinisikan cara menggunakan gaya enkapsulasi dan markup dalam Web Component.

3. ES Modules Spesifikasi ES Modules menentukan cara penggunaan kembali dokumen JS dengan berbasis standar, modular, dan kinerja dokumen js.

4. HTML Template Spesifikasi HTML Template menentukan cara mendeklarasikan markup HTML yang tidak digunakan ketika halaman dibuka namun dapat dipakai saat Web Aplikasi berjalan dan ingin digunakan.

8.5.3 Penggunaan Web Component pada Polymer

Gambar 8.13 Web Component

Page 99: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 99

Web Component dapat dicari pada website www.webcomponents.org, web tersebut menyediakan berbagai web component yang disediakan oleh pihak official maupun unofficial. Untuk melakukan instalasi web component pada website maupun aplikasi web dapat menggunakan 2 cara sesuai dengan versinya yaitu :

A. Menggunakan NPM Sebuah tool/aplikasi kecil untuk mengatur package/aplikasi JavaScript yang menggunakan Node.js, dibawah ini merupakan contoh instalasi web component iron-ajax menggunakan NPM

1. Ketahui komponen apa yang ingin digunakan pada website web component dan cari komponen dengan mengetikan nama komponen pada kolom pencarian.

2.

Gambar 8.14 Web Component iron-ajax

3. Disebelah kiri terdapat tulisan download, copy tulisan tersebut pada terminal/

command prompt yang digunakan pada komputer anda, pastikan komputer sudah terinstall Node.js dan pastikan direktori pada terminal sudah berada di direktori project polymer yang dibuat.

Gambar 8.15 Instalasi dengan NPM

Maka pada project polymer didalam folder node_modules/@polymer sudah terdapat iron ajax

Page 100: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 100

Gambar 8.16 Struktur Folder

B. Menggunakan Bower Bower adalah salah satu package manager untuk pengembangan front-end web. Bower berfungsi untuk memudahkan kita mengatur paket atau library apa saja yang kita butuhkan saat mendevelop suatu aplikasi, dalam hal ini front-end. Untuk instalasi menggunakan bower sama seperti menggunakan NPM, namun hanya saja berbeda sintaks pada terminal, seperti dibawah ini.

Gambar 8.17 Instalasi dengan Bower

Maka pada project polymer didalam folder bower_components/ sudah terdapat iron ajax

Gambar 8.18 Struktur folder bower

Setelah melakukan instalasi, web component dapat langsung digunakan namun petama-tama harus terlebih dahulu didaftarkan pada halaman HTML yang ingin menggunakan komponen tersebut, seperti gambar dibawah ini.

Page 101: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 101

Gambar 8.19 Mendaftarkan Web Component

Setelah komponen didaftarkan, komponen tersebut dapat langsung digunakan dengan menggunakan tag khusus sesuai dengan komponen yang digunakan, dalam contoh kali ini komponen yang digunakan adalah iron-ajax maka tag khususnya adalah <iron-ajax></iron-ajax>, dapat dilihat pada Gambar

Gambar 8.20 Menggunakan Web Component

Untuk komponen iron-ajax perlu beberapa tambahan kode pada script untuk menampung data (variable data) dan mengolah data (fungsi _handleresponse) tersebut, dapat dilihat pada Gambar

Gambar 8.21 Variabel dan Fungsi

Page 102: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 102

Setelah data didapatkan dari iron-ajax, maka data tersebut dapat diolah sesuai keinginan developer, sebagai contoh dibawah ini data dari url /api/mahasiswa yang diambil menggunakan iron-ajax diolah dan ditampilkan pada web browser dengan menggunakan fungsi bawaan dari polymer yaitu dom-repeat untuk mengolah data dan ditampilkan dalam img serta paragraph, seperti Gambar 8.22.

Gambar 8.22 Fungsi dom-repeat

Maka kode lengkap dari program sederhana menggunakan iron-ajax, dapat dilihat pada Gambar 8.23. *Project polymer yang digunakan adalah project polymer 2 starterkit, untuk modifikasi dilakukan pada myview1.html pada folder src. *

Page 103: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 103

Gambar 8.23 Kode Lengkap Project

Output pada program diatas dapat dilihat pada Gambar 8.24.

Gambar 8.24 Output Program

Page 104: GOLANG FOR BEGINNER(1) - guntur.staff.gunadarma.ac.idguntur.staff.gunadarma.ac.id/Publications/files/4644/GOLANG+FOR... · Konsep Dasar Bahasa Pemrograman Go 2. Variabel, Tipe Data,

GOLANGFORBEGINNERI 104

DAFTAR PUSTAKA

Doxsey, Caleb. 2016. Introducing Go: Build Reliable, Scalable Programs. O'Reilly Media

URL : https://www.webcomponents.org/element/PolymerElements/app-route , 12 September

2018

URL : https://www.webcomponents.org/element/PolymerElements/iron-pages , 12 September 2018

URL : https://www.polymer-project.org/2.0/docs/api/ , 12 September 2018

URL : https://www.polymer-project.org/2.0/toolbox/routing , 12 September 2018

URL : https://go-tour-id2.appspot.com/basics/1 , 20 September 2018