SlideShare a Scribd company logo
V
(Slice dan Map)
Roadmap pembelajaran Go
- If - else
- Switch - Case
- For
Array
II
III
- Standar Lib Go
- Variabel
- Konstanta
- Tipe Data
- Operator
IV
V
...
API
Slice dan
Map
Apa yang kita pelajari?
1. Slice
2. Inisialisasi Slice
3. Slice dan Array
4. Operasi pada Slice
5. Map
6. Inisialisasi Map
7. Operasi pada Map
Tujuan pembelajaran
Poin - poin yang kita harap dapatkan pada sesi ini :
Pengetahuan
• Mengetahui slice dan map pada Go
• Mengetahui cara inisialisasi slice dan map pada Go
• Mengetahui perbedaan antara slice dan array
• Mengetahui operasi yang bisa digunakan pada slice dan map
Kemampuan
• Dapat menggunakan slice dan map di Go
• Dapat menggunakan operasi pada slice dan map di Go
Slice
• Slice adalah referensi elemen array. Slice bisa dibuat, atau bisa juga
dihasilkan dari manipulasi sebuah array ataupun slice lainnya.
• Perubahan data di tiap elemen slice akan berdampak pada slice lain
yang memiliki alamat memori yang sama.
Inisialisasi Slice
• Cara membuat slice mirip seperti pada array, letak perbedaannya
tidak perlu mendefinisikan jumlah elemen ketika awal deklarasi.
var fruits = []string{"apple", "grape", "banana", "melon"}
fmt.Println(fruits[0]) // "apple"
Slice dan Array
• Array adalah kumpulan nilai atau elemen, sedang slice adalah
referensi tiap elemen tersebut.
Operasi pada Slice
• len()
• Fungsi len() digunakan untuk menghitung lebar slice yang ada.
• cap()
• Fungsi cap() digunakan untuk menghitung lebar maksimum/kapasitas slice.
var fruits = []string{"apple", "grape", "banana", "melon"}
fmt.Println(len(fruits)) // 4
var fruits = []string{"apple", "grape", "banana", "melon"}
fmt.Println(len(fruits)) // len: 4
fmt.Println(cap(fruits)) // cap: 4
var aFruits = fruits[0:3]
fmt.Println(len(aFruits)) // len: 3
fmt.Println(cap(aFruits)) // cap: 4
var bFruits = fruits[1:4]
fmt.Println(len(bFruits)) // len: 3
fmt.Println(cap(bFruits)) // cap: 3
• Variabel fruits disiapkan di awal dengan jumlah elemen 4. Maka fungsi len(fruits) dan cap(fruits)
akan menghasilkan angka 4.
• Variabel aFruits dan bFruits merupakan slice baru berisikan 3 buah elemen milik slice fruits.
Variabel aFruits mengambil elemen index 0, 1, 2; sedangkan bFruits 1, 2, 3.
• Fungsi len() menghasilkan angka 3, karena jumlah elemen kedua slice ini adalah 3. Tetapi
cap(aFruits) menghasilkan angka yang berbeda, yaitu 4 untuk aFruits dan 3 untuk bFruits.
Kode Output len() cap()
fruits[0:4] [buah, buah, buah, buah] 4 4
aFruits[0:3] [buah, buah, buah, - ] 3 4
bFruits[1:3] - [buah, buah, buah]
• append()
• Fungsi append() digunakan untuk menambahkan elemen pada slice. Elemen baru tersebut diposisikan setelah indeks
paling akhir.
• Ketika jumlah elemen dan lebar kapasitas adalah sama (len(fruits) == cap(fruits)), maka elemen baru hasil append()
merupakan referensi baru.
• Ketika jumlah elemen lebih kecil dibanding kapasitas (len(fruits) < cap(fruits)), elemen baru tersebut ditempatkan
kedalam cakupan kapasitas, menjadikan semua elemen slice lain yang referensi-nya sama akan berubah nilainya.
var fruits = []string{"apple", "grape", "banana"}
var cFruits = append(fruits, "papaya")
fmt.Println(fruits) // ["apple", "grape", "banana"]
fmt.Println(cFruits) // ["apple", "grape", "banana", "papaya"]
package main
import "fmt"
func main(){
var fruits = []string{"apple", "grape", "banana"}
var bFruits = fruits[0:2]
fmt.Println(cap(bFruits)) // 3
fmt.Println(len(bFruits)) // 2
fmt.Println(fruits) // ["apple", "grape", "banana"]
fmt.Println(bFruits) // ["apple", "grape"]
var cFruits = append(bFruits, "papaya")
fmt.Println(fruits) // ["apple", "grape", "papaya"]
fmt.Println(bFruits) // ["apple", "grape"]
fmt.Println(cFruits) // ["apple", "grape", "papaya"]
}
• copy(x1, x2)
• Fungsi copy() digunakan untuk men-copy elemen slice tujuan (x2), untuk
digabungkan dengan slice target (x1).
var fruits = []string{"apple"}
var aFruits = []string{"watermelon", "pinnaple"}
var copiedElemen = copy(fruits, aFruits)
fmt.Println(fruits) // ["apple", "watermelon", "pinnaple"]
fmt.Println(aFruits) // ["watermelon", "pinnaple"]
fmt.Println(copiedElemen) // 1
Map
• Map adalah tipe data asosiatif pada Go. Map menggunakan format
key-value, artinya setiap data (atau value) yang disimpan, disiapkan
juga key-nya. Key tersebut harus unik, karena digunakan sebagai
penanda (atau identifier) untuk pengaksesan data atau item yang
tersimpan.
• Nilai default variabel map adalah nil
// format inisialisasi tipe data map //
var <nama variable> map[<key>]<value>
var chicken = map[string]int{}
chicken["januari"] = 50
chicken["februari"] = 40
fmt.Println("januari", chicken["januari"]) // januari 50
fmt.Println("mei", chicken["mei"]) // mei 0
• Nilai variabel bertipe map bisa didefinisikan di awal, caranya dengan
menambahkan kurung kurawal setelah tipe data, lalu menuliskan key
dan value didalamnya.
Inisialisasi map
// format inisialisasi tipe data map //
var <nama variable> map[<key>]<value>{}
// cara vertikal //
var chicken1 = map[string]int{"januari": 50, "februari": 40}
// cara horizontal //
var chicken2 = map[string]int{
"januari": 50,
"februari": 40,
}
• Key dan value dituliskan dengan pembatas tanda titik dua (:). Sedangkan tiap itemnya dituliskan
dengan pembatas tanda koma (,). Khusus deklarasi dengan gaya vertikal, tanda koma perlu
dituliskan setelah item terakhir.
• Variabel map bisa diinisialisasi dengan tanpa nilai awal, caranya cukup menggunakan tanda
kurung kurawal atau bisa juga dengan menggunakan keyword make dan new.
// cara inisialisasi tipe data map //
var chicken3 = map[string]int{}
var chicken4 = make(map[string]int)
var chicken5 = *new(map[string]int)
Operasi pada Map
• delete()
• Fungsi delete() digunakan untuk menghapus item dengan key tertentu pada
variabel map.
var chicken = map[string]int{"januari": 50, "februari": 40}
fmt.Println(len(chicken)) // 2
fmt.Println(chicken)
delete(chicken, "januari")
fmt.Println(len(chicken)) // 1
fmt.Println(chicken)
• len()
• Fungsi len() digunakan pada map untuk mengembalikan jumlah item.
Deteksi item dengan key
• Cara untuk mengetahui atau mencari sebuah value pada map dengan
menggunakan atau memanfaatkan key-nya.
// format deteksi item dengan key //
var <value>, <bool> = <variablemap>[<key>]
// sample //
var chicken = map[string]int{"januari": 50, "februari": 40}
var value, isExist = chicken["mei"]
if isExist {
fmt.Println(value)
} else {
fmt.Println("data tidak ditemukan")
}
Map dan Slice
• Tipe data map bisa juga dikombinasikan dengan slice, biasa digunakan
untuk menyimpan misalkan data-data pelanggan, dll.
var chickens = []map[string]string{
{"name": "chicken blue", "gender": "male"},
{"name": "chicken red", "gender": "male"},
{"name": "chicken yellow", "gender": "female"},
}
for _, chicken := range chickens {
fmt.Println(chicken["gender"], chicken["name"])
}

