Go Programming Exploration
Go Programming Exploration
SISTEM TERDISTRIBUSI
❖ Tujuan
Pada 2007, ketika Go didirikan, dunia pemrograman didominasi oleh C++ dan Java.
Perangkat lunak ditulis dengan kompleksitas tinggi, GitHub belum ada, multiprosesor belum
umum, dan sedikit IDE gratis tersedia. Pengembang merasa frustrasi dengan kerumitan
pembangunan proyek besar dan kekurangan dukungan untuk pemrograman multiprosesor. Go
muncul sebagai respons terhadap masalah ini. Pengembangnya mempertimbangkan
perkembangan teknologi masa depan, seperti CPU multicore, yang menuntut dukungan
konkurensi dan manajemen memori otomatis. Go dirancang untuk mempermudah
pemrograman dengan fitur-fitur seperti konkurensi yang terintegrasi dan manajemen memori
otomatis. Tujuannya adalah membantu pengembang dengan perkakas, otomatisasi tugas-
tugas rutin, dan mengatasi hambatan dalam pengembangan basis kode besar.
Program ini mengilustrasikan konsep konstanta, penggunaan operasi bit, dan konversi tipe dalam
bahasa pemrograman Go. Mari kita bahas lebih lanjut:
Dalam konstanta `const`, kita mendeklarasikan dua nilai konstanta, `Big` dan `Small`. `Big`
didefinisikan sebagai hasil dari pergeseran 1 bit ke kiri sebanyak 100 tempat, menciptakan angka yang
sangat besar. Sedangkan `Small` adalah hasil dari pergeseran `Big` ke kanan sebanyak 99 tempat, yang
membuatnya menjadi nilai yang lebih kecil.
Kemudian, terdapat dua fungsi, `needInt()` dan `needFloat()`, yang masing-masing menerima argumen
bertipe `int` dan `float64`. `needInt()` mengalikan argumen `x` dengan 10 dan menambahkan 1,
sementara `needFloat()` mengalikan argumen `x` dengan 0.1.
Di dalam fungsi `main()`, kita memanggil kedua fungsi tersebut dengan argumen `Small` dan `Big`.
Karena `Small` adalah nilai yang dapat direpresentasikan oleh tipe `int`, kita dapat memanggil
`needInt(Small)` tanpa masalah. Namun, ketika memanggil `needFloat()`, baik dengan argumen `Small`
maupun `Big`, kedua panggilan ini akan menghasilkan output yang sama. Hal ini karena `Small` dan
`Big` memiliki tipe yang berbeda, dan konversi tipe otomatis terjadi pada saat panggilan fungsi. Dalam
kasus ini, `Small` dan `Big` secara otomatis dikonversi menjadi `float64` sebelum diproses oleh fungsi
`needFloat()`.