Modul Praktikum Semester I Algoritma & Pemrograman
Modul Praktikum Semester I Algoritma & Pemrograman
Jl. Andi Mangerangi No.73, Mamajang Dalam, Kec. Mamajang, Kota Makassar, Sulawesi Selatan 90132
Tel(0411) 871306
http:/www.unpacti.ac.id
MODUL
PRAKTIKUM
ALGORITMA &
PEMROGRAMAN
2019 / 2020
Oleh : Jeffry (jeffryfikom19@gmail.com)
DAFTAR ISI
Contents
KATA PENGANTAR ________________________________________________________________________________________1
PENGENALAN _____________________________________________________________________________________________2
Algoritma ______________________________________________________________________________________________________ 2
Go Lang ________________________________________________________________________________________________________ 2
Struktur Dasar Go Lang _______________________________________________________________________________________ 2
Command ______________________________________________________________________________________________________ 4
Command go run ___________________________________________________________________________________________ 4
Command go test ___________________________________________________________________________________________ 5
Command go build__________________________________________________________________________________________ 6
Command go install_________________________________________________________________________________________ 6
baris komentar ________________________________________________________________________________________________ 7
Komentar Inline ____________________________________________________________________________________________ 7
Komentar Multiline _________________________________________________________________________________________ 8
UTS _______________________________________________________________________________________________________ 31
FUNGSI___________________________________________________________________________________________________ 32
penerapan Fungsi_____________________________________________________________________________________________ 32
Membuat Fungsi dengan Parameter _________________________________________________________________________ 33
Membuat Fungsi Tanpa Nilai Balik___________________________________________________________________________ 35
LARIK (ARRAY) _________________________________________________________________________________________ 38
Array Multidimensi ___________________________________________________________________________________________ 40
PENGENALAN POINTER________________________________________________________________________________ 41
Penerapan Pointer ____________________________________________________________________________________________ 41
Parameter Pointer ____________________________________________________________________________________________ 42
DAFTAR PUSTAKA ______________________________________________________________________________________ 43
KATA PENGANTAR
KATA PENGANTAR
Page 1
PENGENALAN
PENGENALAN
ALGORITMA
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibnu Musa al-Khowarizmi, ilmuan Persia
yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M.
Dalam matematika dan ilmu komputer, algoritma adalah urutan atau langkah-langkah untuk memecahkan
masalah yang ditulis secara berurutan atau urutan logis pengambilan keputusan untuk menyelesaikan
suatu masalah. Sehingga, algoritma pemrograman adalah urutan atau langkah-langkah untuk
menyelesaikan masalah pemrograman komputer.
Algoritma dapat dituliskan dengan banyak cara, mulai dari menggunakan bahasa alami yang digunakan
sehari-hari, simbol grafik bagan alir, sampai menggunakan Bahasa pemograman, Seperti Go Lang, C, C++,
dll.
GO LANG
Go Lang biasa disebut sebagai GO merupakan Bahasa pemrograman yang bersifat open source dan
dikembangkan di Google oleh Robert Griesemer, Rob Pike, dan Ken Thompson pada tahun 2007 dan mulai
diperkenalkan di publik tahun 2009.
Golang didasari oleh Bahasa C dan C++ sehingga memilki sintaks penulisan yang hamper mirip.
Kelebihan Go :
1. Deklarasi Package
2. Import Library
3. Bagian Fungsi Utama / Main Method
Page 2
PENGENALAN
4. Ekspresi
package main
import (
"fmt"
)
func main(){
fmt.Println("Belajar Golang di Ilkom Pancasakti")
}
Analisis :
1. Deklarasi Package
Pada awal program ditulis package main yang merupakan deklarasi package. Package adalah suatu
cara untuk mengorganisasikan file yang ada atau bisa di bilang nama folder yang tersedia. Di Golang
satu file dapat di jalankan ketika mempunya package main.
Jika ternyata file program kita terdapat di root project, maka deklarasi package menggunakanmain.
package main
Namun, biasanya dalam satu folder project terdapat beberapa modul yang biasanya digunakan agar
program lebih rapi dan terstruktur. Misalkan kita asumsikan di dalam project terdapat folder dengan
nama “program” dan di dalam folder terdapat file “hello.go” maka penulisan deklarasi seperti berikut:
Program akan error/terjadi kesalahan ketika package tidak dideklarasikan.
2. Import Library
Import digunakan untuk memanggil library-library yang akan digunakan dalam menulis kode
program. Pada contoh di atas digunakan perintah untuk memanggil library dengan nama fmt. Library
merupakan sekumpulan fungsi yang di proses sedemikian rupa untuk kita gunakan fungsi nya. Dengan
menggunakan library kita lebih di mudahkan untuk membuat suatu program.
Page 3
PENGENALAN
import (
"fmt"
)
3. Main Method
Di dalam bahasa Golang harus ada satu nama method utama, dimana method tersebut di eskeksusi
pertama kali saat program tersebut dijalankan, yaitu method main(). Tanpa method main() maka
program tidak dapat di jalankan.
4. Ekspresi
Bahassa lain ekspresi yaitu statement, eksrepsi merupakan sebuah kode bagian terkecil. Kode tersebut
bisa diartikan suatu kegiatan yang dilakukan. Pada contoh di atas saya menggunakan ekspresi
penulisan string yaitu:
Kode diatas akan menghasilkan tulisan “Belajar Golang di Ilkom Pancasakti” di layar monitor. Ekspresi
bisa dikatakan sebagai sebuah baris kode. Di golang berbeda dengan bahasa lain, dimana akhir baris
tidak perlu menambahkan kode titik koma(;).
COMMAND
Go menggunakan Command Line Interface (CLI) untuk setiap proses, testing, dan eksekusi program.
Command go run
Command go run digunakan untuk eksekusi file program (file ber-ekstensi .go). Cara penggunaannya
dengan menuliskan command tersebut diikuti argumen nama file.
Praktikum :
Tuliskan Algoritma untuk menulis “Belajar Golang di Ilkom Pancasakti” dan terjemahkan ke dalam Bahasa
pemrograman golang dengan nama program hello!
Spesifikasi
Input : -
Page 4
PENGENALAN
ProgramHELLO
{ menulis “Belajar Golang di Ilkom Pancasakti” ke piranti keluaran}
Kamus
Algoritma :
pesan ⟵ “Belajar Golang di Ilkom Pancasakti”
output (pesan)
Gbr. 1
Analisis :
Pada Gbr. 1 di atas merupakan contoh eksekusi program dengan menggunakan perintah go run. Dimana
sebelumnya telah dibuat suatu program dengan nama file hello.go
Command go test
Go menyediakan package testing, berguna untuk keperluan unit testing. File yang akan di-test harus ber-
suffix _test.go.
Contoh:
Gbr 2.
Analisis:
Page 5
PENGENALAN
Gbr 2 merupakan contoh eksekusi program menggunakan perintah go test. Dapat dilihat bahwa nama file
yang digunakan harus bersuffix _test.go sehingga program dapat dieksekusi.
Command go build
Perintah ini berfungsi untuk mengkompilasi file program. Pada dasarnya, ketika perintah go run dijalankan
juga terjadi proses kompilasi yang disimpan di file temporary dan kemudian file dijalankan. Berbeda
dengan perintah go build yang menghasilkan file executable pada folder yang sedang aktif.
Contoh :
Gbr. 3
Analisis:
Gbr 3 memperlihatkan bahwa perintah go build menghasilkan file executable yaitu file hello.exe.
Command go install
Perintah go-install hampir sama dengan perintah go-build, namun perbedaan jika go build mengeksekusi
file yang berekstensi .go, perintah go-install merujuk kepada folder project yang bersangkutan dan
langsung melakukan instalasi program yang dibuat. Jika pada perintah go build, file executable terletak
satu file dengan file yang dieksekusi, maka perintah go-install terletak pada folder bin.
Contoh:
Page 6
PENGENALAN
Gbr. 4
BARIS KOMENTAR
Komentar pada Bahasa pemrograman bisa dimanfaatkan untuk menyisipkan catatan pada baris kode
program, mendeskripsikan atau menjelaskan suatu baris kode. Selain itu komentar juga berfungsi untuk
me remark atau menonaktifkan kode jika tidak digunakan. Ketika proses kompilasi program, komentar
akan diabaikan.
Komentar Inline
Komentar inline diawali dengan tanda double slasj (//) lalu diikuti pesan programnya. Komentar inline
hanya berlaku utuk satu baris pesan saja. Jika pesan komentar lebih dari satu baris, maka tanda // harus
ditulis lagi di baris selanjutnya.
Contoh :
package main
import (
"fmt"
)
Page 7
PENGENALAN
func main(){
// Baris kode
//Menampilkan pesan
fmt.Println("Belajar Golang di Ilkom Pancasakti")
//fmt.Println("Baris ini tidak akan dieksekusi")
}
Komentar Multiline
Komentar yang cukup panjang akan lebih rapi jika ditulis menggunakan teknik komentar multiline. Ciri
dari komentar jenis ini adalah penulisannya diawali dengan tanda /* dan diakhiri */.
Contoh:
package main
import (
"fmt"
)
func main(){
/*
Baris kode
Menampilkan pesan
Kode di dalam tanda ini tidak akan dieksekusi
*/
fmt.Println("Belajar Golang di Ilkom Pancasakti")
}
Page 8
VARIABEL DAN TIPE DATA
TIPE DATA
Type data diperlukan untuk mengetahui jangkauan dari tiap-tiap variable dan tersimpan dalam sebuah
variable.
• Number / Angka
Tipe data number di bagi menjadi 2 yaitu :
1. Integers, Integer digunakan untuk bilangan buat,misal nya 1 dan 2. Contoh menggunakan tipe data
Integer :
2. Float, Float digunakan untuk data yang berupa data pecahan / bilangan desimal. Contohnya 1,2.
Biasanya tipe data float digunakan untuk penggunaan operator matematika, seperti perkalian,
pembagian dan lainnya.
• String / Text, Tipe data string digunakan untuk data yang berupa teks/karakter misalnya “belajar
variable pada golang”.Di dalam bahasa program Golang penulisan nilai sebuah teks harus di apit
dengan tanda petik dua (“…”) saja. Tipe data string biasanya digunakan untuk menuliskan uraian teks.
• Tipe Data Boolean, Tipe data boolean dapat digunakan untuk memberikan 2 nilai saja yaitu TRUE dan
FALSE. Perlu di ketahui penulisan TRUE maupun FALSE harus berawalan menggunakan huruf besar
agar tidak menimbulkan kesalahan.
Praktikum :
Page 9
VARIABEL DAN TIPE DATA
Tuliskan Algoritma untuk menulis informasi biodata yaitu nama, alamat, sekolah, umur, tinggi badan dan
berat badan dengan kemudian terjemahkan ke dalam Bahasa pemrograman golang dengan nama program
biodata!
Spesifikasi
Input : nama, alamat, sekolah string dan umur, tinggiBadan(tinggi badan), beratBadan (Berat Badan)
integer.
ProgramBIODATA
{ menulis nama, alamat, sekolah, umur, tinggiBadan, beratBadan ke piranti keluaran}
Kamus
nama, alamat, sekolah : string {informasi setiap variable telah dituliskan}
umur: integer {informasi setiap variable telah dituliskan}
tinggiBadan := 169
beratBadan : = 60
Algoritma :
nama⟵”jeffry”
output (“Nama: ” + nama)
alamat⟵”makassar”
output (“Alamat: ” + alamat)
sekolah⟵”SMAN 1 Makassar”
output (“Asal sekolah: ” + sekolah )
umur⟵26
output (“Umur: ” + umur)
output (“Tinggi Badan: ”, tinggiBadan)
output (“Berat Badan: ”,beratBadan)
package main
import (
"fmt"
)
func main() {
var nama, alamat, sekolah string
var umur int
Page 10
VARIABEL DAN TIPE DATA
nama = "Jeffry"
alamat = "Makassar"
sekolah = "SMA N 1 Makassar"
umur = 26
tinggibadan := 169
beratbadan := 60
fmt.Println("=== Biodata ===")
fmt.Println("Nama : " + nama)
fmt.Println("Alamat : " + alamat)
fmt.Println("Sekolah : " + sekolah)
fmt.Println("Umur : ", umur)
fmt.Println("Tinggi Badan", tinggibadan)
fmt.Println("Berat Badan", beratbadan)
}
Gbr. 5
Analisis:
Perhatikan kode diatas, ada beberapa varian cara mendeklarasikan variable baik dengan tipe data maupun
tidak. Pada kode di atas hanya menggunakan 2 tipe data yaitu string dan integer. Variable nama, alamat,
sekolah, dan umur disebut dengan manifest typing yaitu deklarasi variable yang tipe datanya ditentukan.
Sedangkan variable tinggiBadan dan beratBadan merupakan metode type inference, yaitu metode
deklarasi variabel yang tipe data-nya ditentukan oleh tipe data nilainya, cara kontradiktif jika dibandingkan
dengan cara pertama. Dengan metode jenis ini, keyword var dan tipe data tidak perlu ditulis.Pada
penggunaan metode ini, operand = harus diganti dengan := dan keyword var dihilangkan.Diperbolehkan
untuk tetap menggunakan keyword var pada saat deklarasi meskipun tanpa menuliskan tipe data, dengan
ketentuan tidak menggunakan tanda :=, melainkan tetap menggunakan =.
Page 11
KONSEP INPUT/OUTPUT
KONSEP INPUT/OUTPUT
OPERATOR
Operator adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau
manipulasi.
Operator Aritmatika
Operator aritmatika adalah operator yang digunakan untuk operasi yang sifatnya perhitungan. Go
mendukung beberapa operator aritmatika standar, list-nya bisa dilihat di tabel berikut.
package main
import (
"fmt"
)
func main() {
var value = (((2 + 6) % 3) * 4 - 2) / 3
fmt.Println("Nilai", value)
}
Operator Perbandingan
Operator perbandingan digunakan untuk menentukan kebenaran suatu kondisi. Hasilnya berupa nilai
boolean, true atau false.
Tabel di bawah ini berisikan operator perbandingan yang bisa digunakan di Go.
Page 12
KONSEP INPUT/OUTPUT
<= apakah nilai kiri lebih kecil atau sama dengan nilai kanan X<=Y
Contoh penggunaan:
package main
import (
"fmt"
)
func main() {
var value = (((2 + 6) % 3) * 4 - 2) / 3
var isEqual = (value == 2)
Pada kode di atas, terdapat statement operasi aritmatika yang hasilnya ditampung oleh variabel value.
Selanjutnya, variabel tersebut tersebut dibandingkan dengan angka 2 untuk dicek apakah nilainya sama.
Jika iya, maka hasilnya adalah true, jika tidak maka false. Nilai hasil operasi perbandingan tersebut
kemudian disimpan dalam variabel isEqual
Operator Logika
Operator ini digunakan untuk mencari benar tidaknya kombinasi data bertipe bool (bisa berupa variabel
bertipe bool, atau hasil dari operator perbandingan).
package main
import (
"fmt"
)
func main() {
Page 13
KONSEP INPUT/OUTPUT
Pada kesempatan ini kita akan belajar cara mengambil nilai input dan menampilkan output program
golang.
a. Statemen Input adalah Statemen / fungsi yang digunakan untuk membaca data dari inputing device
(keyboard/mouse), contoh : Scan
b. Statemen Output adalah Statemen yang digunakan untuk menuliskan data ke layer monitor, contoh :
Print
Contoh:
package main
import (
"fmt"
)
func main() {
Page 14
KONSEP INPUT/OUTPUT
m = ((-b)+(2*c*c)+(4*a*b))/2*c;
fmt.Print(m)
}
Analisis:
Pada program di atas operasi yang dilakukan adalah operasi perhitungan matematis, maka harus
menggunakan type data yang sesuai untuk angka. Sebagian besar hasil dari pembagian adalah bilangan
pecahan. Oleh sebab itu, kita tidak bisa menggunakan type data integer. Jadi, pada program kali ini, kita
menggunakan type data float. Pada saat pengeksekusian, program akan meminta masukan berupa nilai
untuk variabel-variabelyang ada. Statement Print merupakan statement output karena menampilkan
hasilyang kita buat dalam program. Sedangkan statement Scan merupakan statement inputkarena
merupakan statement untuk memasukkan nilai variabel yang kita inginkan.Kemudian, program akan
memasukkan nilai-nilai tersebut ke dalam rumus yang ada.Lalu, program akan menapilkan hasil berupa
nilai m yang ingin kita ketahui.
Page 15
KONSEP INPUT/OUTPUT
func main() {
const phi=3.14
var luas, r float64
Pada program menghitung luas lingkaran ini, terdapat suatu variabel konstanta yang nilainya
tetap.Variabel yang termasuk variabel konstanta yaitu phi. Seperti yang kita ketahui,phi bernilai 3,14. Oleh
karena itu, akan lebih baik jika nilai phi itu dijadikan sebagaisuatu konstanta daripada dijadikan sebagai
masukan dari pengguna program.Setelah itu, programakan meminta masukan berupa jari-jari lingkaran
yang akan dicari luasnya. Kemudian,akan dilakukan perhitungan dengan rumus yang ada. Lalu hasilnya
akan ditampilkansesuai dengan hasil perhitungan.
Page 16
KUIS
KUIS
Soal:
1. Buat sebuah program untuk menampilkan data mahasiswa berupa nama, nim, umur, nilai (dalam
decimal). Yang mana data tersebut berupa inputan dari user !
Page 17
SELEKSI KONDISI
SELEKSI KONDISI
Seleksi kondisi digunakan untuk mengontrol alur program. Analoginya mirip seperti fungsi rambu lalu
lintas di jalan raya. Kapan kendaraan diperbolehkan melaju dan kapan harus berhenti diatur oleh rambu
tersebut. Seleksi kondisi pada program juga kurang lebih sama, kapan sebuah blok kode akan dieksekusi
dikontrol.Yang dijadikan acuan oleh seleksi kondisi adalah nilai bertipe bool, bisa berasal dari variabel,
ataupun hasil operasi perbandingan. Nilai tersebut menentukan blok kode mana yang akan dieksekusi.
Go memiliki 2 macam keyword untuk seleksi kondisi, yaitu if else dan switch. Di bab ini kita akan
mempelajarinya satu-persatu.
PERNYATAAN IF – ELSE
Jenis-jenis pemilihan kondisi:
• Pilihan Tunggal
• Pilihan Ganda
• Pilihan Majemuk
Pilihan Tunggal
Bentuk paling sederhana pilihan tunggal adalah jika hanya ada satu pilihan kondisi yang disediakan.
If kondisi
{
true statement;
}
Bentuk Umum:
Contoh Permasalahan: Menentukan huruf vokal dari suatu huruf yang dimasukkan dari keyboard.
func main() {
var huruf string
Page 18
SELEKSI KONDISI
fmt.Println("------------------------------")
fmt.Print("Masukkan huruf : ")
fmt.Scan(&huruf)
Pilihan Ganda
Digunakan untuk menentukan tindakan yang akan digunakan bila kondisi bernilai benar dan salah. Bentuk
umum:
if kondisi
{
true statement
}
else
{
false statement
}
Contoh 1
func main() {
var huruf string
Page 19
SELEKSI KONDISI
Contoh 2
func main() {
var a,b int
if (a>b) {
fmt.Print("bilangan terbesar adalah ", a)
Page 20
SELEKSI KONDISI
}else{
fmt.Print("bilangan terbesar adalah ", b)
}
}
Contoh Permasalahan:
func main() {
var nilai int
if (nilai>90) {
Page 21
SELEKSI KONDISI
fmt.Print("nilai A")
}else if (nilai>=80){
fmt.Print("nilai B")
}else if (nilai>=70){
fmt.Print("nilai C")
}else if (nilai>60){
fmt.Print("nilai D")
}else{
fmt.Print("nilai E")
}
}
Pilihan Majemuk
Untuk menentukan tindakan yang akan digunakan disediakan lebih dari 2 alternatif. Merupakan bentuk
statement if dengan statement if lain di dalam if sebelumnya.
Bentuk umum:
if kondisiA
{
if kondisiB
{
true statementB
}
else
{
false statementB
}
}
else
{
false statementA
}
Page 22
SELEKSI KONDISI
package main
import "fmt"
func main() {
var v1 int = 400
var v2 int = 700
// Menggunakan Statement if
if( v1 == 400 ) {
// jika kondisi benar maka
// akan memeriksa kondisi kedua
if( v2 == 700 ) {
// jika kondisi benar
// maka akan menampilkan:
fmt.Printf("Nilai v1 400 and v2 700" );
}
}
}
Untuk masalah dengan dua pilihan atau lebih, struktur CASE dapat menyederhanakan penulisan IF yang
bertingkat-tingkat. Switch merupakan seleksi kondisi yang sifatnya fokus pada satu variabel, lalu kemudian
di-cek nilainya. Contoh sederhananya seperti penentuan apakah nilai variabel x adalah: 1, 2, 3, atau lainnya.
Pernyataan Switch mengambil ekspresi dan mencocokkannya dengan daftar kemungkinan kasus. Setelah
kecocokan ditemukan, ia mengeksekusi blok kode yang ditentukan dalam case yang cocok.
Bentuk umum :
switch expression {
case condition:
}
Page 23
SELEKSI KONDISI
package main
import "fmt"
func main() {
var dayOfWeek = 6
switch dayOfWeek {
case 1: fmt.Println("Senin")
case 2: fmt.Println("Selasa")
case 3: fmt.Println("Rabu")
case 4: fmt.Println("Kamis")
case 5: fmt.Println("Jumat")
case 6: {
fmt.Println("Sabtu")
fmt.Println("Weekend. Yaay!")
}
case 7: {
fmt.Println("Minggu")
fmt.Println("Weekend. Yaay!")
}
default: fmt.Println("Salah Hari")
}
}
package main
import "fmt"
func main() {
switch dayOfWeek := 5; dayOfWeek {
Page 24
SELEKSI KONDISI
case 1, 2, 3, 4, 5:
fmt.Println("Hari Kerja")
case 6, 7:
fmt.Println("Weekend")
default:
fmt.Println("Salah Hari")
}
}
func main() {
var point = 6
if point > 7 {
switch point {
case 10:
fmt.Println("perfect!")
default:
fmt.Println("nice!")
}
} else {
if point == 5 {
fmt.Println("not bad")
} else if point == 3 {
fmt.Println("keep trying")
} else {
fmt.Println("you can do it")
if point == 0 {
fmt.Println("try harder!")
}
}
}
}
Page 25
KUIS
KUIS
Misalkan karyawan PT. Makmur dikelompokkan berdasarkan golongannya. Upah perjam
tiap karyawan bergantung pada golongannya, dengan ketentuan :
Jumlah jam kerja normal selama 1 minggu adalah 48 jam. Kelebihan jam kerja dianggap
lembur dengan upah lembur adalah Rp.4000,- per jam untuk semua golongan karyawan.
Buat program menghitung gaji karyawan mingguan. Data yang dimasukan dari keyboard
adalah nama karyawan, golongan, jumlah jam kerja. Data yang dicetak adalah nama
karyawan dan gajinya.
Page 26
PERULANGAN (LOOPING)
PERULANGAN (LOOPING)
Perulangan adalah suatu program yang di desain untuk melakukan tugas yang berulang dengan jumlah
yang telah di tentukan. Perulangan akan berhenti ketika suatu kondisi sudah terpenuhi.
Di Go keyword perulangan hanya for saja, tetapi meski demikian, kemampuannya merupakan gabungan for,
foreach, dan while ibarat bahasa pemrograman lain.
Hal ini untuk memudahkan kita agar tidak terlalu banyak hal yang harus kita pelajari untuk perulangan
seperti halnya di bahasa lainnya.
• inisialisasi : kita dapat menginisialisasi variable pada section ini. Sintak sama dengan inisialisasi pada
if. Kode yang berada pada section inisialisasi hanya akan dipanggil 1 kali saja.
• kondisi : jika kondisi true maka kode di dalam kurung kurawal for akan dieksekusi. Jika kondisi false
maka perulangan telah berakhir. Kondisi dipanggil setelah inisialisasi dan setelah post execution.
• post execution : kode dalam section ini akan dipanggil setiap selesai dari 1 perulangan. Setelah post
execution di eksekusi lalu selanjutnya for akan mengecheck kondisi, jika true maka perulangan akan
di panggil dan sebaliknya.
Contoh :
Page 27
PERULANGAN (LOOPING)
Perulangan di atas hanya akan berjalan ketika variabel i bernilai dibawah 5, dengan ketentuan setiap kali
perulangan, nilai variabel i akan di-iterasi atau ditambahkan 1 (i++ artinya ditambah satu, sama seperti i =
i + 1). Karena i pada awalnya bernilai 0, maka perulangan akan berlangsung 5 kali, yaitu ketika i bernilai 0,
1, 2, 3, dan 4.
Kode berikut adalah contoh for dengan argumen hanya kondisi (seperti if), output yang dihasilkan sama
seperti penerapan for cara pertama.
var i = 0
for i <5 {
fmt.Println("Angka", i)
i++
}
for {
fmt.Println("Angka", i)
i++
if i == 5 {
break
}
}
Cara ke-3 adalah for ditulis tanpa kondisi. Dengan ini akan dihasilkan perulangan tanpa henti (sama
dengan for true). Pemberhentian perulangan dilakukan dengan menggunakan keyword break.
Page 28
PERULANGAN (LOOPING)
Sepertihalnya pada bahasa pemrograman lainnya, perulangan di Golang juga memiliki kata kunci break dan
continue :
package main
import (
"fmt"
)
func main() {
Page 29
PERULANGAN (LOOPING)
fmt.Println()
}
Pada kode di atas, untuk pertama kalinya 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").
Hasil
Page 30
UTS
UTS
Page 31
FUNGSI
FUNGSI
Function adalah sekelompok pernyataan yang bersama-sama melakukan tugas. Setiap program Go
memiliki setidaknya satu fungsi, yaitu main (). Anda dapat membagi kode Anda menjadi fungsi-fungsi
terpisah. Bagaimana Anda membagi kode Anda di antara fungsi-fungsi yang berbeda tergantung pada
Anda, tetapi secara logis, pembagiannya harus sedemikian rupa sehingga masing-masing fungsi melakukan
tugas tertentu.
Deklarasi fungsi memberi tahu compiler tentang nama function, tipe return, dan parameter. Definisi fungsi
menyediakan fungsi body yang sebenarnya.
Library Go standar menyediakan berbagai fungsi bawaan yang dapat dipanggil oleh program Anda.
Misalnya, fungsi len () mengambil argumen dari berbagai jenis dan return panjang Type. Jika sebuah string
diteruskan ke sana, fungsi mengembalikan panjang string dalam byte. Jika array dilewatkan ke sana, fungsi
mengembalikan panjang array.
Fungsi merupakan aspek penting dalam pemrograman. Definisi fungsi sendiri adalah sekumpulan blok
kode yang dibungkus dengan nama tertentu. Penerapan fungsi yang tepat akan menjadikan kode lebih
modular dan juga dry (kependekan dari don't repeat yourself), tak perlu menuliskan banyak kode yang
kegunaannya berkali-kali, cukup sekali saja lalu panggil sesuai kebutuhan.
func namaFungsi(){}
Atau
Atau
PENERAPAN FUNGSI
Sebenarnya tanpa sadar, kita sudah menerapkan fungsi di bab-bab sebelum ini, yaitu pada fungsi main.
Fungsi main merupakan fungsi yang paling utama pada program Go.
Cara membuat fungsi cukup mudah, yaitu dengan menuliskan keyword func, diikuti setelahnya nama
fungsi, kurung yang berisikan parameter, dan kurung kurawal untuk membungkus blok kode.
Page 32
FUNGSI
Parameter sendiri adalah variabel yang disisipkan pada saat pemanggilan fungsi.
package main
import (
"fmt"
func cetak() {
func main() {
cetak()
Perhatikan kode diatas, fungsi main() memanggil fungsi cetak(). Maka akan memproses baris kode di
dalam fungsi cetak.
package main
Page 33
FUNGSI
import (
"fmt"
c := a + b
return c
func main() {
a := 10
b := 20
hasil := tambah(a, b)
Kode di atas fungsi yang di buat bernama jumlah() dengan parameter a dengan tipe data integer dan b
dengan tipe data integer.
Perlu di ketahui penggunaan fungsi di atas menggunakan return / nilai balik. Nilai balik / return fungsi
jumlah yaitu integer.
Page 34
FUNGSI
package main
import (
"fmt"
c := a + b
func main() {
a := 10
b := 20
tambah(a, b)
Hasilnya sama seperti fungsi menggunakan return, namun untuk mencetak hasil penjumlahan dilakukan
pada fungsi jumlah().
package main
import (
"fmt"
Page 35
FUNGSI
c := a + b
return c
c := a * b
return c
c := a + b
return c
c := a + b
return c
func main() {
a := 10
b := 20
Page 36
FUNGSI
Terdapat 4 fungsi yang kita panggil, masing-masing fungsi mempunya cara kerja yang berbeda. Proses di
dalam ke empat fungsi tersebut yaitu operator aritmatik.
Page 37
LARIK (ARRAY)
LARIK (ARRAY)
Array adalah kumpulan data bertipe sama, yang disimpan dalam sebuah variabel. Array memiliki kapasitas
yang nilainya ditentukan pada saat pembuatan, menjadikan elemen/data yang disimpan di array tersebut
jumlahnya tidak boleh melebihi yang sudah dialokasikan. Default nilai tiap elemen array pada awalnya
tergantung dari tipe datanya. Jika int maka tiap element zero value-nya adalah 0, jika bool maka false, dan
seterusnya. Setiap elemen array memiliki indeks berupa angka yang merepresentasikan posisi urutan
elemen tersebut. Indeks array dimulai dari 0. Contohnya adalah array yang didalamnya terdapat angka
dengan tipe integer. A = [1,2,3,4,5,6,7,8,9,10].
Hampir di semua bahasa pemrograman array di tandai dengan lambang siku […].
Variabel names dideklarasikan sebagai array string dengan alokasi elemen 4 slot. Cara mengisi slot elemen
array bisa dilihat di kode di atas, yaitu dengan langsung mengakses elemen menggunakan indeks, lalu
mengisinya.
package main
import (
"fmt"
)
func main() {
var names [4]string
names[0] = "nilai indeks 0"
names[1] = "nilai indeks 1"
names[2] = "nilai indeks 2"
names[3] = "nilai indeks 3"
Page 38
LARIK (ARRAY)
Ada 2 cara menampilkan array. Yang pertama dapat mencetak pada index array tertantu dan yang kedua
dapat menggunakan perulangan.
package main
import (
"fmt"
)
func main() {
var names [4]string
names[0] = "nilai indeks 0"
names[1] = "nilai indeks 1"
names[2] = "nilai indeks 2"
names[3] = "nilai indeks 3"
Cara di atas sudah berhasil menampilkan data yang kita definisikan di awal.
Pertanyaannya adalah Ketika datanya banyak akan menuliskan data satu per satu ?
Jawabnya tidak mungkin, maka dari itu seperti yang saya sebutkan di atas solusinya menggunakan sebuah
perulangan.
package main
import (
"fmt"
)
func main() {
var names [4]string
names[0] = "nilai indeks 0"
names[1] = "nilai indeks 1"
names[2] = "nilai indeks 2"
names[3] = "nilai indeks 3"
Dengan menggunakan perulangan maka kode yang kita tuliskan lebih sedikit dan efektif.
Page 39
LARIK (ARRAY)
ARRAY MULTIDIMENSI
Array multidimensi adalah array yang tiap elemennya juga berupa array (dan bisa seterusnya, tergantung
kedalaman dimensinya).
Cara deklarasi array multidimensi secara umum sama dengan cara deklarasi array biasa, dengan cara
menuliskan data array dimensi selanjutnya sebagai elemen array dimensi sebelumnya.
Khusus untuk array yang merupakan sub dimensi atau elemen, boleh tidak dituliskan jumlah datanya.
ukuran1 menujukkan total array, sedangkan ukuran2 menunjukan jumlah data di dalam
array ukuran1. Contoh:
package main
import (
"fmt"
)
func main() {
fmt.Println("Array Multi Dimensi")
var angka = [5][2]int{{0, 0}, {2, 2}, {3, 4}, {5, 6}, {7, 8}}
Page 40
PENGENALAN POINTER
PENGENALAN POINTER
Pointer adalah reference atau alamat memori. Variabel pointer berarti variabel yang berisi alamat memori
suatu nilai. Sebagai contoh sebuah variabel bertipe integer memiliki nilai 4, maka yang dimaksud pointer
adalah alamat memori dimana nilai 4 disimpan, bukan nilai 4 itu sendiri.
Variabel-variabel yang memiliki reference atau alamat pointer yang sama, saling berhubungan satu sama
lain dan nilainya pasti sama. Ketika ada perubahan nilai, maka akan memberikan efek kepada variabel lain
(yang referensi-nya sama) yaitu nilainya ikut berubah.
PENERAPAN POINTER
Variabel bertipe pointer ditandai dengan adanya tanda asterisk (*) tepat sebelum penulisan tipe data
ketika deklarasi.
Nilai default variabel pointer adalah nil (kosong). Variabel pointer tidak bisa menampung nilai yang bukan
pointer, dan sebaliknya variabel biasa tidak bisa menampung nilai pointer.
Variabel biasa bisa diambil nilai pointernya, caranya dengan menambahkan tanda ampersand (&) tepat
sebelum nama variabel. Metode ini disebut dengan referencing.
Dan sebaliknya, nilai asli variabel pointer juga bisa diambil, dengan cara menambahkan tanda asterisk (*)
tepat sebelum nama variabel. Metode ini disebut dengan dereferencing.
Page 41
PENGENALAN POINTER
Variabel numberB dideklarasikan bertipe pointer int dengan nilai awal adalah referensi variabel numberA
(bisa dilihat pada kode &numberA). Dengan ini, variabel numberA dan numberB menampung data dengan
referensi alamat memori yang sama.
Variabel pointer jika di-print akan menghasilkan string alamat memori (dalam notasi heksadesimal),
contohnya seperti numberB yang diprint menghasilkan 0xc20800a220.
Nilai asli sebuah variabel pointer bisa didapatkan dengan cara di-dereference terlebih dahulu (bisa dilihat
pada kode *numberB).
PARAMETER POINTER
Parameter bisa juga didesain sebagai pointer. Cara penerapannya kurang lebih sama, dengan cara
mendeklarasikan parameter sebagai pointer.
package main
import "fmt"
func main() {
var number = 4
fmt.Println("before :", number) // 4
change(&number, 10)
fmt.Println("after :", number) // 10
}
Fungsi change() memiliki 2 parameter, yaitu original yang tipenya adalah pointer int, dan value yang
bertipe int. Di dalam fungsi tersebut nilai asli parameter pointer original diubah.
Fungsi change() kemudian diimplementasikan di main. Variabel number yang nilai awalnya adalah 4
diambil referensi-nya lalu digunakan sebagai parameter pada pemanggilan fungsi change().
Nilai variabel number berubah menjadi 10 karena perubahan yang terjadi di dalam fungsi change adalah
pada variabel pointer.
Page 42
DAFTAR PUSTAKA
DAFTAR PUSTAKA
Page 43