More Related Content

PDF
Laporan Praktikum Struktur Data Modul 3
DOCX
MAKALAH STACK (TUMPUKAN )
DOC
Implementasi queue
PDF
Stack tumpukan
DOCX
Tugas mandiri struktur data
PDF
7. Queue (Struktur Data)
PDF
6. Stack (Struktur Data)
PDF
Algoritma dan Struktur Data - tumpukan
Laporan Praktikum Struktur Data Modul 3
MAKALAH STACK (TUMPUKAN )
Implementasi queue
Stack tumpukan
Tugas mandiri struktur data
7. Queue (Struktur Data)
6. Stack (Struktur Data)
Algoritma dan Struktur Data - tumpukan

What's hot (20)

PDF
Algoritma dan Struktur Data - antrian
PPTX
Stack atau tumpukan
PPTX
Materi kuliah 10 stack
PPT
Fungsi rekursif, queue, stack
PDF
ODP
PPTX
Struktur data
PDF
Algoritma dan Struktur Data - Antrian
PPTX
PPTX
Materi : Struktur Data (2 Array)
PDF
Queue antrian
DOCX
Laporan praktikum modul vii
DOCX
mengenal fungsi-fungsi diSQL Server
PDF
Bab 8-stack-dan-queue
PDF
Pertemuan 5 Stack atau Tumpukan
PPT
Materi Struktur Data Stack
DOCX
Laporan praktikum modul viii
PDF
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
PDF
Algoritma dan Struktur Data - Stack
PPTX
Hlookup &amp; vlookup
Algoritma dan Struktur Data - antrian
Stack atau tumpukan
Materi kuliah 10 stack
Fungsi rekursif, queue, stack
Struktur data
Algoritma dan Struktur Data - Antrian
Materi : Struktur Data (2 Array)
Queue antrian
Laporan praktikum modul vii
mengenal fungsi-fungsi diSQL Server
Bab 8-stack-dan-queue
Pertemuan 5 Stack atau Tumpukan
Materi Struktur Data Stack
Laporan praktikum modul viii
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
Algoritma dan Struktur Data - Stack
Hlookup &amp; vlookup
Ad

