<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Go on Rizky Note's</title><link>https://rizkynotes.com/tags/go/</link><description>Recent content in Go on Rizky Note's</description><generator>Hugo</generator><language>id-ID</language><lastBuildDate>Fri, 31 Jul 2026 09:00:00 +0700</lastBuildDate><atom:link href="https://rizkynotes.com/tags/go/index.xml" rel="self" type="application/rss+xml"/><item><title>Registry Pattern: Cara Elegan Mengelola Banyak Provider</title><link>https://rizkynotes.com/posts/registry-pattern-cara-elegan-mengelola-banyak-provider/</link><pubDate>Fri, 31 Jul 2026 09:00:00 +0700</pubDate><guid>https://rizkynotes.com/posts/registry-pattern-cara-elegan-mengelola-banyak-provider/</guid><description>&lt;h5 id="photo-by-daria-glakteeva-on-unsplash">Photo by &lt;a href="https://unsplash.com/@olenichek?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Daria Glakteeva&lt;/a> on &lt;a href="https://unsplash.com/photos/a-close-up-of-a-puzzle-board-with-many-pieces-missing-sKnQ7he3flU?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash&lt;/a>&lt;/h5>
&lt;p>Beberapa waktu lalu saya mengerjakan project yang mengintegrasikan AI dengan dua provider sekaligus, yaitu OpenCode dan Anthropic.
Hal yang biasa saya lakukan sebelum mulai menulis kode adalah memikirkan dan membayangkan kira-kira kode atau case apa yang akan terjadi ke depannya. Saya juga suka dengan kode yang bersih dan mudah dibaca.
Muncul pertanyaan:&lt;/p>
&lt;blockquote>
&lt;p>Bagaimana ya agar saya bisa mengimplementasikan dua provider ini, dan kalau nanti ada provider baru, kode saya tidak berubah menjadi tumpukan &lt;code>switch/if-else&lt;/code> yang terus memanjang?&lt;/p></description></item><item><title>Connection Pool in Backend Development Basic Concept Benefits and Implementation</title><link>https://rizkynotes.com/posts/connection-pool-in-backend-development-basic-concept-benefits-and-implementation/</link><pubDate>Thu, 06 Feb 2025 09:46:35 +0700</pubDate><guid>https://rizkynotes.com/posts/connection-pool-in-backend-development-basic-concept-benefits-and-implementation/</guid><description>&lt;h5 id="photo-by-christine-tutunjian-on-unsplash">Photo by &lt;a href="https://unsplash.com/@buying_thyme?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Christine Tutunjian&lt;/a> on &lt;a href="https://unsplash.com/photos/assorted-color-balloons-7oLuQ0ZEQ9A?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Unsplash&lt;/a>&lt;/h5>
&lt;p>Connection Pooling adalah mekanisme yang menciptakan dan mengelola kumpulan koneksi database yang dapat digunakan oleh aplikasi. Konsep ini penting dalam mengelola koneksi ke database dengan tujuan mengoptimalkan penggunaan sumber daya dan meningkatkan performa aplikasi yang sering berinteraksi dengan database.&lt;/p>
&lt;p>Alih-alih membuat koneksi baru setiap kali dibutuhkan (yang mahal dari segi waktu dan sumber daya), connection pool memungkinkan aplikasi meminjam/menggunakan koneksi yang sudah ada dan mengembalikannya ke pool ketika selesai menggunakannya. Itulah mengapa disebut &lt;strong>connection pool&lt;/strong>.&lt;/p></description></item><item><title>Mastering Enum in Golang</title><link>https://rizkynotes.com/posts/mastering-enum-in-golang/</link><pubDate>Tue, 31 Dec 2024 15:18:47 +0700</pubDate><guid>https://rizkynotes.com/posts/mastering-enum-in-golang/</guid><description>&lt;h5 id="gambar-oleh">&lt;em>Gambar oleh &lt;a href="https://unsplash.com/@sloppyperfectionist">Hans-Peter Gauster&lt;/a> dari &lt;a href="https://unsplash.com/photos/stack-of-jigsaw-puzzle-pieces-3y1zF4hIPCg">Unsplash&lt;/a>&lt;/em>&lt;/h5>
&lt;p>Mari kita asumsikan bahwa kita sedang membangun API E-commerce yang akan menerima beberapa pesanan, setiap proses pesanan memiliki beberapa status seperti &lt;em>Pending, Processed, Shipped, Delivered, Cancelled&lt;/em>. Dan aplikasi kita menerima string input yang akan disimpan dalam database, sebagai contoh statusnya adalah Processed, received Process, Processing atau sesuatu yang lain yang menyebabkan inkonsistensi data. Di sini Enum memiliki peran penting.&lt;/p>
&lt;p>Di Golang enum tidak seperti bahasa lain seperti Java atau C# yang menawarkan dukungan built-in untuk enum, Go mengambil pendekatan yang berbeda. Di Go, enum bukan fitur bahasa asli, tetapi developer memiliki beberapa teknik yang dapat digunakan untuk mencapai fungsionalitas yang serupa.&lt;/p></description></item><item><title>How to Handle Time Zones and Sync Your Software on the Server Side Using Go</title><link>https://rizkynotes.com/posts/how-to-handle-time-zones-and-sync-your-software-on-the-server-side-using-go/</link><pubDate>Tue, 01 Oct 2024 09:36:41 +0700</pubDate><guid>https://rizkynotes.com/posts/how-to-handle-time-zones-and-sync-your-software-on-the-server-side-using-go/</guid><description>&lt;p>Ketika aplikasi Anda mulai berkembang dalam skala besar, peningkatan pengguna akan bertambah. Yang sangat mungkin terjadi adalah lokasi pengguna tidak hanya berada di area yang sama, bisa saja berada di area lain yang memiliki zona waktu yang berbeda. Jadi sebagai developer Backend, hal-hal yang berkaitan dengan penanganan perbedaan zona waktu sangat penting untuk dipikirkan.&lt;/p>
&lt;p>Saya baru-baru ini menghadapi masalah yang melibatkan zona waktu. Mari kita jujur, berurusan dengan tanggal dan waktu adalah salah satu area paling rumit yang harus ditangani manusia. Dan ini merupakan kesempatan bagi saya untuk belajar bagaimana menangani tanggal dan waktu dengan benar di sisi server.&lt;/p></description></item><item><title>Mengenal Context Pada Golang</title><link>https://rizkynotes.com/posts/mengenal-context-pada-golang/</link><pubDate>Fri, 25 Nov 2022 09:52:55 +0700</pubDate><guid>https://rizkynotes.com/posts/mengenal-context-pada-golang/</guid><description>&lt;p>Saat mengembangkan sebuah aplikasi backend yang menangani &lt;code>http request&lt;/code> dari client, mungkin yang perlu diketahui adalah url endpoint mana yang diminta klien untuk menentukan sebuah function mana yang akan melayani response.&lt;/p>
&lt;p>Namun saat melayani sebuah response beberapa hal selalu dapat terjadi, seperti client memutuskan koneksi sebelum menerima response.&lt;/p>
&lt;p>Jika fungsi yang melayani response tidak mengetahui bahwa klien terputus, server mungkin menghabiskan lebih banyak waktu untuk memproses response yang tidak akan digunakan atau diharapkan oleh client itu lagi.&lt;/p></description></item><item><title>Golang Dasar #6 - Constant</title><link>https://rizkynotes.com/posts/golang-dasar-6-constant/</link><pubDate>Mon, 21 Nov 2022 09:06:24 +0700</pubDate><guid>https://rizkynotes.com/posts/golang-dasar-6-constant/</guid><description>&lt;p>Constant adalah jenis &lt;code>variable&lt;/code> yang nilainya tidak dapat diubah. Deklarasi nilai hanya dilakukan di awal, setelah itu nilainya tidak dapat diubah lagi.&lt;/p>
&lt;h1 id="cara-membuat-constant">Cara Membuat Constant&lt;/h1>
&lt;p>Untuk membuat &lt;code>constant&lt;/code> memiliki beberapa cara.&lt;/p>
&lt;p>Mari kita bahas&lt;/p>
&lt;h2 id="constant-dengan-manifest-typing-atau-inference-typing">Constant dengan manifest typing atau inference typing&lt;/h2>
&lt;p>Ketika membuat variable pada Golang kita dapat menggunakan &lt;code>manifest typing&lt;/code> yaitu di tuliskan tipe datanya dan &lt;code>inference typing&lt;/code> tidak di tuliskan tipe datanya.&lt;/p>
&lt;blockquote>
&lt;p>Tentang manifest typing dan inference typing dapat dipelajari pada postingan instagram jabutech &lt;a href="https://www.instagram.com/p/Cg1BTGsvCVE/?utm_source=ig_web_copy_link">disini.&lt;/a>&lt;/p></description></item><item><title>Membuat Minimal Docker Image Dengan Golang</title><link>https://rizkynotes.com/posts/membuat-minimal-docker-image-dengan-golang/</link><pubDate>Fri, 18 Nov 2022 08:34:24 +0700</pubDate><guid>https://rizkynotes.com/posts/membuat-minimal-docker-image-dengan-golang/</guid><description>&lt;p>Ketika proses &lt;code>kontainerisasi&lt;/code> sebuah aplikasi dengan menggunakan &lt;code>docker&lt;/code> kita membutuhkan sebuah &lt;code>image&lt;/code>.&lt;/p>
&lt;p>Dimana &lt;code>image&lt;/code> ini didalamnya adalah sebuah aplikasi dengan seluruh package dan library yang dibutuhkan untuk siap dijalankan yang dibungkus menjadi satu.&lt;/p>
&lt;p>Tapi yang menjadi masalah ukuran &lt;code>image&lt;/code> ini bisa menjadi sangat besar, bisa ratusan Megabyte atau Gigabyte tergantung seberapa besar dan banyak package atau library yang ikut terinstall didalanya.&lt;/p>
&lt;p>Kali ini kita akan mencoba menggunakan teknik &lt;code>multistage&lt;/code> dimana akan membuat ukuran &lt;code>image&lt;/code> bisa menjadi sangat jauh lebih kecil.&lt;/p></description></item><item><title>Golang Dasar #5 - Tipe Data</title><link>https://rizkynotes.com/posts/golang-dasar-5-tipe-data/</link><pubDate>Mon, 14 Nov 2022 10:47:40 +0700</pubDate><guid>https://rizkynotes.com/posts/golang-dasar-5-tipe-data/</guid><description>&lt;p>Pada Go (Golang) ada beberapa tipe data. Yaitu adalah tipe data &lt;code>integer&lt;/code>, &lt;code>float (floating point)&lt;/code>, &lt;code>string&lt;/code>, dan &lt;code>boolean&lt;/code>.&lt;/p>
&lt;p>Mari kita bahas satu persatu.&lt;/p>
&lt;h1 id="tipe-data-integer">Tipe data Integer&lt;/h1>
&lt;p>Tipe data &lt;code>integer&lt;/code> pada Go ada beberapa jenis.&lt;/p>
&lt;p>Tapi secara umum ada 2 tipe data pada kategori ini yang perlu diketahui, yaitu:&lt;/p>
&lt;ul>
&lt;li>&lt;code>uint&lt;/code>, tipe data untuk bilangan cacah (bilangan positif).&lt;/li>
&lt;li>&lt;code>int&lt;/code>, tipe data untuk bilangan bulat (bilangan negatif dan positif).&lt;/li>
&lt;/ul>
&lt;p>Tipe data ini memiliki &lt;code>zero value&lt;/code> atau nilai awal yaitu &lt;code>0&lt;/code>.&lt;/p></description></item><item><title>Mengenal net/http Default Package Golang</title><link>https://rizkynotes.com/posts/mengenal-net/http-default-package-golang/</link><pubDate>Sat, 29 Oct 2022 20:06:48 +0700</pubDate><guid>https://rizkynotes.com/posts/mengenal-net/http-default-package-golang/</guid><description>&lt;p>Go atau Golang yang sering kita dengar sangat bagus untuk membangun aplikasi web dari segala bentuk dan ukuran.&lt;/p>
&lt;p>Hal ini karena Go memiliki standart paket library yang bersih, konsisten dan mudah digunakan.&lt;/p>
&lt;h1 id="apa-itu-nethttp">Apa itu net/http&lt;/h1>
&lt;p>Salah satu paket librarynya adalah &lt;code>net/http&lt;/code>. Paket ini memungkinkan kita membangun server HTTP di Go dengan baik dan beberapa fitur lain seperti routing, templating, dan lainnya.&lt;/p>
&lt;p>Go memiliki web servernya sendiri dan web server ini ada didalam Go. Berbeda dengan bahasa lain yang memerlukan pendukung web server terpisah (contoh PHP yang membutuhkan Nginx atau Apache sebagai web servernya).&lt;/p></description></item><item><title>Environment Variable Pada Golang</title><link>https://rizkynotes.com/posts/environment-variable-pada-golang/</link><pubDate>Sun, 26 Jun 2022 11:01:35 +0700</pubDate><guid>https://rizkynotes.com/posts/environment-variable-pada-golang/</guid><description>&lt;p>Ketika membangun sebuah aplikasi pastinya memiliki beberapa informasi &lt;em>credential&lt;/em>. Katakan aplikasi kita terhubung ke database.&lt;/p>
&lt;p>Dimana diharuskan untuk menuliskan &lt;em>credential&lt;/em> seperti &lt;code>host&lt;/code>, &lt;code>name&lt;/code>, &lt;code>username&lt;/code>, dan &lt;code>password&lt;/code> database yang bisa saja dilakukan langsung didalam kode program.&lt;/p>
&lt;p>Tapi cara ini sangat tidak dianjurkan karena tidak aman dan kurang efesien.&lt;/p>
&lt;p>Ditambah lagi jika bekerja menggunakan &lt;strong>Git&lt;/strong>. Data &lt;em>credential&lt;/em> akan dicatat olehnya dan mudah dicuri oleh orang lain.&lt;/p>
&lt;p>Salah satu cara yang baik yaitu dengan menggunakan &lt;strong>environment variable&lt;/strong> untuk menyimpan &lt;em>credential&lt;/em>.&lt;/p></description></item><item><title>Cara Deploy Aplikasi Golang Dan Database Mysql Ke Heroku</title><link>https://rizkynotes.com/posts/cara-deploy-aplikasi-golang-dan-database-mysql-ke-heroku/</link><pubDate>Tue, 10 May 2022 15:06:39 +0700</pubDate><guid>https://rizkynotes.com/posts/cara-deploy-aplikasi-golang-dan-database-mysql-ke-heroku/</guid><description>&lt;p>Ketika membangun sebuah Aplikasi, pastinya kita ingin untuk melakukan publishing aplikasi kita agar bisa diakses oleh publik.&lt;/p>
&lt;p>Dengan berbagai tujuan, misalnya ingin melakukan testing, mendapat feedback orang lain, atau juga menunjukkan hasil kerja kepada client.&lt;/p>
&lt;p>Untuk memenuhi kebutuhan diatas, kali ini kita akan melakukan proses deployment aplikasi &lt;strong>Go (Golang)&lt;/strong> dan menggunakan database &lt;strong>MySQL&lt;/strong> sebagai penyimpanan datanya ke &lt;strong>Heroku&lt;/strong>.&lt;/p>
&lt;h1 id="1-apa-itu-heroku-">1. Apa itu Heroku ?&lt;/h1>
&lt;p>&lt;strong>Heroku&lt;/strong> adalah sebuah layanan berbasis &lt;strong>Cloud Computing&lt;/strong> yang menyediakan &lt;em>Platform as a Service (Paas)&lt;/em> yang dimana memungkinkan untuk menjalankan, membangun, dan mengoperasikan aplikasi yang sudah kita bangun agar siap digunakan tanpa perlu banyak kerumitan.&lt;/p></description></item></channel></rss>