Aplikasi Golang Sederhana

Muhammad Wafa Al Ausath

Sosial Media


0 orang menyukai ini
Suka

Summary

Pada portofolio ini saya akan membahas mengenai Aplikasi Golang Sederhana yang bertema Perhitungan Matematika.

Description

Pada portofolio ini saya akan membahas mengenai Aplikasi Golang Sederhana yang bertema Perhitungan Matematika. Aplikasi ini berbasis command line dengan fitur fitur yaitu:

  1. Hitung Luas Persegi
  2. Hitung Luas Segitiga
  3. Hitung Luas Lingkaran
  4. Hitung Sudut Trigonometri
  5. Hitung Gerak Lurus Berarturan
  6. Hitung Gerak Lurus Berubah Berarturan
  7. Hitung Energi Potensial dan Kinetik
  8. Hitung frekuensi dan getara
  9. Hitung massa jenis
  10. Hitung daya, tekanan, usaha dan gaya
  11. Konversi suhu

Setiap fitur dimasukkan ke dalam masing masing yang dapat diakses ketika user memilih pilihan menu yang sesuai.

Berikut adalah programnya:

package main

 

import (

    "fmt"

    "math"

)

 

/*

    Ditulis oleh Wafa

    6 Agustus 2022

    Link Project: https://github.com/mikirinkode/GolangSederhana

*/

 

func main() {

 

    varuserChoice int

 

    fori:= 1; i > 0; i++{

        fmt.Println("\nMenu:")

        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("\n#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\n", (sisi * sisi))

}

 

func LuasSegitiga() {

    varalastinggifloat64

    fmt.Println("\n#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 \n", (1.0/2.0* alas * tinggi))

}

 

func GetLuasLingkaran() {

    varjariJari float64

    fmt.Println("\n#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 \n", (math.Pi * jariJari * jariJari))

}

 

func HitungTrigonometry(){

    varalasmiring, tinggi float64

    fmt.Println("\n#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 \n", tinggi / miring)

    fmt.Printf("Cos = %.2f \n", alas / miring)

    fmt.Printf("Tan = %.2f \n", tinggi / alas)

}

 

func HitungGLB(){

    varuserChoice int

    varkecepatanjarakTempuh, waktuTempuh float64

    fmt.Println("\n#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("\n#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 \n", jarakTempuh/waktuTempuh )

        case2:

            fmt.Println("\n#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 \n", kecepatan*waktuTempuh )

        case3:

            fmt.Println("\n#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 \n", jarakTempuh/kecepatan )

        default:

            fmt.Println("Invalid input!")

    }

}

 

func HitungGLBB(){

    varuserChoice int

    varkecepatanAkhirkecepatanAwal, percepatanjarak, waktu float64

    fmt.Println("\n#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("\n#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 \n",  kecepatanAkhir)

 

        case2:

            fmt.Println("\n#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\n",  jarak)

        default:

            fmt.Println("Invalid Input!")

    }

}

 

func HitungPotensialKinetik(){

    varuserChoice int

    varenergiPotensialenergiKinetik, massaBendagravitasi, ketinggiankecepatanfloat64

    fmt.Println("\n#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("\n#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 \n",  energiPotensial)

    case2:         

        fmt.Println("\n#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 \n",  energiKinetik)

    default:

        fmt.Println("Invalid Input!")

    }

}

 

func HitungFrekuensiGetaran(){

    varjumlahGetaranwaktufloat64

    fmt.Println("\n#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 \n",  jumlahGetaran / waktu)

}

 

func HitungMassaJenis(){

    varmassavolumefloat64

    fmt.Println("\n#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 \n",  massa / volume)

}

 

func HitungDayaGaya(){

    varuserChoice int

    varusahagaya, alaswaktu, jarak float64

    fmt.Println("\n#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("\n#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 \n",  usaha / waktu)

        case2:

            fmt.Println("\n#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 \n",  gaya / alas)

        case3:

            fmt.Println("\n#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\n",  gaya * jarak)

        case4:

            fmt.Println("\n#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\n",  usaha / jarak)

        default

            fmt.Println("Invalid input!")

    }

}

 

func KonversiSuhu(){

    varuserChoice int

    varsuhu float64

    fmt.Println("\n#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 \n", suhu, suhu * 4.0/5.0)

        fmt.Printf("%.2f Celcius = %.2f Fahrenheit \n", suhu, (suhu / 5.0* 9.0) + 32)

        fmt.Printf("%.2f Celcius = %.2f Kelvin \n", suhu, (suhu / 5.0* 5.0) + 273)

    case2:

        fmt.Print("Masukkan suhu dalam Fahrenheit = ")

        fmt.Scan(&suhu)

        fmt.Printf("%.2f Fahrenheit = %.2f Celcius \n", suhu, (suhu - 32) / 9.0* 5.0)

        fmt.Printf("%.2f Fahrenheit = %.2f Reamur \n", suhu, (suhu - 32) / 9.0* 4.0)

        fmt.Printf("%.2f Fahrenheit = %.2f Kelvin \n", suhu, ((suhu - 32) / 9.0* 5.0) + 273)

    case3:

        fmt.Print("Masukkan suhu dalam Reamur = ")

        fmt.Scan(&suhu)

        fmt.Printf("%.2f Reamur = %.2f Celcius \n", suhu, suhu / 4.0* 5.0)

        fmt.Printf("%.2f Reamur = %.2f Fahrenheit \n", suhu, (suhu / 4.0* 9.0) + 32)

        fmt.Printf("%.2f Reamur = %.2f Kelvin \n", suhu, (suhu / 4.0* 5.0) + 273)

    case4:

        fmt.Print("Masukkan suhu dalam Kelvin = ")

        fmt.Scan(&suhu)

        fmt.Printf("%.2f Kelvin = %.2f Celcius \n", suhu, (suhu - 273) / 5.0* 5.0)

        fmt.Printf("%.2f Kelvin = %.2f Reamur \n", suhu, (suhu - 273) / 5.0* 4.0)

        fmt.Printf("%.2f Kelvin = %.2f Fahrenheit \n", suhu, ((suhu - 273) / 5.0* 9.0) + 32)

    default:

        fmt.Println("Invalid input!")

    }

}

 

/* 

    Referensi

    https://www.zenius.net/blog/rumus-luas-bangun-datar

    https://kumparan.com/kabar-harian/gerak-lurus-beraturan-rumus-grafik-dan-contoh-soalnya-1wbnZ3RGlwN

    https://www.zenius.net/blog/rumus-gerak-lurus-berubah-beraturan-glbb

    https://www.zenius.net/blog/rumus-energi-kinetik-dalam-fisika

    https://www.zenius.net/blog/rumus-energi-potensial

    https://www.zenius.net/blog/rumus-frekuensi

    https://www.zenius.net/blog/rumus-massa-jenis

    https://www.ruangguru.com/blog/daya-usaha

    https://id.wikibooks.org/wiki/Rumus-Rumus_Fisika_Lengkap/Gaya_dan_tekanan

    https://www.zenius.net/blog/mengenal-4-skala-suhu-dan-cara-konversinya

*/

Informasi Course Terkait
  Kategori: Web Programming
  Course: Bahasa pemrograman GO