More from Dimas Prawira (11)

PPTX
Fundamental concurrent programming
PPTX
GoLang_4
PPTX
GoLang_3
PPTX
GoLang_2
PPTX
GoLang_1
DOCX
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
DOCX
Introduction on Android programming Tutorial
DOCX
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
PPTX
Offline concept Mobile apps
PPTX
Konsep aplikasi mobile Support System
PPTX
Pengenalan SOA serta implementasinya pada aplikasi SS (Support System)
Fundamental concurrent programming
GoLang_4
GoLang_3
GoLang_2
GoLang_1
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Introduction on Android programming Tutorial
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
Offline concept Mobile apps
Konsep aplikasi mobile Support System
Pengenalan SOA serta implementasinya pada aplikasi SS (Support System)
Ad

GoLang_5

  • 2. Roadmap pembelajaran Go - If - else - Switch - Case - For Array II III - Standar Lib Go - Variabel - Konstanta - Tipe Data - Operator IV V ... API Slice dan Map
  • 3. Apa yang kita pelajari? 1. Slice 2. Inisialisasi Slice 3. Slice dan Array 4. Operasi pada Slice 5. Map 6. Inisialisasi Map 7. Operasi pada Map
  • 4. Tujuan pembelajaran Poin - poin yang kita harap dapatkan pada sesi ini : Pengetahuan • Mengetahui slice dan map pada Go • Mengetahui cara inisialisasi slice dan map pada Go • Mengetahui perbedaan antara slice dan array • Mengetahui operasi yang bisa digunakan pada slice dan map Kemampuan • Dapat menggunakan slice dan map di Go • Dapat menggunakan operasi pada slice dan map di Go
  • 5. Slice • Slice adalah referensi elemen array. Slice bisa dibuat, atau bisa juga dihasilkan dari manipulasi sebuah array ataupun slice lainnya. • Perubahan data di tiap elemen slice akan berdampak pada slice lain yang memiliki alamat memori yang sama.
  • 6. Inisialisasi Slice • Cara membuat slice mirip seperti pada array, letak perbedaannya tidak perlu mendefinisikan jumlah elemen ketika awal deklarasi. var fruits = []string{"apple", "grape", "banana", "melon"} fmt.Println(fruits[0]) // "apple"
  • 7. Slice dan Array • Array adalah kumpulan nilai atau elemen, sedang slice adalah referensi tiap elemen tersebut.
  • 8. Operasi pada Slice • len() • Fungsi len() digunakan untuk menghitung lebar slice yang ada. • cap() • Fungsi cap() digunakan untuk menghitung lebar maksimum/kapasitas slice. var fruits = []string{"apple", "grape", "banana", "melon"} fmt.Println(len(fruits)) // 4
  • 9. var fruits = []string{"apple", "grape", "banana", "melon"} fmt.Println(len(fruits)) // len: 4 fmt.Println(cap(fruits)) // cap: 4 var aFruits = fruits[0:3] fmt.Println(len(aFruits)) // len: 3 fmt.Println(cap(aFruits)) // cap: 4 var bFruits = fruits[1:4] fmt.Println(len(bFruits)) // len: 3 fmt.Println(cap(bFruits)) // cap: 3
  • 10. • Variabel fruits disiapkan di awal dengan jumlah elemen 4. Maka fungsi len(fruits) dan cap(fruits) akan menghasilkan angka 4. • Variabel aFruits dan bFruits merupakan slice baru berisikan 3 buah elemen milik slice fruits. Variabel aFruits mengambil elemen index 0, 1, 2; sedangkan bFruits 1, 2, 3. • Fungsi len() menghasilkan angka 3, karena jumlah elemen kedua slice ini adalah 3. Tetapi cap(aFruits) menghasilkan angka yang berbeda, yaitu 4 untuk aFruits dan 3 untuk bFruits. Kode Output len() cap() fruits[0:4] [buah, buah, buah, buah] 4 4 aFruits[0:3] [buah, buah, buah, - ] 3 4 bFruits[1:3] - [buah, buah, buah]
  • 11. • append() • Fungsi append() digunakan untuk menambahkan elemen pada slice. Elemen baru tersebut diposisikan setelah indeks paling akhir. • Ketika jumlah elemen dan lebar kapasitas adalah sama (len(fruits) == cap(fruits)), maka elemen baru hasil append() merupakan referensi baru. • Ketika jumlah elemen lebih kecil dibanding kapasitas (len(fruits) < cap(fruits)), elemen baru tersebut ditempatkan kedalam cakupan kapasitas, menjadikan semua elemen slice lain yang referensi-nya sama akan berubah nilainya. var fruits = []string{"apple", "grape", "banana"} var cFruits = append(fruits, "papaya") fmt.Println(fruits) // ["apple", "grape", "banana"] fmt.Println(cFruits) // ["apple", "grape", "banana", "papaya"]
  • 12. package main import "fmt" func main(){ var fruits = []string{"apple", "grape", "banana"} var bFruits = fruits[0:2] fmt.Println(cap(bFruits)) // 3 fmt.Println(len(bFruits)) // 2 fmt.Println(fruits) // ["apple", "grape", "banana"] fmt.Println(bFruits) // ["apple", "grape"] var cFruits = append(bFruits, "papaya") fmt.Println(fruits) // ["apple", "grape", "papaya"] fmt.Println(bFruits) // ["apple", "grape"] fmt.Println(cFruits) // ["apple", "grape", "papaya"] }
  • 13. • copy(x1, x2) • Fungsi copy() digunakan untuk men-copy elemen slice tujuan (x2), untuk digabungkan dengan slice target (x1). var fruits = []string{"apple"} var aFruits = []string{"watermelon", "pinnaple"} var copiedElemen = copy(fruits, aFruits) fmt.Println(fruits) // ["apple", "watermelon", "pinnaple"] fmt.Println(aFruits) // ["watermelon", "pinnaple"] fmt.Println(copiedElemen) // 1
  • 14. Map • Map adalah tipe data asosiatif pada Go. Map menggunakan format key-value, artinya setiap data (atau value) yang disimpan, disiapkan juga key-nya. Key tersebut harus unik, karena digunakan sebagai penanda (atau identifier) untuk pengaksesan data atau item yang tersimpan. • Nilai default variabel map adalah nil // format inisialisasi tipe data map // var <nama variable> map[<key>]<value>
  • 15. var chicken = map[string]int{} chicken["januari"] = 50 chicken["februari"] = 40 fmt.Println("januari", chicken["januari"]) // januari 50 fmt.Println("mei", chicken["mei"]) // mei 0
  • 16. • Nilai variabel bertipe map bisa didefinisikan di awal, caranya dengan menambahkan kurung kurawal setelah tipe data, lalu menuliskan key dan value didalamnya. Inisialisasi map // format inisialisasi tipe data map // var <nama variable> map[<key>]<value>{} // cara vertikal // var chicken1 = map[string]int{"januari": 50, "februari": 40} // cara horizontal // var chicken2 = map[string]int{ "januari": 50, "februari": 40, }
  • 17. • Key dan value dituliskan dengan pembatas tanda titik dua (:). Sedangkan tiap itemnya dituliskan dengan pembatas tanda koma (,). Khusus deklarasi dengan gaya vertikal, tanda koma perlu dituliskan setelah item terakhir. • Variabel map bisa diinisialisasi dengan tanpa nilai awal, caranya cukup menggunakan tanda kurung kurawal atau bisa juga dengan menggunakan keyword make dan new. // cara inisialisasi tipe data map // var chicken3 = map[string]int{} var chicken4 = make(map[string]int) var chicken5 = *new(map[string]int)
  • 18. Operasi pada Map • delete() • Fungsi delete() digunakan untuk menghapus item dengan key tertentu pada variabel map. var chicken = map[string]int{"januari": 50, "februari": 40} fmt.Println(len(chicken)) // 2 fmt.Println(chicken) delete(chicken, "januari") fmt.Println(len(chicken)) // 1 fmt.Println(chicken)
  • 19. • len() • Fungsi len() digunakan pada map untuk mengembalikan jumlah item.
  • 20. Deteksi item dengan key • Cara untuk mengetahui atau mencari sebuah value pada map dengan menggunakan atau memanfaatkan key-nya. // format deteksi item dengan key // var <value>, <bool> = <variablemap>[<key>] // sample // var chicken = map[string]int{"januari": 50, "februari": 40} var value, isExist = chicken["mei"] if isExist { fmt.Println(value) } else { fmt.Println("data tidak ditemukan") }
  • 21. Map dan Slice • Tipe data map bisa juga dikombinasikan dengan slice, biasa digunakan untuk menyimpan misalkan data-data pelanggan, dll. var chickens = []map[string]string{ {"name": "chicken blue", "gender": "male"}, {"name": "chicken red", "gender": "male"}, {"name": "chicken yellow", "gender": "female"}, } for _, chicken := range chickens { fmt.Println(chicken["gender"], chicken["name"]) }