Alfira Saputri
Golang atau Bahasa Go adalah salah satu bahasa pemrograman open-source yang dikembangkan Google oleh Robert Gresemer, Rob Pike dan Ken Thompson pada tahun 2007 dan mulai diperkenalkan di publik pada tahun 2009. Golang dibuat berdasarkan kekuatan bahasa pemrograman lama seperti keluarga C (C++, C#, C) dan digabungkan dengan kenyamanan saat mengembangkan aplikasi dengan bahasa modern sehingga memiliki performa yang cepat.
Bahasa Golang biasanya digunakan untuk bahasa backend dalam aplikasi website, mobile, maupun dekstop. Golang terkenal dengan kemudahannya dalam menggunakan konkurensi (concurrency) dengan fitur goroutine-nya. Selain itu, Golang mampu membangun aplikasi web yang aman dan scalable, mampu mengatasi sistem yang kompleks yang membutuhkan kinerja tinggi.
Pada portofolio ini saya akan membahas tentang Aplikasi Sederhana Menggunakan Golang bertema Perhitungan dasar Matematika. Aplikasi berbasis command line dengan fitur-fitur berikut:
Berikut adalah programnya:
package main
import (
"fmt"
"math"
)
func main() {
varuserChoice int
fori:= 1; i > 0; i++{
fmt.Println(" Menu:") fmt.Println("1. Hitung Luas Persegi") fmt.Println("2. Hitung Luas Segitiga") fmt.Println("3. Hitung Luas Lingkaran") fmt.Println("4. Hitung Sudut Trigonometri ") fmt.Println("5. Hitung Gerak Lurus Berarturan") fmt.Println("6. Hitung Gerak Lurus Berubah Berarturan") fmt.Println("7. Hitung Energi Potensial dan Kinetik") fmt.Println("8. Hitung frekuensi dan getaran") fmt.Println("9. Hitung massa jenis") fmt.Println("10. Hitung daya, tekanan, usaha dan gaya") fmt.Println("11. Konversi suhu") fmt.Println("99. Exit Program") fmt.Print("pilih [1-11]: ") fmt.Scan(&userChoice) switch userChoice{ case1: LuasPersegi() case2: LuasSegitiga() case3:
GetLuasLingkaran()
case4: HitungTrigonometry() case5: HitungGLB() case6: HitungGLBB() case7:
HitungPotensialKinetik() case8:
HitungFrekuensiGetaran() case9:
HitungMassaJenis() case10: HitungDayaGaya() case11: KonversiSuhu() case99:
i =-1 // stop looping default:
fmt.Println("Invalid input!")
}
}
}
func LuasPersegi() { varsisi float64 fmt.Println(" #1. Menghitung Luas Persegi") fmt.Println("Rumus -> Luas Persegi = sisi * sisi") fmt.Print("Panjang sisi (cm) = ") fmt.Scan(&sisi) fmt.Printf("Luas Persegi = %.1f cm ", (sisi * sisi))
}
func LuasSegitiga() { varalas, tinggifloat64 fmt.Println(" #2. Menghitung Luas Segitiga") fmt.Println("Rumus -> Luas Segitiga = 1/2 * alas * tinggi") fmt.Print("Panjang alas (cm) = ") fmt.Scan(&alas) fmt.Print("Tinggi segitiga (cm) = ") fmt.Scan(&tinggi) fmt.Printf("Luas segitiga = %.1f cm ", (1.0/2.0* alas * tinggi))
}
func GetLuasLingkaran() { varjariJari float64 fmt.Println(" #3. Menghitung Luas Lingkaran") fmt.Println("Rumus -> Luas Lingkaran = phi * r * r") fmt.Print("Panjang Jari Jari (cm) = ") fmt.Scan(&jariJari)
fmt.Printf("Luas Lingkaran = %.1f cm ", (math.Pi * jariJari * jariJari))
}
func HitungTrigonometry(){ varalas, miring, tinggi float64 fmt.Println(" #4. Menghitung Sudut Trigonometri") fmt.Print("Panjang Alas = ") fmt.Scan(&alas) fmt.Print("Panjang Sisi Miring = ") fmt.Scan(&miring) fmt.Print("Tinggi = ") fmt.Scan(&tinggi) fmt.Printf("Sin = %.2f ", tinggi / miring) fmt.Printf("Cos = %.2f ", alas / miring) fmt.Printf("Tan = %.2f ", tinggi / alas)
}
func HitungGLB(){ varuserChoice int varkecepatan, jarakTempuh, waktuTempuh float64 fmt.Println(" #5. Menghitung Gerak Lurus Beraturan") fmt.Println("Menu:") fmt.Println("1. Hitung kecepatan") fmt.Println("2. Hitung jarak tempuh") fmt.Println("3. Hitung waktu tempuh") fmt.Print("Pilih [1-3]: ") fmt.Scan(&userChoice)
switch userChoice { case1:
fmt.Println(" #Menghitung Kecepatan") fmt.Println("Rumus -> Kecepatan = JarakTempuh / WaktuTempuh") fmt.Print("Jarak tempuh (km) = ") fmt.Scan(&jarakTempuh) fmt.Print("Waktu tempuh (jam) = ") fmt.Scan(&waktuTempuh)
fmt.Printf("Kecepatan = %.2f km/jam ", jarakTempuh/waktuTempuh )
case2:
fmt.Println(" #Menghitung Jarak Tempuh") fmt.Println("Rumus -> JarakTempuh = Kecepatan * WaktuTempuh") fmt.Print("Kecepatan (km/jam) = ") fmt.Scan(&kecepatan) fmt.Print("Waktu tempuh (jam) = ") fmt.Scan(&waktuTempuh) fmt.Printf("Jarak Tempuh = %.2f km ", kecepatan*waktuTempuh )
case3:
fmt.Println(" #Menghitung Waktu Tempuh") fmt.Println("Rumus -> WaktuTempuh = jarak tempuh / kecepatan") fmt.Print("Jarak tempuh (km) = ") fmt.Scan(&jarakTempuh) fmt.Print("Kecepatan (km/jam) = ") fmt.Scan(&kecepatan) fmt.Printf("Waktu Tempuh = %.2f jam ", jarakTempuh/kecepatan )
default:
fmt.Println("Invalid input!")
}
}
func HitungGLBB(){ varuserChoice int varkecepatanAkhir, kecepatanAwal, percepatan, jarak, waktu float64 fmt.Println(" #6. Menghitung Gerak Lurus Berubah Beraturan") fmt.Println("Menu:") fmt.Println("1. Hitung kecepatan akhir") fmt.Println("2. Hitung waktu tempuh") fmt.Print("Pilih [1 atau 2]: ") fmt.Scan(&userChoice)
switch userChoice { case1:
fmt.Println(" #Menghitung Kecepatan Akhir")
fmt.Println("Rumus -> Kecepatan Akhir = Kecepatan Awal + percepatan * waktu") fmt.Print("Kecepatan Awal (m/s)= ") fmt.Scan(&kecepatanAwal) fmt.Print("Percepatan (m/s^2)= ") fmt.Scan(&percepatan) fmt.Print("Waktu (s)= ") fmt.Scan(&waktu) kecepatanAkhir= kecepatanAwal + percepatan*waktu fmt.Printf("Kecepatan AKhir = %.2f m/s ", kecepatanAkhir)
case2:
fmt.Println(" #Menghitung Jarak")
fmt.Println("Rumus -> Jarak = (Kecepatan Akhir - Kecepatan Awal) / percepatan") fmt.Print("Kecepatan Awal (m/s)= ") fmt.Scan(&kecepatanAwal) fmt.Print("Kecepatan Akhir (m/s)= ") fmt.Scan(&kecepatanAkhir) fmt.Print("Percepatan (m/s^2)= ") fmt.Scan(&waktu) jarak= (kecepatanAkhir - kecepatanAwal) / waktu fmt.Printf("Waktu = %.2f s ", jarak) default:
fmt.Println("Invalid Input!")
}
}
func HitungPotensialKinetik(){ varuserChoice int varenergiPotensial, energiKinetik, massaBenda, gravitasi, ketinggian, kecepatanfloat64 fmt.Println(" #7. Menghitung Energi Potensial dan Kinetik") fmt.Println("Menu:") fmt.Println("1. Hitung Energi Potensial Gravitasi") fmt.Println("2. Hitung Energi Kinetik") fmt.Print("Pilih [1 atau 2]: ") fmt.Scan(&userChoice)
switch userChoice { case1:
fmt.Println(" #Menghitung Energi Potensial Gravitasi") fmt.Println("Rumus -> Ep = massa benda * gravitasi * ketinggian") fmt.Print("Massa benda (kg)= ") fmt.Scan(&massaBenda) fmt.Print("Gravitasi (m/s2)= ") fmt.Scan(&gravitasi) fmt.Print("Ketinggian (m)= ") fmt.Scan(&ketinggian) energiPotensial= massaBenda * gravitasi * ketinggian fmt.Printf("Energi Potensial = %.2f Joule ", energiPotensial)
case2:
fmt.Println(" #Menghitung Energi Kinetik") fmt.Println("Rumus -> Ek = (massa * kecepatan^2) / 2") fmt.Print("Massa (kg)= ") fmt.Scan(&massaBenda) fmt.Print("Kecepatan (m/s)= ") fmt.Scan(&kecepatan) energiKinetik= 1.0/2.0* massaBenda * kecepatan * kecepatan fmt.Printf("Energi Kinetik = %.2f Joule ", energiKinetik) default:
fmt.Println("Invalid Input!")
}
}
func HitungFrekuensiGetaran(){ varjumlahGetaran, waktufloat64 fmt.Println(" #8. Menghitung Frekuensi dan Getaran") fmt.Println("Rumus -> Frekuensi = jumlah getaran / waktu yang dibutuhkan") fmt.Print("Jumlah Getaran = ") fmt.Scan(&jumlahGetaran) fmt.Print("Waktu (s) = ")
fmt.Scan(&waktu) fmt.Printf("Frekuensi = %.2f hz ", jumlahGetaran / waktu)
}
func HitungMassaJenis(){ varmassa, volumefloat64 fmt.Println(" #9. Menghitung Massa Jenis") fmt.Println("Rumus -> massa / volume") fmt.Print("Massa (kg) = ") fmt.Scan(&massa) fmt.Print("Volume (m3)) = ") fmt.Scan(&volume) fmt.Printf("Massa jenis = %.2f kg/m3 ", massa / volume)
}
func HitungDayaGaya(){ varuserChoice int varusaha, gaya, alas, waktu, jarak float64 fmt.Println(" #10. Menghitung Daya, Tekanan, Usaha dan Gaya") fmt.Println("Menu:") fmt.Println("1. Hitung Daya") fmt.Println("2. Hitung Tekanan") fmt.Println("3. Hitung Usaha") fmt.Println("4. Hitung Gaya") fmt.Print("Pilih [1-4]: ") fmt.Scan(&userChoice)
switch userChoice{
case1:
fmt.Println(" #Menghitung Daya") fmt.Println("Rumus -> Daya = Usaha / waktu") fmt.Print("Usaha (joule) = ") fmt.Scan(&usaha) fmt.Print("Waktu (s) = ") fmt.Scan(&waktu) fmt.Printf("Gaya = %.2f J/s ", usaha / waktu) case2:
fmt.Println(" #Menghitung Tekanan") fmt.Println("Rumus -> Tekanan = Gaya / Luas alas ") fmt.Print("Gaya (N) = ") fmt.Scan(&gaya) fmt.Print("Luas alas (m2) = ") fmt.Scan(&alas) fmt.Printf("Tekanan = %.2f N/m2 ", gaya / alas) case3:
fmt.Println(" #Menghitung Usaha") fmt.Println("Rumus -> Usaha = Gaya * Jarak") fmt.Print("Gaya (N) = ")
fmt.Scan(&gaya) fmt.Print("Jarak (m) = ") fmt.Scan(&jarak) fmt.Printf("Usaha = %.2f J ", gaya * jarak) case4:
fmt.Println(" #Menghitung Gaya") fmt.Println("Rumus -> Gaya = Usaha / Jarak") fmt.Print("Usaha (J) = ") fmt.Scan(&usaha) fmt.Print("Waktu (s) = ") fmt.Scan(&jarak) fmt.Printf("Gaya = %.2f N ", usaha / jarak) default :
fmt.Println("Invalid input!")
}
}
func KonversiSuhu(){ varuserChoice int varsuhu float64 fmt.Println(" #11. Konversi Susu")fmt.Println("Pilih Jenis Suhu yang dimiliki") fmt.Println("1. Celcius") fmt.Println("2. Fahrenheit")fmt.Println("3. Reamur") fmt.Println("4. Kelvin") fmt.Print("Pilihan [1-4] : ") fmt.Scan(&userChoice)
switch userChoice { case1:
fmt.Print("Masukkan suhu dalam Celcius = ") fmt.Scan(&suhu) fmt.Printf("%.2f Celcius = %.2f Reamur ", suhu, suhu * 4.0/5.0) fmt.Printf("%.2f Celcius = %.2f Fahrenheit ", suhu, (suhu / 5.0* 9.0) + 32) fmt.Printf("%.2f Celcius = %.2f Kelvin ", suhu, (suhu /5.0* 5.0) + 273) case2:
fmt.Print("Masukkan suhu dalam Fahrenheit = ") fmt.Scan(&suhu) fmt.Printf("%.2f Fahrenheit = %.2f Celcius ", suhu, (suhu - 32) / 9.0* 5.0) fmt.Printf("%.2f Fahrenheit = %.2f Reamur ", suhu, (suhu -32) / 9.0* 4.0) fmt.Printf("%.2f Fahrenheit = %.2f Kelvin ", suhu, ((suhu - 32) / 9.0* 5.0) + 273) case3:
fmt.Print("Masukkan suhu dalam Reamur = ")
fmt.Scan(&suhu) fmt.Printf("%.2f Reamur = %.2f Celcius ", suhu, suhu / 4.0* 5.0) fmt.Printf("%.2f Reamur = %.2f Fahrenheit ", suhu, (suhu /4.0* 9.0) + 32) fmt.Printf("%.2f Reamur = %.2f Kelvin ", suhu, (suhu /4.0* 5.0) + 273) case4:
fmt.Print("Masukkan suhu dalam Kelvin = ") fmt.Scan(&suhu) fmt.Printf("%.2f Kelvin = %.2f Celcius ", suhu, (suhu - 273) / 5.0* 5.0) fmt.Printf("%.2f Kelvin = %.2f Reamur ", suhu, (suhu -273) / 5.0* 4.0) fmt.Printf("%.2f Kelvin = %.2f Fahrenheit ", suhu, ((suhu - 273) / 5.0* 9.0) + 32) default:
fmt.Println("Invalid input!")
}
}