SlideShare a Scribd company logo
II
(Standard Library, Variabel, Konstanta Tipe Data, Operator)
Roadmap pembelajaran Go
- Setup GoSDK
- Struktur kode Go
- Kompilasi kode
Go
I
II
- Standar Lib Go
- Variabel
- Konstanta
- Tipe Data
- Operator
III
IV
...
API
Apa yang kita pelajari?
1. Standar Library GO
2. Package
3. Import
4. Variabel
5. Tipe Data
6. Konstanta
7. Operator dan Delimiter
Tujuan pembelajaran
Poin - poin yang kita harap dapatkan pada sesi ini :
Pengetahuan
• Mengetahui pustaka standar pada Go
• Mengetahui keyword (var, const, package, import) pada Go
• Mengetahui tipe data pada Go
• Mengetahui operator pada Go
Skills
• Dapat menggunakan keyword Go pada aplikasi
• Dapat menggunakan tipe data
• Dapat menggunakan operator
Pustaka (Library)
• Library adalah kumpulan dari fungsi, class-class, object, konstanta, dan template yang digunakan
untuk melakukan operasi-operasi dasar dan beberapa fungsi lainnya.
• koleksi dari rutin-rutin program yang digunakan untuk membangun dan mengembangkan
perangkat lunak (https://id.wikipedia.org/wiki/Pustaka_perangkat_lunak)
Pustaka Standar (Standard Library) Go
• Pustaka (library) standar Go dilengkapi dengan banyak paket yang berguna yang
dapat digunakan untuk membangun aplikasi. Contohnya pustaka (library) standar
"net / http", paket yang terdapat dalam pustaka ini dapat digunakan untuk
membangun aplikasi atau layanan berbasis web. Paket dari pustaka standar
tersedia pada folder "pkg" yaitu subdirektori dari direktori GOROOT.
Library Package Deskripsi
fmt Paket fmt digunakan untuk fungsi I/O, penamaan fungsi-fungsinya menyerupai dengan fungsi pada C (contoh :
printf and scanf)
encoding ascii85, asn1,
base32, base64, csv,
hex, json, xml...
Paket encoding digunakan untuk melakukan mengkonversi data ke dan dari satu format ke format yang lain baik
pada tingkatan byte ataupun tekstual.
net http (cgi, cookiejar,
fcgi, httptest,
httptrace ...),
mail, rpc (jsonrpc),
smtp, url, ...
Paket net menyediakan antarmuka untuk fungsi-fungsi seperti network I/O, termasuk TCP/IP, UDP, domain name
resolution (dns) dan Unix domain sockets.
regexp syntax Paket regexp menyediakan fungsi pencarian teks menggunakan regular expression
strconv Paket strconv menyediakan fungsi-fungsi konversi tipe data.
time Paket time menyediakan fungsi - fungsi mengukur dan menampilkan waktu.
math big, cmplx, rand Paket math menyediakan fungsi-fungsi matematika.
image color(palette), draw,
gif, jpeg, png
Paket image menyediakan fungsi-fungsi dasar pemrosesan image 2 dimensi (2D)
errors Paket errors menyediakan fungsi-fungsi untuk pemrosesan error
database driver Paket sql menyediakan fungsi-fungsi umum SQL database.
crypto aes, cipher, des, dsa,
md5, hmac, rsa, ...
Paket crypto menyediakan fungsi-fungsi kriptografi
Library Package Deskripsi
archive tar, zip Paket archive menyediakan fungsi-fungsi pengaksesan file arsip (zip atau tar)
html template Paket html menyediakan fungsi-fungsi untuk pemrosesan HTML text.
log syslog Paket log menyediakan fungsi-fungsi sederhana penulisan log
sumber : https://golang.org/pkg/#stdlib
Kata kunci (Keywords)
• Pada bahasa pemrograman Go terdapat 25 kata kunci (keywords)
yang dapat dituliskan sebagai berikut:
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
Paket (Package)
• File sumber (source file) Go disusun didalam direktori sistem yang disebut paket,
kode-kode tersebut dimungkinkan untuk dapat digunakan diseluruh aplikasi Go.
• Konvensi penamaan pada paket Go menggunakan nama direktori sistem di mana
kita meletakkan file sumber, sehingga nama paket akan sama untuk semua file
sumber yang termasuk ke direktori tersebut.
Paket utama (Package main)
• Paket utama (Package main) digunakan pada aplikasi standalone atau aplikasi yang hasil akhirnya
dapat dieksekusi atau dijalankan. Fungsi utama dalam paket/package "main" akan menjadi titik
masuk program.
• Pustaka bersama (shared library) adalah kode yang ditujukan untuk dapat digunakan kembali.
• Kode yang ditujukan untuk membuat pustaka bersama (shared library) tidak akan mempunyai
"package main" dan "func main".
package main
import "fmt"
func main(){
fmt.Println("Hello Go!")
}
Import
• Digunakan untuk memuat berbagai macam library, baik dari luar maupun yang telah disediakan
oleh bahasa pemrograman Go.
package main
// style-1 //
import "fmt"
func main(){
fmt.Println("Hello Go!")
}
package main
// style-2 //
import (
f "fmt"
"lib/math"
)
func main(){
f.Println("Hello Go!")
}
Var (Variabel)
• Statement var digunakan untuk mendeklarasikan variabel beserta tipe datanya.
Skema penggunaan keyword var :
// style - 1 //
var (
name string // deklarasi variabel name dengan tipe data string
umur int // deklarasi variabel umur dengan tipe data int (integer)
lokasi string // deklarasi variabel lokasi dengan tipe data string
)
// style - 2 //
var (
name, lokasi string // grup deklarasi variabel bertipe data sama
umur int
)
// style - 3 //
var name string
var umur int
var lokasi string
var <nama variabel> <tipe data>
var <nama variabel> <tipe data> = <nilai>
• Deklarasi var juga bisa ditambahkan inisialisasi nilai setiap variabel
• Jika diinisilisasi, maka tipe data bisa tidak digunakan sehingga tipe variabel akan mengikuti nilai
yang diberikan kepada variabel tersebut (inferred typing).
var (
nama string = "Dodo"
umur int = 32
lokasi string = "Jakarta"
)
// style - 1 //
var (
nama = "Dodo"
umur = 32
lokasi = "Jakarta"
)
// style - 2 //
var (
nama, lokasi, umur = "Dodo", "Jakarta", 32
)
Deklarasi variabel tanpa var (implisit)
Deklarasi variabel dengan var (eksplisit)
package main
import "fmt"
func main(){
nama, umur, lokasi := "Agung", 25, "jakarta" // deklarasi variabel tanpa var (secara implisit)
fmt.Println("Nama : ", nama)
fmt.Println("Umur : ", umur)
fmt.Println("Lokasi : ", lokasi)
}
package main
import "fmt"
func main(){
var (
nama, umur, lokasi = "Agung", 25, "jakarta"
) // deklarasi variabel dengan var (secara eksplisit)
fmt.Println("Nama : ", nama)
fmt.Println("Umur : ", umur)
fmt.Println("Lokasi : ", lokasi)
}
Variabel underscore "_"
• Go memiliki aturan unik yang tidak dimiliki bahasa pemrograman lain
yaitu tidak boleh ada satu variabel pun yang "menganggur". Artinya
setiap variabel yang dideklarasikan harus digunakan, jika ada variabel
yang tidak digunakan maka aplikasi akan gagal dikompilasi.
• Underscore ( _ ) adalah predefined variabel yang bisa dimanfaatkan
untuk menampung nilai yang tidak dipakai.
• Variabel underscore pada tipe deklarasi implisit
• Variabel underscore pada tipe deklarasi eksplisit
package main
import "fmt"
func main(){
nama, umur, _ := "Agung", 25, "jakarta" // deklarasi variabel tanpa var (secara implisit)
fmt.Println("Nama : ", nama)
fmt.Println("Umur : ", umur)
}
package main
import "fmt"
func main(){
var (
nama, umur, _ = "Agung", 25, "jakarta"
) // deklarasi variabel dengan var (secara eksplisit)
fmt.Println("Nama : ", nama)
fmt.Println("Umur : ", umur)
}
Tipe Data
• Golang mengenal beberapa jenis tipe data, diantaranya adalah tipe
data numerik (desimal & non-desimal), string, dan boolean.
Tipe Data Numerik Non-Desimal
• Tipe data numerik non-desimal atau non floating point di Go ada
beberapa macam. Secara umum ada 2 tipe data yang perlu diketahui,
yaitu:
• uint, merupakan tipe data untuk bilangan cacah (bilangan positif)
• int, merupakan tipe data untuk bilangan bulat (bilangan negatif dan
positif)
Tipe Data Cakupan Bilangan
uint8 0 - 255
uint16 0 - 65535
uint32 0 - 4294967295
uint64 0 - 18446744073709551615
uint sama dengan uint32 atau uint64 (tergantung nilai)
byte sama dengan uint8
int8 -128 - 127
int16 -32768 - 32767
int32 -2147483648 - 2147483647
int64 -9223372036854775808 - 9223372036854775807
int sama dengan int32 atau int64 (tergantung nilai)
rune sama dengan int32
package main
import "fmt"
func main(){
var a int8 = 10
var negatifA int8 = -50
var b uint16 = 54300
var c uint = 33
fmt.Printf("nilai a = %dn", a)
fmt.Printf("nilai negatifA = %dn", negatifA)
fmt.Printf("nilai b = %dn", b)
fmt.Printf("nilai c = %dn", c)
}
Tipe Data Numerik Desimal
• Tipe data numerik desimal yang perlu diketahui ada 2, float32
dan float64. Perbedaan kedua tipe data tersebut berada pada
lebar cakupan nilai desimal yang bisa ditampung. Untuk lebih
jelasnya bisa merujuk ke spesifikasi IEEE-754 32-bit floating-point
numbers.
package main
import "fmt"
func main(){
var decimalA = 2.26
fmt.Printf("nilai decimalA = %fn", a)
fmt.Printf("nilai decimalA = %3fn", a)
}
Tipe Data Boolean
• Tipe data bool berisikan hanya 2 variasi nilai, true dan false.Tipe
data ini biasa dimanfaatkan dalam seleksi kondisi dan perulangan
package main
import "fmt"
func main(){
var betul bool = true
fmt.Printf("betul = %tn", betul)
}
Tipe Data String
• Ciri khas dari tipe data string adalah nilainya diapit oleh tanda
quote atau petik dua (").
• Selain menggunakan tanda quote, deklarasi string juga bisa
dengan tanda grave accent/backticks (`). Keistimewaan string yang
dideklarasikan menggunakan backtics adalah membuat semua
karakter didalamnya tidak akan di escape, semua akan terdeteksi
sebagai string.
var pesan string = "Hallo Dunia..!!"
fmt.Printf("%s /n", pesan)
package main
import "fmt"
func main(){
var pesan = `Nama saya "Dodo".
Salam kenal.
Mari belajar "Golang".`
fmt.Println(pesan)
}
Nilai nil Dan Nilai Default Tipe Data
• Semua tipe data yang sudah dibahas sebelumnya memiliki nilai default. Artinya meskipun
variabel dideklarasikan tanpa nilai awal, akan ada nilai default-nya.
• Nilai default string adalah "" (string kosong)
• Nilai default bool adalah false
• Nilai default tipe numerik non-desimal adalah 0
• Nilai default tipe numerik desimal adalah 0.0
• nil bukan merupakan tipe data, melainkan sebuah nilai. Variabel yang isi nilainya nil, berarti
variabel tersebut memiliki nilai kosong. Beberapa tipe data yang bisa di-set nilainya dengan nil,
diantaranya:
• pointer
• tipe data fungsi
• slice
• map
• channel
• interface kosong atau interface{}
Const (Konstanta)
• Const digunakan untuk mendeklarasikan sebuah konstanta.
• Konstanta adalah variabel yang nilainya tidak bisa diubah.
Inisialisasi nilai hanya dilakukan sekali di awal.
• Konstanta hanya dapat berupa karakter (character), string, boolean,
atau numerik (numeric) dan tidak bisa dideklarasikan menggunakan
operator ":=".
• Konstanta yang tidak didefinisikan tipe datanya akan secara otomatis
menggunakan tipe data yang sesuai dengan nilai yang diberikan.
package main
import "fmt"
const Pi = 3.14
const Pesan= "Hello World!"
const emptyString = ""
const (
StatusOK = 200
StatusCreated = 201
)
func main() {
fmt.Println(StatusOK)
fmt.Println(StatusCreated)
fmt.Println(Pesan)
fmt.Println(emptyString)
fmt.Println(Pi)
}
Operator dan delimiter
• Go juga mempunyai operator dan delimiter yang tidak jauh berbeda dari beberapa bahasa
pemrograman pada umumnya
• Secara umum operator dibagi menjadi 3 kategori: operator aritmatika, perbandingan, dan logika.
+ & += &= && == != ( ) -
| -= |= || < <= [ ] * ^
*= ^= <- > >= { } / << /=
<<= ++ = := , ; % >> %= >>=
-- ! ... . : &^ &^=
Operator Aritmatika
• Operator aritmatika adalah operator yang digunakan untuk operasi yang sifatnya perhitungan
Tanda Penjelasan
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Modulus
++ Penambahan 1 pada variabel (int)
-- Pengurangan 1 pada variabel (int)
package main
import "fmt"
func main() {
var a int = 21
var b int = 10
var c int
c = a + b
fmt.Println("Nilai C = ", c )
c = a - b
fmt.Println("Nilai C = ", c )
c = a * b
fmt.Println("Nilai C = ", c )
c = a / b
fmt.Println("Nilai C = ", c )
c = a % b
fmt.Println("Nilai C = ", c )
a++
fmt.Println("Nilai A = ", a )
a--
fmt.Println("Nilai A = ", a )
}
Operator Perbandingan
• Operator perbandingan digunakan untuk menentukan kebenaran suatu kondisi. Hasilnya berupa
nilai boolean, true atau false.
Tanda Penjelasan
== apakah nilai kiri sama dengan nilai kanan
!= apakah nilai kiri tidak sama dengan nilai kanan
< apakah nilai kiri lebih kecil dari 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
Contoh :
var hasil = ((2 + 6) % 3) * 4 - 2) / 3
var isEqual = (value == 2)
package main
import "fmt"
func main() {
var a int = 21
var b int = 10
var c = a + b
var isEqual = (c == 31)
fmt.Println(" Apakah nilai C sama dengan 31 : ", isEqual)
}
Operator Logika
• Operator ini digunakan untuk mencari benar tidaknya kombinasi data bertipe bool
Tanda Penjelasan
&& And
|| OR
! Negasi / nilai kebalikan
package main
import "fmt"
func main() {
var a bool = true
var b bool = false
var and = (a && b)
var or = (a || b)
fmt.Println(" A and B : ", and)
fmt.Println(" A OR B : ", or)
}

More Related Content

What's hot

8 logika predikat
8  logika predikat8  logika predikat
8 logika predikat
Yulinda Nurhafina
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
Rakhmi Khalida, M.M.S.I
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan Pembuktian
Fahrul Usman
 
Laporan kunjungan kewirausahaan
Laporan kunjungan kewirausahaanLaporan kunjungan kewirausahaan
Laporan kunjungan kewirausahaan
Faqih Motionet
 
Shortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma DijkstraShortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma Dijkstra
Onggo Wiryawan
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
ahmad haidaroh
 
Modul 4 kongruensi linier
Modul 4   kongruensi linierModul 4   kongruensi linier
Modul 4 kongruensi linier
Acika Karunila
 
Materi Biimplikasi
Materi Biimplikasi Materi Biimplikasi
Materi Biimplikasi
mellawaty
 
Representasi Pengetahuan
Representasi PengetahuanRepresentasi Pengetahuan
Representasi Pengetahuan
Sherly Uda
 
DEFINISI FUNGSI PROPOSISI DAN JENIS JENIS KUANTOR
DEFINISI FUNGSI PROPOSISI DAN JENIS JENIS KUANTORDEFINISI FUNGSI PROPOSISI DAN JENIS JENIS KUANTOR
DEFINISI FUNGSI PROPOSISI DAN JENIS JENIS KUANTOR
arlanridfan farid
 
Sistem bus komputer
Sistem bus komputerSistem bus komputer
Sistem bus komputer
Shary Armonitha
 
Pengantar statistika 4
Pengantar statistika 4Pengantar statistika 4
Pengantar statistika 4Az'End Love
 
Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05
KuliahKita
 
proposisi majemuk & Tautologi
 proposisi majemuk & Tautologi proposisi majemuk & Tautologi
proposisi majemuk & Tautologi
Huzairi Zairi
 
Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)
Meycelino A. T
 
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRITBAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
Cabii
 
Distribusi sampling
Distribusi samplingDistribusi sampling
Distribusi sampling
Stephanie Isvirastri
 
Matriks eselon baris dan eselon baris tereduksi
Matriks eselon baris dan eselon baris tereduksiMatriks eselon baris dan eselon baris tereduksi
Matriks eselon baris dan eselon baris tereduksi
Elemantking Daeva
 
Pemrograman Web 5 - Javascript
Pemrograman Web 5 - JavascriptPemrograman Web 5 - Javascript
Pemrograman Web 5 - Javascript
Nur Fadli Utomo
 

What's hot (20)

8 logika predikat
8  logika predikat8  logika predikat
8 logika predikat
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan Pembuktian
 
Laporan kunjungan kewirausahaan
Laporan kunjungan kewirausahaanLaporan kunjungan kewirausahaan
Laporan kunjungan kewirausahaan
 
Bab 3 logika matematika
Bab 3 logika matematikaBab 3 logika matematika
Bab 3 logika matematika
 
Shortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma DijkstraShortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma Dijkstra
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Modul 4 kongruensi linier
Modul 4   kongruensi linierModul 4   kongruensi linier
Modul 4 kongruensi linier
 
Materi Biimplikasi
Materi Biimplikasi Materi Biimplikasi
Materi Biimplikasi
 
Representasi Pengetahuan
Representasi PengetahuanRepresentasi Pengetahuan
Representasi Pengetahuan
 
DEFINISI FUNGSI PROPOSISI DAN JENIS JENIS KUANTOR
DEFINISI FUNGSI PROPOSISI DAN JENIS JENIS KUANTORDEFINISI FUNGSI PROPOSISI DAN JENIS JENIS KUANTOR
DEFINISI FUNGSI PROPOSISI DAN JENIS JENIS KUANTOR
 
Sistem bus komputer
Sistem bus komputerSistem bus komputer
Sistem bus komputer
 
Pengantar statistika 4
Pengantar statistika 4Pengantar statistika 4
Pengantar statistika 4
 
Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05
 
proposisi majemuk & Tautologi
 proposisi majemuk & Tautologi proposisi majemuk & Tautologi
proposisi majemuk & Tautologi
 
Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)
 
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRITBAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
BAB 4. PROBABILITAS DASAR dan DISTRIBUSI PROBABILITAS DISKRIT
 
Distribusi sampling
Distribusi samplingDistribusi sampling
Distribusi sampling
 
Matriks eselon baris dan eselon baris tereduksi
Matriks eselon baris dan eselon baris tereduksiMatriks eselon baris dan eselon baris tereduksi
Matriks eselon baris dan eselon baris tereduksi
 
Pemrograman Web 5 - Javascript
Pemrograman Web 5 - JavascriptPemrograman Web 5 - Javascript
Pemrograman Web 5 - Javascript
 

Similar to GoLang_2

Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asliNadya Olivia
 
Tipe Data pada Bahasa Java
Tipe Data pada Bahasa JavaTipe Data pada Bahasa Java
Tipe Data pada Bahasa Java
As Faizin
 
Minggu 4 - Notasi Pseudocode.pptx
Minggu 4 - Notasi Pseudocode.pptxMinggu 4 - Notasi Pseudocode.pptx
Minggu 4 - Notasi Pseudocode.pptx
AnnaUrnika1
 
Materi ap#2
Materi ap#2Materi ap#2
Materi ap#2
Niken Halimy
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascalfhnx
 
9a8439a95ac746c9ad9cbe7e3921bf93___Pertemuanke1tipedasar___27636.ppt
9a8439a95ac746c9ad9cbe7e3921bf93___Pertemuanke1tipedasar___27636.ppt9a8439a95ac746c9ad9cbe7e3921bf93___Pertemuanke1tipedasar___27636.ppt
9a8439a95ac746c9ad9cbe7e3921bf93___Pertemuanke1tipedasar___27636.ppt
AnisIka
 
MATERI TYPE DATA.pptx
MATERI TYPE DATA.pptxMATERI TYPE DATA.pptx
MATERI TYPE DATA.pptx
ppurnama
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010SabilaAulia
 
Tipe Data Terstruktur Materi Struktur Data
Tipe Data Terstruktur Materi Struktur DataTipe Data Terstruktur Materi Struktur Data
Tipe Data Terstruktur Materi Struktur Data
Raja Sakti Arief Daulay
 
Tipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.pptTipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.ppt
NafisClassic
 
Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan javaAntara BoyKean
 
Ppt
PptPpt
2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operatorFisma Ananda
 
2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operator
Chabil_Juniar
 
2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operatorAvenzz Venzz
 
Algoritma 2 adp tipe data dan operator
Algoritma 2   adp tipe data dan operatorAlgoritma 2   adp tipe data dan operator
Algoritma 2 adp tipe data dan operator
Avenzz Venzz
 
2.1 adp tipe data dan operator
2.1 adp tipe data dan operator2.1 adp tipe data dan operator
2.1 adp tipe data dan operatorHardini_HD
 

Similar to GoLang_2 (20)

Tipe data
Tipe dataTipe data
Tipe data
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asli
 
Tipe Data pada Bahasa Java
Tipe Data pada Bahasa JavaTipe Data pada Bahasa Java
Tipe Data pada Bahasa Java
 
Minggu 4 - Notasi Pseudocode.pptx
Minggu 4 - Notasi Pseudocode.pptxMinggu 4 - Notasi Pseudocode.pptx
Minggu 4 - Notasi Pseudocode.pptx
 
Materi ap#2
Materi ap#2Materi ap#2
Materi ap#2
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascal
 
9a8439a95ac746c9ad9cbe7e3921bf93___Pertemuanke1tipedasar___27636.ppt
9a8439a95ac746c9ad9cbe7e3921bf93___Pertemuanke1tipedasar___27636.ppt9a8439a95ac746c9ad9cbe7e3921bf93___Pertemuanke1tipedasar___27636.ppt
9a8439a95ac746c9ad9cbe7e3921bf93___Pertemuanke1tipedasar___27636.ppt
 
MATERI TYPE DATA.pptx
MATERI TYPE DATA.pptxMATERI TYPE DATA.pptx
MATERI TYPE DATA.pptx
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010
 
Java2
Java2Java2
Java2
 
Tipe Data Terstruktur Materi Struktur Data
Tipe Data Terstruktur Materi Struktur DataTipe Data Terstruktur Materi Struktur Data
Tipe Data Terstruktur Materi Struktur Data
 
Tipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.pptTipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.ppt
 
Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan java
 
Ppt
PptPpt
Ppt
 
GoLang_4
GoLang_4GoLang_4
GoLang_4
 
2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operator
 
2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operator
 
2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operator
 
Algoritma 2 adp tipe data dan operator
Algoritma 2   adp tipe data dan operatorAlgoritma 2   adp tipe data dan operator
Algoritma 2 adp tipe data dan operator
 
2.1 adp tipe data dan operator
2.1 adp tipe data dan operator2.1 adp tipe data dan operator
2.1 adp tipe data dan operator
 

More from Dimas Prawira

Fundamental concurrent programming
Fundamental concurrent programmingFundamental concurrent programming
Fundamental concurrent programming
Dimas Prawira
 
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONTutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Dimas Prawira
 
Introduction on Android programming Tutorial
Introduction on Android programming TutorialIntroduction on Android programming Tutorial
Introduction on Android programming Tutorial
Dimas Prawira
 
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDETutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
Dimas Prawira
 
Offline concept Mobile apps
Offline concept Mobile appsOffline concept Mobile apps
Offline concept Mobile apps
Dimas Prawira
 
Konsep aplikasi mobile Support System
Konsep aplikasi mobile Support SystemKonsep aplikasi mobile Support System
Konsep aplikasi mobile Support System
Dimas Prawira
 
Pengenalan SOA serta implementasinya pada aplikasi SS (Support System)
Pengenalan SOA serta implementasinya pada aplikasi SS (Support System)Pengenalan SOA serta implementasinya pada aplikasi SS (Support System)
Pengenalan SOA serta implementasinya pada aplikasi SS (Support System)
Dimas Prawira
 

More from Dimas Prawira (10)

Fundamental concurrent programming
Fundamental concurrent programmingFundamental concurrent programming
Fundamental concurrent programming
 
GoLang_5
GoLang_5GoLang_5
GoLang_5
 
GoLang_3
GoLang_3GoLang_3
GoLang_3
 
GoLang_1
GoLang_1GoLang_1
GoLang_1
 
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONTutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
 
Introduction on Android programming Tutorial
Introduction on Android programming TutorialIntroduction on Android programming Tutorial
Introduction on Android programming Tutorial
 
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDETutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
 
Offline concept Mobile apps
Offline concept Mobile appsOffline concept Mobile apps
Offline concept Mobile apps
 
Konsep aplikasi mobile Support System
Konsep aplikasi mobile Support SystemKonsep aplikasi mobile Support System
Konsep aplikasi mobile Support System
 
Pengenalan SOA serta implementasinya pada aplikasi SS (Support System)
Pengenalan SOA serta implementasinya pada aplikasi SS (Support System)Pengenalan SOA serta implementasinya pada aplikasi SS (Support System)
Pengenalan SOA serta implementasinya pada aplikasi SS (Support System)
 

GoLang_2

  • 1. II (Standard Library, Variabel, Konstanta Tipe Data, Operator)
  • 2. Roadmap pembelajaran Go - Setup GoSDK - Struktur kode Go - Kompilasi kode Go I II - Standar Lib Go - Variabel - Konstanta - Tipe Data - Operator III IV ... API
  • 3. Apa yang kita pelajari? 1. Standar Library GO 2. Package 3. Import 4. Variabel 5. Tipe Data 6. Konstanta 7. Operator dan Delimiter
  • 4. Tujuan pembelajaran Poin - poin yang kita harap dapatkan pada sesi ini : Pengetahuan • Mengetahui pustaka standar pada Go • Mengetahui keyword (var, const, package, import) pada Go • Mengetahui tipe data pada Go • Mengetahui operator pada Go Skills • Dapat menggunakan keyword Go pada aplikasi • Dapat menggunakan tipe data • Dapat menggunakan operator
  • 5. Pustaka (Library) • Library adalah kumpulan dari fungsi, class-class, object, konstanta, dan template yang digunakan untuk melakukan operasi-operasi dasar dan beberapa fungsi lainnya. • koleksi dari rutin-rutin program yang digunakan untuk membangun dan mengembangkan perangkat lunak (https://id.wikipedia.org/wiki/Pustaka_perangkat_lunak)
  • 6. Pustaka Standar (Standard Library) Go • Pustaka (library) standar Go dilengkapi dengan banyak paket yang berguna yang dapat digunakan untuk membangun aplikasi. Contohnya pustaka (library) standar "net / http", paket yang terdapat dalam pustaka ini dapat digunakan untuk membangun aplikasi atau layanan berbasis web. Paket dari pustaka standar tersedia pada folder "pkg" yaitu subdirektori dari direktori GOROOT.
  • 7. Library Package Deskripsi fmt Paket fmt digunakan untuk fungsi I/O, penamaan fungsi-fungsinya menyerupai dengan fungsi pada C (contoh : printf and scanf) encoding ascii85, asn1, base32, base64, csv, hex, json, xml... Paket encoding digunakan untuk melakukan mengkonversi data ke dan dari satu format ke format yang lain baik pada tingkatan byte ataupun tekstual. net http (cgi, cookiejar, fcgi, httptest, httptrace ...), mail, rpc (jsonrpc), smtp, url, ... Paket net menyediakan antarmuka untuk fungsi-fungsi seperti network I/O, termasuk TCP/IP, UDP, domain name resolution (dns) dan Unix domain sockets. regexp syntax Paket regexp menyediakan fungsi pencarian teks menggunakan regular expression strconv Paket strconv menyediakan fungsi-fungsi konversi tipe data. time Paket time menyediakan fungsi - fungsi mengukur dan menampilkan waktu. math big, cmplx, rand Paket math menyediakan fungsi-fungsi matematika. image color(palette), draw, gif, jpeg, png Paket image menyediakan fungsi-fungsi dasar pemrosesan image 2 dimensi (2D) errors Paket errors menyediakan fungsi-fungsi untuk pemrosesan error database driver Paket sql menyediakan fungsi-fungsi umum SQL database. crypto aes, cipher, des, dsa, md5, hmac, rsa, ... Paket crypto menyediakan fungsi-fungsi kriptografi
  • 8. Library Package Deskripsi archive tar, zip Paket archive menyediakan fungsi-fungsi pengaksesan file arsip (zip atau tar) html template Paket html menyediakan fungsi-fungsi untuk pemrosesan HTML text. log syslog Paket log menyediakan fungsi-fungsi sederhana penulisan log sumber : https://golang.org/pkg/#stdlib
  • 9. Kata kunci (Keywords) • Pada bahasa pemrograman Go terdapat 25 kata kunci (keywords) yang dapat dituliskan sebagai berikut: break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var
  • 10. Paket (Package) • File sumber (source file) Go disusun didalam direktori sistem yang disebut paket, kode-kode tersebut dimungkinkan untuk dapat digunakan diseluruh aplikasi Go. • Konvensi penamaan pada paket Go menggunakan nama direktori sistem di mana kita meletakkan file sumber, sehingga nama paket akan sama untuk semua file sumber yang termasuk ke direktori tersebut.
  • 11. Paket utama (Package main) • Paket utama (Package main) digunakan pada aplikasi standalone atau aplikasi yang hasil akhirnya dapat dieksekusi atau dijalankan. Fungsi utama dalam paket/package "main" akan menjadi titik masuk program. • Pustaka bersama (shared library) adalah kode yang ditujukan untuk dapat digunakan kembali. • Kode yang ditujukan untuk membuat pustaka bersama (shared library) tidak akan mempunyai "package main" dan "func main".
  • 12. package main import "fmt" func main(){ fmt.Println("Hello Go!") }
  • 13. Import • Digunakan untuk memuat berbagai macam library, baik dari luar maupun yang telah disediakan oleh bahasa pemrograman Go.
  • 14. package main // style-1 // import "fmt" func main(){ fmt.Println("Hello Go!") } package main // style-2 // import ( f "fmt" "lib/math" ) func main(){ f.Println("Hello Go!") }
  • 15. Var (Variabel) • Statement var digunakan untuk mendeklarasikan variabel beserta tipe datanya. Skema penggunaan keyword var : // style - 1 // var ( name string // deklarasi variabel name dengan tipe data string umur int // deklarasi variabel umur dengan tipe data int (integer) lokasi string // deklarasi variabel lokasi dengan tipe data string ) // style - 2 // var ( name, lokasi string // grup deklarasi variabel bertipe data sama umur int ) // style - 3 // var name string var umur int var lokasi string var <nama variabel> <tipe data> var <nama variabel> <tipe data> = <nilai>
  • 16. • Deklarasi var juga bisa ditambahkan inisialisasi nilai setiap variabel • Jika diinisilisasi, maka tipe data bisa tidak digunakan sehingga tipe variabel akan mengikuti nilai yang diberikan kepada variabel tersebut (inferred typing). var ( nama string = "Dodo" umur int = 32 lokasi string = "Jakarta" ) // style - 1 // var ( nama = "Dodo" umur = 32 lokasi = "Jakarta" ) // style - 2 // var ( nama, lokasi, umur = "Dodo", "Jakarta", 32 )
  • 17. Deklarasi variabel tanpa var (implisit) Deklarasi variabel dengan var (eksplisit) package main import "fmt" func main(){ nama, umur, lokasi := "Agung", 25, "jakarta" // deklarasi variabel tanpa var (secara implisit) fmt.Println("Nama : ", nama) fmt.Println("Umur : ", umur) fmt.Println("Lokasi : ", lokasi) } package main import "fmt" func main(){ var ( nama, umur, lokasi = "Agung", 25, "jakarta" ) // deklarasi variabel dengan var (secara eksplisit) fmt.Println("Nama : ", nama) fmt.Println("Umur : ", umur) fmt.Println("Lokasi : ", lokasi) }
  • 18. Variabel underscore "_" • Go memiliki aturan unik yang tidak dimiliki bahasa pemrograman lain yaitu tidak boleh ada satu variabel pun yang "menganggur". Artinya setiap variabel yang dideklarasikan harus digunakan, jika ada variabel yang tidak digunakan maka aplikasi akan gagal dikompilasi. • Underscore ( _ ) adalah predefined variabel yang bisa dimanfaatkan untuk menampung nilai yang tidak dipakai.
  • 19. • Variabel underscore pada tipe deklarasi implisit • Variabel underscore pada tipe deklarasi eksplisit package main import "fmt" func main(){ nama, umur, _ := "Agung", 25, "jakarta" // deklarasi variabel tanpa var (secara implisit) fmt.Println("Nama : ", nama) fmt.Println("Umur : ", umur) } package main import "fmt" func main(){ var ( nama, umur, _ = "Agung", 25, "jakarta" ) // deklarasi variabel dengan var (secara eksplisit) fmt.Println("Nama : ", nama) fmt.Println("Umur : ", umur) }
  • 20. Tipe Data • Golang mengenal beberapa jenis tipe data, diantaranya adalah tipe data numerik (desimal & non-desimal), string, dan boolean.
  • 21. Tipe Data Numerik Non-Desimal • Tipe data numerik non-desimal atau non floating point di Go ada beberapa macam. Secara umum ada 2 tipe data yang perlu diketahui, yaitu: • uint, merupakan tipe data untuk bilangan cacah (bilangan positif) • int, merupakan tipe data untuk bilangan bulat (bilangan negatif dan positif)
  • 22. Tipe Data Cakupan Bilangan uint8 0 - 255 uint16 0 - 65535 uint32 0 - 4294967295 uint64 0 - 18446744073709551615 uint sama dengan uint32 atau uint64 (tergantung nilai) byte sama dengan uint8 int8 -128 - 127 int16 -32768 - 32767 int32 -2147483648 - 2147483647 int64 -9223372036854775808 - 9223372036854775807 int sama dengan int32 atau int64 (tergantung nilai) rune sama dengan int32
  • 23. package main import "fmt" func main(){ var a int8 = 10 var negatifA int8 = -50 var b uint16 = 54300 var c uint = 33 fmt.Printf("nilai a = %dn", a) fmt.Printf("nilai negatifA = %dn", negatifA) fmt.Printf("nilai b = %dn", b) fmt.Printf("nilai c = %dn", c) }
  • 24. Tipe Data Numerik Desimal • Tipe data numerik desimal yang perlu diketahui ada 2, float32 dan float64. Perbedaan kedua tipe data tersebut berada pada lebar cakupan nilai desimal yang bisa ditampung. Untuk lebih jelasnya bisa merujuk ke spesifikasi IEEE-754 32-bit floating-point numbers.
  • 25. package main import "fmt" func main(){ var decimalA = 2.26 fmt.Printf("nilai decimalA = %fn", a) fmt.Printf("nilai decimalA = %3fn", a) }
  • 26. Tipe Data Boolean • Tipe data bool berisikan hanya 2 variasi nilai, true dan false.Tipe data ini biasa dimanfaatkan dalam seleksi kondisi dan perulangan
  • 27. package main import "fmt" func main(){ var betul bool = true fmt.Printf("betul = %tn", betul) }
  • 28. Tipe Data String • Ciri khas dari tipe data string adalah nilainya diapit oleh tanda quote atau petik dua ("). • Selain menggunakan tanda quote, deklarasi string juga bisa dengan tanda grave accent/backticks (`). Keistimewaan string yang dideklarasikan menggunakan backtics adalah membuat semua karakter didalamnya tidak akan di escape, semua akan terdeteksi sebagai string. var pesan string = "Hallo Dunia..!!" fmt.Printf("%s /n", pesan)
  • 29. package main import "fmt" func main(){ var pesan = `Nama saya "Dodo". Salam kenal. Mari belajar "Golang".` fmt.Println(pesan) }
  • 30. Nilai nil Dan Nilai Default Tipe Data • Semua tipe data yang sudah dibahas sebelumnya memiliki nilai default. Artinya meskipun variabel dideklarasikan tanpa nilai awal, akan ada nilai default-nya. • Nilai default string adalah "" (string kosong) • Nilai default bool adalah false • Nilai default tipe numerik non-desimal adalah 0 • Nilai default tipe numerik desimal adalah 0.0 • nil bukan merupakan tipe data, melainkan sebuah nilai. Variabel yang isi nilainya nil, berarti variabel tersebut memiliki nilai kosong. Beberapa tipe data yang bisa di-set nilainya dengan nil, diantaranya: • pointer • tipe data fungsi • slice • map • channel • interface kosong atau interface{}
  • 31. Const (Konstanta) • Const digunakan untuk mendeklarasikan sebuah konstanta. • Konstanta adalah variabel yang nilainya tidak bisa diubah. Inisialisasi nilai hanya dilakukan sekali di awal. • Konstanta hanya dapat berupa karakter (character), string, boolean, atau numerik (numeric) dan tidak bisa dideklarasikan menggunakan operator ":=". • Konstanta yang tidak didefinisikan tipe datanya akan secara otomatis menggunakan tipe data yang sesuai dengan nilai yang diberikan.
  • 32. package main import "fmt" const Pi = 3.14 const Pesan= "Hello World!" const emptyString = "" const ( StatusOK = 200 StatusCreated = 201 ) func main() { fmt.Println(StatusOK) fmt.Println(StatusCreated) fmt.Println(Pesan) fmt.Println(emptyString) fmt.Println(Pi) }
  • 33. Operator dan delimiter • Go juga mempunyai operator dan delimiter yang tidak jauh berbeda dari beberapa bahasa pemrograman pada umumnya • Secara umum operator dibagi menjadi 3 kategori: operator aritmatika, perbandingan, dan logika. + & += &= && == != ( ) - | -= |= || < <= [ ] * ^ *= ^= <- > >= { } / << /= <<= ++ = := , ; % >> %= >>= -- ! ... . : &^ &^=
  • 34. Operator Aritmatika • Operator aritmatika adalah operator yang digunakan untuk operasi yang sifatnya perhitungan Tanda Penjelasan + Penjumlahan - Pengurangan * Perkalian / Pembagian % Modulus ++ Penambahan 1 pada variabel (int) -- Pengurangan 1 pada variabel (int)
  • 35. package main import "fmt" func main() { var a int = 21 var b int = 10 var c int c = a + b fmt.Println("Nilai C = ", c ) c = a - b fmt.Println("Nilai C = ", c ) c = a * b fmt.Println("Nilai C = ", c ) c = a / b fmt.Println("Nilai C = ", c ) c = a % b fmt.Println("Nilai C = ", c ) a++ fmt.Println("Nilai A = ", a ) a-- fmt.Println("Nilai A = ", a ) }
  • 36. Operator Perbandingan • Operator perbandingan digunakan untuk menentukan kebenaran suatu kondisi. Hasilnya berupa nilai boolean, true atau false. Tanda Penjelasan == apakah nilai kiri sama dengan nilai kanan != apakah nilai kiri tidak sama dengan nilai kanan < apakah nilai kiri lebih kecil dari 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 Contoh : var hasil = ((2 + 6) % 3) * 4 - 2) / 3 var isEqual = (value == 2)
  • 37. package main import "fmt" func main() { var a int = 21 var b int = 10 var c = a + b var isEqual = (c == 31) fmt.Println(" Apakah nilai C sama dengan 31 : ", isEqual) }
  • 38. Operator Logika • Operator ini digunakan untuk mencari benar tidaknya kombinasi data bertipe bool Tanda Penjelasan && And || OR ! Negasi / nilai kebalikan
  • 39. package main import "fmt" func main() { var a bool = true var b bool = false var and = (a && b) var or = (a || b) fmt.Println(" A and B : ", and) fmt.Println(" A OR B : ", or) }