<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Santekno.com – Level Up Your Engineering Skills on Santekno.com | Level Up Your Engineering Skills</title><link>https://www.santekno.com/</link><description>Recent content in Santekno.com – Level Up Your Engineering Skills on Santekno.com | Level Up Your Engineering Skills</description><generator>Hugo</generator><language>id</language><lastBuildDate>Fri, 14 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.santekno.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Struktur .specify Folder: Anatomy File Output GitHub Spec Kit di Golang</title><link>https://www.santekno.com/struktur-specify-folder/</link><pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/struktur-specify-folder/</guid><description>&lt;h2 id="struktur-specify-folder-anatomy-output-yang-dihasilkan">Struktur .specify Folder: Anatomy Output yang Dihasilkan&lt;/h2>&lt;p>Memahami &lt;strong>struktur &lt;code>.specify&lt;/code> folder&lt;/strong> yang dihasilkan &lt;strong>GitHub Spec Kit&lt;/strong> adalah fondasi sebelum kamu menjalankan perintah pertama. Kamu perlu tahu di mana file disimpan, apa isinya, dan bagaimana file-file itu saling berhubungan — karena di situlah seluruh &amp;ldquo;project memory&amp;rdquo; workflow SDD kamu tersimpan.&lt;/p></description></item><item><title>Instalasi GitHub Spec Kit CLI: Setup Persistent untuk Golang Developer</title><link>https://www.santekno.com/instalasi-specify-cli/</link><pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/instalasi-specify-cli/</guid><description>&lt;h2 id="instalasi-specify-cli-persistent-vs-one-time-setup">Instalasi specify CLI: Persistent vs One-time Setup&lt;/h2>&lt;p>Sebelum bisa menjalankan satu perintah Spec Kit pun, kita perlu install &lt;code>specify&lt;/code> CLI dan mengkonfigurasinya dengan benar. Ini terdengar sederhana, tapi ada beberapa pilihan setup yang punya implikasi berbeda — terutama untuk developer yang bekerja di banyak project secara bersamaan.&lt;/p></description></item><item><title>GitHub Spec Kit: Otomasi SDD Workflow dengan Claude Code untuk Golang</title><link>https://www.santekno.com/pengenalan-spec-kit/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/pengenalan-spec-kit/</guid><description>&lt;h2 id="apa-itu-github-spec-kit-dan-posisinya-di-workflow-sdd">Apa itu GitHub Spec Kit dan Posisinya di Workflow SDD&lt;/h2>&lt;p>Di Topik #1 kita bicara tentang &lt;em>mindset&lt;/em> SDD — bagaimana cara berpikir yang baru tentang membangun software dengan AI. Di Topik #2 ini, kita akan bicara tentang &lt;em>tooling&lt;/em> yang mengotomasi mindset itu.&lt;/p></description></item><item><title>Setelah SDD Golang: Tools yang Lebih Dalam dan Masa Depan AI-Driven Development</title><link>https://www.santekno.com/setelah-sdd-bridge/</link><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/setelah-sdd-bridge/</guid><description>&lt;h2 id="setelah-sdd-tools-yang-lebih-dalam-untuk-go-developer">Setelah SDD: Tools yang Lebih Dalam untuk Go Developer&lt;/h2>&lt;p>Kamu sudah menempuh perjalanan panjang mempelajari Specification-Driven Development. Kamu sudah punya CLAUDE.md yang baik, spec yang terstruktur, test yang trace ke AC/EC, dan workflow tim yang solid. Pertanyaan besarnya sekarang: &lt;strong>apa selanjutnya?&lt;/strong>&lt;/p></description></item><item><title>Studi Kasus SDD Golang: Order Service E-commerce dari Spec ke Merge</title><link>https://www.santekno.com/studi-kasus-order-service/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/studi-kasus-order-service/</guid><description>&lt;h2 id="studi-kasus-order-service-e-commerce-dari-spec-ke-merge">Studi Kasus: Order Service E-commerce dari Spec ke Merge&lt;/h2>&lt;p>Kita sudah membahas setiap komponen &lt;strong>SDD golang&lt;/strong> secara terpisah. Sekarang saatnya melihat semuanya bekerja bersama dalam satu &lt;strong>studi kasus SDD golang order service&lt;/strong> yang nyata — end-to-end, dari spec pertama yang ditulis hingga PR di-merge ke production.&lt;/p></description></item><item><title>SDD di Tim Golang: Versioning Spec, Onboarding, Code Review</title><link>https://www.santekno.com/sdd-di-tim/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/sdd-di-tim/</guid><description>&lt;h2 id="sdd-di-tim-versioning-spec-onboarding-code-review">SDD di Tim: Versioning Spec, Onboarding, Code Review&lt;/h2>&lt;p>&lt;strong>SDD di tim Golang&lt;/strong> menuntut disiplin yang berbeda dari SDD seorang diri. Dikerjakan sendiri, prosesnya relatif sederhana: kamu tulis spec, kamu implement, kamu review sendiri. SDD di tim adalah tantangan yang berbeda — bagaimana memastikan setiap anggota tim mengikuti proses yang sama, spec tetap up-to-date, dan Claude Code digunakan secara konsisten?&lt;/p></description></item><item><title>Spec Drift Detection Golang: Deteksi Kode yang Keluar dari Spesifikasi</title><link>https://www.santekno.com/spec-drift-detection/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/spec-drift-detection/</guid><description>&lt;h2 id="spec-drift-detection-ketika-kode-keluar-dari-spesifikasi">Spec Drift Detection: Ketika Kode Keluar dari Spesifikasi&lt;/h2>&lt;p>&lt;strong>Spec drift detection di Golang&lt;/strong> adalah kemampuan mendeteksi fenomena ketika kode perlahan-lahan menyimpang dari spesifikasi yang telah ditetapkan — bukan karena perubahan yang disengaja, tapi karena akumulasi keputusan kecil yang tidak pernah di-trace kembali ke spec.&lt;/p></description></item><item><title>SDD untuk Microservice Golang: API Contract antar Service dengan Claude Code</title><link>https://www.santekno.com/sdd-microservice-golang/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/sdd-microservice-golang/</guid><description>&lt;h2 id="sdd-untuk-microservice-go-api-contract-antar-service">SDD untuk Microservice Go: API Contract antar Service&lt;/h2>&lt;p>&lt;strong>SDD di microservice Golang&lt;/strong> menjadi krusial justru karena satu fitur jarang berhenti di satu service. Di monolith, satu spec mengatur satu endpoint. Di microservice, setiap fitur bisa menyentuh tiga, empat, atau lebih service — masing-masing dengan contract yang perlu disepakati lebih dulu.&lt;/p></description></item><item><title>Refactoring Golang dengan Claude Code: Aman dan Terstruktur dengan Safety Net</title><link>https://www.santekno.com/refactoring-dengan-claude/</link><pubDate>Tue, 04 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/refactoring-dengan-claude/</guid><description>&lt;h2 id="refactoring-dengan-claude-aman-terstruktur-dengan-safety-net">Refactoring dengan Claude: Aman, Terstruktur, dengan Safety Net&lt;/h2>&lt;p>&lt;strong>Refactoring Golang dengan Claude Code&lt;/strong> yang aman berangkat dari satu prinsip: refactoring adalah seni mengubah struktur kode tanpa mengubah perilakunya. Kata kuncinya adalah &lt;strong>tanpa mengubah perilaku&lt;/strong>. Inilah yang membuat refactoring berbeda dari rewriting — dan inilah yang membuatnya berisiko jika dilakukan tanpa safety net yang benar.&lt;/p></description></item><item><title>Code Review dengan Claude Code: Verifikasi Kode Golang vs Spesifikasi</title><link>https://www.santekno.com/code-review-dengan-ai/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/code-review-dengan-ai/</guid><description>&lt;h2 id="code-review-dengan-ai-verifikasi-kode-vs-spesifikasi">Code Review dengan AI: Verifikasi Kode vs Spesifikasi&lt;/h2>&lt;p>&lt;strong>Code review dengan Claude Code&lt;/strong> membuka dimensi baru yang jarang tersentuh review tradisional. Review biasa berfokus pada kualitas kode: apakah ada bug? apakah sudah idiomatic? apakah arsitekturnya benar? Semua pertanyaan yang valid.&lt;/p></description></item><item><title>Unit Test dari Spec: TDD yang Dipercepat AI untuk Golang</title><link>https://www.santekno.com/unit-test-dari-spec/</link><pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/unit-test-dari-spec/</guid><description>&lt;h2 id="unit-test-dari-spec-tdd-yang-dipercepat-ai">Unit Test dari Spec: TDD yang Dipercepat AI&lt;/h2>&lt;p>Salah satu keuntungan paling konkret dari SDD adalah ini: begitu kamu terbiasa menurunkan &lt;strong>unit test dari spec&lt;/strong> di Golang dengan disiplin TDD, test cases practically menulis dirinya sendiri. Setiap AC menjadi satu test function. Setiap EC menjadi satu atau lebih test scenario. Setiap NFR menjadi satu benchmark atau integration test.&lt;/p></description></item><item><title>Generate Go Code dari Spec: Iterasi dan Feedback Loop dengan Claude Code</title><link>https://www.santekno.com/generate-go-code-dari-spec/</link><pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/generate-go-code-dari-spec/</guid><description>&lt;h2 id="generate-go-code-dari-spec-iterasi-dan-feedback-loop">Generate Go Code dari Spec: Iterasi dan Feedback Loop&lt;/h2>&lt;p>Cara &lt;strong>generate go code dari spec claude code&lt;/strong> yang benar bukanlah satu prompt raksasa yang memuntahkan seluruh fitur sekaligus. Kita sudah punya spec yang solid, plan yang approved, dan task breakdown yang jelas. Sekarang saatnya melakukan apa yang paling terlihat: menulis kode.&lt;/p></description></item><item><title>Task Breakdown SDD: Memecah Spec Golang Menjadi Unit Kerja yang Executable</title><link>https://www.santekno.com/task-breakdown-golang/</link><pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/task-breakdown-golang/</guid><description>&lt;h2 id="task-breakdown-memecah-spec-menjadi-unit-kerja-golang">Task Breakdown: Memecah Spec Menjadi Unit Kerja Golang&lt;/h2>&lt;p>&lt;strong>Task breakdown golang SDD&lt;/strong> adalah jembatan yang hilang antara plan yang bagus dan eksekusi yang rapi. Implementation plan yang sudah dibuat di Plan Mode masih terlalu abstrak untuk langsung dikerjakan. &amp;ldquo;Implementasikan CancelWithStockRestore di repository&amp;rdquo; adalah plan item, bukan task yang bisa di-assign ke developer dan di-track progress-nya.&lt;/p></description></item><item><title>Plan Mode Claude Code: Membuat Rencana Implementasi Golang yang Solid</title><link>https://www.santekno.com/plan-mode-claude-code/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/plan-mode-claude-code/</guid><description>&lt;h2 id="plan-mode-di-claude-code-rencana-sebelum-baris-pertama">Plan Mode di Claude Code: Rencana Sebelum Baris Pertama&lt;/h2>&lt;p>Ada temptation besar saat punya spec yang jelas: langsung minta AI generate kode. Kenapa tidak? Spec sudah ada, tinggal bilang &amp;ldquo;implementasikan&amp;rdquo; dan tunggu. Tapi menguasai &lt;code>plan mode claude code golang&lt;/code> justru dimulai dari menahan dorongan itu — karena ada satu step yang sering di-skip yang secara dramatik meningkatkan kualitas output: &lt;strong>membuat plan terlebih dahulu&lt;/strong>.&lt;/p></description></item><item><title>Spesifikasi Non-Fungsional Golang: Performance, Security, Scalability untuk SDD</title><link>https://www.santekno.com/spesifikasi-non-fungsional/</link><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/spesifikasi-non-fungsional/</guid><description>&lt;h2 id="spesifikasi-non-fungsional-performance-security-scalability">Spesifikasi Non-Fungsional: Performance, Security, Scalability&lt;/h2>&lt;p>Menulis &lt;strong>spesifikasi non-fungsional golang&lt;/strong> yang benar adalah bagian spec yang paling sering dilewati — padahal justru di sinilah letak perbedaan antara sistem yang &amp;ldquo;jalan di laptop&amp;rdquo; dan sistem yang &amp;ldquo;layak production&amp;rdquo;. Developer fokus pada &amp;ldquo;apa yang harus dilakukan sistem&amp;rdquo; (functional), tapi sering lupa mendefinisikan &amp;ldquo;bagaimana sistem harus berperilaku&amp;rdquo; (non-functional).&lt;/p></description></item><item><title>OpenAPI Spec dengan Claude Code: Contract-First API Design untuk Golang</title><link>https://www.santekno.com/openapi-spec-dengan-claude/</link><pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/openapi-spec-dengan-claude/</guid><description>&lt;h2 id="openapi-spec-pertama-dengan-claude-contract-first-api-design">OpenAPI Spec Pertama dengan Claude: Contract-First API Design&lt;/h2>&lt;p>Membuat &lt;strong>OpenAPI spec golang dengan Claude Code&lt;/strong> adalah cara paling efektif untuk menegakkan disiplin contract-first di tim backend. Di banyak tim, API design justru terjadi secara implicit — developer menulis kode, endpoint muncul, dan dokumentasi dibuat setelah fakta. Ini adalah anti-pattern yang mahal: consumer service perlu menunggu implementasi selesai untuk tahu cara menggunakannya, perubahan bisa breaking tanpa notice, dan tidak ada single source of truth untuk API contract.&lt;/p></description></item><item><title>Pola Interview Yourself: Teknik Klarifikasi Spec dengan Claude Code untuk Golang</title><link>https://www.santekno.com/interview-yourself-klarifikasi/</link><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/interview-yourself-klarifikasi/</guid><description>&lt;h2 id="pola-interview-yourself-teknik-klarifikasi-dengan-claude">Pola &amp;ldquo;Interview Yourself&amp;rdquo;: Teknik Klarifikasi dengan Claude&lt;/h2>&lt;p>Teknik &lt;strong>interview yourself untuk klarifikasi spec golang&lt;/strong> berangkat dari satu kenyataan: keahlian paling berharga seorang senior engineer bukan tentang kode, tapi tentang kemampuan mengajukan pertanyaan yang tepat sebelum mulai coding. Kemampuan untuk mengubah &amp;ldquo;buatkan fitur X&amp;rdquo; menjadi understanding yang jelas tentang apa sebenarnya yang dibutuhkan.&lt;/p></description></item><item><title>Prompt Engineering untuk Spec: Teknik Menulis Spesifikasi Presisi dengan Claude Code</title><link>https://www.santekno.com/prompt-engineering-untuk-spec/</link><pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/prompt-engineering-untuk-spec/</guid><description>&lt;h2 id="prompt-engineering-untuk-spec-dari-ambigu-ke-presisi">Prompt Engineering untuk Spec: Dari Ambigu ke Presisi&lt;/h2>&lt;p>&lt;strong>Prompt engineering untuk spec golang&lt;/strong> adalah keterampilan yang menentukan apakah AI membantu kamu menulis spesifikasi yang tajam — atau justru menghasilkan dokumen yang terlihat rapi tapi kosong substansi. Ada kesenjangan besar antara &amp;ldquo;saya ingin fitur X&amp;rdquo; dan spesifikasi yang bisa langsung jadi source of truth. Kesenjangan ini yang sering membuat developer frustrasi: sudah tulis spec, tapi masih banyak yang ambigu. Atau sebaliknya — minta AI bantu tulis spec, hasilnya terlihat lengkap tapi substansinya kosong.&lt;/p></description></item><item><title>Anatomi Spesifikasi yang Baik: User Story, AC, Edge Case untuk SDD Golang</title><link>https://www.santekno.com/anatomi-spesifikasi-yang-baik/</link><pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/anatomi-spesifikasi-yang-baik/</guid><description>&lt;h2 id="anatomi-spesifikasi-yang-baik-user-story-acceptance-criteria-edge-case">Anatomi Spesifikasi yang Baik: User Story, Acceptance Criteria, Edge Case&lt;/h2>&lt;p>Spec yang buruk menghasilkan kode yang buruk — bahkan dengan AI secanggih apapun. Spec yang baik menghasilkan kode yang tepat sasaran, mudah ditest, dan bisa diverifikasi oleh siapapun di tim.&lt;/p></description></item><item><title>CLAUDE.md: Cara Membuat AI Selalu Paham Konteks Proyek Golang</title><link>https://www.santekno.com/claudemd-memori-proyek/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/claudemd-memori-proyek/</guid><description>&lt;h2 id="claudemd-memori-proyek-yang-membuat-ai-paham-konteksmu">CLAUDE.md: Memori Proyek yang Membuat AI Paham Konteksmu&lt;/h2>&lt;p>Ada satu frustrasi yang hampir universal di antara developer yang mulai pakai Claude Code: setiap sesi baru, harus menjelaskan ulang tentang arsitektur proyek, stack teknikal, conventions yang dipakai, dan rules yang sudah disepakati tim. Lima menit penjelasan sebelum bisa mulai kerja. Setiap hari.&lt;/p></description></item><item><title>Ekosistem Tools SDD 2026: Claude Code, Kiro, Cursor vs Spec Kit untuk Golang</title><link>https://www.santekno.com/ekosistem-tools-sdd-2026/</link><pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/ekosistem-tools-sdd-2026/</guid><description>&lt;p>Memilih &lt;strong>tools SDD 2026 untuk Golang&lt;/strong> terasa membingungkan karena landscape AI coding tools berubah sangat cepat. Apa yang terbaik enam bulan lalu mungkin sudah ada alternatif yang lebih baik sekarang. Dan berbeda dari pilihan framework atau database yang biasanya &lt;em>lock-in&lt;/em>, pilihan AI tools jauh lebih fluid — kamu bisa ganti kapan saja tanpa merombak arsitektur.&lt;/p></description></item><item><title>Spesifikasi sebagai Source of Truth di Golang: Cara Berpikir SDD yang Baru</title><link>https://www.santekno.com/spesifikasi-source-of-truth/</link><pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/spesifikasi-source-of-truth/</guid><description>&lt;p>Di proyek software yang sudah berjalan cukup lama, ada satu pertanyaan yang sering tidak bisa dijawab dengan pasti: &lt;em>&amp;ldquo;Seharusnya bagaimana sistem ini berperilaku dalam kondisi X?&amp;rdquo;&lt;/em>&lt;/p></description></item><item><title>Vibe Coding vs Specification-Driven Development: Kenapa Engineer Senior Mulai Pindah</title><link>https://www.santekno.com/vibe-coding-vs-sdd/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/vibe-coding-vs-sdd/</guid><description>&lt;p>Perdebatan &lt;strong>vibe coding vs specification-driven development&lt;/strong> bukan soal tren, tapi soal apa yang terjadi pada kode kamu enam bulan setelah AI menuliskannya. Kita semua pernah melakukannya: buka terminal, ketik &lt;code>claude&lt;/code>, lalu tulis &lt;em>&amp;ldquo;Buatin REST API order management pakai Golang, PostgreSQL, clean architecture.&amp;rdquo;&lt;/em> Claude langsung menghasilkan ratusan baris kode. Copy-paste, jalankan — works. Rasanya seperti sihir.&lt;/p></description></item><item><title>Cara Deploy Hugo ke AWS S3 + CloudFront dengan GitHub Actions dan Domain Kustom</title><link>https://www.santekno.com/cara-deploy-hugo-ke-aws-s3--cloudfront-dengan-github-actions-dan-domain-kustom/</link><pubDate>Wed, 24 Jun 2026 10:00:40 +0700</pubDate><guid>https://www.santekno.com/cara-deploy-hugo-ke-aws-s3--cloudfront-dengan-github-actions-dan-domain-kustom/</guid><description>&lt;p>Panduan lengkap dan runut untuk men-deploy situs &lt;strong>Hugo&lt;/strong> secara otomatis ke &lt;strong>AWS S3 + CloudFront&lt;/strong> menggunakan &lt;strong>GitHub Actions&lt;/strong>, lengkap sampai konfigurasi &lt;strong>domain kustom&lt;/strong> ber-HTTPS. Semua langkah di sini sudah teruji di dunia nyata — termasuk bagian &lt;em>troubleshooting&lt;/em> dari semua error yang biasanya muncul.&lt;/p></description></item><item><title>Sponsor</title><link>https://www.santekno.com/sponsor/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/sponsor/</guid><description>&lt;p>Tertarik untuk bekerja sama? Kirim email dan ceritakan produkmu — kita cari format yang paling pas untuk audiens Santekno.&lt;/p></description></item><item><title>Go 1.23 Rilis: Range over Functions, Iterators, dan Timer Fix</title><link>https://www.santekno.com/news/golang/go-1-23-rilis-range-functions-iterators/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/news/golang/go-1-23-rilis-range-functions-iterators/</guid><description>&lt;p>Go 1.23 resmi dirilis pada Agustus 2026. Versi ini membawa &lt;strong>range over function values&lt;/strong> sebagai fitur bahasa stabil untuk pertama kalinya, perbaikan perilaku &lt;code>time.Timer&lt;/code> yang sudah lama ditunggu, dan sejumlah tambahan di standard library.&lt;/p></description></item><item><title>Goroutine dan Channel: Concurrency di Go untuk Pemula</title><link>https://www.santekno.com/tutorial/golang/goroutine-channel-concurrency/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/goroutine-channel-concurrency/</guid><description>&lt;p>Pernah bayangkan server yang melayani &lt;strong>ribuan request bersamaan&lt;/strong> tanpa harus kelola thread pool sendiri? Itulah yang goroutine bisa lakukan. Di artikel ini kamu akan belajar goroutine dan channel dari nol — tidak perlu background concurrency sebelumnya.&lt;/p></description></item><item><title>Jenis Layanan Cloud yang Paling Umum dan Cara Memilihnya</title><link>https://www.santekno.com/jenis-layanan-cloud-yang-paling-umum-dan-cara-memilihnya/</link><pubDate>Thu, 04 Dec 2025 10:09:36 +0700</pubDate><guid>https://www.santekno.com/jenis-layanan-cloud-yang-paling-umum-dan-cara-memilihnya/</guid><description>&lt;p>Layanan cloud telah menjadi bagian penting dalam dunia bisnis modern. Dengan semakin banyaknya data yang dihasilkan dan kebutuhan akan akses yang fleksibel dan efisien, cloud computing memberikan solusi yang mempermudah perusahaan dalam mengelola, menyimpan, dan memproses data perusahaan.&lt;/p></description></item><item><title>Pendaftaran Akper PGP: Informasi Lengkap &amp; Cara Daftar Akper Persada Garuda Pusaka</title><link>https://www.santekno.com/pendaftaran-akper-pgp-informasi-lengkap-cara-daftar-akper-persada-garuda-pusaka/</link><pubDate>Mon, 24 Nov 2025 10:09:36 +0700</pubDate><guid>https://www.santekno.com/pendaftaran-akper-pgp-informasi-lengkap-cara-daftar-akper-persada-garuda-pusaka/</guid><description>&lt;p>Memilih kampus keperawatan bukan hanya soal mencari tempat kuliah—tetapi tentang memastikan masa depan yang cerah di dunia kesehatan. Saat ini, kebutuhan tenaga perawat profesional terus meningkat, baik di rumah sakit, klinik, maupun fasilitas layanan kesehatan lainnya. Karena itu, memilih akademi yang tepat adalah langkah penting. Salah satu pilihan terbaik yang bisa kamu pertimbangkan adalah &lt;strong>Akper PGP (Persada Garuda Pusaka)&lt;/strong>.&lt;/p></description></item><item><title>125 Performance Tips untuk gqlgen di Produksi</title><link>https://www.santekno.com/125-performance-tips-untuk-gqlgen-di-produksi/</link><pubDate>Sun, 02 Nov 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/125-performance-tips-untuk-gqlgen-di-produksi/</guid><description>&lt;p>&lt;em>Banyak dari kita mengenal dan mencintai kecepatan serta tipikal schema-first dari &lt;a href="https://gqlgen.com" title="gqlgen" target="_blank" rel="noopener">gqlgen&lt;/a>
, salah satu GraphQL server paling populer di ekosistem Go. Namun, ketika aplikasi kita mulai dipakai oleh ribuan, bahkan jutaan user di produks,i performa sering jadi bottleneck yang mahal. Di artikel ini, saya akan mengumpulkan &lt;strong>125 tips performa&lt;/strong> — mulai dari fondasi hingga micro-optimisasi — untuk kamu yang serius menjalankan gqlgen di production, lengkap dengan kode, data, hingga flowchart.&lt;/em>&lt;/p></description></item><item><title>124 Deployment gqlgen di Railway/Render dengan PostgreSQL</title><link>https://www.santekno.com/124-deployment-gqlgen-di-railway/render-dengan-postgresql/</link><pubDate>Sat, 01 Nov 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/124-deployment-gqlgen-di-railway/render-dengan-postgresql/</guid><description>&lt;p>Jika kamu pernah membangun backend GraphQL di Go menggunakan &lt;a href="https://gqlgen.com/" title="gqlgen" target="_blank" rel="noopener">gqlgen&lt;/a>
, kemungkinan besar kamu ingin mendeploy aplikasimu dengan cepat dan mudah ke cloud. Railway dan Render adalah dua PaaS (Platform-as-a-Service) yang populer di kalangan developer karena setup yang simpel, support database yang mumpuni, serta integrasi continuous deployment dari GitHub. Pada artikel ini, saya akan membimbing kamu melewati proses deployment aplikasi gqlgen ke Railway dan Render, memanfaatkan PostgreSQL sebagai database utama. Kita akan cover: struktur folder, Dockerfile, pipeline CI/CD, hingga testing endpoint GraphQL secara online.&lt;/p></description></item><item><title>123 Testing Resolver gqlgen dengan `httptest` dan Mock</title><link>https://www.santekno.com/123-testing-resolver-gqlgen-dengan-httptest-dan-mock/</link><pubDate>Fri, 31 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/123-testing-resolver-gqlgen-dengan-httptest-dan-mock/</guid><description>&lt;h2 id="123-testing-resolver-gqlgen-dengan-httptest-dan-mock">123 Testing Resolver gqlgen dengan &lt;code>httptest&lt;/code> dan Mock&lt;/h2>&lt;p>GraphQL makin populer di ekosistem backend modern. Salah satu alasan utamanya adalah fleksibilitas dan efisiensi query-nya. Di Golang, &lt;a href="https://gqlgen.com/" title="gqlgen" target="_blank" rel="noopener">gqlgen&lt;/a>
 menawarkan tools powerful untuk mengelola GraphQL server, salah satunya meng-generate resolver dari schema. Tapi, tanpa testing yang bagus, kita riskan membuat bug dan behaviour yang tidak diharapkan. Nah, bagaimana sih cara efektif mengetes resolver GraphQL di project gqlgen? Di artikel ini, saya akan berbagi praktik 123 testing resolver gqlgen: dari &lt;code>httptest&lt;/code> sampai mock dependency.&lt;/p></description></item><item><title>122 Studi Kasus: Sistem Registrasi &amp; Login JWT dengan gqlgen</title><link>https://www.santekno.com/122-studi-kasus-sistem-registrasi-login-jwt-dengan-gqlgen/</link><pubDate>Thu, 30 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/122-studi-kasus-sistem-registrasi-login-jwt-dengan-gqlgen/</guid><description>&lt;h2 id="122-studi-kasus-sistem-registrasi--login-jwt-dengan-gqlgen">122 Studi Kasus: Sistem Registrasi &amp;amp; Login JWT dengan &lt;code>gqlgen&lt;/code>&lt;/h2>&lt;p>Membangun sistem autentikasi yang aman dan efisien adalah salah satu pondasi hampir seluruh aplikasi backend modern. Di era API-first development dan microservices, JSON Web Token (JWT) menjadi salah satu solusi authentication yang paling populer. Di kasus kali ini, saya akan membagikan studi kasus membangun sistem &lt;strong>registrasi &amp;amp; login&lt;/strong> menggunakan &lt;strong>JWT&lt;/strong> dengan &lt;strong>GraphQL&lt;/strong> di Go, memanfaatkan library powerful &lt;a href="https://gqlgen.com/" title="gqlgen" target="_blank" rel="noopener">&lt;code>gqlgen&lt;/code>&lt;/a>
.&lt;/p></description></item><item><title>121 Studi Kasus: API GraphQL Produk &amp; Kategori dengan gqlgen</title><link>https://www.santekno.com/121-studi-kasus-api-graphql-produk-kategori-dengan-gqlgen/</link><pubDate>Wed, 29 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/121-studi-kasus-api-graphql-produk-kategori-dengan-gqlgen/</guid><description>&lt;hr>
&lt;h2 id="tags-graphql-golang-gqlgen-backend-studi-kasus-api">title: 121 Studi Kasus: API GraphQL Produk &amp;amp; Kategori dengan gqlgen&lt;br>
subtitle: Membongkar Arsitektur, Implementasi, dan Studi Kasus API Product-Categories dengan gqlgen di Golang&lt;br>
author: insinyursoftware&lt;br>
date: 2024-06-22&lt;br>
tags: [graphql, golang, gqlgen, backend, studi-kasus, api]&lt;/h2>&lt;p>GraphQL semakin populer sebagai solusi API yang fleksibel, terutama untuk skenario relasi data yang kompleks. Di antara sekian banyak tools di ekosistem Go, &lt;a href="https://gqlgen.com/" title="gqlgen" target="_blank" rel="noopener">gqlgen&lt;/a>
 muncul sebagai salah satu framework paling solid untuk membangun GraphQL API di Golang.&lt;/p></description></item><item><title>120 Menggunakan Enum dan Scalar Kustom di gqlgen</title><link>https://www.santekno.com/120-menggunakan-enum-dan-scalar-kustom-di-gqlgen/</link><pubDate>Tue, 28 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/120-menggunakan-enum-dan-scalar-kustom-di-gqlgen/</guid><description>&lt;p>&lt;strong>gqlgen&lt;/strong> telah menjadi &lt;em>de facto&lt;/em> library untuk membangun GraphQL API di Go. Keunggulan utamanya terletak pada strongly-typed, serta kemudahan dalam memperluas konsep dasar GraphQL melalui &lt;strong>enum&lt;/strong> dan &lt;strong>scalar kustom&lt;/strong>.&lt;/p></description></item><item><title>119 Optimasi Query Resolver dengan `dataloader`</title><link>https://www.santekno.com/119-optimasi-query-resolver-dengan-dataloader/</link><pubDate>Mon, 27 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/119-optimasi-query-resolver-dengan-dataloader/</guid><description>&lt;h2 id="119-optimasi-query-resolver-dengan-dataloader">119 Optimasi Query Resolver dengan &lt;code>dataloader&lt;/code>&lt;/h2>&lt;p>Ketika membangun API dengan GraphQL, salah satu tantangan terbesar adalah menghindari masalah &lt;strong>N+1 query&lt;/strong> yang sering tersembunyi di balik layer resolver. Gagal mengoptimasi resolver akan mengakibatkan database bekerja lebih keras dari seharusnya, menurunkan performa aplikasi, hingga membengkaknya tagihan cloud database. Untungnya kita punya satu alat andalan yang bisa diandalkan: &lt;a href="https://github.com/graphql/dataloader" title="dataloader" target="_blank" rel="noopener">&lt;code>dataloader&lt;/code>&lt;/a>
. Pada artikel ke-119 saya kali ini, saya akan membedah bagaimana cara &lt;code>dataloader&lt;/code> bekerja, cara implementasinya, dan bagaimana dia mampu memberikan optimasi signifikan pada query resolver. Kita juga akan lakukan simulasi kasus nyata, sebelum dan sesudah menggunakan DataLoader.&lt;/p></description></item><item><title>118 Middleware Resolver untuk Logging dan Monitoring</title><link>https://www.santekno.com/118-middleware-resolver-untuk-logging-dan-monitoring/</link><pubDate>Sun, 26 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/118-middleware-resolver-untuk-logging-dan-monitoring/</guid><description>&lt;p>Middleware telah menjadi tulang punggung dari ekosistem web modern, terutama pada aplikasi dengan arsitektur microservices atau monolith yang kompleks. Salah satu pendekatan powerful dalam dunia Node.js API development adalah penggunaan &lt;strong>middleware resolver&lt;/strong> di dalam pengelolaan logging dan monitoring. Di artikel ini, saya akan membahas secara mendalam penerapan middleware resolver nomor &lt;strong>118&lt;/strong>, sebuah pola yang saya temukan sangat efektif dalam build logging dan monitoring pipeline. Kita juga akan membahas contoh implementasi, simulasi, dan analisis kinerja berdasarkan pengalaman di dunia nyata.&lt;/p></description></item><item><title>117 Membuat Directive Kustom di gqlgen</title><link>https://www.santekno.com/117-membuat-directive-kustom-di-gqlgen/</link><pubDate>Sat, 25 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/117-membuat-directive-kustom-di-gqlgen/</guid><description>&lt;p>&lt;strong>117 Membuat Directive Kustom di gqlgen&lt;/strong>&lt;/p>
&lt;p>Jika Anda sudah lama berkutat dengan GraphQL di ekosistem Go, kemungkinan besar Anda tak asing dengan &lt;code>gqlgen&lt;/code>. Library satu ini memang jadi standar de facto untuk membangun server GraphQL di Go. Fitur-fiturnya yang eksplisit dan strongly typed, membuatnya unggul dalam kode maintainable dan debuggable. Namun, ada satu fitur yang seringkali kurang dimanfaatkan: Custom Directives.&lt;/p></description></item><item><title>116 Menggunakan Context untuk Autentikasi di gqlgen</title><link>https://www.santekno.com/116-menggunakan-context-untuk-autentikasi-di-gqlgen/</link><pubDate>Fri, 24 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/116-menggunakan-context-untuk-autentikasi-di-gqlgen/</guid><description>&lt;p>Mengelola autentikasi adalah bagian penting dalam membangun API modern, termasuk GraphQL. Di ekosistem Go, gqlgen telah menjadi salah satu library yang sangat populer untuk membangun GraphQL API, karena fleksibilitas dan kemampuannya yang sesuai dengan gaya native Go. Salah satu fitur powerful yang sering digunakan untuk authentikasi di gqlgen adalah penggunaan &lt;code>context.Context&lt;/code>. Pada artikel ini, saya akan membedah bagaimana menggunakan Context untuk autentikasi di gqlgen, dilengkapi dengan contoh kode, simulasi alur, beserta best practice yang telah terbukti di lapangan.&lt;/p></description></item><item><title>115 Error Handling Terstruktur di Mutation gqlgen</title><link>https://www.santekno.com/115-error-handling-terstruktur-di-mutation-gqlgen/</link><pubDate>Thu, 23 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/115-error-handling-terstruktur-di-mutation-gqlgen/</guid><description>&lt;p>Dalam pengembangan aplikasi modern, GraphQL menjadi salah satu backbone penting untuk komunikasi antara client dan server. Salah satu framework populer untuk implementasi GraphQL di Golang adalah &lt;strong>gqlgen&lt;/strong>. Namun, sering kali developer melupakan penanganan error ataupun membiarkan error keluar tanpa pola yang jelas, terutama di ranah &lt;em>mutation&lt;/em>. Pada artikel kali ini, saya akan membahas secara mendalam: &lt;strong>“115 Error Handling Terstruktur di Mutation gqlgen”&lt;/strong>.&lt;/p></description></item><item><title>114 Membuat Middleware Validasi Global untuk Input</title><link>https://www.santekno.com/114-membuat-middleware-validasi-global-untuk-input/</link><pubDate>Wed, 22 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/114-membuat-middleware-validasi-global-untuk-input/</guid><description>&lt;p>Validasi input adalah salah satu bagian terpenting dalam pengembangan aplikasi, apalagi ketika aplikasi tersebut sudah memiliki skala besar dan menerima banyak data dari berbagai endpoint. Salah satu pendekatan clean, scalable, dan maintainable untuk menangani validasi input adalah dengan membuat &lt;strong>middleware validasi global&lt;/strong>. Dalam artikel ini, saya akan mengupas tuntas tentang cara membangun middleware validasi global, mulai dari konsep, implementasi, hingga best practise yang saya gunakan dalam proyek nyata.&lt;/p></description></item><item><title>113 Custom Validation di Resolver gqlgen</title><link>https://www.santekno.com/113-custom-validation-di-resolver-gqlgen/</link><pubDate>Tue, 21 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/113-custom-validation-di-resolver-gqlgen/</guid><description>&lt;p>Saat membangun API dengan GraphQL di Golang, salah satu package andalan adalah &lt;code>gqlgen&lt;/code>. Framework ini punya kemampuan powerful dalam menyusun schema, membangun resolver, hingga auto-generation kode berdasarkan schema yang kita desain. Tapi ada satu masalah klasik: &lt;strong>validasi data&lt;/strong>.&lt;/p></description></item><item><title>112 Menggunakan `input` Tipe untuk Validasi Data</title><link>https://www.santekno.com/112-menggunakan-input-tipe-untuk-validasi-data/</link><pubDate>Mon, 20 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/112-menggunakan-input-tipe-untuk-validasi-data/</guid><description>&lt;h2 id="112-menggunakan-input-tipe-untuk-validasi-data">112 Menggunakan &lt;code>input&lt;/code> Tipe untuk Validasi Data&lt;/h2>&lt;p>Validasi data adalah pilar penting dalam pengembangan aplikasi modern. Baik aplikasi berbasis web maupun mobile, memastikan bahwa data yang dimasukkan pengguna valid sebelum diproses sangatlah krusial demi menjaga integritas, keamanan, dan kenyamanan pengguna. Sebagai seorang engineer, sering kali kita dihadapkan pada pertanyaan: Bagaimana memanfaatkan fitur HTML5 seperti atribut &lt;code>type&lt;/code> pada elemen &lt;code>input&lt;/code> untuk memperkuat validasi data pada sisi klien?&lt;/p></description></item><item><title>111 Menambahkan Mutation ke Skema gqlgen</title><link>https://www.santekno.com/111-menambahkan-mutation-ke-skema-gqlgen/</link><pubDate>Sun, 19 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/111-menambahkan-mutation-ke-skema-gqlgen/</guid><description>&lt;p>Salah satu kekuatan besar GraphQL terletak pada fleksibilitas dan konsistensinya dalam berinteraksi dengan API. Di dunia backend Go, &lt;a href="https://gqlgen.com/" title="gqlgen" target="_blank" rel="noopener">gqlgen&lt;/a>
 adalah framework andalan yang memudahkan developer membangun skema GraphQL yang type-safe, cepat, dan mudah dirawat. Dalam artikel kali ini, kita akan membedah proses &lt;strong>menambahkan Mutation ke skema gqlgen&lt;/strong>, dengan studi kasus sederhana, kode contoh, serta penjelasan konsep yang mudah dipahami.&lt;/p></description></item><item><title>110 Custom Model Mapping: Menghubungkan Tipe ke Struct Sendiri</title><link>https://www.santekno.com/110-custom-model-mapping-menghubungkan-tipe-ke-struct-sendiri/</link><pubDate>Sat, 18 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/110-custom-model-mapping-menghubungkan-tipe-ke-struct-sendiri/</guid><description>&lt;p>Saat membangun aplikasi backend atau aplikasi enterprise berskala besar, sering kali kita dihadapkan pada kebutuhan untuk melakukan &lt;em>data mapping&lt;/em>. Tidak jarang pula, model data dari sumber eksternal (seperti response dari service lain, database, atau API pihak ketiga) tidak langsung sesuai dengan model atau &lt;em>struct&lt;/em> yang kita gunakan dalam aplikasi. &lt;strong>Custom model mapping&lt;/strong> menjadi solusi elegan untuk kebutuhan ini: cara kita menyambungkan tipe data “asing” ke dalam struct buatan sendiri dengan aturan main kita sendiri.&lt;/p></description></item><item><title>109 Menghubungkan Resolver dengan Model Database</title><link>https://www.santekno.com/109-menghubungkan-resolver-dengan-model-database/</link><pubDate>Fri, 17 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/109-menghubungkan-resolver-dengan-model-database/</guid><description>&lt;h2 id="109-menghubungkan-resolver-dengan-model-database-studi-kasus-praktis">109 Menghubungkan Resolver dengan Model Database: Studi Kasus Praktis&lt;/h2>&lt;p>Dalam dunia pengembangan perangkat lunak modern, integrasi antara application layer dan database adalah pondasi dari setiap aplikasi yang scalable dan robust. Salah satu arsitektur yang sedang naik daun adalah GraphQL, yang mengandalkan struktur resolver untuk mengambil atau memodifikasi data dari berbagai sumber—terutama database. Artikel ini akan mengupas bagaimana menghubungkan resolver dengan model database menggunakan contoh konkret, kode, tabel, dan diagram alur menggunakan &lt;em>mermaid&lt;/em>.&lt;/p></description></item><item><title>108 Menangani Resolver Otomatis dan Manual</title><link>https://www.santekno.com/108-menangani-resolver-otomatis-dan-manual/</link><pubDate>Thu, 16 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/108-menangani-resolver-otomatis-dan-manual/</guid><description>&lt;h2 id="108-menangani-resolver-otomatis-dan-manual-panduan-lengkap-untuk-engineer">108 Menangani Resolver Otomatis dan Manual: Panduan Lengkap untuk Engineer&lt;/h2>&lt;p>Resolver adalah komponen penting dalam banyak sistem perangkat lunak modern, mulai dari pengelolaan dependensi pada framework web, hingga penguraian query kompleks pada GraphQL. Namun, sering kali kita terjebak dengan dua jalur utama saat membangun resolver: secara otomatis atau manual. Menentukan kapan dan bagaimana menggunakan masing-masing pendekatan adalah seni — dan sains — tersendiri.&lt;/p></description></item><item><title>107 Menjalankan Code Generation untuk Resolver dan Model</title><link>https://www.santekno.com/107-menjalankan-code-generation-untuk-resolver-dan-model/</link><pubDate>Wed, 15 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/107-menjalankan-code-generation-untuk-resolver-dan-model/</guid><description>&lt;p>Jika kamu membangun aplikasi modern dengan GraphQL dan TypeScript—katakanlah menggunakan stack kebanggaan seperti &lt;a href="https://www.apollographql.com/docs/apollo-server/" title="Apollo Server" target="_blank" rel="noopener">Apollo Server&lt;/a>
, &lt;a href="https://nestjs.com/" title="NestJS" target="_blank" rel="noopener">NestJS&lt;/a>
, atau &lt;a href="https://the-guild.dev/graphql/yoga" title="GraphQL Yoga" target="_blank" rel="noopener">GraphQL Yoga&lt;/a>
—pasti pernah merasakan manual repetitive task seperti membuat resolver, model, dan map tipe GraphQL ke TypeScript. Untungnya, dunia modern engineering telah menyediakan “ramuan otomatis” berupa code generation tools.&lt;/p></description></item><item><title>106 Menulis Skema `.graphqls` untuk gqlgen</title><link>https://www.santekno.com/106-menulis-skema-.graphqls-untuk-gqlgen/</link><pubDate>Tue, 14 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/106-menulis-skema-.graphqls-untuk-gqlgen/</guid><description>&lt;h2 id="106-menulis-skema-graphqls-untuk-gqlgen-panduan-praktis">106 Menulis Skema &lt;code>.graphqls&lt;/code> untuk gqlgen: Panduan Praktis&lt;/h2>&lt;p>Menggunakan &lt;strong>gqlgen&lt;/strong> untuk membangun API GraphQL di lingkungan Go tidak hanya memberikan kinerja tinggi dan fleksibilitas, tetapi juga mendekatkan kita pada pola-pola &lt;em>best practice&lt;/em> dalam arsitektur modern. Salah satu pondasi utama ketika menggunakan gqlgen adalah menulis skema GraphQL (&lt;code>.graphqls&lt;/code>). Artikel ini memandu Anda tahap demi tahap dalam mendesain file &lt;code>.graphqls&lt;/code> yang robust, scalable, dan dioptimalkan untuk pengembangan berkelanjutan.&lt;/p></description></item><item><title>105 Cara Mengatur `gqlgen.yml` untuk Kustomisasi</title><link>https://www.santekno.com/105-cara-mengatur-gqlgen.yml-untuk-kustomisasi/</link><pubDate>Mon, 13 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/105-cara-mengatur-gqlgen.yml-untuk-kustomisasi/</guid><description>&lt;h2 id="105-cara-mengatur-gqlgenyml-untuk-kustomisasi">105 Cara Mengatur &lt;code>gqlgen.yml&lt;/code> untuk Kustomisasi&lt;/h2>&lt;p>Golang telah lama jadi primadona backend berkat performanya yang kencang dan ekosistem tooling-nya yang terus berkembang. Salah satunya, untuk membuat GraphQL server di Go, kita punya &lt;a href="https://gqlgen.com/" title="gqlgen" target="_blank" rel="noopener">gqlgen&lt;/a>
 — framework yang powerful dan banyak digunakan. Tapi tahukah kamu, kekuatan sebenarnya dari gqlgen justru ada dalam file konfigurasinya, &lt;code>gqlgen.yml&lt;/code>?&lt;/p></description></item><item><title>104 Struktur File gqlgen dan Cara Kerjanya</title><link>https://www.santekno.com/104-struktur-file-gqlgen-dan-cara-kerjanya/</link><pubDate>Sun, 12 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/104-struktur-file-gqlgen-dan-cara-kerjanya/</guid><description>&lt;p>Jika Anda pernah membangun backend GraphQL di Golang, pasti tidak asing dengan &lt;a href="https://github.com/99designs/gqlgen" title="gqlgen" target="_blank" rel="noopener">&lt;code>gqlgen&lt;/code>&lt;/a>
. Library ini menawarkan generator schema first untuk GraphQL dengan workflow yang &lt;em>strongly typed&lt;/em> dan terintegrasi langsung dengan idiom Go. Artikel ini akan membedah &lt;strong>struktur file standar pada projek gqlgen&lt;/strong>, mekanisme kerja tiap komponennya, serta contoh dan simulasi request sederhana. Mari kita mulai dengan pemahaman fondasi gqlgen.&lt;/p></description></item><item><title>103 Inisialisasi gqlgen dengan `go run github.com/99designs/gqlgen init`</title><link>https://www.santekno.com/103-inisialisasi-gqlgen-dengan-go-run-github.com/99designs/gqlgen-init/</link><pubDate>Sat, 11 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/103-inisialisasi-gqlgen-dengan-go-run-github.com/99designs/gqlgen-init/</guid><description>&lt;h2 id="103-inisialisasi-gqlgen-dengan-go-run-githubcom99designsgqlgen-init">103 Inisialisasi gqlgen dengan &lt;code>go run github.com/99designs/gqlgen init&lt;/code>&lt;/h2>&lt;p>Jika Anda sedang mengeksplorasi GraphQL di ekosistem Go, hampir pasti Anda akan menemukan &lt;a href="https://gqlgen.com/" title="gqlgen" target="_blank" rel="noopener">gqlgen&lt;/a>
. Library buatan tim 99designs ini sudah menjadi &lt;em>de facto&lt;/em> standard pada codebase modern yang ingin membangun API GraphQL dengan Go. Salah satu alasan mengapa gqlgen disukai adalah kemampuannya mengenerate kode berbasis &lt;em>schema-first&lt;/em>, yang dapat menjaga konsistensi dan kecepatan prototyping.&lt;/p></description></item><item><title>102 Menyiapkan Proyek gqlgen Pertama Anda</title><link>https://www.santekno.com/102-menyiapkan-proyek-gqlgen-pertama-anda/</link><pubDate>Fri, 10 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/102-menyiapkan-proyek-gqlgen-pertama-anda/</guid><description>&lt;p>Membangun aplikasi GraphQL yang efektif dari nol kini terasa semakin mudah berkat berbagai tool yang tersedia di ekosistem Go. Salah satu yang cukup populer dan powerful adalah &lt;a href="https://gqlgen.com/" title="gqlgen" target="_blank" rel="noopener">gqlgen&lt;/a>
. Library ini menawarkan cara praktis, performatif, dan idiomatik untuk membangun API GraphQL di Golang. Dalam artikel ini, saya akan membimbing Anda—in the style of hands-on engineer—untuk menyiapkan proyek gqlgen pertama mulai dari inisialisasi hingga menjalankan query sederhana.&lt;/p></description></item><item><title>101 Apa Itu gqlgen? GraphQL Code Generation untuk Go</title><link>https://www.santekno.com/101-apa-itu-gqlgen-graphql-code-generation-untuk-go/</link><pubDate>Thu, 09 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/101-apa-itu-gqlgen-graphql-code-generation-untuk-go/</guid><description>&lt;p>Sejak kehadiran &lt;a href="https://graphql.org/" title="GraphQL" target="_blank" rel="noopener">GraphQL&lt;/a>
 sebagai alternatif REST API, banyak pengembang mulai merasakan kemudahan dalam memanage data yang kompleks dan efisien. Namun, implementasi GraphQL pada bahasa Go sempat menjadi tantangan tersendiri—khususnya soal &lt;em>type safety&lt;/em> dan penulisan &lt;em>boilerplate&lt;/em> yang cukup melelahkan. Dari permasalahan inilah, &lt;code>gqlgen&lt;/code> hadir sebagai solusi.&lt;/p></description></item><item><title>100 Roadmap Lanjutan Belajar GraphQL untuk Backend Developer Go</title><link>https://www.santekno.com/100-roadmap-lanjutan-belajar-graphql-untuk-backend-developer-go/</link><pubDate>Wed, 08 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/100-roadmap-lanjutan-belajar-graphql-untuk-backend-developer-go/</guid><description>&lt;hr>
&lt;h2 id="tags-golang-graphql-backend-roadmap-engineering">title: 100 Roadmap Lanjutan Belajar GraphQL untuk Backend Developer Go
date: 2024-06-11
author: Senior Backend Engineer
tags: [golang, graphql, backend, roadmap, engineering]&lt;/h2>&lt;p>Belajar GraphQL bagi backend developer Go memang menyenangkan, tetapi juga menantang. Setelah memahami konsep dasar—schema, query, mutation, dan resolver—kamu akan dihadapkan pada dunia yang lebih luas: optimalisasi, keamanan, produksi, hingga integrasi layanan lain. Artikel ini akan membagikan roadmap lanjutan dalam 100 poin, lengkap dengan penjelasan, contoh kode, dan diagram alur di beberapa bagian krusial. Yuk, siapkan kopi!&lt;/p></description></item><item><title>99 Kontribusi ke Open Source graphql-go</title><link>https://www.santekno.com/99-kontribusi-ke-open-source-graphql-go/</link><pubDate>Tue, 07 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/99-kontribusi-ke-open-source-graphql-go/</guid><description>&lt;h2 id="99-kontribusi-ke-open-source-graphql-go-pengalaman-praktik-terbaik-dan-pembelajaran">99 Kontribusi ke Open Source &lt;code>graphql-go&lt;/code>: Pengalaman, Praktik Terbaik, dan Pembelajaran&lt;/h2>&lt;p>Open source bukan sekadar istilah; di dunia software engineering, ia adalah ruang belajar, tumbuh, dan kolaborasi nyata. Salah satu pengalaman paling berharga dalam perjalanan open source saya adalah berkontribusi hingga 99 &lt;em>pull request&lt;/em> pada proyek &lt;a href="https://github.com/graphql-go/graphql" title="graphql-go" target="_blank" rel="noopener">&lt;code>graphql-go&lt;/code>&lt;/a>
, sebuah pustaka utama GraphQL di ekosistem Golang.&lt;/p></description></item><item><title>98 Membuat Plugin Sendiri untuk graphql-go</title><link>https://www.santekno.com/98-membuat-plugin-sendiri-untuk-graphql-go/</link><pubDate>Mon, 06 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/98-membuat-plugin-sendiri-untuk-graphql-go/</guid><description>&lt;p>Membangun aplikasi modern yang scalable dan maintainable tidak terlepas dari pemilihan arsitektur API yang tepat. GraphQL, dengan segala kelebihannya dibandingkan REST, telah menjadi primadona dalam ekosistem development saat ini. Salah satu library Go yang sangat populer untuk mengimplementasikan GraphQL adalah &lt;a href="https://github.com/graph-gophers/graphql-go" title="graphql-go" target="_blank" rel="noopener">&lt;code>graphql-go&lt;/code>&lt;/a>
. Namun, tahukah Anda bahwa Anda dapat memperluas kemampuannya dengan membuat plugin sendiri?&lt;/p></description></item><item><title>97 GraphQL Code Generator dan Otomatisasi Skema</title><link>https://www.santekno.com/97-graphql-code-generator-dan-otomatisasi-skema/</link><pubDate>Sun, 05 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/97-graphql-code-generator-dan-otomatisasi-skema/</guid><description>&lt;h2 id="97-graphql-code-generator-dan-otomatisasi-skema-mempercepat-pengembangan-api-modern">97 GraphQL Code Generator dan Otomatisasi Skema: Mempercepat Pengembangan API Modern&lt;/h2>&lt;p>GraphQL kini semakin menjadi standar de facto dalam pengembangan API modern. Ia menawarkan query yang lebih fleksibel dibandingkan REST dan memungkinkan front-end serta back-end berkolaborasi lebih efektif. Namun, maintainability dan scalability dari skema GraphQL bisa menjadi tantangan tersendiri, apalagi ketika jumlah tipe, query, mutation, dan resolver makin bertambah.&lt;/p></description></item><item><title>96 Migrasi REST API ke GraphQL</title><link>https://www.santekno.com/96-migrasi-rest-api-ke-graphql/</link><pubDate>Sat, 04 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/96-migrasi-rest-api-ke-graphql/</guid><description>&lt;h2 id="96-migrasi-rest-api-ke-graphql-panduan-lengkap-dengan-studi-kasus">96 Migrasi REST API ke GraphQL: Panduan Lengkap dengan Studi Kasus&lt;/h2>&lt;p>Migrasi dari REST API ke GraphQL telah menjadi tren di banyak perusahaan yang ingin memberikan pengalaman API yang lebih fleksibel dan efisien untuk para pengembang frontend. Fenomena ini sangat terasa terutama di kalangan startup yang memiliki kebutuhan rapid development dan iterasi UI/UX yang tinggi. Artikel ini akan membahas alasan, tantangan, pola migrasi, dan best practice dalam transisi dari REST ke GraphQL—serta studi kasus sederhana berikut contoh kode implementasinya.&lt;/p></description></item><item><title>95 Studi Kasus: API Layanan Komentar dengan Moderasi</title><link>https://www.santekno.com/95-studi-kasus-api-layanan-komentar-dengan-moderasi/</link><pubDate>Fri, 03 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/95-studi-kasus-api-layanan-komentar-dengan-moderasi/</guid><description>&lt;p>Membangun API layanan komentar mungkin terlihat sederhana, tetapi bila dipadukan dengan sistem moderasi, tantangan teknis dan desainnya meningkat signifikan. Artikel ini mengupas studi kasus implementasi API komentar dengan kemampuan moderasi, mulai dari perancangan arsitektur, contoh kode, simulasi, serta diskusi pro dan kontra pendekatan yang dipilih.&lt;/p></description></item><item><title>94 Studi Kasus: Dashboard Admin Real-time</title><link>https://www.santekno.com/94-studi-kasus-dashboard-admin-real-time/</link><pubDate>Thu, 02 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/94-studi-kasus-dashboard-admin-real-time/</guid><description>&lt;hr>
&lt;h2 id="author-techleadid">title: 94 Studi Kasus: Dashboard Admin Real-time&lt;br>
date: 2024-06-19&lt;br>
author: TechLeadID&lt;/h2>&lt;h2 id="94-studi-kasus-dashboard-admin-real-time">94 Studi Kasus: Dashboard Admin Real-time&lt;/h2>&lt;p>Di era digital seperti saat ini, &lt;strong>Dashboard Admin Real-time&lt;/strong> telah menjadi salah satu kebutuhan utama di banyak aplikasi bisnis, mulai dari analisis data penjualan, monitoring user, hingga sistem alert kritis. Studi kasus ke-94 kali ini akan membedah bagaimana cara membangun dashboard admin real-time berbasis modern stack, tantangannya, sekaligus best practice implementasi.&lt;/p></description></item><item><title>93 Studi Kasus: API Produk &amp; Keranjang Belanja</title><link>https://www.santekno.com/93-studi-kasus-api-produk-keranjang-belanja/</link><pubDate>Wed, 01 Oct 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/93-studi-kasus-api-produk-keranjang-belanja/</guid><description>&lt;h2 id="93-studi-kasus-api-produk--keranjang-belanja">93 Studi Kasus: API Produk &amp;amp; Keranjang Belanja&lt;/h2>&lt;p>Dalam dunia pengembangan aplikasi e-commerce, API untuk produk dan keranjang belanja adalah dua komponen fundamental yang sering menjadi dasar integrasi maupun pengembangan fitur lanjutan. Kali ini, saya ingin membagikan satu studi kasus menarik yang saya kerjakan —proyek internal yang kami beri kode: &lt;strong>93&lt;/strong>— dengan fokus pada desain, implementasi, serta simulasi penggunaan API produk dan keranjang belanja.&lt;/p></description></item><item><title>92 Studi Kasus: Aplikasi Todo dengan Auth dan DB</title><link>https://www.santekno.com/92-studi-kasus-aplikasi-todo-dengan-auth-dan-db/</link><pubDate>Tue, 30 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/92-studi-kasus-aplikasi-todo-dengan-auth-dan-db/</guid><description>&lt;p>Dalam dunia pengembangan perangkat lunak, membangun aplikasi to-do sederhana mungkin terdengar basic. Namun, ketika kita memasukkan elemen otentikasi (auth) dan integrasi basis data (DB), kompleksitasnya menjadi nyata—dan dalam realitas produksi, hal-hal “kecil” ini sering menjadi pijakan keterampilan inti seorang software engineer.&lt;/p></description></item><item><title>91 Studi Kasus: Sistem Manajemen Artikel (CMS)</title><link>https://www.santekno.com/91-studi-kasus-sistem-manajemen-artikel-cms/</link><pubDate>Mon, 29 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/91-studi-kasus-sistem-manajemen-artikel-cms/</guid><description>&lt;p>CMS (Content Management System) adalah salah satu sistem paling fundamental dalam ekosistem software modern. Di era serba digital, kebutuhan untuk mengelola konten secara terstruktur, skalabel, dan aman sangat vital—baik untuk blog personal, portal berita, hingga knowledge base enterprise.&lt;/p></description></item><item><title>90 Strategi Pengujian dan CI/CD graphql-go</title><link>https://www.santekno.com/90-strategi-pengujian-dan-ci/cd-graphql-go/</link><pubDate>Sun, 28 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/90-strategi-pengujian-dan-ci/cd-graphql-go/</guid><description>&lt;hr>
&lt;h2 id="author-engineermedium">title: 90 Strategi Pengujian dan CI/CD GraphQL-Go: Panduan Komprehensif untuk Engineer Backend&lt;br>
subtitle: Langkah demi langkah mengamankan kualitas dan keandalan API GraphQL berbasis Golang&lt;br>
date: 2024-06-11&lt;br>
author: engineer.medium&lt;/h2>&lt;h2 id="pendahuluan">Pendahuluan&lt;/h2>&lt;p>API &lt;em>GraphQL&lt;/em> menjadi primadona dalam membangun layanan backend yang &lt;em>scalable&lt;/em> dan &lt;em>mantap performanya&lt;/em>. Apalagi jika kita mengimplementasikannya di Go (&lt;code>graphql-go&lt;/code>), kita mendapat kombinasi efisiensi dan &lt;em>type safety&lt;/em> tingkat dewa.&lt;/p></description></item><item><title>89 Penulisan Resolver yang Bersih dan Reusable</title><link>https://www.santekno.com/89-penulisan-resolver-yang-bersih-dan-reusable/</link><pubDate>Sat, 27 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/89-penulisan-resolver-yang-bersih-dan-reusable/</guid><description>&lt;h2 id="89-penulisan-resolver-yang-bersih-dan-reusable-panduan-engineer">89 Penulisan Resolver yang Bersih dan Reusable: Panduan Engineer&lt;/h2>&lt;p>Tidak sedikit dari kita, para engineer backend, pernah bersentuhan dengan GraphQL. Salah satu elemen kunci dalam mengembangkan GraphQL Server adalah &lt;strong>resolver&lt;/strong>. Namun, sementara GraphQL memberikan kebebasan dan fleksibilitas, seringkali resolver yang kita tulis jadi cepat membengkak, berulang-ulang, susah diatur, dan sulit di-reuse. Artikel ini akan membahas 89 penulisan resolver yang bersih dan reusable—(tentu, angka 89 adalah hiperbolis, namun maknanya: &lt;em>there are takeaways for everyone&lt;/em>!) Disertai contoh kode, simulasi, hingga diagram &lt;em>mermaid&lt;/em> untuk memperjelas konsepnya.&lt;/p></description></item><item><title>110. Studi Kasus: Desain API yang Konsisten untuk Microservices Multi-Bahasa dengan Protobuf</title><link>https://www.santekno.com/110.-studi-kasus-desain-api-yang-konsisten-untuk-microservices-multi-bahasa-dengan-protobuf/</link><pubDate>Fri, 26 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/110.-studi-kasus-desain-api-yang-konsisten-untuk-microservices-multi-bahasa-dengan-protobuf/</guid><description>&lt;hr>
&lt;h2 id="date-2024-06-10">title: 110. Studi Kasus: Desain API yang Konsisten untuk Microservices Multi-Bahasa dengan Protobuf&lt;br>
author: Rifqi Ramadhan&lt;br>
date: 2024-06-10&lt;/h2>&lt;h2 id="studi-kasus-desain-api-yang-konsisten-untuk-microservices-multi-bahasa-dengan-protobuf">Studi Kasus: Desain API yang Konsisten untuk Microservices Multi-Bahasa dengan Protobuf&lt;/h2>&lt;p>Salah satu tantangan terbesar dalam pengembangan arsitektur microservices adalah memastikan konsistensi kontrak API antara banyak layanan yang ditulis dalam bahasa pemrograman berbeda (multi-bahasa). Dengan semakin beragamnya kebutuhan bisnis, tidak jarang sebuah sistem terdiri dari layanan berbasis &lt;strong>Go&lt;/strong>, &lt;strong>Java&lt;/strong>, &lt;strong>Python&lt;/strong>, bahkan &lt;strong>Node.js&lt;/strong> yang harus saling berkomunikasi dengan efisien, aman, dan tentunya konsisten.&lt;/p></description></item><item><title>88 Struktur Project graphql-go yang Scalable</title><link>https://www.santekno.com/88-struktur-project-graphql-go-yang-scalable/</link><pubDate>Fri, 26 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/88-struktur-project-graphql-go-yang-scalable/</guid><description>&lt;h2 id="88-struktur-project-graphql-go-yang-scalable-panduan-untuk-backend-engineer">88 Struktur Project graphql-go yang Scalable: Panduan Untuk Backend Engineer&lt;/h2>&lt;p>Membangun API dengan GraphQL di Go menawarkan keunggulan pada skalabilitas, maintainability, dan developer experience. Namun, struktur project yang keliru dapat membuat codebase sulit di-maintain bahkan sebelum traffic naik. Maka dari situ, kita membutuhkan strategi struktur project yang solid.&lt;/p></description></item><item><title>109. Studi Kasus: Mengelola Dependency Protobuf dengan Buf untuk Cross-platform</title><link>https://www.santekno.com/109.-studi-kasus-mengelola-dependency-protobuf-dengan-buf-untuk-cross-platform/</link><pubDate>Thu, 25 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/109.-studi-kasus-mengelola-dependency-protobuf-dengan-buf-untuk-cross-platform/</guid><description>&lt;hr>
&lt;p>title: &amp;ldquo;109. Studi Kasus: Mengelola Dependency Protobuf dengan Buf untuk Cross-platform&amp;rdquo;
published: true
author: Senior Software Engineer
tags:&lt;/p></description></item><item><title>87 Tips Debugging Resolver dan Query GraphQL</title><link>https://www.santekno.com/87-tips-debugging-resolver-dan-query-graphql/</link><pubDate>Thu, 25 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/87-tips-debugging-resolver-dan-query-graphql/</guid><description>&lt;h2 id="87-tips-debugging-resolver-dan-query-graphql-panduan-komprehensif-untuk-engineer">87 Tips Debugging Resolver dan Query GraphQL: Panduan Komprehensif untuk Engineer&lt;/h2>&lt;p>Debugging dalam ekosistem GraphQL sering kali terasa seperti menavigasi labirin tanpa peta. Antarmuka resolver yang dinamis, query yang fleksibel, serta interaksi layer antara backend dan frontend membuat problem tracing menjadi tantangan tersendiri—lebih-lebih jika kita berurusan dengan tim besar dan skema kompleks. Sebagai engineer yang telah berkutat bertahun-tahun dengan API GraphQL, saya merangkum 87 tips debugging resolver dan query GraphQL untuk membantu Anda memetakan masalah, memecahkan bug lebih cepat, serta mengoptimalkan produktivitas tim.&lt;/p></description></item><item><title>108. Studi Kasus: Generate Protobuf Secara Otomatis untuk Banyak Bahasa</title><link>https://www.santekno.com/108.-studi-kasus-generate-protobuf-secara-otomatis-untuk-banyak-bahasa/</link><pubDate>Wed, 24 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/108.-studi-kasus-generate-protobuf-secara-otomatis-untuk-banyak-bahasa/</guid><description>&lt;p>Selama satu dekade terakhir, &lt;em>microservices&lt;/em> telah mendominasi arsitektur sistem backend. Salah satu kunci suksesnya adalah kemampuan berbagai layanan untuk saling berkomunikasi melalui protokol yang konsisten, cepat, namun mudah dikembangkan. Salah satu &lt;em>format&lt;/em> yang populer untuk kebutuhan ini adalah Protocol Buffers (Protobuf) yang diperkenalkan oleh Google.&lt;/p></description></item><item><title>86 Kesalahan Umum saat Menggunakan graphql-go</title><link>https://www.santekno.com/86-kesalahan-umum-saat-menggunakan-graphql-go/</link><pubDate>Wed, 24 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/86-kesalahan-umum-saat-menggunakan-graphql-go/</guid><description>&lt;h2 id="86-kesalahan-umum-saat-menggunakan-graphql-go-panduan-lengkap-dan-praktis">86 Kesalahan Umum saat Menggunakan &lt;code>graphql-go&lt;/code>: Panduan Lengkap dan Praktis&lt;/h2>&lt;p>GraphQL telah menjadi standar de facto untuk API modern, dan &lt;code>graphql-go&lt;/code> adalah salah satu library utama di ekosistem Go (Golang) untuk membangun GraphQL server. Namun, seperti tool powerful lainnya, salah penggunaan bisa membawa bencana—mulai dari query lambat, bug yang sulit dilacak, hingga security hole yang berbahaya.&lt;/p></description></item><item><title>107. Studi Kasus: Menyambungkan Frontend gRPC-Web (JavaScript) dengan Backend Go</title><link>https://www.santekno.com/107.-studi-kasus-menyambungkan-frontend-grpc-web-javascript-dengan-backend-go/</link><pubDate>Tue, 23 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/107.-studi-kasus-menyambungkan-frontend-grpc-web-javascript-dengan-backend-go/</guid><description>&lt;p>Dalam beberapa tahun terakhir, pola komunikasi antara aplikasi frontend dan backend terus berevolusi. REST API memang menjadi primadona, namun pola tersebut mulai &amp;ldquo;direcoki&amp;rdquo; oleh protokol komunikasi yang lebih efisien dan modern bernama &lt;strong>gRPC&lt;/strong>. Salah satu kekuatan gRPC adalah dukungannya pada &lt;strong>protobuf (Protocol Buffers)&lt;/strong> yang memungkinkan komunikasi data antar-generate code dengan performa prima.&lt;/p></description></item><item><title>85 Handling Error dan Loading State di Frontend</title><link>https://www.santekno.com/85-handling-error-dan-loading-state-di-frontend/</link><pubDate>Tue, 23 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/85-handling-error-dan-loading-state-di-frontend/</guid><description>&lt;p>&lt;em>Error handling&lt;/em> dan &lt;em>loading state&lt;/em> adalah dua hal yang tak dapat dipisahkan dari pengembangan frontend modern. Dalam rangka meningkatkan kualitas UX (user experience), baik error maupun loading perlu di-handle secara konsisten dan elegan di setiap aplikasi web atau mobile. Saya percaya, kualitas penanganan error dan loading jauh lebih fundamental daripada efek animated yang kadang hanya sebagai “hiasan”.&lt;/p></description></item><item><title>106. Studi Kasus: Berbagi File Protobuf antara Proyek Go dan C#</title><link>https://www.santekno.com/106.-studi-kasus-berbagi-file-protobuf-antara-proyek-go-dan-c/</link><pubDate>Mon, 22 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/106.-studi-kasus-berbagi-file-protobuf-antara-proyek-go-dan-c/</guid><description>&lt;p>&lt;em>Di era software modern, interoperabilitas antarlayanan menjadi sangat krusial. Salah satu solusi populer untuk pertukaran data lintas platform adalah Protobuf (Protocol Buffers). Dalam artikel ini, saya akan mengajak Anda menyelami studi kasus konkret: berbagi file Protobuf antara proyek &lt;em>backend&lt;/em> Go dan aplikasi &lt;em>client&lt;/em> berbasis C#. Kita akan membahas tantangan, solusi, contoh kode nyata, dan bahkan simulasi serta &lt;em>code flow&lt;/em> menggunakan diagram mermaid.&lt;/em>&lt;/p></description></item><item><title>84 Query &amp; Mutation dari Frontend</title><link>https://www.santekno.com/84-query-mutation-dari-frontend/</link><pubDate>Mon, 22 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/84-query-mutation-dari-frontend/</guid><description>&lt;h2 id="84-query--mutation-dari-frontend-mengelola-api-dan-data-secara-efisien-dari-react">84 Query &amp;amp; Mutation dari Frontend: Mengelola API dan Data Secara Efisien dari React&lt;/h2>&lt;p>Dalam dunia pengembangan aplikasi modern, komunikasi antara frontend dan backend adalah arteri utama sebuah sistem. Kanal komunikasi itu biasanya terdiri dari dua jenis utama: &lt;strong>query&lt;/strong> untuk mengambil data dan &lt;strong>mutation&lt;/strong> untuk mengubah data. Pada artikel ini, saya ingin berbagi pengalaman, praktik terbaik, hingga simulasi kode nyata—tentang bagaimana mengelola 84 query dan mutation dari frontend, terutama React, secara efisien dan skalabel.&lt;/p></description></item><item><title>105. Studi Kasus: Komunikasi antara Microservice Go dan Java via Protobuf</title><link>https://www.santekno.com/105.-studi-kasus-komunikasi-antara-microservice-go-dan-java-via-protobuf/</link><pubDate>Sun, 21 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/105.-studi-kasus-komunikasi-antara-microservice-go-dan-java-via-protobuf/</guid><description>&lt;h2 id="studi-kasus-komunikasi-antara-microservice-go-dan-java-via-protobuf">Studi Kasus: Komunikasi antara Microservice Go dan Java via Protobuf&lt;/h2>



&lt;div class="st-callout st-callout-danger">
 &lt;span class="st-callout-tag">Danger&lt;/span>
 &lt;div>&lt;strong>Interoperabilitas microservices lintas bahasa jadi prioritas utama di skenario arsitektur modern. Bagaimana Go dan Java bisa saling bicara dengan efisien? Protocol Buffers (Protobuf) menjawab tantangan tersebut. Berikut studi kasus dan tutorial konkret penerapannya.&lt;/strong>&lt;/div>
&lt;/div>

&lt;h2 id="pendahuluan">Pendahuluan&lt;/h2>&lt;p>Microservices memungkinkan kita membangun sistem yang scalable, modular, dan dapat dikembangkan secara paralel. Sering kali, tim berbeda menggunakan bahasa pemrograman berbeda untuk implementasi service mereka, misalnya Go (Golang) dan Java. Namun, tantangan terbesar adalah bagaimana memastikan komunikasi data antar service berjalan mulus dan efisien.&lt;/p></description></item><item><title>83 Menggunakan Apollo Client di Frontend</title><link>https://www.santekno.com/83-menggunakan-apollo-client-di-frontend/</link><pubDate>Sun, 21 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/83-menggunakan-apollo-client-di-frontend/</guid><description>&lt;h2 id="83-menggunakan-apollo-client-di-frontend-panduan-komprehensif-untuk-integrasi-graphql">83 Menggunakan Apollo Client di Frontend: Panduan Komprehensif untuk Integrasi GraphQL&lt;/h2>&lt;p>GraphQL semakin populer sebagai solusi modern pengambilan data di aplikasi frontend. Tidak seperti REST API yang memerlukan banyak endpoint, GraphQL memungkinkan kita mengambil data secara lebih fleksibel dan efisien. Di dunia frontend, &lt;strong>Apollo Client&lt;/strong> adalah salah satu library de-facto untuk menghubungkan aplikasi React (atau framework modern lain) dengan GraphQL API. Pada artikel ini, saya akan membahas secara praktikal cara menggunakan Apollo Client di frontend: mulai setup hingga implementasi query dan mutation, lengkap dengan contoh kode, simulasi, dan diagram flow.&lt;/p></description></item><item><title>104. Studi Kasus: Client iOS (Swift) dengan gRPC Go Backend</title><link>https://www.santekno.com/104.-studi-kasus-client-ios-swift-dengan-grpc-go-backend/</link><pubDate>Sat, 20 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/104.-studi-kasus-client-ios-swift-dengan-grpc-go-backend/</guid><description>&lt;p>Saat mengembangkan sistem backend modern, penggunaan komunikasi antar aplikasi menjadi sangat vital. Salah satu pendekatan terkini yang banyak dipilih adalah penggunaan &lt;strong>gRPC&lt;/strong>, sebuah framework RPC berbasis protokol buffer (Protobuf) yang efisien dan memiliki performa tinggi. Pada artikel kali ini, saya akan membahas studi kasus membangun komunikasi antara client iOS (menggunakan Swift) dengan backend Go, menggunakan gRPC sebagai protokol komunikasi.&lt;/p></description></item><item><title>82 Menyambungkan React App dengan graphql-go Backend</title><link>https://www.santekno.com/82-menyambungkan-react-app-dengan-graphql-go-backend/</link><pubDate>Sat, 20 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/82-menyambungkan-react-app-dengan-graphql-go-backend/</guid><description>&lt;p>&lt;strong>82 Menyambungkan React App dengan graphql-go Backend&lt;/strong>&lt;br>
&lt;em>Implementasi Praktis API GraphQL di Era Modern Frontend&lt;/em>&lt;/p></description></item><item><title>103. Studi Kasus: Client Android (Java/Kotlin) berkomunikasi dengan gRPC Server di Go</title><link>https://www.santekno.com/103.-studi-kasus-client-android-java/kotlin-berkomunikasi-dengan-grpc-server-di-go/</link><pubDate>Fri, 19 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/103.-studi-kasus-client-android-java/kotlin-berkomunikasi-dengan-grpc-server-di-go/</guid><description>&lt;hr>
&lt;h2 id="tags-android-kotlin-go-grpc-distributed-system-client-server">title: &amp;ldquo;103. Studi Kasus: Client Android (Java/Kotlin) berkomunikasi dengan gRPC Server di Go&amp;rdquo;
author: &amp;ldquo;Andika Pratama&amp;rdquo;
date: 2024-06-10
tags: [android, kotlin, go, grpc, distributed-system, client-server]&lt;/h2>&lt;p>gRPC telah menjadi tulang punggung banyak sistem distributed modern—baik untuk microservices, mobile backend, maupun cloud-native applications. Studi kasus kali ini menyoroti bagaimana client Android (dengan Java/Kotlin) dapat berkomunikasi secara efisien dengan gRPC server yang ditulis dalam Go (Golang). Artikel ini akan menuntun Anda mulai dari motivasi, rancangan hingga kode nyata yang dapat menunjang pengembangan aplikasi lintas platform dengan performa tinggi.&lt;/p></description></item><item><title>81 Pengenalan Integrasi Frontend (React, Vue, Svelte)</title><link>https://www.santekno.com/81-pengenalan-integrasi-frontend-react-vue-svelte/</link><pubDate>Fri, 19 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/81-pengenalan-integrasi-frontend-react-vue-svelte/</guid><description>&lt;h2 id="81-pengenalan-integrasi-frontend-react-vue-dan-svelte">81 Pengenalan Integrasi Frontend: React, Vue, dan Svelte&lt;/h2>&lt;p>&lt;em>Oleh: Engineer yang suka mencoba framework baru&lt;/em>&lt;/p></description></item><item><title>102. Studi Kasus: Membuat gRPC Server di Go dan Client di Node.js</title><link>https://www.santekno.com/102.-studi-kasus-membuat-grpc-server-di-go-dan-client-di-node.js/</link><pubDate>Thu, 18 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/102.-studi-kasus-membuat-grpc-server-di-go-dan-client-di-node.js/</guid><description>&lt;p>Hari-hari ini, arsitektur layanan mikro (microservices) kian populer digunakan untuk membangun aplikasi berskala besar. Salah satu cara efektif berkomunikasi antar layanan adalah menggunakan protokol gRPC. gRPC memungkinkan pertukaran data yang cepat, efisien, serta memberikan pengalaman development yang solid melalui penggunaan Protobuf (Protocol Buffer) sebagai definisi kontraknya.&lt;/p></description></item><item><title>80 Performance Benchmark graphql-go</title><link>https://www.santekno.com/80-performance-benchmark-graphql-go/</link><pubDate>Thu, 18 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/80-performance-benchmark-graphql-go/</guid><description>&lt;h2 id="80-performance-benchmark-graphql-go-studi-mendalam-dan-praktik-terbaik">80 Performance Benchmark &lt;code>graphql-go&lt;/code>: Studi Mendalam dan Praktik Terbaik&lt;/h2>&lt;p>Mengimplementasi GraphQL di backend production memerlukan banyak pertimbangan, terutama soal performa. Go (Golang) semakin populer sebagai pilihan utama backend—stabil, efisien, serta kaya ekosistem. Salah satu library andalannya, &lt;a href="https://github.com/graphql-go/graphql" title="graphql-go" target="_blank" rel="noopener">&lt;code>graphql-go&lt;/code>&lt;/a>
, menawarkan implementasi GraphQL yang sederhana dan idiomatik. Namun, bagaimana sebenarnya performa &lt;code>graphql-go&lt;/code> di dunia nyata?&lt;/p></description></item><item><title>101. Studi Kasus: Mengkonsumsi gRPC Server Go dari Python Client</title><link>https://www.santekno.com/101.-studi-kasus-mengkonsumsi-grpc-server-go-dari-python-client/</link><pubDate>Wed, 17 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/101.-studi-kasus-mengkonsumsi-grpc-server-go-dari-python-client/</guid><description>&lt;p>gRPC (Google Remote Procedure Call) adalah framework komunikasi open source yang telah menjadi fondasi berbagai sistem microservices modern. Arsitektur gRPC mempercepat pengembangan layanan lintas platform dengan performa tinggi, terutama ketika komunikasi antar bahasa diperlukan. Pada artikel kali ini, kita akan membahas tentang integrasi gRPC antara server Go dan client Python, lengkap dengan studi kasus, contoh kode, dan diagram alur.&lt;/p></description></item><item><title>79 Teknik Optimisasi Skema dan Modularisasi</title><link>https://www.santekno.com/79-teknik-optimisasi-skema-dan-modularisasi/</link><pubDate>Wed, 17 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/79-teknik-optimisasi-skema-dan-modularisasi/</guid><description>&lt;h2 id="79-teknik-optimisasi-skema-dan-modularisasi-panduan-praktis-untuk-engineer-modern">79 Teknik Optimisasi Skema dan Modularisasi: Panduan Praktis untuk Engineer Modern&lt;/h2>&lt;p>Pada era sistem perangkat lunak yang kompleks saat ini, dua aspek mendasar yang kerap dilewatkan saat desain awal adalah &lt;strong>optimasi skema data&lt;/strong> dan &lt;strong>modularisasi kode&lt;/strong>. Padahal, keduanya berdampak langsung pada performa aplikasi, skalabilitas, serta kemudahan maintenance. Dalam artikel ini, saya merangkum &lt;strong>79 teknik optimisasi skema dan modularisasi&lt;/strong> praktis yang bisa langsung Anda aplikasikan, lengkap dengan contoh kode, simulasi, tabel, serta diagram alur dengan Mermaid untuk mengilustrasikan konsep-konsep pentingnya.&lt;/p></description></item><item><title>100. Studi Kasus: Arsitektur Microservices Lengkap dengan gRPC di Go</title><link>https://www.santekno.com/100.-studi-kasus-arsitektur-microservices-lengkap-dengan-grpc-di-go/</link><pubDate>Tue, 16 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/100.-studi-kasus-arsitektur-microservices-lengkap-dengan-grpc-di-go/</guid><description>&lt;hr>
&lt;h2 id="tags-microservices-golang-grpc-arsitektur-studi-kasus-kode-devops">title: 100. Studi Kasus: Arsitektur Microservices Lengkap dengan gRPC di Go&lt;br>
author: Maya Wijaya&lt;br>
date: 2024-06-20&lt;br>
tags: [microservices, golang, grpc, arsitektur, studi kasus, kode, devops]&lt;/h2>&lt;h2 id="pendahuluan">Pendahuluan&lt;/h2>&lt;p>Pada era modern pengembangan perangkat lunak, &lt;em>microservices architecture&lt;/em> menjadi standard yang banyak diadopsi oleh perusahaan teknologi skala kecil maupun besar. Salah satu alasan utamanya adalah kemampuan microservices untuk meningkatkan skalabilitas, fleksibilitas teknologi, serta mempercepat &lt;em>deployment&lt;/em> fitur baru. Namun, implementasi microservices seringkali menimbulkan tantangan terkait komunikasi antar layanan, otomatisasi, serta orkestrasi &lt;em>deployment&lt;/em>. Di artikel ke-100 ini, saya akan membahas studi kasus lengkap arsitektur microservices menggunakan &lt;strong>gRPC&lt;/strong> di &lt;strong>Go&lt;/strong>, lengkap dengan contoh kode, simulasi alur, serta workflow pengembangan.&lt;/p></description></item><item><title>78 Caching Query dan Result Resolver</title><link>https://www.santekno.com/78-caching-query-dan-result-resolver/</link><pubDate>Tue, 16 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/78-caching-query-dan-result-resolver/</guid><description>&lt;h2 id="78-caching-query-dan-result-resolver-efisiensi-best-practice-dan-implementasi-nyata">78 Caching Query dan Result Resolver: Efisiensi, Best Practice, dan Implementasi Nyata&lt;/h2>&lt;p>&lt;em>Oleh: [Nama Anda], Senior Software Engineer&lt;/em>&lt;/p></description></item><item><title>77 N+1 Problem dan Solusinya dengan DataLoader</title><link>https://www.santekno.com/77-n-1-problem-dan-solusinya-dengan-dataloader/</link><pubDate>Mon, 15 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/77-n-1-problem-dan-solusinya-dengan-dataloader/</guid><description>&lt;p>N+1 problem adalah istilah klasik dalam pengembangan perangkat lunak ketika kita berurusan dengan akses ke data yang memiliki relasi, terutama di lingkungan ORM (Object Relational Mapping) atau query berbasis GraphQL/REST. Fenomena ini kerap menimbulkan masalah efisiensi yang berdampak pada performa aplikasi, dan seringkali baru tersadari setelah aplikasi live dan adanya keluhan performa dari end-user atau pemilik bisnis. Salah satu solusi yang naik daun dalam beberapa tahun terakhir adalah pendekatan &lt;strong>DataLoader&lt;/strong>.&lt;/p></description></item><item><title>99. Studi Kasus: Dashboard Admin berbasis grpc-gateway</title><link>https://www.santekno.com/99.-studi-kasus-dashboard-admin-berbasis-grpc-gateway/</link><pubDate>Mon, 15 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/99.-studi-kasus-dashboard-admin-berbasis-grpc-gateway/</guid><description>&lt;p>Dashboard admin adalah jantung utama dalam mengelola aplikasi berskala besar. Di balik tombol dan tabel statistiknya, tersimpan tantangan arsitektur nyata tentang komunikasi antar service backend. Salah satu cara modern untuk membangun API kuat sekaligus tetap developer-friendly adalah &lt;strong>grpc-gateway&lt;/strong>. Dalam studi kasus ini, kita akan membongkar bagaimana membangun dashboard admin berbasis grpc-gateway, lengkap dengan studi desain, contoh kode, simulasi alur, dan best practices.&lt;/p></description></item><item><title>Liga 1 Indonesia 2025/2026: Jadwal &amp; Berita Terlengkap</title><link>https://www.santekno.com/liga-1-indonesia-2025/2026-jadwal-berita-terlengkap/</link><pubDate>Mon, 15 Sep 2025 10:09:36 +0700</pubDate><guid>https://www.santekno.com/liga-1-indonesia-2025/2026-jadwal-berita-terlengkap/</guid><description>&lt;h2 id="apa-itu-liga-1-indonesia">Apa itu Liga 1 Indonesia?&lt;/h2>&lt;p>Liga 1 Indonesia adalah kompetisi sepak bola kasta tertinggi di Tanah Air, tempat berkumpulnya klub-klub terbaik dari berbagai provinsi. Setiap musim, Liga 1 selalu jadi magnet besar: dari drama transfer, strategi pelatih, sampai dukungan fanatik suporter di stadion. Bagi banyak orang, menyaksikan tim favorit bertanding di liga ini bukan cuma soal hiburan, tapi juga kebanggaan daerah dan identitas.&lt;/p></description></item><item><title>76 Optimasi Resolver agar Tidak Lambat</title><link>https://www.santekno.com/76-optimasi-resolver-agar-tidak-lambat/</link><pubDate>Sun, 14 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/76-optimasi-resolver-agar-tidak-lambat/</guid><description>&lt;h2 id="76-optimasi-resolver-agar-tidak-lambat-panduan-lengkap-untuk-engineer">76 Optimasi Resolver agar Tidak Lambat: Panduan Lengkap untuk Engineer&lt;/h2>&lt;p>Bayangkan sebuah sistem backend dengan GraphQL, puluhan query harian, dan traffic tinggi. Para engineer seringkali menjadikan resolver sebagai tempat utama proses fetching dan transformasi data. Namun, lambat laun, performa resolver menjadi masalah klasik—API terasa lambat, bahkan kadang membebani infrastruktur. Artikel ini membedah &lt;strong>76 optimasi&lt;/strong> yang bisa Anda lakukan agar resolver Anda tetap ringan, cepat, dan scalable.&lt;/p></description></item><item><title>98. Studi Kasus: Sistem Point of Sale (POS) Terdistribusi</title><link>https://www.santekno.com/98.-studi-kasus-sistem-point-of-sale-pos-terdistribusi/</link><pubDate>Sun, 14 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/98.-studi-kasus-sistem-point-of-sale-pos-terdistribusi/</guid><description>&lt;p>&lt;em>Sistem Point of Sale (POS) sudah menjadi tulang punggung operasional ritel modern. Namun, ketika bisnis bertumbuh dan ekspansi ke banyak cabang, kebutuhan arsitektur POS pun naik kelas: sistem POS perlu &lt;strong>terdistribusi&lt;/strong>, tersedia di banyak lokasi tapi tetap terintegrasi. Bagaimana tantangannya? Apa pilihan desain dan solusinya? Pada studi kasus kali ini, saya akan membedah proses membangun sistem POS terdistribusi berdasarkan pengalaman proyek nyata — dari desain arsitektur, skenario sinkronisasi, hingga contoh kode.&lt;/em>&lt;/p></description></item><item><title>75 Mendokumentasikan Resolver dengan Komentar Go</title><link>https://www.santekno.com/75-mendokumentasikan-resolver-dengan-komentar-go/</link><pubDate>Sat, 13 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/75-mendokumentasikan-resolver-dengan-komentar-go/</guid><description>&lt;p>Pernahkah Anda sebagai software engineer merasa frustasi ketika membaca kode lama tanpa dokumentasi yang memadai? Atau mungkin pernah code review di tim, dan menemukan resolver yang “ajaib” tanpa penjelasan sama sekali di baris komentarnya? Tahukah Anda bahwa dokumentasi yang baik tidak hanya membuat kode lebih mudah dipelihara, tapi juga sangat membantu pengembang lain memahami niat, logika, serta asumsi yang Anda buat ketika menulis kode—hingga mengurangi cost onboarding tim baru.&lt;/p></description></item><item><title>97. Studi Kasus: Layanan Chat Real-Time</title><link>https://www.santekno.com/97.-studi-kasus-layanan-chat-real-time/</link><pubDate>Sat, 13 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/97.-studi-kasus-layanan-chat-real-time/</guid><description>&lt;p>Sebagai seorang engineer, tantangan membangun layanan chat real-time selalu menarik dibahas. Menghadirkan komunikasi dua arah dengan latensi rendah, skalabilitas, serta keamanan memadai, merupakan kombinasi yang kompleks namun sangat fundamental di era digital saat ini. Pada artikel ini, saya akan membedah studi kasus membangun layanan chat real-time dengan websocket menggunakan Node.js dan React, lengkap dengan contoh kode, simulasi, serta ilustrasi alur data. Semoga bermanfaat!&lt;/p></description></item><item><title>74 Menambahkan Keterangan dan Deskripsi di Skema</title><link>https://www.santekno.com/74-menambahkan-keterangan-dan-deskripsi-di-skema/</link><pubDate>Fri, 12 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/74-menambahkan-keterangan-dan-deskripsi-di-skema/</guid><description>&lt;h2 id="74-menambahkan-keterangan-dan-deskripsi-di-skema-panduan-praktis-untuk-dokumentasi-data">74 Menambahkan Keterangan dan Deskripsi di Skema: Panduan Praktis untuk Dokumentasi Data&lt;/h2>&lt;p>Dokumentasi skema sering kali menjadi aspek yang dianggap sepele dalam pengembangan aplikasi. Namun, seiring bertambahnya kompleksitas sistem, keterangan (comments) dan deskripsi pada skema basis data maupun skema API menjadi &lt;em>game changer&lt;/em> dalam menjaga kualitas, kolaborasi, dan keberlanjutan proyek. Di artikel ke-74 seri ini, saya akan membahas secara detail bagaimana cara menambahkan keterangan dan deskripsi pada berbagai skema: mulai dari basis data SQL, NoSQL, hingga API (OpenAPI/Swagger), dilengkapi contoh kode, simulasi, dan best practices yang sering saya temukan di dunia profesional.&lt;/p></description></item><item><title>96. Studi Kasus: Sistem Inventaris Barang</title><link>https://www.santekno.com/96.-studi-kasus-sistem-inventaris-barang/</link><pubDate>Fri, 12 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/96.-studi-kasus-sistem-inventaris-barang/</guid><description>&lt;p>Inventarisasi merupakan komponen fundamental dalam banyak bisnis, mulai dari toko ritel kecil hingga perusahaan multinasional. Sistem Inventaris Barang yang terkelola dengan baik tidak hanya memperlancar rantai pasok, tetapi juga meminimalisir pemborosan dan kehilangan aset. Pada artikel ini, saya akan membahas sebuah studi kasus bagaimana merancang, mengimplementasikan, dan mensimulasikan Sistem Inventaris Barang sederhana dengan sudut pandang seorang engineer profesional.&lt;/p></description></item><item><title>73 Membangun Sistem Auto-docs di graphql-go</title><link>https://www.santekno.com/73-membangun-sistem-auto-docs-di-graphql-go/</link><pubDate>Thu, 11 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/73-membangun-sistem-auto-docs-di-graphql-go/</guid><description>&lt;p>Saat organisasi tumbuh, satu hal yang umumnya berkembang dengan cepat (dan seringkali buruk) adalah dokumentasi API. GraphQL menawarkan keunggulan dengan introspeksi skema yang sudah built-in, namun dokumentasi yang baik tetap harus dilengkapi penjelasan bisnis dan contoh kasus nyata. Di artikel ini, saya ingin mengajak kamu membangun &lt;em>auto-docs system&lt;/em> —dokumentasi otomatis—untuk GraphQL API berbasis &lt;strong>graphql-go.&lt;/strong> Dengan pendekatan ini, kita ingin mengurangi gap antara kode dan dokumentasi: apa yang berubah di kode otomatis tercermin di dokumentasi.&lt;/p></description></item><item><title>95. Studi Kasus: Aplikasi Analitik Sederhana dengan Streaming</title><link>https://www.santekno.com/95.-studi-kasus-aplikasi-analitik-sederhana-dengan-streaming/</link><pubDate>Thu, 11 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/95.-studi-kasus-aplikasi-analitik-sederhana-dengan-streaming/</guid><description>&lt;p>Seiring pertumbuhan data yang semakin pesat, kebutuhan untuk memproses dan menganalisis data secara real-time juga meningkat. Pendekatan pemrosesan batch tradisional, di mana data dikumpulkan dan diproses secara berkala, sering kali tidak cukup untuk kebutuhan bisnis modern, terutama untuk kasus seperti monitoring transaksi, fraud detection, atau analitik moda transportasi. Oleh karena itu, streaming data muncul sebagai solusi yang efektif.&lt;/p></description></item><item><title>72 Menggunakan GraphQL Playground untuk Dokumentasi Interaktif</title><link>https://www.santekno.com/72-menggunakan-graphql-playground-untuk-dokumentasi-interaktif/</link><pubDate>Wed, 10 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/72-menggunakan-graphql-playground-untuk-dokumentasi-interaktif/</guid><description>&lt;p>GraphQL telah merevolusi cara kita membangun dan mengkonsumsi API. Salah satu keunggulan utamanya adalah kemampuannya untuk mendokumentasikan API secara interaktif, dan alat terbaik yang sering digunakan untuk ini adalah &lt;strong>GraphQL Playground&lt;/strong>. Dalam artikel ini, saya akan membahas bagaimana penggunaan Playground tidak hanya membantu pengembang dalam mencoba query, tetapi juga sebagai media dokumentasi interaktif—mulai dari instalasi, fitur dokumentasi otomatis, sampai simulasi query yang powerful.&lt;/p></description></item><item><title>94. Studi Kasus: Microservice Notifikasi Email</title><link>https://www.santekno.com/94.-studi-kasus-microservice-notifikasi-email/</link><pubDate>Wed, 10 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/94.-studi-kasus-microservice-notifikasi-email/</guid><description>&lt;h2 id="studi-kasus-microservice-notifikasi-email">Studi Kasus: Microservice Notifikasi Email&lt;/h2>&lt;p>Notifikasi email adalah fitur krusial di banyak aplikasi modern, baik itu untuk verifikasi akun, notifikasi aktivitas, atau pengingat penting kepada pengguna. Seiring kompleksitas sistem bertambah, pola monolitik mulai kewalahan, terutama pada integrasi sistem eksternal atau kebutuhan skalabilitas tinggi. Di sinilah gaya arsitektur microservice menawarkan solusi modular, fleksibel, dan scalable.&lt;/p></description></item><item><title>71 Menulis Dokumentasi Skema Secara Otomatis</title><link>https://www.santekno.com/71-menulis-dokumentasi-skema-secara-otomatis/</link><pubDate>Tue, 09 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/71-menulis-dokumentasi-skema-secara-otomatis/</guid><description>&lt;p>Dokumentasi sering dianggap “tugas sampingan” yang membosankan, tetapi hampir setiap engineer senior sepakat: &lt;strong>dokumentasi adalah investasi&lt;/strong>. Salah satu dokumentasi terpenting adalah dokumentasi skema database atau API, yang sering kali cepat usang jika di-maintain secara manual. Beruntung, tools modern sudah menawarkan cara otomatis dan efisien menulis dokumentasi skema. Dalam artikel ini, saya akan membahas 71 tips, teknik, serta contoh real mengenai otomatisasi penulisan dokumentasi skema, khususnya untuk database dan API, dengan pendekatan yang bisa langsung Anda praktikkan di proyek sehari-hari.&lt;/p></description></item><item><title>93. Studi Kasus: Sistem Pemesanan Tiket dengan gRPC</title><link>https://www.santekno.com/93.-studi-kasus-sistem-pemesanan-tiket-dengan-grpc/</link><pubDate>Tue, 09 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/93.-studi-kasus-sistem-pemesanan-tiket-dengan-grpc/</guid><description>&lt;h2 id="studi-kasus-membangun-sistem-pemesanan-tiket-dengan-grpc">Studi Kasus: Membangun Sistem Pemesanan Tiket dengan gRPC&lt;/h2>&lt;p>&lt;em>Selamat datang di perjalanan arsitektural membangun sistem distribusi tiket yang scalable dan efisien. Di artikel kali ini, saya akan membedah rancangan dan implementasi &lt;em>microservice&lt;/em> pemesanan tiket menggunakan gRPC, mulai dari konsep hingga contoh kode siap pakai.&lt;/em>&lt;/p></description></item><item><title>70 Load Balancing dan Scaling graphql-go</title><link>https://www.santekno.com/70-load-balancing-dan-scaling-graphql-go/</link><pubDate>Mon, 08 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/70-load-balancing-dan-scaling-graphql-go/</guid><description>&lt;p>&lt;em>Di era aplikasi modern, skalabilitas dan distribusi beban kerja bukan lagi sekadar pilihan, melainkan kebutuhan. Apalagi bila API core Anda berjalan di GraphQL dengan library seperti &lt;code>graphql-go&lt;/code>. Mengapa banyak developer masih terjebak di pola scaling konvensional? Apa saja tantangan load balancing pada GraphQL? Yuk kita bedah bersama secara teknis!&lt;/em>&lt;/p></description></item><item><title>92. Studi Kasus: Aplikasi Absensi Pegawai</title><link>https://www.santekno.com/92.-studi-kasus-aplikasi-absensi-pegawai/</link><pubDate>Mon, 08 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/92.-studi-kasus-aplikasi-absensi-pegawai/</guid><description>&lt;hr>
&lt;h2 id="tags-absensi-software-engineering-case-study-employee-management-react-nodejs-diagram">title: &amp;ldquo;92. Studi Kasus: Aplikasi Absensi Pegawai&amp;rdquo;
date: 2024-06-12
author: &amp;ldquo;Andi Putra&amp;rdquo;
tags: [absensi, software engineering, case study, employee management, react, nodejs, diagram]&lt;/h2>&lt;h2 id="studi-kasus-aplikasi-absensi-pegawai">Studi Kasus: Aplikasi Absensi Pegawai&lt;/h2>&lt;p>Absensi pegawai merupakan salah satu aspek esensial dalam pengelolaan sumber daya manusia di sebuah perusahaan. Proses pencatatan kehadiran secara manual terbukti kurang efisien dan rentan terhadap human error. Karena itu, menciptakan sebuah aplikasi absensi pegawai yang modern menjadi tantangan menarik bagi seorang software engineer. Pada artikel ini, saya akan mengulas studi kasus pengembangan aplikasi absensi pegawai sederhana dengan teknologi web. Kita akan membahas arsitektur, contoh kode, simulasi flow user, hingga tips dalam implementasinya.&lt;/p></description></item><item><title>69 Authentication di Federated Architecture</title><link>https://www.santekno.com/69-authentication-di-federated-architecture/</link><pubDate>Sun, 07 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/69-authentication-di-federated-architecture/</guid><description>&lt;h2 id="69-authentication-di-federated-architecture-memahami-membangun-dan-mengimplementasikan">69 Authentication di Federated Architecture: Memahami, Membangun, dan Mengimplementasikan&lt;/h2>&lt;p>&lt;strong>Oleh:&lt;/strong> [Nama Anda] – Senior Software Engineer&lt;/p></description></item><item><title>91. Studi Kasus: Aplikasi Todo List berbasis gRPC</title><link>https://www.santekno.com/91.-studi-kasus-aplikasi-todo-list-berbasis-grpc/</link><pubDate>Sun, 07 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/91.-studi-kasus-aplikasi-todo-list-berbasis-grpc/</guid><description>&lt;p>gRPC telah menjadi salah satu teknologi populer untuk membangun layanan microservices berperforma tinggi dan efisien. Di artikel ini, saya akan membahas studi kasus sederhana: membangun aplikasi Todo List menggunakan gRPC dari nol. Kita akan mengeksplorasi arsitektur, struktur protokol, serta cuplikan kode Go yang dapat langsung diadaptasi untuk kasus nyata.&lt;/p></description></item><item><title>68 Gateway Server dan Remote Schema Stitching</title><link>https://www.santekno.com/68-gateway-server-dan-remote-schema-stitching/</link><pubDate>Sat, 06 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/68-gateway-server-dan-remote-schema-stitching/</guid><description>&lt;h2 id="68-gateway-server-dan-remote-schema-stitching-langkah-futuristik-untuk-api-grafana">68 Gateway Server dan Remote Schema Stitching: Langkah Futuristik untuk API Grafana&lt;/h2>&lt;p>API modern membutuhkan fleksibilitas, skalabilitas, dan integrasi yang seamless. Dengan semakin populernya arsitektur microservices, muncul tantangan baru: bagaimana mengintegrasikan berbagai layanan yang masing-masing memiliki GraphQL schema sendiri? Di sinilah konsep &lt;strong>gateway server&lt;/strong> dan &lt;strong>remote schema stitching&lt;/strong> menjadi krusial. Pada artikel ini, saya akan membahas konsep 68 Gateway Server, mengapa Remote Schema Stitching penting, dan bagaimana mengimplementasikannya, dilengkapi dengan contoh kode, diagram alur, dan simulasi sederhana.&lt;/p></description></item><item><title>90. Studi Kasus: Simulasi Load Testing gRPC</title><link>https://www.santekno.com/90.-studi-kasus-simulasi-load-testing-grpc/</link><pubDate>Sat, 06 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/90.-studi-kasus-simulasi-load-testing-grpc/</guid><description>&lt;p>Dewasa ini, layanan dengan protokol &lt;strong>gRPC&lt;/strong> semakin popular digunakan di berbagai perusahaan teknologi karena efisiensinya dalam membangun komunikasi antar layanan (microservices). gRPC yang berbasis HTTP/2 menawarkan performa dan protokol serialization yang sangat efisien (Protocol Buffers), sehingga cocok untuk sistem berskala besar. Namun, sebelum mengimplementasikan gRPC pada production, memahami bagaimana performa layanan tersebut ketika mendapat beban yang masif adalah langkah wajib. Di artikel kali ini, saya akan membahas studi kasus simulasi load testing pada layanan gRPC lengkap dengan contoh kode, simulasi, hingga analisis hasilnya.&lt;/p></description></item><item><title>67 Menghubungkan Beberapa Service GraphQL di Go</title><link>https://www.santekno.com/67-menghubungkan-beberapa-service-graphql-di-go/</link><pubDate>Fri, 05 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/67-menghubungkan-beberapa-service-graphql-di-go/</guid><description>&lt;p>Ketika skala sistem microservices mulai meningkat, biasanya muncul kebutuhan untuk mengintegrasikan beberapa service agar mampu memberikan pengalaman API yang konsisten. Salah satu pendekatan yang sedang naik daun adalah federasi GraphQL, di mana beberapa &lt;em>service&lt;/em> dengan GraphQL API masing-masing digabungkan ke dalam satu &lt;em>gateway&lt;/em> terpadu. Pada artikel kali ini, saya akan membahas cara menghubungkan beberapa service GraphQL di Go, lengkap dengan &lt;em>contoh kode&lt;/em>, &lt;em>simulasi request&lt;/em>, dan &lt;em>diagram alur&lt;/em> untuk membangun federasi sederhana.&lt;/p></description></item><item><title>89. Performance Benchmarking dengan `ghz`</title><link>https://www.santekno.com/89.-performance-benchmarking-dengan-ghz/</link><pubDate>Fri, 05 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/89.-performance-benchmarking-dengan-ghz/</guid><description>&lt;h2 id="89-performance-benchmarking-dengan-ghz--panduan-lengkap-untuk-mengukur-grpc">89. Performance Benchmarking dengan &lt;code>ghz&lt;/code> — Panduan Lengkap untuk Mengukur gRPC&lt;/h2>&lt;p>Performance benchmarking mungkin terdengar seperti kerjaan tim QA atau SRE, tapi bagi saya—seorang developer—memahami dan menerapkan benchmark adalah bagian vital dalam membangun sistem yang scalable. Apalagi ketika bekerja dengan gRPC, framework RPC modern yang banyak diadopsi berbagai perusahaan untuk microservices. Salah satu tool favorit saya adalah &lt;a href="https://ghz.sh/" title="ghz" target="_blank" rel="noopener">&lt;code>ghz&lt;/code>&lt;/a>
, sebuah benchmarker open-source khusus untuk gRPC. Di artikel ke-89 serial ini, saya akan membahas habis soal benchmarking dengan &lt;code>ghz&lt;/code>, mengenalkan skenario penggunaan, serta menampilkan contoh real yang bisa langsung kamu adaptasi.&lt;/p></description></item><item><title>66 Pengenalan Federated GraphQL Architecture</title><link>https://www.santekno.com/66-pengenalan-federated-graphql-architecture/</link><pubDate>Thu, 04 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/66-pengenalan-federated-graphql-architecture/</guid><description>&lt;p>GraphQL terus menjadi pilihan populer dalam mendesain API modern, terutama karena kemampuannya untuk mengurangi over-fetching, under-fetching, dan memberikan API surface yang konsisten untuk berbagai klien. Namun seiring bertambahnya kebutuhan skala dan kompleksitas sistem, muncul satu tantangan fundamental: bagaimana mengelola banyak domain microservice yang ingin diakses dengan satu endpoint GraphQL yang terpusat? Di sinilah konsep Federated GraphQL Architecture, yang dipopulerkan oleh Apollo, menjadi solusi mutakhir.&lt;/p></description></item><item><title>88. Menggunakan `grpcurl` untuk Testing Manual</title><link>https://www.santekno.com/88.-menggunakan-grpcurl-untuk-testing-manual/</link><pubDate>Thu, 04 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/88.-menggunakan-grpcurl-untuk-testing-manual/</guid><description>&lt;hr>
&lt;h2 id="cover_image-0uvk7uv0lpd_gqe7ijzfnwpng">title: &amp;ldquo;88. Menggunakan &lt;code>grpcurl&lt;/code> untuk Testing Manual&amp;rdquo;
date: 2024-06-20T12:00:00Z
tags: [grpc, testing, cli, productivity, tutorial]
cover_image: &lt;a href="https://miro.medium.com/v2/resize:fit:1400/1" title="https://miro.medium.com/v2/resize:fit:1400/1" target="_blank" rel="noopener">https://miro.medium.com/v2/resize:fit:1400/1&lt;/a>
*0UvK7Uv0LpD_gQE7IJzFNw.png&lt;/h2>&lt;h2 id="88-menggunakan-grpcurl-untuk-testing-manual">88. Menggunakan &lt;code>grpcurl&lt;/code> untuk Testing Manual&lt;/h2>&lt;p>Testing adalah bagian integral dalam pengembangan aplikasi, terutama ketika kita berbicara tentang protokol komunikasi seperti gRPC. Namun, seringkali testing pada service gRPC bisa menjadi mimpi buruk—setup terlalu rumit, Anda harus menulis banyak kode &amp;ldquo;client dummy&amp;rdquo;, atau bahkan tersandung dependency yang tidak jelas hanya untuk memastikan service berjalan seperti yang diinginkan. Di sinilah peran &lt;code>grpcurl&lt;/code> sebagai &lt;em>game changer&lt;/em>.&lt;/p></description></item><item><title>65 Skema Dinamis dan Custom Scalar Types</title><link>https://www.santekno.com/65-skema-dinamis-dan-custom-scalar-types/</link><pubDate>Wed, 03 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/65-skema-dinamis-dan-custom-scalar-types/</guid><description>&lt;h2 id="65-skema-dinamis-dan-custom-scalar-types-menjelajah-dunia-type-system-yang-lebih-fleksibel">65 Skema Dinamis dan Custom Scalar Types: Menjelajah Dunia Type System yang Lebih Fleksibel&lt;/h2>&lt;p>Dalam dunia modern pengembangan perangkat lunak, API tidak hanya sekadar jembatan antar sistem, tapi juga kontrak yang menentukan cara data dipertukarkan. Salah satu pilar utama dalam mendefinisikan API, khususnya dalam konteks &lt;strong>GraphQL&lt;/strong> atau &lt;strong>gRPC&lt;/strong>, adalah &lt;em>type system&lt;/em>. Artikel ini akan mengupas dua aspek advanced yakni &lt;strong>skema dinamis&lt;/strong> dan &lt;strong>custom scalar types&lt;/strong>. Kita akan melihat alasan, implementasi, serta contoh pragmatis penggunaan keduanya.&lt;/p></description></item><item><title>87. Studi Kasus: Debugging Masalah Streaming</title><link>https://www.santekno.com/87.-studi-kasus-debugging-masalah-streaming/</link><pubDate>Wed, 03 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/87.-studi-kasus-debugging-masalah-streaming/</guid><description>&lt;p>Streaming data secara real-time semakin menjadi kebutuhan fundamental, baik untuk layanan video, audio, maupun data sensor IoT. Namun, siapa pun yang pernah membangun pipeline streaming pasti pernah menghadapi masalah aneh: lag, data hilang, duplikasi, hingga crash yang tidak jelas sumbernya. Pada artikel ini, saya akan membagikan studi kasus nyata dalam menangani masalah pada sistem data streaming berbasis Kafka, mulai dari identifikasi, replikasi bug, sampai akhirnya menemukan akar masalah dan memperbaikinya.&lt;/p></description></item><item><title>64 Aliases dan Directives di Query</title><link>https://www.santekno.com/64-aliases-dan-directives-di-query/</link><pubDate>Tue, 02 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/64-aliases-dan-directives-di-query/</guid><description>&lt;h2 id="64-aliases-dan-directives-di-query-panduan-lengkap-dengan-contoh--visualisasi">64 Aliases dan Directives di Query: Panduan Lengkap dengan Contoh &amp;amp; Visualisasi&lt;/h2>&lt;p>Sebagai engineer backend, khususnya yang sering bermain dengan data—entah di GraphQL, SQL, ataupun REST API—alias dan directives adalah dua tools yang sangat membantu dalam mengotak-atik response query sesuai kebutuhan. Pada artikel kali ini, saya akan membahas &lt;strong>64 Aliases dan Directives&lt;/strong> dalam konteks query (kita fokus ke SQL dan GraphQL), beserta contoh kode, simulasi output, dan diagram alur agar penjelasan makin mudah dipahami.&lt;/p></description></item><item><title>86. Studi Kasus: Testing Layanan CRUD dengan gRPC</title><link>https://www.santekno.com/86.-studi-kasus-testing-layanan-crud-dengan-grpc/</link><pubDate>Tue, 02 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/86.-studi-kasus-testing-layanan-crud-dengan-grpc/</guid><description>&lt;p>Dewasa ini, pengembangan aplikasi skala besar cenderung mengadopsi arsitektur microservices serta protokol komunikasi yang efisien, seperti gRPC. Banyak perusahaan menjadikan gRPC pilihan utama karena performa tinggi dan schema-driven API menggunakan Protocol Buffers. Namun, tantangan terbesar yang kerap muncul adalah bagaimana melakukan pengujian (testing) dengan efektif, khususnya untuk layanan CRUD (Create, Read, Update, Delete).&lt;/p></description></item><item><title>63 Fragment GraphQL dan Implementasinya</title><link>https://www.santekno.com/63-fragment-graphql-dan-implementasinya/</link><pubDate>Mon, 01 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/63-fragment-graphql-dan-implementasinya/</guid><description>&lt;p>GraphQL telah mengubah cara kita berinteraksi dengan API, membawa fleksibilitas dan efisiensi dalam pengambilan data. Salah satu fitur powerful namun sering kurang dieksplorasi adalah &lt;em>fragments&lt;/em>. Fragments memungkinkan kita menulis query yang lebih maintainable, DRY (Don&amp;rsquo;t Repeat Yourself) dan scalable. Pada artikel ini, saya akan mengulas 63 fragment GraphQL yang sering digunakan dalam skenario nyata—lengkap dengan contoh kode, best practice penggunaan, hingga simulasi implementasi di koleksi masalah sehari-hari. Artikel ini cocok untuk yang sudah memahami GraphQL dasar dan ingin mengoptimalkan query mereka.&lt;/p></description></item><item><title>85. Logging dan Debugging dengan `grpc-go`</title><link>https://www.santekno.com/85.-logging-dan-debugging-dengan-grpc-go/</link><pubDate>Mon, 01 Sep 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/85.-logging-dan-debugging-dengan-grpc-go/</guid><description>&lt;h2 id="85-logging-dan-debugging-dengan-grpc-go-memastikan-mikroservis-anda-tetap-andal">85. Logging dan Debugging dengan &lt;code>grpc-go&lt;/code>: Memastikan Mikroservis Anda Tetap Andal&lt;/h2>&lt;p>Pada tataran pengembangan aplikasi berbasis microservices di lingkungan Go, &lt;em>gRPC&lt;/em> telah menjadi teknologi terdepan untuk komunikasi antar layanan. Namun, seiring dengan pertumbuhan arsitektur yang semakin kompleks, kebutuhan untuk &lt;strong>monitoring, logging, dan debugging&lt;/strong> pada stack &lt;code>grpc-go&lt;/code> menjadi krusial. Tanpa logging dan praktik debugging yang baik, proses tracing bug dan analisa performa cenderung sulit serta menyita waktu.&lt;/p></description></item><item><title>62 Resolver dengan Dependency Injection di Go</title><link>https://www.santekno.com/62-resolver-dengan-dependency-injection-di-go/</link><pubDate>Sun, 31 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/62-resolver-dengan-dependency-injection-di-go/</guid><description>&lt;p>Dependency Injection (DI) di Go adalah praktik penting yang mendukung testing, scalability, dan pemisahan concern. Namun, integrasi teknik DI dengan provider dependency—seperti resolver pada GraphQL—masih sering membingungkan, terutama untuk engineer Go yang terbiasa dengan struktur kode monolitik. Dalam artikel ini, saya akan membahas penerapan &lt;strong>62 resolver dengan Dependency Injection di Go&lt;/strong>, membedah konsep ini, menjelaskan best-practices, dan melengkapi dengan contoh kode, diagram, serta tabel simulasi. Mari kita mulai.&lt;/p></description></item><item><title>84. Mock gRPC Server dengan `gomock`</title><link>https://www.santekno.com/84.-mock-grpc-server-dengan-gomock/</link><pubDate>Sun, 31 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/84.-mock-grpc-server-dengan-gomock/</guid><description>&lt;hr>
&lt;h2 id="date-2024-06-26">title: &amp;ldquo;84. Mock gRPC Server dengan &lt;code>gomock&lt;/code>&amp;rdquo;
author: &amp;ldquo;Senior Software Engineer&amp;rdquo;
date: 2024-06-26&lt;/h2>&lt;h2 id="mock-grpc-server-dengan-gomock">Mock gRPC Server dengan &lt;code>gomock&lt;/code>&lt;/h2>&lt;p>Dalam pengembangan perangkat lunak modern, pengujian menjadi salah satu pilar utama menjaga kualitas software, khususnya dalam sistem yang memanfaatkan arsitektur microservices dan komunikasi RPC (Remote Procedure Call) seperti gRPC. Salah satu tantangan dalam menguji service layer berbasis gRPC adalah bagaimana melakukan mock pada server lawan bicara. Untungnya, ekosistem Go sudah menyediakan tool powerful bernama &lt;a href="https://github.com/golang/mock" title="gomock" target="_blank" rel="noopener">&lt;code>gomock&lt;/code>&lt;/a>
. Pada artikel ini, saya akan membahas secara lengkap bagaimana memanfaatkan &lt;code>gomock&lt;/code> untuk membuat mock server gRPC, disertai contoh kode, simulasi, serta diagram alur untuk membantu visualisasi.&lt;/p></description></item><item><title>61 Nested Resolver dan Resolver Berantai</title><link>https://www.santekno.com/61-nested-resolver-dan-resolver-berantai/</link><pubDate>Sat, 30 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/61-nested-resolver-dan-resolver-berantai/</guid><description>&lt;p>&lt;strong>61 Nested Resolver dan Resolver Berantai: Memahami Mekanisme dan Praktik Terbaik di GraphQL (Lengkap dengan Contoh &amp;amp; Diagram)&lt;/strong>&lt;/p></description></item><item><title>83. Integration Testing untuk Client dan Server</title><link>https://www.santekno.com/83.-integration-testing-untuk-client-dan-server/</link><pubDate>Sat, 30 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/83.-integration-testing-untuk-client-dan-server/</guid><description>&lt;h2 id="integration-testing-untuk-client-dan-server">Integration Testing untuk Client dan Server&lt;/h2>&lt;p>Di era digital saat ini, aplikasi web modern hampir selalu dibangun dengan arsitektur terdistribusi: ada bagian client (frontend) dan server (backend), yang masing-masing diuji dengan baik secara terpisah melalui unit testing. Namun, sering kali masalah “sesungguhnya” baru terdeteksi saat kedua bagian ini berinteraksi. Inilah kenapa Integration Testing—khususnya yang memverifikasi integrasi client dan server—adalah tahap krusial sebelum aplikasi diluncurkan ke pengguna.&lt;/p></description></item><item><title>60 Studi Kasus Real-time Notifikasi</title><link>https://www.santekno.com/60-studi-kasus-real-time-notifikasi/</link><pubDate>Fri, 29 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/60-studi-kasus-real-time-notifikasi/</guid><description>&lt;h2 id="60-studi-kasus-real-time-notifikasi-praktik-tantangan-dan-solusi">60 Studi Kasus Real-time Notifikasi: Praktik, Tantangan, dan Solusi&lt;/h2>&lt;p>Real-time notifikasi telah menjadi salah satu aspek terpenting dalam pengembangan aplikasi modern, mulai dari aplikasi chatting, sistem transaksi keuangan, hingga platform edukasi. Penyampaian informasi secara instan bukan lagi fitur tambahan, melainkan ekspektasi dasar pengguna masa kini.&lt;/p></description></item><item><title>82. Test dengan `bufconn` tanpa Network</title><link>https://www.santekno.com/82.-test-dengan-bufconn-tanpa-network/</link><pubDate>Fri, 29 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/82.-test-dengan-bufconn-tanpa-network/</guid><description>&lt;h2 id="82-test-dengan-bufconn-tanpa-network">82. Test dengan &lt;code>bufconn&lt;/code> tanpa Network&lt;/h2>&lt;p>Saat membangun aplikasi berbasis gRPC, salah satu tantangan terbesar adalah melakukan testing secara reliable tanpa harus berurusan dengan kompleksitas jaringan yang nyata. Biasanya, test gRPC dilakukan dengan mensimulasikan server berjalan di port tertentu, lalu client mengirim request ke sana. Namun cara ini memiliki sejumlah keterbatasan, antara lain:&lt;/p></description></item><item><title>59 Skema dan Resolver Subscription</title><link>https://www.santekno.com/59-skema-dan-resolver-subscription/</link><pubDate>Thu, 28 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/59-skema-dan-resolver-subscription/</guid><description>&lt;h2 id="59-skema-dan-resolver-subscription-memahami-konsep-praktik-dan-implementasi-dalam-graphql">59 Skema dan Resolver Subscription: Memahami Konsep, Praktik, dan Implementasi dalam GraphQL&lt;/h2>&lt;p>Berbicara tentang GraphQL, kita tidak bisa lepas dari tiga pilar utama: &lt;strong>schema&lt;/strong>, &lt;strong>resolver&lt;/strong>, dan &lt;strong>subscription&lt;/strong>. Khusus untuk artikel ini, saya akan mengupas tuntas &lt;strong>skema dan resolver subscription&lt;/strong> dan pentingnya mereka dalam pengembangan API modern.&lt;/p></description></item><item><title>81. Unit Test untuk Handler gRPC</title><link>https://www.santekno.com/81.-unit-test-untuk-handler-grpc/</link><pubDate>Thu, 28 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/81.-unit-test-untuk-handler-grpc/</guid><description>&lt;hr>
&lt;p>title: &amp;ldquo;81. Unit Test untuk Handler gRPC: Panduan Lengkap bagi Engineer&amp;rdquo;
description: Pelajari strategi, contoh kode, serta best practice membuat unit test berkualitas untuk handler gRPC di layanan backend modern.
date: 2024-06-12
author: Seno Adi Prasetyo
tags:&lt;/p></description></item><item><title>58 Implementasi Subscription dengan gorilla/websocket</title><link>https://www.santekno.com/58-implementasi-subscription-dengan-gorilla/websocket/</link><pubDate>Wed, 27 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/58-implementasi-subscription-dengan-gorilla/websocket/</guid><description>&lt;p>Di dunia modern aplikasi web interaktif, notifikasi real-time menjadi kebutuhan wajib. Mulai dari chat, kolaborasi dokumen, hingga update harga saham — semuanya membutuhkan kemampuan server untuk “mendorong” data ke klien secara real-time. Salah satu pola populer untuk menyelesaikan ini adalah &lt;strong>Subscription&lt;/strong>, di mana klien berlangganan pada stream data dan server mengirim update baru ke klien secara langsung.&lt;/p></description></item><item><title>80. Monitoring gRPC dengan Jaeger + OpenTelemetry</title><link>https://www.santekno.com/80.-monitoring-grpc-dengan-jaeger--opentelemetry/</link><pubDate>Wed, 27 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/80.-monitoring-grpc-dengan-jaeger--opentelemetry/</guid><description>&lt;h2 id="monitoring-grpc-dengan-jaeger--opentelemetry">Monitoring gRPC dengan Jaeger + OpenTelemetry&lt;/h2>&lt;p>Monitoring layanan microservices berbasis gRPC semakin penting sejalan dengan meningkatnya kompleksitas arsitektur aplikasi modern — terutama saat tracing permintaan antar microservices menjadi kebutuhan utama untuk observabilitas dan troubleshooting. Salah satu kombinasi powerful yang bisa diadopsi adalah Jaeger sebagai distributed tracing backend, dikombinasikan dengan OpenTelemetry (OTel) sebagai SDK dan framework pengumpulan telemetri lintas bahasa.&lt;/p></description></item><item><title>57 Pengenalan WebSocket untuk Real-time GraphQL</title><link>https://www.santekno.com/57-pengenalan-websocket-untuk-real-time-graphql/</link><pubDate>Tue, 26 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/57-pengenalan-websocket-untuk-real-time-graphql/</guid><description>&lt;p>Web telah berevolusi jauh dari sekadar dokumen HTML statis yang dikirim dari server ke browser. Sekarang, pengalaman pengguna menuntut interaksi yang real-time, sinkronisasi data instan, dan responsifitas ekstrem. Dalam dunia aplikasi modern, baik itu fitur chat, dashboard yang auto-refresh, atau feed yang terus diperbarui—semuanya membutuhkan satu hal: komunikasi real-time antara client dan server.&lt;/p></description></item><item><title>79. gRPC Logging Terstruktur dengan Zap</title><link>https://www.santekno.com/79.-grpc-logging-terstruktur-dengan-zap/</link><pubDate>Tue, 26 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/79.-grpc-logging-terstruktur-dengan-zap/</guid><description>&lt;p>Logging merupakan aspek esensial dalam membangun microservices berbasis gRPC. Tanpa logging terstruktur, proses troubleshooting, monitoring, hingga alerting akan menjadi hal yang sangat menantang. Dalam praktik modern, &lt;em>engineer&lt;/em> profesional beralih dari &lt;em>plain logging&lt;/em> (misalnya dengan &lt;code>fmt.Println&lt;/code>) menuju logging terstruktur menggunakan libraries seperti &lt;a href="https://github.com/uber-go/zap" title="Uber Zap" target="_blank" rel="noopener">Uber Zap&lt;/a>
: sebuah high-performance, structured, leveled logging library untuk Golang.&lt;/p></description></item><item><title>56 Apa Itu Subscription di GraphQL?</title><link>https://www.santekno.com/56-apa-itu-subscription-di-graphql/</link><pubDate>Mon, 25 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/56-apa-itu-subscription-di-graphql/</guid><description>&lt;p>Jika kamu sudah pernah mengembangkan aplikasi menggunakan &lt;strong>GraphQL&lt;/strong>, kemungkinan besar kamu sudah akrab dengan dua operasi utama: &lt;em>query&lt;/em> dan &lt;em>mutation&lt;/em>. Namun, masih banyak yang belum maksimal memanfaatkan &lt;strong>subscription&lt;/strong>, fitur ketiga yang memungkinkan komunikasi &lt;em>real-time&lt;/em> antara klien dengan server. Dalam artikel ini, saya akan membahas secara mendalam tentang apa itu subscription di GraphQL, mengapa kita membutuhkannya, dan bagaimana cara mengimplementasikan subscription dengan contoh kode, alur sederhana, hingga simulasi agar kamu mendapatkan pemahaman end-to-end.&lt;/p></description></item><item><title>78. Men-deploy gRPC Service di Docker</title><link>https://www.santekno.com/78.-men-deploy-grpc-service-di-docker/</link><pubDate>Mon, 25 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/78.-men-deploy-grpc-service-di-docker/</guid><description>&lt;hr>
&lt;h2 id="author-software-engineer-senior">title: &amp;ldquo;78. Men-deploy gRPC Service di Docker&amp;rdquo;
date: 2024-06-13
author: Software Engineer Senior&lt;/h2>&lt;p>gRPC belakangan menjadi semakin populer sebagai salah satu teknologi RPC (Remote Procedure Call) yang cepat, efisien, dan sangat cocok digunakan pada arsitektur berbasis microservices. Namun, membangun gRPC Service saja tidak cukup tanpa tahu cara packaging dan deployment yang baik, terutama ke dalam lingkungan tercontainerisasi seperti Docker.&lt;/p></description></item><item><title>55 Monitoring dan Observasi dengan Prometheus</title><link>https://www.santekno.com/55-monitoring-dan-observasi-dengan-prometheus/</link><pubDate>Sun, 24 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/55-monitoring-dan-observasi-dengan-prometheus/</guid><description>&lt;h2 id="55-monitoring-dan-observasi-dengan-prometheus-panduan-lengkap-bagi-engineer">55 Monitoring dan Observasi Dengan Prometheus: Panduan Lengkap Bagi Engineer&lt;/h2>&lt;p>Observability telah menjadi kata kunci dalam dunia DevOps dan Site Reliability Engineering (SRE). Dengan semakin kompleksnya arsitektur aplikasi modern—mulai dari microservices, Kubernetes, hingga cloud-native—monitoring konvensional sudah tidak lagi memadai. Observasi bukan hanya soal mengumpulkan metrik, tapi juga memahami sistem melalui data, visualisasi, dan alarm yang dapat ditindaklanjuti. Salah satu tools open-source paling populer untuk kebutuhan ini adalah Prometheus.&lt;/p></description></item><item><title>77. gRPC di Kubernetes dengan LoadBalancer</title><link>https://www.santekno.com/77.-grpc-di-kubernetes-dengan-loadbalancer/</link><pubDate>Sun, 24 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/77.-grpc-di-kubernetes-dengan-loadbalancer/</guid><description>&lt;p>gRPC saat ini menjadi salah satu primadona untuk komunikasi antar layanan (service-to-service communication) di arsitektur microservices modern. Salah satu kekuatan utamanya adalah efisiensi, kontrak API yang terstruktur, serta dukungan terhadap berbagai bahasa pemrograman. Namun, menerapkan gRPC di environment Kubernetes menghadirkan tantangan unik, terutama ketika kita ingin expose service gRPC ke dunia luar—di sinilah peran LoadBalancer menjadi vital.&lt;/p></description></item><item><title>54 Menambahkan Rate Limiting dan Throttling</title><link>https://www.santekno.com/54-menambahkan-rate-limiting-dan-throttling/</link><pubDate>Sat, 23 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/54-menambahkan-rate-limiting-dan-throttling/</guid><description>&lt;p>Mengelola lalu lintas jaringan ke aplikasi adalah salah satu aspek penting dalam pengembangan perangkat lunak berbasis layanan, khususnya API. Seiring dengan bertumbuhnya pengguna, API harus tetap dapat diandalkan dan aman dari penyalahgunaan atau serangan. Dua teknik yang sering digunakan untuk solusi ini adalah &lt;strong>rate limiting&lt;/strong> dan &lt;strong>throttling&lt;/strong>. Artikel ini mengajak Anda memahami, membedakan, dan mengimplementasi keduanya, lengkap dengan contoh kode, simulasi, serta visualisasi sederhana.&lt;/p></description></item><item><title>76. Menyambungkan gRPC Service dengan Kafka</title><link>https://www.santekno.com/76.-menyambungkan-grpc-service-dengan-kafka/</link><pubDate>Sat, 23 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/76.-menyambungkan-grpc-service-dengan-kafka/</guid><description>&lt;p>Dalam membangun sistem terdistribusi modern, pola komunikasi antar-microservices menjadi sangat krusial. Dua teknologi populer yang sering digunakan adalah &lt;strong>gRPC&lt;/strong> dan &lt;strong>Apache Kafka&lt;/strong>. Kombinasi dua teknologi ini menawarkan kecepatan, kestabilan, serta skalabilitas untuk sistem enterprise. Pada artikel kali ini, saya akan membahas tentang bagaimana menyambungkan gRPC Service dengan Kafka—mulai dari arsitektur, implementasi kode, hingga simulasi pengujian.&lt;/p></description></item><item><title>53 Logging dan Error Handling di GraphQL Server</title><link>https://www.santekno.com/53-logging-dan-error-handling-di-graphql-server/</link><pubDate>Fri, 22 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/53-logging-dan-error-handling-di-graphql-server/</guid><description>&lt;p>Salah satu tantangan dalam membangun API modern adalah memastikan observabilitas dan robustnya penanganan error. Ketika kita membangun server GraphQL, baik dengan Node.js, Python, maupun bahasa lain, logging dan error handling yang baik bukan sekadar pelengkap, tapi bagian fundamental yang tidak boleh diabaikan. Dalam artikel ini, kita akan eksplorasi secara mendalam tentang &lt;strong>logging dan error handling pada GraphQL Server&lt;/strong>, lengkap dengan contoh kode, simulasi, dan diagram alur.&lt;/p></description></item><item><title>75. Studi Kasus: API Gateway untuk gRPC Service</title><link>https://www.santekno.com/75.-studi-kasus-api-gateway-untuk-grpc-service/</link><pubDate>Fri, 22 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/75.-studi-kasus-api-gateway-untuk-grpc-service/</guid><description>&lt;p>Kebutuhan akan sistem yang scalable, maintainable, dan performa tinggi mendorong banyak perusahaan untuk mengadopsi pendekatan &lt;strong>microservices&lt;/strong>. Salah satu teknologi komunikasi antar service yang populer adalah &lt;strong>gRPC&lt;/strong>, terutama untuk interaksi internal yang mengutamakan efisiensi dan contract-first API. Namun, gRPC belum terlalu ramah bagi konsumsi publik atau oleh client tradisional, seperti web browser atau mobile app, yang terbiasa dengan protokol HTTP/JSON. Masalah lain yang sering dihadapi adalah mengontrol akses, otentikasi, transformasi data, monitoring, dan sebagainya di satu pintu (API Gateway). Pada studi kasus kali ini, kita akan membahas rancangan dan implementasi sederhana &lt;strong>API Gateway untuk gRPC Service&lt;/strong>.&lt;/p></description></item><item><title>52 Men-deploy graphql-go ke Render/Vercel/Heroku</title><link>https://www.santekno.com/52-men-deploy-graphql-go-ke-render/vercel/heroku/</link><pubDate>Thu, 21 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/52-men-deploy-graphql-go-ke-render/vercel/heroku/</guid><description>&lt;div class="st-callout st-callout-danger">
 &lt;span class="st-callout-tag">Danger&lt;/span>
 &lt;div>&lt;strong>Catatan:&lt;/strong> “52” adalah nomor urut dalam seri tutorial saya. Jika Anda ingin tahu lebih banyak tentang berbagai proyek Go, silakan telusuri arsip saya di Medium!&lt;/div>
&lt;/div>

&lt;hr>
&lt;p>Sebagai backend engineer, saya sering mendapat pertanyaan: “Kalau pakai Go dan framework &lt;code>graphql-go&lt;/code>, gampang gak sih deploy ke cloud provider kayak Render, Vercel, atau Heroku?” Jawaban pendeknya: &lt;em>Gampang, asalkan paham mekanismenya!&lt;/em> Di artikel ini, saya akan mengajak Anda men-deploy service GraphQL berbasis Go (&lt;code>graphql-go&lt;/code>) ke tiga platform populer: &lt;strong>Render&lt;/strong>, &lt;strong>Vercel&lt;/strong>, dan &lt;strong>Heroku&lt;/strong>. Saya akan bagikan contoh kode, simulasi skenario, hingga diagram alur deploy.&lt;/p></description></item><item><title>74. Integrasi gRPC dengan Envoy Proxy</title><link>https://www.santekno.com/74.-integrasi-grpc-dengan-envoy-proxy/</link><pubDate>Thu, 21 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/74.-integrasi-grpc-dengan-envoy-proxy/</guid><description>&lt;p>&lt;strong>74. Integrasi gRPC dengan Envoy Proxy&lt;/strong>&lt;/p>
&lt;hr>
&lt;p>gRPC telah menjadi salah satu pilihan utama dalam membangun layanan microservices yang cepat, efisien, dan mudah dikembangkan. Namun, pada skala produksi, kebutuhan seperti load balancing, service discovery, observability, hingga mTLS sering kali menuntut adanya proxy canggih—dan di sinilah Envoy Proxy hadir sebagai solusi. Dalam artikel ini, saya akan membahas secara praktis bagaimana mengintegrasikan gRPC dengan Envoy Proxy, mulai dari konsep, benefit, hingga contoh implementasi yang bisa langsung kamu coba.&lt;/p></description></item><item><title>51 Konfigurasi GraphQL Server untuk Production</title><link>https://www.santekno.com/51-konfigurasi-graphql-server-untuk-production/</link><pubDate>Wed, 20 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/51-konfigurasi-graphql-server-untuk-production/</guid><description>&lt;p>GraphQL kini menjadi salah satu tulang punggung utama dalam membangun API yang skalabel dan fleksibel. Namun, mengoperasikan GraphQL server pada lingkungan production memerlukan perhatian ekstra, terutama terkait konfigurasi. Banyak tim berakhir mengalami downtime, kebocoran data, atau performa lambat, karena kurang maksimalnya konfigurasi GraphQL saat deployment production.&lt;/p></description></item><item><title>73. gRPC-Web untuk Komunikasi dengan Frontend (React/Vue)</title><link>https://www.santekno.com/73.-grpc-web-untuk-komunikasi-dengan-frontend-react/vue/</link><pubDate>Wed, 20 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/73.-grpc-web-untuk-komunikasi-dengan-frontend-react/vue/</guid><description>&lt;p>Di era modern aplikasi web, kebutuhan akan komunikasi efisien dan reaktif antara frontend dan backend semakin penting. Tradisionalnya, API berbasis REST menggunakan JSON menjadi pilihan utama. Namun, kini mulai banyak engineering team yang melirik gRPC sebagai alternatif dengan latensi rendah dan efisiensi tinggi berkat Protobuf. Meski demikian, gRPC pada dasarnya berjalan di atas HTTP/2—yang tidak didukung semua browser secara native untuk gRPC. Di sinilah &lt;code>gRPC-Web&lt;/code> hadir sebagai jembatan teknologi untuk memungkinkan browser (React/Vue) berkomunikasi dengan backend gRPC.&lt;/p></description></item><item><title>50 Role-based Authorization di GraphQL</title><link>https://www.santekno.com/50-role-based-authorization-di-graphql/</link><pubDate>Tue, 19 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/50-role-based-authorization-di-graphql/</guid><description>&lt;hr>
&lt;h2 id="tags-graphql-authorization-security-backend-graphql-security">title: &amp;ldquo;50 Role-based Authorization di GraphQL: Membawa Keamanan &amp;amp; Skalabilitas ke Level Berikutnya&amp;rdquo;
date: 2024-06-26
author: &amp;ldquo;Ricky Pratama&amp;rdquo;
tags: [graphql, authorization, security, backend, graphql-security]&lt;/h2>&lt;p>&lt;em>“Authorization bukan hanya tentang siapa yang bisa mengakses apa, namun juga tentang bagaimana membangun kontrol terbaik untuk tim dan produk Anda.”&lt;/em>&lt;/p></description></item><item><title>72. Generate Swagger/OpenAPI dari Protobuf</title><link>https://www.santekno.com/72.-generate-swagger/openapi-dari-protobuf/</link><pubDate>Tue, 19 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/72.-generate-swagger/openapi-dari-protobuf/</guid><description>&lt;hr>
&lt;h2 id="author-rahmat-adi-putra">title: &amp;ldquo;72. Generate Swagger/OpenAPI dari Protobuf: Langkah Demi Langkah Otomatisasi Dokumentasi API&amp;rdquo;
date: 2024-06-13
author: &amp;ldquo;Rahmat Adi Putra&amp;rdquo;&lt;/h2>&lt;p>Bagi banyak engineer, menjalankan dokumentasi API yang tetap update seiring perubahan codebase adalah sebuah tantangan tersendiri. Dokumentasi manual seringkali menjadi sumber ketinggalan informasi. Untungnya, dunia &lt;em>Cloud Native&lt;/em> menawarkan berbagai solusi otomatisasi. Salah satunya: generate spesifikasi &lt;strong>Swagger/OpenAPI&lt;/strong> langsung dari definisi &lt;strong>Protocol Buffer&lt;/strong> (Protobuf). Artikel ini membahas bagaimana proses tersebut dilakukan, lengkap dengan diagram alur, contoh kode &lt;code>.proto&lt;/code>, konfigurasi plugin, dan simulasi output.&lt;/p></description></item><item><title>49 Autentikasi Resolver Berdasarkan Context</title><link>https://www.santekno.com/49-autentikasi-resolver-berdasarkan-context/</link><pubDate>Mon, 18 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/49-autentikasi-resolver-berdasarkan-context/</guid><description>&lt;hr>
&lt;p>title: 49 Autentikasi Resolver Berdasarkan Context: Pendekatan Efektif untuk Authorization di GraphQL
date: 2024-06-15
author: Senior Engineer - Medium Publication
tags:&lt;/p></description></item><item><title>71. Integrasi gRPC dengan REST Gateway (grpc-gateway)</title><link>https://www.santekno.com/71.-integrasi-grpc-dengan-rest-gateway-grpc-gateway/</link><pubDate>Mon, 18 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/71.-integrasi-grpc-dengan-rest-gateway-grpc-gateway/</guid><description>&lt;p>Di era modern pengembangan API, dua arsitektur sering menjadi perdebatan panas: REST dan gRPC. REST (Representational State Transfer) sudah menjadi standar default frontend-backend komunikasi via HTTP, sedangkan gRPC (Google Remote Procedure Call) dikenal dengan performa, efisiensi, dan kemudahan untuk menghubungkan layanan antar server, terutama pada sistem berskala mikroservis.&lt;/p></description></item><item><title>48 Menyimpan dan Mengecek Token JWT</title><link>https://www.santekno.com/48-menyimpan-dan-mengecek-token-jwt/</link><pubDate>Sun, 17 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/48-menyimpan-dan-mengecek-token-jwt/</guid><description>&lt;p>JSON Web Token (JWT) telah menjadi standar de facto dalam otentikasi modern, terutama untuk aplikasi berbasis web dan mobile. Penggunaan JWT memungkinkan kita untuk membuat sistem otentikasi yang bersifat stateless, sehingga server tidak perlu lagi menyimpan sesi (session) pengguna di backend. Namun, masih banyak pertanyaan mendasar di kalangan engineer, khususnya tentang &lt;strong>tempat menyimpan token JWT&lt;/strong> dan &lt;strong>cara mengeceknya secara aman&lt;/strong>. Artikel ini akan membahas tuntas dua aspek kunci tersebut: menyimpan dan memvalidasi JWT, lengkap dengan contoh kode, simulasi arsitektur sederhana, serta beberapa best practices yang patut diikuti.&lt;/p></description></item><item><title>70. Studi Kasus: Health Check Monitoring via Prometheus</title><link>https://www.santekno.com/70.-studi-kasus-health-check-monitoring-via-prometheus/</link><pubDate>Sun, 17 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/70.-studi-kasus-health-check-monitoring-via-prometheus/</guid><description>&lt;p>&lt;strong>Penulis: Bagus Pratama – Senior DevOps Engineer&lt;/strong>&lt;/p>
&lt;hr>
&lt;p>Salah satu tantangan umum ketika menangani sistem terdistribusi adalah memastikan semua service berjalan baik setiap waktu. Monitoring menjadi wajib, dan “health check” adalah aspek krusial agar kita bisa segera mengetahui jika ada service yang gagal berfungsi. Dalam tulisan kali ini, saya akan membagikan studi kasus implementasi health check monitoring menggunakan Prometheus—dari pengenalan, desain, implementasi hingga simulasi insiden, lengkap dengan contoh kode dan diagram.&lt;/p></description></item><item><title>Rental Mobil Kapasitas 7 Seat Bandung Murah</title><link>https://www.santekno.com/rental-mobil-kapasitas-7-seat-bandung-murah/</link><pubDate>Sun, 17 Aug 2025 10:09:36 +0700</pubDate><guid>https://www.santekno.com/rental-mobil-kapasitas-7-seat-bandung-murah/</guid><description>&lt;p>Bandung semakin diminati wisatawan dan keluarga yang ingin menjelajahi kota atau melakukan perjalanan bisnis dengan nyaman. Salah satu solusi terbaik adalah menggunakan layanan &lt;strong>&lt;a href="https://kaptentekno.com/rental-mobil-mpv-bandung/" title="rental mobil kapasitas 7 seat bandung" target="_blank" rel="noopener">rental mobil kapasitas 7 seat bandung&lt;/a>
&lt;/strong> dari Abigail Rental. Unit unggulan yang banyak diminati adalah All New Ertiga, MPV terlaris dengan kapasitas 7 penumpang, harga sewa mulai Rp 400.000 per hari, serta fitur lengkap yang membuat perjalanan lebih praktis dan nyaman.&lt;/p></description></item><item><title>47 Membuat Mutation Login dan Signup</title><link>https://www.santekno.com/47-membuat-mutation-login-dan-signup/</link><pubDate>Sat, 16 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/47-membuat-mutation-login-dan-signup/</guid><description>&lt;p>Proses autentikasi user merupakan fondasi dari hampir semua aplikasi modern. Kemanan dan efisiensi dalam mengelola identitas pengguna sangat krusial, baik untuk aplikasi sederhana hingga yang kompleks. Pada artikel ke-47 dari serial ini, saya ingin membahas secara mendalam tentang bagaimana membangun &lt;strong>mutation&lt;/strong> untuk &lt;strong>Login&lt;/strong> dan &lt;strong>Signup&lt;/strong> menggunakan GraphQL pada Node.js, lengkap dengan kode contoh, simulasi, dan diagram alur agar lebih mudah dipahami.&lt;/p></description></item><item><title>69. Studi Kasus: Retry dan Backoff Strategy</title><link>https://www.santekno.com/69.-studi-kasus-retry-dan-backoff-strategy/</link><pubDate>Sat, 16 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/69.-studi-kasus-retry-dan-backoff-strategy/</guid><description>&lt;p>Sebagai engineer backend atau software engineer secara umum, kita tidak bisa lepas dari interaksi dengan layanan external: API payment gateway, database, queue service, hingga third-party API yang tidak kita kontrol. Salah satu tantangan yang sering ditemui adalah &lt;em>flaky service&lt;/em>, alias remote service yang kadang gagal merespon, lambat, atau gagal total dalam waktu singkat. Di sinilah strategi &lt;strong>retry&lt;/strong> dan &lt;strong>backoff&lt;/strong> menjadi sangat penting.&lt;/p></description></item><item><title>46 Menambahkan Middleware Autentikasi JWT</title><link>https://www.santekno.com/46-menambahkan-middleware-autentikasi-jwt/</link><pubDate>Fri, 15 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/46-menambahkan-middleware-autentikasi-jwt/</guid><description>&lt;p>Autentikasi adalah salah satu aspek paling krusial dalam pengembangan aplikasi web modern. Salah satu solusi yang populer dan efisien untuk menangani otentikasi di aplikasi stateless adalah JSON Web Token (JWT). Pada artikel ke-46 dalam serial ini, saya akan membahas &lt;strong>bagaimana menambahkan middleware autentikasi JWT&lt;/strong> pada backend Node.js (menggunakan Express) dengan studi kasus sederhana, contoh kode, simulasi request, hingga diagram alur agar semakin mudah dipahami. Artikel ini disusun untuk membantu kamu, baik pemula maupun yang sudah berpengalaman, memahami proses mengamankan route menggunakan JWT middleware.&lt;/p></description></item><item><title>68. Kompresi Data (gzip) di gRPC</title><link>https://www.santekno.com/68.-kompresi-data-gzip-di-grpc/</link><pubDate>Fri, 15 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/68.-kompresi-data-gzip-di-grpc/</guid><description>&lt;h2 id="68-kompresi-data-gzip-di-grpc-optimasi-performa-layanan-mikroservis">68. Kompresi Data (gzip) di gRPC: Optimasi Performa Layanan Mikroservis&lt;/h2>&lt;p>Dalam era cloud-native dan microservices, efisiensi komunikasi antar layanan menjadi semakin vital. Satu hal yang sering menjadi bottleneck adalah payload data yang membengkak, terutama pada network yang padat dan latensi tinggi. Salah satu solusi elegan adalah kompresi data. Pada artikel kali ini, kita akan membahas cara mengimplementasikan kompresi data menggunakan gzip di gRPC, serta bagaimana dampaknya terhadap performa layanan.&lt;/p></description></item><item><title>45 Menggunakan `httptest` untuk Test End-to-End</title><link>https://www.santekno.com/45-menggunakan-httptest-untuk-test-end-to-end/</link><pubDate>Thu, 14 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/45-menggunakan-httptest-untuk-test-end-to-end/</guid><description>&lt;h2 id="45-menggunakan-httptest-untuk-test-end-to-end">45 Menggunakan &lt;code>httptest&lt;/code> untuk Test End-to-End&lt;/h2>&lt;p>Pengujian merupakan bagian tak terpisahkan dari pengembangan software modern. Salah satu tantangan utamanya adalah memastikan seluruh stack aplikasi berjalan sesuai ekspektasi, terutama untuk aplikasi berbasis HTTP seperti yang umum kita temui pada service berbasis Go. Dalam konteks ini, Go menyediakan paket &lt;code>httptest&lt;/code> yang powerful untuk menguji aplikasi dari sudut pandang end-to-end (E2E).&lt;/p></description></item><item><title>67. Retry Mechanism di Client gRPC</title><link>https://www.santekno.com/67.-retry-mechanism-di-client-grpc/</link><pubDate>Thu, 14 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/67.-retry-mechanism-di-client-grpc/</guid><description>&lt;h2 id="67-retry-mechanism-di-client-grpc-membuat-koneksi-lebih-andal-di-layanan-mikro">67. Retry Mechanism di Client gRPC: Membuat Koneksi Lebih Andal di Layanan Mikro&lt;/h2>&lt;p>gRPC telah menjadi fondasi komunikasi yang populer di antara microservices modern, baik di lingkungan cloud-native maupun ekosistem enterprise konvensional. Dengan fitur seperti strong typing, contract-first API, streaming, serta performa tinggi berbasis protokol Protobuf, gRPC mampu menangani berbagai kebutuhan komunikasi service-to-service. Namun, apa yang terjadi jika koneksi antara client dengan server tidak stabil? Jawabannya: &lt;strong>kita perlu menerapkan retry mechanism&lt;/strong> agar permintaan tidak mudah gagal dan aplikasi tetap robust.&lt;/p></description></item><item><title>44 Mocking Database untuk Test Resolver</title><link>https://www.santekno.com/44-mocking-database-untuk-test-resolver/</link><pubDate>Wed, 13 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/44-mocking-database-untuk-test-resolver/</guid><description>&lt;h2 id="44-mocking-database-untuk-test-resolver-panduan-lengkap-dengan-contoh-dan-diagram">44 Mocking Database untuk Test Resolver: Panduan Lengkap dengan Contoh dan Diagram&lt;/h2>&lt;p>Sebagai engineer, kita tahu bahwa pengujian adalah salah satu tahap terpenting dalam siklus hidup pengembangan aplikasi. Ketika berbicara tentang arsitektur modern seperti GraphQL ataupun REST, bagian resolver (entah itu di backend Node.js, atau framework lain) memiliki peran vital sebagai jembatan logika bisnis dengan database. Nah, masalahnya, testing resolver seringkali ribet karena harus me-manage dependensi database. Di sinilah konsep mocking database sangat powerful.&lt;/p></description></item><item><title>66. Deadline dan Timeout pada gRPC</title><link>https://www.santekno.com/66.-deadline-dan-timeout-pada-grpc/</link><pubDate>Wed, 13 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/66.-deadline-dan-timeout-pada-grpc/</guid><description>&lt;h2 id="66-deadline-dan-timeout-pada-grpc-panduan-engineer-profesional">66. Deadline dan Timeout pada gRPC: Panduan Engineer Profesional&lt;/h2>&lt;p>Saat kita membangun sistem terdistribusi atau microservices, salah satu aspek kritis yang sering luput dari perhatian adalah bagaimana layanan kita menangani proses permintaan yang lambat atau tak berujung (hanging). Dalam konteks &lt;strong>gRPC&lt;/strong>, dua konsep penting yang perlu kita pahami dan gunakan secara tepat adalah &lt;strong>Deadline&lt;/strong> dan &lt;strong>Timeout&lt;/strong>. Keduanya berperan fundamental dalam menjaga robustness layanan dan pengalaman pengguna yang baik.&lt;/p></description></item><item><title>43 Testing Mutation dan Validasi Input</title><link>https://www.santekno.com/43-testing-mutation-dan-validasi-input/</link><pubDate>Tue, 12 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/43-testing-mutation-dan-validasi-input/</guid><description>&lt;h2 id="43-testing-mutation-dan-validasi-input">43 Testing: Mutation dan Validasi Input&lt;/h2>&lt;p>&lt;em>Melebihi Sekadar Code Coverage untuk Kode yang Benar-Benar Andal&lt;/em>&lt;/p></description></item><item><title>65. gRPC Name Resolver Kustom</title><link>https://www.santekno.com/65.-grpc-name-resolver-kustom/</link><pubDate>Tue, 12 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/65.-grpc-name-resolver-kustom/</guid><description>&lt;hr>
&lt;h2 id="tags-golang-grpc-networking-distributed-systems-service-discovery">title: 65. gRPC Name Resolver Kustom: Mengoptimalkan Service Discovery dengan Gaya Sendiri&lt;br>
date: 2024-06-11&lt;br>
tags: [golang, grpc, networking, distributed systems, service discovery]&lt;/h2>&lt;p>gRPC telah lama menjadi andalan developer dalam membangun microservices yang cepat, ringan, dan mudah di-maintain. Salah satu komponen krusial yang sering terlupakan adalah &lt;strong>Name Resolver&lt;/strong>. Secara default, gRPC menghadirkan beberapa resolver seperti &lt;code>dns://&lt;/code> atau &lt;code>passthrough://&lt;/code>, namun kebutuhan di lingkungan distributed modern — seperti orchestrator custom, service mesh, atau environment hybrid — kerap membutuhkan sentuhan “kustom”. Masalahnya, sangat sedikit engineer yang benar-benar memahami betapa powerful dan fleksibelnya membuat &lt;em>Name Resolver Kustom&lt;/em> sendiri.&lt;/p></description></item><item><title>42 Membuat Unit Test Query di graphql-go</title><link>https://www.santekno.com/42-membuat-unit-test-query-di-graphql-go/</link><pubDate>Mon, 11 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/42-membuat-unit-test-query-di-graphql-go/</guid><description>&lt;p>Sebagai pengembang aplikasi backend modern, GraphQL bukanlah hal baru buat kita. Flexibilitas query, efisiensi data, dan self-documentation jadi alasan banyak tim beralih menggunakan GraphQL. Di ekosistem Go, library &lt;a href="https://github.com/graph-gophers/graphql-go" title="graphql-go" target="_blank" rel="noopener">graphql-go&lt;/a>
 menjadi pilihan populer. Namun, satu hal sering terlewatkan dalam penerapan GraphQL di Go: &lt;strong>Unit Testing&lt;/strong>.&lt;br>
Unit test bukan sekedar formalitas. Ia jadi insurance policy terhadap bug di masa depan, terutama pada query yang jadi jembatan utama antara client dan server. Artikel ini akan membedah langkah demi langkah cara &lt;strong>membuat unit test pada query di graphql-go&lt;/strong>, lengkap dengan contoh kode, simulasi mock data, dan best practice.&lt;/p></description></item><item><title>64. Implementasi gRPC Health Server</title><link>https://www.santekno.com/64.-implementasi-grpc-health-server/</link><pubDate>Mon, 11 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/64.-implementasi-grpc-health-server/</guid><description>&lt;p>gRPC telah menjadi salah satu protokol komunikasi yang sangat populer dalam pengembangan sistem terdistribusi modern. Selain performa tinggi dan dukungan multi-bahasa, gRPC juga memiliki ekosistem yang kaya, salah satunya adalah mekanisme health checking. Pada artikel kali ini, saya akan membahas secara mendalam tentang &lt;strong>implementasi gRPC Health Server&lt;/strong>, mengapa kita membutuhkannya, dan bagaimana cara mengintegrasikannya ke dalam layanan microservices Anda. Saya juga akan menyertakan contoh kode, simulasi, dan diagram alur agar Anda bisa langsung mempraktikkan konsep ini.&lt;/p></description></item><item><title>41 Pengenalan Unit Test untuk Resolver</title><link>https://www.santekno.com/41-pengenalan-unit-test-untuk-resolver/</link><pubDate>Sun, 10 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/41-pengenalan-unit-test-untuk-resolver/</guid><description>&lt;p>Unit testing telah menjadi bagian fundamental dalam siklus hidup pengembangan perangkat lunak modern. Tidak hanya memastikan bahwa kode berjalan sebagaimana mestinya, tetapi juga membantu menjaga kualitas kode seiring pertumbuhan dan perubahan kebutuhan sistem. Dalam artikel ke-41 dari serial pengenalan testing ini, saya akan membahas secara spesifik mengenai &lt;strong>unit test untuk resolver&lt;/strong>—sebuah komponen yang sering diabaikan dalam pengujian, khususnya pada aplikasi yang menggunakan GraphQL ataupun pola desain resolver pada backend tradisional.&lt;/p></description></item><item><title>63. gRPC Health Checking Standar</title><link>https://www.santekno.com/63.-grpc-health-checking-standar/</link><pubDate>Sun, 10 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/63.-grpc-health-checking-standar/</guid><description>&lt;p>&lt;strong>63. gRPC Health Checking Standar: Modern Approach for Microservices Reliability&lt;/strong>&lt;/p></description></item><item><title>40 Resolver Pagination yang Efisien untuk Data Besar</title><link>https://www.santekno.com/40-resolver-pagination-yang-efisien-untuk-data-besar/</link><pubDate>Sat, 09 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/40-resolver-pagination-yang-efisien-untuk-data-besar/</guid><description>&lt;hr>
&lt;h2 id="tags-pagination-backend-graphql-rest-performance-scalable-architecture">title: 40 Resolver Pagination yang Efisien untuk Data Besar&lt;br>
date: 2024-06-12&lt;br>
tags: [pagination, backend, graphQL, REST, performance, scalable-architecture]&lt;/h2>&lt;p>Pagination adalah salah satu tantangan klasik ketika kita harus menampilkan data besar dengan performa optimal. Semakin banyak aplikasi yang scale-up, pagination tidak lagi sekadar membagi-bagi data per halaman, namun juga menjaga performa layanan backend, pengalaman pengguna, dan penggunaan resource server. Dalam artikel ini, saya akan membedah berbagai strategi resolver pagination, terutama dalam konteks GraphQL maupun REST API, serta memberikan &lt;strong>40 tips dan teknik efisien&lt;/strong> dalam menangani data besar. Kita akan bahas best practice, dengan contoh kode Python (Django), Node.js (Express) serta studi kasus langsung dari industri.&lt;/p></description></item><item><title>62. gRPC Reflection untuk Tools seperti `grpcurl`</title><link>https://www.santekno.com/62.-grpc-reflection-untuk-tools-seperti-grpcurl/</link><pubDate>Sat, 09 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/62.-grpc-reflection-untuk-tools-seperti-grpcurl/</guid><description>&lt;h2 id="62-grpc-reflection-untuk-tools-seperti-grpcurl">62. gRPC Reflection untuk Tools seperti &lt;code>grpcurl&lt;/code>&lt;/h2>&lt;p>&lt;strong>gRPC&lt;/strong> telah menjadi salah satu standar de facto dalam pengembangan &lt;em>microservices&lt;/em> modern. Dengan keunggulan seperti komunikasi cepat berbasis HTTP/2, kontrak yang kuat dengan Protobuf, hingga &lt;em>streaming&lt;/em> dua arah, tidak heran gRPC diadopsi luas oleh perusahaan besar. Namun, meski gRPC menawarkan banyak kelebihan, ada tantangan unik yang kerap ditemui saat hendak melakukan debugging atau eksplorasi terhadap API gRPC. Salah satunya: bagaimana kita berinteraksi atau melakukan &lt;em>introspection&lt;/em> pada API gRPC tanpa membutuhkan file &lt;code>.proto&lt;/code>?&lt;/p></description></item><item><title>39 Skema Filter &amp; Pagination: Best Practice</title><link>https://www.santekno.com/39-skema-filter-pagination-best-practice/</link><pubDate>Fri, 08 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/39-skema-filter-pagination-best-practice/</guid><description>&lt;h2 id="39-skema-filter--pagination-best-practice">39 Skema Filter &amp;amp; Pagination: Best Practice&lt;/h2>&lt;p>Filter dan pagination adalah dua topik krusial dalam pengembangan aplikasi web modern. Akhir-akhir ini, kebutuhan pengolahan data dalam jumlah besar kian meningkat, entah itu data produk di e-commerce, data artikel, user, log aktivitas, maupun resources API lain. Koneksi API efisien, pengalaman pengguna optimal, hingga resource back-end pun bergantung pada skema filter &amp;amp; pagination yang diterapkan. Oleh karena itu, sangat penting memahami best practices dan skema implementasi yang tepat.&lt;/p></description></item><item><title>61. Load Balancing di gRPC Client</title><link>https://www.santekno.com/61.-load-balancing-di-grpc-client/</link><pubDate>Fri, 08 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/61.-load-balancing-di-grpc-client/</guid><description>&lt;h2 id="61-load-balancing-di-grpc-client-memaksimalkan-performa-dengan-distribusi-cerdas">61. Load Balancing di gRPC Client: Memaksimalkan Performa dengan Distribusi Cerdas&lt;/h2>&lt;p>&lt;em>Disclaimer: Artikel ini ditulis dari perspektif engineer yang sudah berpengalaman dalam membangun sistem distributed dengan gRPC, dalam konteks development backend berbasis Go. Namun, konsepnya universal, sehingga dapat diterapkan di bahasa lainnya.&lt;/em>&lt;/p></description></item><item><title>38 Implementasi Pagination dengan `limit` dan `offset`</title><link>https://www.santekno.com/38-implementasi-pagination-dengan-limit-dan-offset/</link><pubDate>Thu, 07 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/38-implementasi-pagination-dengan-limit-dan-offset/</guid><description>&lt;h2 id="38-implementasi-pagination-dengan-limit-dan-offset">38 Implementasi Pagination dengan &lt;code>limit&lt;/code> dan &lt;code>offset&lt;/code>&lt;/h2>&lt;p>Pagination adalah salah satu pilar utama dalam pengembangan aplikasi web dan backend APIs yang efisien. Dengan data yang terus membengkak di database, mustahil rasanya untuk memuat keseluruhan data sekaligus pada satu kali request. Oleh karena itu, teknik pagination digunakan untuk mengirimkan data secara parsial, biasanya dalam bentuk halaman (page) yang mudah dicerna oleh client.&lt;/p></description></item><item><title>60. Studi Kasus: Middleware Otentikasi dengan gRPC</title><link>https://www.santekno.com/60.-studi-kasus-middleware-otentikasi-dengan-grpc/</link><pubDate>Thu, 07 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/60.-studi-kasus-middleware-otentikasi-dengan-grpc/</guid><description>&lt;p>Middleware merupakan salah satu komponen krusial dalam membangun aplikasi backend yang scalable dan maintainable. Dalam konteks &lt;em>microservices&lt;/em>, middleware kerap digunakan untuk mengelola cross-cutting concerns seperti logging, monitoring, rate-limiting, dan tentu saja, otentikasi (&lt;em>authentication&lt;/em>). Pada artikel ini, kita akan membedah pembuatan middleware otentikasi pada layanan gRPC, seraya mengurai cara kerja, implementasi kode, hingga simulasi sederhana. Tulisan ini ditujukan bagi engineer yang sudah familier dengan gRPC dan ingin mengintegrasikan aspek otentikasi di antaranya.&lt;/p></description></item><item><title>37 Menambahkan Sorting Dinamis ke Query</title><link>https://www.santekno.com/37-menambahkan-sorting-dinamis-ke-query/</link><pubDate>Wed, 06 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/37-menambahkan-sorting-dinamis-ke-query/</guid><description>&lt;h2 id="37-menambahkan-sorting-dinamis-ke-query-panduan-praktis-untuk-software-engineer">37 Menambahkan Sorting Dinamis ke Query: Panduan Praktis untuk Software Engineer&lt;/h2>&lt;p>Salah satu fitur yang sering diminta pada aplikasi modern adalah kemampuan sorting data secara dinamis. Bukan hanya secara asc atau desc, tetapi juga berdasarkan kolom yang berbeda-beda sesuai kebutuhan user. Misalnya, data pelanggan ingin diurut berdasarkan nama, tanggal pendaftaran, atau total transaksi, baik naik maupun turun.&lt;/p></description></item><item><title>59. Integrasi gRPC dengan OAuth2</title><link>https://www.santekno.com/59.-integrasi-grpc-dengan-oauth2/</link><pubDate>Wed, 06 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/59.-integrasi-grpc-dengan-oauth2/</guid><description>&lt;hr>
&lt;h2 id="tags-grpc-oauth2-security-golang-microservices-authentication">title: &amp;ldquo;59. Integrasi gRPC dengan OAuth2: Panduan Lengkap dan Praktis&amp;rdquo;
date: 2024-07-08
author: Senior Software Engineer
tags: [gRPC, OAuth2, Security, Golang, Microservices, Authentication]&lt;/h2>&lt;h2 id="pendahuluan">Pendahuluan&lt;/h2>&lt;p>Pada era di mana microservices menjadi arsitektur primadona, keamanan komunikasi antar layanan menjadi prioritas utama. Salah satu protokol RPC modern, yaitu &lt;strong>gRPC&lt;/strong>, semakin populer karena efisiensi dan fleksibilitasnya. Namun, bagaimana Anda memastikan komunikasi di antara layanan gRPC tetap aman? Di sinilah &lt;strong>OAuth2&lt;/strong> berperan sebagai mekanisme otentikasi yang kokoh dan teruji.&lt;/p></description></item><item><title>36 Menambahkan Filter pada Query GraphQL</title><link>https://www.santekno.com/36-menambahkan-filter-pada-query-graphql/</link><pubDate>Tue, 05 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/36-menambahkan-filter-pada-query-graphql/</guid><description>&lt;h2 id="36-menambahkan-filter-pada-query-graphql-dari-konsep-hingga-implementasi">36 Menambahkan Filter pada Query GraphQL: Dari Konsep hingga Implementasi&lt;/h2>&lt;p>Dalam pengembangan aplikasi modern, fleksibilitas pengambilan data merupakan salah satu faktor kunci yang membuat backend kita tetap powerful dan scalable. Salah satu keunggulan utama GraphQL dibandingkan REST adalah kemampuannya untuk mendefinisikan struktur data yang benar-benar dibutuhkan oleh klien. Tapi, kebutuhan filter pada query sering kali menjadi tantangan. Bagaimana cara mengimplementasikan filter yang efektif pada query GraphQL? Artikel ini akan membahas topik ini secara lengkap — mulai dari konsep, contoh kode, simulasi hingga best practice yang bisa diadopsi di production.&lt;/p></description></item><item><title>58. gRPC dengan JWT untuk Otentikasi</title><link>https://www.santekno.com/58.-grpc-dengan-jwt-untuk-otentikasi/</link><pubDate>Tue, 05 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/58.-grpc-dengan-jwt-untuk-otentikasi/</guid><description>&lt;p>&lt;em>gRPC dan JWT adalah dua teknologi populer dalam membangun microservices modern yang aman dan scalable. Pada artikel ke-58 ini, saya akan membagikan praktik terbaik implementasi gRPC dengan JWT untuk otentikasi, disertai contoh kode, diagram, dan simulasi sederhana.&lt;/em>&lt;/p></description></item><item><title>35 Penanganan Error Database dalam Resolver</title><link>https://www.santekno.com/35-penanganan-error-database-dalam-resolver/</link><pubDate>Mon, 04 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/35-penanganan-error-database-dalam-resolver/</guid><description>&lt;p>Penanganan error merupakan aspek fundamental dalam membangun aplikasi back-end, terutama pada layer resolver di GraphQL atau REST API. resolver berfungsi sebagai perantara antara permintaan pengguna dan data yang diolah di database. Sayangnya, interaksi dengan database sangat rentan terhadap berbagai error—mulai dari error sintaks SQL, koneksi timeout, hingga data constraint violation. Dalam artikel ini, saya akan membagikan &lt;strong>35 cara penanganan error database di resolver&lt;/strong>, lengkap beserta contoh kode, simulasi, dan diagram &lt;em>flow&lt;/em> agar produk yang kita develop semakin robust.&lt;/p></description></item><item><title>57. Studi Kasus: Mengamankan API gRPC Internal</title><link>https://www.santekno.com/57.-studi-kasus-mengamankan-api-grpc-internal/</link><pubDate>Mon, 04 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/57.-studi-kasus-mengamankan-api-grpc-internal/</guid><description>&lt;h2 id="studi-kasus-mengamankan-api-grpc-internal">Studi Kasus: Mengamankan API gRPC Internal&lt;/h2>&lt;p>Dalam era modern pengembangan perangkat lunak, API gRPC semakin populer berkat performa, efisiensi serialisasi data, serta dukungan multi bahasa. gRPC banyak digunakan untuk &lt;em>service-to-service communication&lt;/em> dalam arsitektur microservices, baik pada aplikasi cloud-native maupun enterprise. Namun, mengamankan API gRPC, terutama untuk konsumsi internal, sering kali dianggap remeh. Banyak tim development yang berasumsi bahwa API internal aman dari ancaman eksternal karena berada di dalam &lt;em>trusted network&lt;/em>. Nyatanya, ada beragam skenario yang dapat mengekspos API internal pada risiko serius.&lt;/p></description></item><item><title>34 Menyimpan Data ke Database Lewat Mutation</title><link>https://www.santekno.com/34-menyimpan-data-ke-database-lewat-mutation/</link><pubDate>Sun, 03 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/34-menyimpan-data-ke-database-lewat-mutation/</guid><description>&lt;h2 id="34-menyimpan-data-ke-database-lewat-mutation-cara-kerja-studi-kasus-dan-best-practices">34 Menyimpan Data ke Database Lewat Mutation: Cara Kerja, Studi Kasus, dan Best Practices&lt;/h2>&lt;p>Menulis data ke database merupakan salah satu inti dalam pengembangan aplikasi modern, baik itu aplikasi web, mobile, maupun backend service. Salah satu pendekatan populer untuk melakukan operasi write di arsitektur berbasis GraphQL maupun pattern CQRS adalah melalui &lt;strong>mutation&lt;/strong>. Pada artikel kali ini, kita akan membedah cara kerja mutation dalam proses penyimpanan data ke database, dari request masuk hingga commit ke database, lengkap dengan kode simulasi, studi kasus, tabel, dan diagram alur.&lt;/p></description></item><item><title>56. Validasi Sertifikat Client di Server</title><link>https://www.santekno.com/56.-validasi-sertifikat-client-di-server/</link><pubDate>Sun, 03 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/56.-validasi-sertifikat-client-di-server/</guid><description>&lt;h2 id="56-validasi-sertifikat-client-di-server-panduan-mendalam-dengan-contoh-kode-dan-diagram">56. Validasi Sertifikat Client di Server: Panduan Mendalam dengan Contoh Kode dan Diagram&lt;/h2>&lt;p>Validasi sertifikat client di server adalah elemen fundamental dalam membangun sistem komunikasi yang aman berbasis TLS/SSL. Banyak engineer familiar dengan HTTPS dan sertifikat SSL untuk server—namun tidak sedikit yang belum menerapkan &lt;em>client authentication&lt;/em> karena dianggap kompleks atau birokrasinya tinggi. Padahal, validasi sertifikat client memberikan lapisan proteksi tambahan yang sangat signifikan, khususnya pada sistem internal, API, atau komunikasi service-to-service (mTLS). Pada artikel ini kita akan mengupas tuntas validasi sertifikat client mulai dari konsep, alur, praktik implementasi (contoh kode), hingga simulasi uji coba agar Anda bisa langsung menerapkannya di proyek-proyek Anda.&lt;/p></description></item><item><title>33 Menulis Resolver Query dari Database</title><link>https://www.santekno.com/33-menulis-resolver-query-dari-database/</link><pubDate>Sat, 02 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/33-menulis-resolver-query-dari-database/</guid><description>&lt;p>Di era modern pengembangan aplikasi, arsitektur backend semakin memanjakan kebutuhan klien akan data yang efisien dan fleksibel. Salah satu pendekatan mutakhir adalah menggunakan GraphQL sebagai query language untuk API. Di sisi backend, kita sering dihadapkan dengan kebutuhan untuk menulis resolver agar data di database bisa di-query dengan mudah oleh klien. Tulisan ini akan membedah bagaimana menulis &lt;strong>33 resolver query&lt;/strong> dari database, dengan pendekatan yang sistematis dan skalabel.&lt;/p></description></item><item><title>55. gRPC + Let's Encrypt dengan Autotls</title><link>https://www.santekno.com/55.-grpc--lets-encrypt-dengan-autotls/</link><pubDate>Sat, 02 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/55.-grpc--lets-encrypt-dengan-autotls/</guid><description>&lt;h2 id="55-grpc--lets-encrypt-dengan-autotls-automasi-tls-untuk-microservices-modern">55. gRPC + Let&amp;rsquo;s Encrypt dengan Autotls: Automasi TLS untuk Microservices Modern&lt;/h2>&lt;p>Sebagai seorang engineer yang sering membangun sistem terdistribusi, saya sadar betul bahwa keamanan komunikasi antar layanan adalah keharusan—bukan opsional. Namun, konfigurasi TLS kerap menjadi tantangan sendiri. Terutama jika Anda menggunakan protokol modern seperti &lt;strong>gRPC&lt;/strong> yang performanya diunggulkan untuk sistem microservices, pengaturan TLS bisa terasa merepotkan dan rawan human error.&lt;/p></description></item><item><title>32 Setup ORM (gorm) di graphql-go</title><link>https://www.santekno.com/32-setup-orm-gorm-di-graphql-go/</link><pubDate>Fri, 01 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/32-setup-orm-gorm-di-graphql-go/</guid><description>&lt;h2 id="32-setup-orm-gorm-di-graphql-go-panduan-terpadu-untuk-engineer-backend">32 Setup ORM (gorm) di graphql-go: Panduan Terpadu untuk Engineer Backend&lt;/h2>&lt;p>Bagi engineer backend di ekosistem Go (Golang), membangun API yang robust seringkali memerlukan integrasi antara database, ORM, dan schema GraphQL. Dua tools populer di dunia Go, yaitu &lt;a href="https://gorm.io/" title="gorm" target="_blank" rel="noopener">gorm&lt;/a>
 sebagai ORM dan &lt;a href="https://github.com/graph-gophers/graphql-go" title="graphql-go" target="_blank" rel="noopener">graphql-go&lt;/a>
 sebagai server GraphQL, menjadi pilihan utama banyak tim. Artikel ini akan membahas setup &lt;strong>gorm&lt;/strong> dalam proyek &lt;strong>graphql-go&lt;/strong> secara mendalam, dilengkapi contoh kode, simulasi, diagram alur, serta tips-tips engineer yang sudah matang.&lt;/p></description></item><item><title>54. Menggunakan Self-signed Certificate</title><link>https://www.santekno.com/54.-menggunakan-self-signed-certificate/</link><pubDate>Fri, 01 Aug 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/54.-menggunakan-self-signed-certificate/</guid><description>&lt;h2 id="54-menggunakan-self-signed-certificate-panduan-lengkap-untuk-software-engineer">54. Menggunakan Self-signed Certificate: Panduan Lengkap untuk Software Engineer&lt;/h2>&lt;p>Keamanan adalah aspek fundamental dalam pengembangan perangkat lunak, terutama ketika aplikasi kita berinteraksi melalui jaringan. Mulai dari API internal, komunikasi antar-microservices, hingga proses pengembangan lokal, penggunaan protokol HTTPS (Hypertext Transfer Protocol Secure) sudah menjadi standar, bukan lagi pengecualian. Namun, sering kali kita dihadapkan dengan kendala terkait sertifikat SSL, seperti biaya, manajemen, atau sekadar eksperimen lokal. Di sinilah &lt;strong>self-signed certificate&lt;/strong> (sertifikat yang ditandatangani sendiri) punya peran krusial.&lt;/p></description></item><item><title>31 Integrasi GraphQL dengan Database PostgreSQL</title><link>https://www.santekno.com/31-integrasi-graphql-dengan-database-postgresql/</link><pubDate>Thu, 31 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/31-integrasi-graphql-dengan-database-postgresql/</guid><description>&lt;p>GraphQL dan PostgreSQL adalah dua teknologi fundamental yang sangat banyak digunakan dalam pengembangan aplikasi modern. GraphQL menawarkan cara kueri data yang efisien dan fleksibel, sementara PostgreSQL, sebagai salah satu relational database paling powerful, menyediakan fondasi penyimpanan data yang andal. Lalu, bagaimana langkah-langkah lengkap untuk mengintegrasikan GraphQL dengan PostgreSQL? Artikel ini akan membahas 31 integrasi penting, disertai kode, diagram, tabel, dan wawasan seorang engineer profesional.&lt;/p></description></item><item><title>53. Konfigurasi Sertifikat TLS dengan Golang</title><link>https://www.santekno.com/53.-konfigurasi-sertifikat-tls-dengan-golang/</link><pubDate>Thu, 31 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/53.-konfigurasi-sertifikat-tls-dengan-golang/</guid><description>&lt;hr>
&lt;h2 id="tags-golang-tls-security-certificate-programming">title: &amp;ldquo;53. Konfigurasi Sertifikat TLS dengan Golang&amp;rdquo;
date: 2024-06-20
tags: [golang, tls, security, certificate, programming]&lt;/h2>&lt;p>TLS (Transport Layer Security) telah menjadi standar utama untuk mengamankan komunikasi di internet. Dengan semakin meningkatnya ancaman siber, memastikan koneksi aplikasi berjalan dengan protokol terenkripsi menjadi sangat vital. Golang, sebagai bahasa yang modern dan efisien, menyediakan library native yang tangguh untuk mengintegrasikan TLS ke dalam aplikasi kita.&lt;/p></description></item><item><title>30 Validasi Input di Mutation graphql-go</title><link>https://www.santekno.com/30-validasi-input-di-mutation-graphql-go/</link><pubDate>Wed, 30 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/30-validasi-input-di-mutation-graphql-go/</guid><description>&lt;p>Pada era perkembangan aplikasi modern yang serba cepat dan terhubung, &lt;strong>GraphQL&lt;/strong> telah menjadi pilihan utama dalam membangun API karena fleksibilitas dan efisiensinya. Namun, sering kali developer terlalu fokus pada desain schema dan resolver, lalu agak lalai pada aspek penting lainnya: &lt;strong>validasi input&lt;/strong>, terutama pada operasi &lt;em>mutation&lt;/em>.&lt;/p></description></item><item><title>52. TLS Mutual Authentication antara Client dan Server</title><link>https://www.santekno.com/52.-tls-mutual-authentication-antara-client-dan-server/</link><pubDate>Wed, 30 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/52.-tls-mutual-authentication-antara-client-dan-server/</guid><description>&lt;p>Pada era cloud-native dan Zero Trust Architecture seperti saat ini, kebutuhan akan keamanan komunikasi digital menjadi semakin vital. Salah satu mekanisme krusial dalam pengamanan komunikasi antar sistem adalah &lt;strong>TLS Mutual Authentication&lt;/strong> atau sering disebut &lt;strong>Mutual TLS (mTLS)&lt;/strong>. Artikel ini akan membahas konsep mTLS beserta implementasi sederhananya antara client dan server berbasis Python, lengkap dengan penjelasan alur dan tips praktis.&lt;/p></description></item><item><title>29 Mutation untuk Mengupdate dan Menghapus Data</title><link>https://www.santekno.com/29-mutation-untuk-mengupdate-dan-menghapus-data/</link><pubDate>Tue, 29 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/29-mutation-untuk-mengupdate-dan-menghapus-data/</guid><description>&lt;hr>
&lt;h2 id="date-2024-06-15">title: 29 Mutation untuk Mengupdate dan Menghapus Data: Panduan Lengkap dengan Contoh Kode&lt;br>
subtitle: Memahami strategi, implementasi, dan best-practices dalam mutation update &amp;amp; delete di GraphQL&lt;br>
author: Senior Software Engineer
date: 2024-06-15&lt;/h2>&lt;h2 id="pendahuluan">Pendahuluan&lt;/h2>&lt;p>Dalam pengembangan aplikasi modern, terutama ketika menggunakan GraphQL, &lt;em>mutation&lt;/em> adalah mekanisme utama untuk mengubah (&lt;em>update&lt;/em>) dan menghapus (&lt;em>delete&lt;/em>) data di server. Namun, seringkali kita menemui pertanyaan mendasar: “Bagaimana cara mengimplementasikan mutation update dan delete yang efisien, aman, dan scalable?”&lt;/p></description></item><item><title>51. Menggunakan TLS di gRPC Server</title><link>https://www.santekno.com/51.-menggunakan-tls-di-grpc-server/</link><pubDate>Tue, 29 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/51.-menggunakan-tls-di-grpc-server/</guid><description>&lt;p>Saat ini, keamanan menjadi aspek yang tidak bisa ditawar-tawar dalam pengembangan aplikasi, apalagi jika aplikasi kita melibatkan komunikasi data sensitif antar layanan atau dengan client. Salah satu protokol komunikasi yang banyak digunakan oleh developer modern adalah gRPC - sebuah remote procedure call (RPC) framework open source dari Google yang berjalan di atas HTTP/2. Namun, apakah Anda yakin server gRPC Anda sudah aman?&lt;/p></description></item><item><title>28 Membuat Resolver untuk Menambahkan User Baru</title><link>https://www.santekno.com/28-membuat-resolver-untuk-menambahkan-user-baru/</link><pubDate>Mon, 28 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/28-membuat-resolver-untuk-menambahkan-user-baru/</guid><description>&lt;h2 id="28-membuat-resolver-untuk-menambahkan-user-baru-panduan-lengkap-dan-praktis">28. Membuat Resolver untuk Menambahkan User Baru: Panduan Lengkap dan Praktis&lt;/h2>&lt;p>Resolver adalah jantung dari GraphQL API. Mereka bertugas &amp;ldquo;menyambungkan&amp;rdquo; request dari client ke logic business backend, termasuk database dan service lain. Salah satu use-case paling fundamental dalam pengembangan aplikasi modern adalah menambahkan user baru—entah untuk aplikasi SaaS, e-commerce, atau platform komunitas. Dalam artikel ke-28 dari seri belajar GraphQL dan backend engineering ini, saya akan mengulas &lt;em>step-by-step&lt;/em> cara membangun sebuah resolver untuk menambah user baru. Tutorial ini diiringi kode sumber praktis, simulasi request, diagram alur data, serta tips best practice dari pengalaman langsung.&lt;/p></description></item><item><title>50 Protobuf JSON Marshal dan Unmarshal</title><link>https://www.santekno.com/50-protobuf-json-marshal-dan-unmarshal/</link><pubDate>Mon, 28 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/50-protobuf-json-marshal-dan-unmarshal/</guid><description>&lt;p>Jika kamu pernah bekerja dengan &lt;em>microservices&lt;/em>, pasti sudah tidak asing lagi dengan Protobuf sebagai &lt;em>serialization format&lt;/em>. Dukungan Protobuf terhadap &lt;em>message exchange&lt;/em> yang cepat sekaligus schema-typed menjadi alasan utama format ini digandrungi di ekosistem Go dan berbagai bahasa lainnya. Namun, realita di lapangan sering kali menuntut interoperabilitas &lt;em>service-service&lt;/em> berbasis JSON ― baik untuk &lt;em>logging&lt;/em>, &lt;em>REST API&lt;/em>, ataupun debugging. Maka di sinilah fitur marshal dan unmarshal JSON pada Protobuf menjadi sangat penting.&lt;/p></description></item><item><title>27 Menulis Skema Mutation di GraphQL</title><link>https://www.santekno.com/27-menulis-skema-mutation-di-graphql/</link><pubDate>Sun, 27 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/27-menulis-skema-mutation-di-graphql/</guid><description>&lt;p>Sejak GraphQL menjadi primadona dalam arsitektur API, berbagai istilah seperti query, mutation, dan subscription mulai akrab di telinga developer. Sementara query digunakan untuk membaca data, &lt;strong>mutation&lt;/strong> adalah elemen krusial untuk menulis atau memodifikasi data (insert, update, delete). Menulis skema mutation yang baik tidak sekadar mengikuti sintaks, tapi juga mengutamakan robust-ness, kemudahan scaling, dan maintainability.&lt;/p></description></item><item><title>49 Serialisasi dan Deserialisasi Manual</title><link>https://www.santekno.com/49-serialisasi-dan-deserialisasi-manual/</link><pubDate>Sun, 27 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/49-serialisasi-dan-deserialisasi-manual/</guid><description>&lt;p>Serialisasi dan deserialisasi merupakan proses fundamental dalam dunia pengembangan perangkat lunak modern. Keduanya menjadi tulang punggung dalam pertukaran data lintas sistem, penyimpanan objek kompleks ke dalam berkas, hingga komunikasi antara layanan menggunakan protokol tertentu. Akan tetapi, sering kali alat atau pustaka otomatis seperti JSON, Protocol Buffer, atau YAML yang kita gunakan “menyembunyikan” kompleksitas ini. Tapi apa yang terjadi ketika kita harus melakukan serialisasi dan deserialisasi secara &lt;strong>manual&lt;/strong>?&lt;/p></description></item><item><title>26 Apa Itu Mutation dan Kapan Digunakan?</title><link>https://www.santekno.com/26-apa-itu-mutation-dan-kapan-digunakan/</link><pubDate>Sat, 26 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/26-apa-itu-mutation-dan-kapan-digunakan/</guid><description>&lt;hr>
&lt;h2 id="tags-mutation-state-management-graphql-engineering-best-practices">title: &amp;ldquo;26 Apa Itu Mutation dan Kapan Digunakan?&amp;rdquo;
date: 2024-06-15
author: &amp;ldquo;Seno Pratama&amp;rdquo;
tags: [Mutation, State Management, GraphQL, Engineering Best Practices]&lt;/h2>&lt;h2 id="26-apa-itu-mutation-dan-kapan-digunakan">26 Apa Itu Mutation dan Kapan Digunakan?&lt;/h2>&lt;p>Jika kamu mengembangkan aplikasi modern, khususnya di ranah frontend dengan framework seperti React atau menggunakan GraphQL di backend, istilah &lt;strong>“mutation”&lt;/strong> pasti sudah tidak asing. Namun, bagi sebagian engineer, konsep mutation seringkali masih samar; dianggap hanya ‘perubahan data’ begitu saja. Artikel ini akan mengupas tuntas: apa itu mutation, kapan digunakan, dan bagaimana praktik baik dalam penggunaannya—dilengkapi contoh kode hingga diagram alur.&lt;/p></description></item><item><title>48 Custom Options di Protobuf</title><link>https://www.santekno.com/48-custom-options-di-protobuf/</link><pubDate>Sat, 26 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/48-custom-options-di-protobuf/</guid><description>&lt;p>Jika kamu sudah pernah berurusan dengan Protobuf (Protocol Buffers) dari Google, pasti tahu betapa powerful-nya tools serialization satu ini untuk aplikasi lintas platform dan lintas bahasa. Tapi tahukah kamu, Protobuf tidak hanya tentang mendefinisikan struktur data sederhana? Ada fitur yang sering terlupakan, namun sangat powerful—yakni &lt;em>Custom Options&lt;/em>. Kali ini saya akan membedah fitur ini secara mendalam, termasuk contoh kode, simulasi skenario, dan sedikit diagram untuk memperjelas alurnya.&lt;/p></description></item><item><title>25 Menggunakan Interface dan Union Types di graphql-go</title><link>https://www.santekno.com/25-menggunakan-interface-dan-union-types-di-graphql-go/</link><pubDate>Fri, 25 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/25-menggunakan-interface-dan-union-types-di-graphql-go/</guid><description>&lt;p>GraphQL memberikan fleksibilitas luar biasa dalam mendefinisikan schema API, terutama saat menangani data yang memiliki banyak bentuk (polymorphic). Di antara fitur powerful tersebut, Interface dan Union Types adalah dua alat utama untuk membangun aplikasi yang scalable dan maintainable. Pada artikel kali ini, kita akan membahas secara komprehensif bagaimana menggunakan Interface dan Union Types di graphql-go, library populer untuk membangun GraphQL server di Go.&lt;/p></description></item><item><title>47 Reserved Fields dan Reserved Numbers</title><link>https://www.santekno.com/47-reserved-fields-dan-reserved-numbers/</link><pubDate>Fri, 25 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/47-reserved-fields-dan-reserved-numbers/</guid><description>&lt;p>Dalam dunia rekayasa perangkat lunak, terutama pada pengembangan protokol komunikasi, serialisasi data, dan desain API, istilah &lt;strong>reserved fields&lt;/strong> dan &lt;strong>reserved numbers&lt;/strong> sering kali kita jumpai. Meski sepintas terdengar seperti &amp;ldquo;mengosongkan slot&amp;rdquo; tanpa fungsi nyata, keduanya memainkan peran strategis dalam menjaga kompatibilitas dan evolusi sistem.&lt;/p></description></item><item><title>24 Strategi Refactor Skema GraphQL untuk Proyek Besar</title><link>https://www.santekno.com/24-strategi-refactor-skema-graphql-untuk-proyek-besar/</link><pubDate>Thu, 24 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/24-strategi-refactor-skema-graphql-untuk-proyek-besar/</guid><description>&lt;p>GraphQL telah menjadi standar baru dalam membangun API modern — fleksibel, mudah dikonsumsi, dan powerful. Namun, ketika skema GraphQL kian membesar, tantangan baru muncul: fragmentasi, duplikasi, field yang terlupakan, hingga resolvers yang sulit dirawat. Merombak (refactor) skema GraphQL adalah tugas berat, tapi sangat krusial untuk menjaga performa dan maintainability di proyek besar.&lt;/p></description></item><item><title>46 Kompatibilitas dan Evolusi Schema Protobuf</title><link>https://www.santekno.com/46-kompatibilitas-dan-evolusi-schema-protobuf/</link><pubDate>Thu, 24 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/46-kompatibilitas-dan-evolusi-schema-protobuf/</guid><description>&lt;h2 id="pendahuluan">Pendahuluan&lt;/h2>&lt;p>Transmisi data antar microservices kini menjadi pilar arsitektur backend modern. Salah satu teknologi yang populer digunakan adalah &lt;a href="https://developers.google.com/protocol-buffers" title="Protocol Buffers (Protobuf)" target="_blank" rel="noopener">Protocol Buffers (Protobuf)&lt;/a>
. Keunggulan utamanya antara lain serialisasi cepat, sekecil mungkin, lintas bahasa, dan—yang tak kalah penting—fleksibilitas dalam &lt;em>schema evolution&lt;/em>. Namun, menjaga kompatibilitas saat schema berevolusi bisa jadi rumit dan &lt;em>fragile&lt;/em> jika kita tidak jeli. Artikel ini mengupas tuntas aspek penting tersebut, dari teori, praktik, hingga contoh kode dan simulasi.&lt;/p></description></item><item><title>23 Modularisasi File Resolver dan Skema</title><link>https://www.santekno.com/23-modularisasi-file-resolver-dan-skema/</link><pubDate>Wed, 23 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/23-modularisasi-file-resolver-dan-skema/</guid><description>&lt;h2 id="23-modularisasi-file-resolver-dan-skema-pendekatan-terstruktur-membangun-graphql-api">23 Modularisasi File Resolver dan Skema: Pendekatan Terstruktur Membangun GraphQL API&lt;/h2>&lt;p>Membangun API GraphQL seringkali membawa kita pada masalah-masalah modularitas terhadap skema dan resolver. Jika dibiarkan tumbuh secara monolitik, skema dan resolver mudah menjadi susah dibaca, rawan konflik import, dan berisiko besar ketika di-maintain engineer lain — atau bahkan kita sendiri, di masa depan.&lt;/p></description></item><item><title>45 Cara Menggunakan `option` di Protobuf</title><link>https://www.santekno.com/45-cara-menggunakan-option-di-protobuf/</link><pubDate>Wed, 23 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/45-cara-menggunakan-option-di-protobuf/</guid><description>&lt;p>Salah satu fitur powerful dari Protocol Buffers (Protobuf) yang sering terlupakan oleh banyak engineer adalah penggunaan &lt;code>option&lt;/code>. Memahami dan memaksimalkan opsi di Protobuf bisa sangat membantu dalam mendesain kontrak API yang lebih fleksibel dan maintainable. Dalam artikel ini, saya akan mengulas tuntas apa itu &lt;code>option&lt;/code>, cara menggunakannya, contoh penerapannya pada berbagai level, hingga menulis option kustom sendiri, lengkap dengan contoh kode, simulasi kasus nyata, tabel referensi, dan diagram alur.&lt;/p></description></item><item><title>22 Membuat Sub-Schema Berdasarkan Modul</title><link>https://www.santekno.com/22-membuat-sub-schema-berdasarkan-modul/</link><pubDate>Tue, 22 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/22-membuat-sub-schema-berdasarkan-modul/</guid><description>&lt;h2 id="22-membuat-sub-schema-berdasarkan-modul-panduan-praktis-untuk-arsitektur-data-yang-modular">22 Membuat Sub-Schema Berdasarkan Modul: Panduan Praktis untuk Arsitektur Data yang Modular&lt;/h2>&lt;p>Di dunia pengembangan aplikasi modern, terutama ketika kita berbicara tentang sistem berskala besar atau microservices, pengelolaan skema data sering kali menjadi tantangan tersendiri. Salah satu pendekatan yang banyak digunakan adalah modularisasi skema — di mana masing-masing modul fitur aplikasi memiliki sub-schema (subs-kema) tersendiri. Dalam artikel ini, kita akan membahas secara mendalam tentang &lt;strong>membuat sub-schema berdasarkan modul&lt;/strong> di project backend, lengkap dengan contoh kode, simulasi kasus, serta diagram alur pembentukan skema yang terintegrasi.&lt;/p></description></item><item><title>44 Reuse Message dengan `import`</title><link>https://www.santekno.com/44-reuse-message-dengan-import/</link><pubDate>Tue, 22 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/44-reuse-message-dengan-import/</guid><description>&lt;p>Dalam pengembangan sistem terdistribusi atau microservices, saling bertukar data antar layanan menjadi keharusan. Protokol seperti gRPC berbasis Protocol Buffers (protobuf) sangat populer karena serialization-nya yang cepat dan representasi skema yang eksplisit. Namun, semakin besar skema data yang dikelola, semakin krusial juga bagaimana skema tersebut diorganisasi dan di-reuse. Salah satu fitur andalan protobuf yang sering underrated adalah kemampuan &lt;code>import&lt;/code> untuk me-reuse message antar file protobuf.&lt;/p></description></item><item><title>21 Best Practice dalam Mendesain Skema GraphQL</title><link>https://www.santekno.com/21-best-practice-dalam-mendesain-skema-graphql/</link><pubDate>Mon, 21 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/21-best-practice-dalam-mendesain-skema-graphql/</guid><description>&lt;p>GraphQL telah merevolusi cara kita membangun dan mengkonsumsi API, menawarkan fleksibilitas yang sulit diberikan REST. Namun, fleksibilitas ini bisa menjadi pedang bermata dua jika kita tidak hati-hati dalam mendesain skema (schema) GraphQL. Skema yang buruk dapat menyebabkan masalah performa, keamanan, dan user experience yang tidak optimal.&lt;/p></description></item><item><title>43 Memanfaatkan `oneof` di Protobuf</title><link>https://www.santekno.com/43-memanfaatkan-oneof-di-protobuf/</link><pubDate>Mon, 21 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/43-memanfaatkan-oneof-di-protobuf/</guid><description>&lt;p>Protobuf (Protocol Buffers) sangat populer sebagai format serialisasi lintas platform, hemat ruang dan cepat. Saat membangun protocol message antar service, kita sering dihadapkan pada kebutuhan satu field yang dapat berisi beberapa tipe data berbeda (mirip pola union atau sum type di bahasa lain). Di sinilah fitur powerful bernama &lt;code>oneof&lt;/code> menjadi senjata andalan. Artikel ini akan membahas pengaplikasian &lt;code>oneof&lt;/code> di Protobuf dengan contoh kode, simulasi, hingga diagram alur.&lt;/p></description></item><item><title>20 Mengelola Query dengan Parameter di graphql-go</title><link>https://www.santekno.com/20-mengelola-query-dengan-parameter-di-graphql-go/</link><pubDate>Sun, 20 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/20-mengelola-query-dengan-parameter-di-graphql-go/</guid><description>&lt;hr>
&lt;h2 id="tags-go-graphql-back-end-api-tutorial">title: 20 Mengelola Query dengan Parameter di &lt;code>graphql-go&lt;/code>
date: 2024-06-26
author: Faris Azhar
tags: [Go, GraphQL, Back-End, API, Tutorial]&lt;/h2>&lt;p>GraphQL menawarkan fleksibilitas yang luar biasa dalam membangun API modern—termasuk pada pengelolaan query dengan parameter. Bagi backend engineer yang menggunakan Go, package &lt;a href="https://github.com/graphql-go/graphql" title="graphql-go" target="_blank" rel="noopener">&lt;code>graphql-go&lt;/code>&lt;/a>
 menjadi salah satu pilihan utama. Namun, manajemen parameter pada query GraphQL kadang menjadi stumbling block tersendiri, baik dari segi desain schema maupun implementasi resolver.&lt;/p></description></item><item><title>42 Menggunakan Enum di Protobuf</title><link>https://www.santekno.com/42-menggunakan-enum-di-protobuf/</link><pubDate>Sun, 20 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/42-menggunakan-enum-di-protobuf/</guid><description>&lt;p>Ketika kita membangun aplikasi terdistribusi yang modern, komunikasi data antar layanan jadi krusial, terutama jika microservices kita memakai bahasa pemrograman yang berbeda. Protobuf, atau Protocol Buffers, dari Google, kini jadi salah satu pilihan utama untuk serialisasi data. Salah satu fitur menarik dari Protobuf adalah &lt;em>enum&lt;/em>, yang sering diabaikan tetapi sangat vital untuk menjaga data tetap konsisten dan type-safe.&lt;/p></description></item><item><title>19 Implementasi Resolver untuk Query `users`</title><link>https://www.santekno.com/19-implementasi-resolver-untuk-query-users/</link><pubDate>Sat, 19 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/19-implementasi-resolver-untuk-query-users/</guid><description>&lt;h2 id="19-implementasi-resolver-untuk-query-users">19 Implementasi Resolver untuk Query &lt;code>users&lt;/code>&lt;/h2>&lt;p>Pada artikel ini, saya ingin mengupas secara mendalam tentang berbagai cara mengimplementasikan resolver GraphQL untuk query &lt;code>users&lt;/code>. Dengan mengombinasikan pengalaman mengelola aplikasi skala menengah hingga besar, saya telah menemukan berbagai variasi, pola, dan teknik yang umum atau bahkan canggih digunakan dalam menangani permintaan data pengguna. Mari kita kupas 19 pendekatan implementasi resolver &lt;code>users&lt;/code> secara praktis, dilengkapi dengan kode, simulasi, tabel, serta diagram alur.&lt;/p></description></item><item><title>41 Memahami Nested Messages</title><link>https://www.santekno.com/41-memahami-nested-messages/</link><pubDate>Sat, 19 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/41-memahami-nested-messages/</guid><description>&lt;p>Protocol Buffers (protobuf) adalah salah satu serialization format yang sangat powerful dan banyak digunakan dalam pengembangan sistem terdistribusi atau aplikasi yang membutuhkan komunikasi antar service. Di balik efisiensi dan fleksibilitasnya, salah satu fitur yang sering menjadi pertanyaan bagi engineer baru maupun senior adalah &lt;strong>nested messages&lt;/strong>—atau pesan bersarang.&lt;/p></description></item><item><title>18 Definisi Tipe Data `User` di Skema GraphQL</title><link>https://www.santekno.com/18-definisi-tipe-data-user-di-skema-graphql/</link><pubDate>Fri, 18 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/18-definisi-tipe-data-user-di-skema-graphql/</guid><description>&lt;h2 id="18-definisi-tipe-data-user-di-skema-graphql">18 Definisi Tipe Data &lt;code>User&lt;/code> di Skema GraphQL&lt;/h2>&lt;p>Di era aplikasi modern yang membangun komunikasi client-server semakin cepat, GraphQL semakin menjadi primadona dalam mendefinisikan data. Salah satu kunci sukses dalam implementasi GraphQL di sisi server adalah mendefinisikan skema tipe data yang robust, jelas, dan tetap fleksibel. Pada artikel ini, kita akan mengupas tuntas 18 definisi tipe data pada entitas &lt;code>User&lt;/code> yang umum digunakan pada skema GraphQL profesional, termasuk contoh kode, simulasi query, serta visualisasi alur data agar makin mudah dipahami.&lt;/p></description></item><item><title>40 Chain Interceptor dengan `grpc_middleware`</title><link>https://www.santekno.com/40-chain-interceptor-dengan-grpc_middleware/</link><pubDate>Fri, 18 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/40-chain-interceptor-dengan-grpc_middleware/</guid><description>&lt;p>Di dunia pengembangan microservices modern, gRPC menjadi pilihan utama berkat performanya yang tinggi, format pesan yang kompak, dan dukungan polyglot yang mumpuni. Namun, serupa dengan REST, arsitektur layanan berbasis gRPC juga membutuhkan mekanisme &lt;em>middleware&lt;/em> untuk menangani fitur seperti &lt;em>logging&lt;/em>, &lt;em>authentication&lt;/em>, &lt;em>validation&lt;/em>, hingga &lt;em>rate limiting&lt;/em> secara konsisten dan reusable.&lt;/p></description></item><item><title>17 Membuat Query untuk Mengambil Data Sederhana</title><link>https://www.santekno.com/17-membuat-query-untuk-mengambil-data-sederhana/</link><pubDate>Thu, 17 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/17-membuat-query-untuk-mengambil-data-sederhana/</guid><description>&lt;p>Sebagai engineer, kemampuan menulis query adalah modal utama untuk berinteraksi dengan database. Pada artikel kali ini, kita akan membahas cara membuat query sederhana untuk mengambil data. Tujuannya adalah membangun fondasi kuat agar kamu bisa mengolah data dengan efektif. Saya juga akan berbagi beberapa studi kasus sederhana menggunakan SQL, agar pemahamanmu lebih praktis.&lt;/p></description></item><item><title>39 Monitoring dan Tracing (Prometheus &amp; OpenTelemetry)</title><link>https://www.santekno.com/39-monitoring-dan-tracing-prometheus-opentelemetry/</link><pubDate>Thu, 17 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/39-monitoring-dan-tracing-prometheus-opentelemetry/</guid><description>&lt;div class="st-callout st-callout-danger">
 &lt;span class="st-callout-tag">Danger&lt;/span>
 &lt;div>&lt;em>“If you can’t measure it, you can’t improve it.” — Peter Drucker&lt;/em>&lt;/div>
&lt;/div>

&lt;p>Di era cloud native saat ini, sistem terdistribusi sudah menjadi makanan sehari-hari para engineer. Microservices, Kubernetes, auto-scaling, hingga CI/CD membuat sistem semakin dinamis, tetapi juga menambah kompleksitas. Bahkan masalah sederhana seperti “Mengapa layanan saya lambat?” bisa berubah menjadi petualangan debugging yang penuh misteri.&lt;/p></description></item><item><title>16 Mengenal Query GraphQL dan Format Standarnya</title><link>https://www.santekno.com/16-mengenal-query-graphql-dan-format-standarnya/</link><pubDate>Wed, 16 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/16-mengenal-query-graphql-dan-format-standarnya/</guid><description>&lt;hr>
&lt;h2 id="tags-graphql-backend-api-query-language">title: &amp;ldquo;16 Mengenal Query GraphQL dan Format Standarnya&amp;rdquo;
date: 2024-06-18
author: &amp;ldquo;Engineer Dev&amp;rdquo;
tags: [GraphQL, Backend, API, Query Language]&lt;/h2>&lt;h2 id="pendahuluan">Pendahuluan&lt;/h2>&lt;p>Sebagai seorang engineer backend, cukup sering saya menemukan pertanyaan soal &lt;strong>GraphQL&lt;/strong>. Tapi, meski sudah ramai digunakan, pemahaman soal &lt;em>query&lt;/em> dan format standarnya kadang masih minim. Artikel ini akan membedah &lt;strong>16 aspek penting&lt;/strong> dalam mengenal &lt;em>Query GraphQL&lt;/em> dan format bakunya, lengkap dengan contoh praktik, simulasi, dan sedikit &lt;em>diagram flow&lt;/em> supaya lebih mudah dicerna.&lt;/p></description></item><item><title>38 Otorisasi dengan Interceptor gRPC</title><link>https://www.santekno.com/38-otorisasi-dengan-interceptor-grpc/</link><pubDate>Wed, 16 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/38-otorisasi-dengan-interceptor-grpc/</guid><description>&lt;p>gRPC telah menjadi salah satu tulang punggung komunikasi antar microservice yang modern. Daya pikatnya? Kecepatan, efisiensi, dan ekosistem yang matang. Namun, ketika sebuah layanan mulai menampung permintaan dari klien yang beragam dengan hak akses bervariasi, satu isu besar pun muncul: OTORISASI.&lt;/p></description></item><item><title>15 Struktur Penulisan Resolver yang Baik di Go</title><link>https://www.santekno.com/15-struktur-penulisan-resolver-yang-baik-di-go/</link><pubDate>Tue, 15 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/15-struktur-penulisan-resolver-yang-baik-di-go/</guid><description>&lt;p>Go (atau Golang) menghadirkan keseimbangan antara kecepatan, kemudahan deployment, serta sintaks yang sederhana. Saat membangun sistem terdistribusi, microservices, maupun implementasi GraphQL, kita kerap dihadapkan dengan tugas membangun &lt;strong>resolver&lt;/strong>—bagian yang menjembatani permintaan antara service, database, hingga response yang diterima client.&lt;/p></description></item><item><title>37 Otentikasi di Middleware gRPC</title><link>https://www.santekno.com/37-otentikasi-di-middleware-grpc/</link><pubDate>Tue, 15 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/37-otentikasi-di-middleware-grpc/</guid><description>&lt;h2 id="37-otentikasi-di-middleware-grpc-implemetasi-dan-studi-kasus">37. Otentikasi di Middleware gRPC: Implemetasi dan Studi Kasus&lt;/h2>&lt;p>gRPC telah menjadi pilihan utama dalam membangun arsitektur layanan mikro modern. Keunggulannya dalam hal performa dan protokol yang agnostik membuat gRPC sangat populer di lingkungan perusahaan maupun startup. Namun, di balik kecanggihannya, ada satu tantangan klasik yang senantiasa hadir—&lt;strong>otentikasi&lt;/strong>.&lt;/p></description></item><item><title>14 Menghubungkan Skema dan Resolver ke HTTP Handler</title><link>https://www.santekno.com/14-menghubungkan-skema-dan-resolver-ke-http-handler/</link><pubDate>Mon, 14 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/14-menghubungkan-skema-dan-resolver-ke-http-handler/</guid><description>&lt;hr>
&lt;h2 id="author-gede-eka-pradipta">title: 14 Menghubungkan Skema dan Resolver ke HTTP Handler
date: 2024-06-15
author: Gede Eka Pradipta&lt;/h2>&lt;p>Pada artikel-artikel sebelumnya, kita telah membahas bagaimana mendesain &lt;strong>schema&lt;/strong> dan membangun &lt;strong>resolver&lt;/strong> untuk aplikasi GraphQL. Kini, saatnya melangkah ke langkah krusial yang berikutnya: &lt;em>menghubungkan schema dan resolver ke HTTP handler&lt;/em>, sehingga dapat diakses lewat request klien seperti Apollo, Postman, atau bahkan browser.&lt;/p></description></item><item><title>36 Rate Limiting di Interceptor</title><link>https://www.santekno.com/36-rate-limiting-di-interceptor/</link><pubDate>Mon, 14 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/36-rate-limiting-di-interceptor/</guid><description>&lt;p>Dalam pengembangan microservice modern, kita tak hanya berbicara tentang performa dan skalabilitas, tetapi juga bagaimana melindungi service dari abuse dan lonjakan trafik berlebih. Salah satu mekanisme penting untuk ini adalah &lt;strong>rate limiting&lt;/strong>.&lt;/p></description></item><item><title>13 Membuat Resolver Pertama di graphql-go</title><link>https://www.santekno.com/13-membuat-resolver-pertama-di-graphql-go/</link><pubDate>Sun, 13 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/13-membuat-resolver-pertama-di-graphql-go/</guid><description>&lt;h2 id="13-membuat-resolver-pertama-di-graphql-go-panduan-lengkap-untuk-pemula">13 Membuat Resolver Pertama di graphql-go: Panduan Lengkap untuk Pemula&lt;/h2>&lt;p>Jika kamu ingin membangun API modern yang fleksibel dan efisien, GraphQL sudah hampir wajib masuk ke dalam toolset developer masa kini. Berbeda dengan REST, GraphQL memungkinkan klien menentukan data apa saja yang ingin diambil dalam satu permintaan. Salah satu library paling populer di ekosistem Go adalah &lt;a href="https://github.com/graph-gophers/graphql-go" title="graphql-go" target="_blank" rel="noopener">&lt;code>graphql-go&lt;/code>&lt;/a>
, yang menawarkan cara straight-forward membangun GraphQL API di bahasa Go.&lt;/p></description></item><item><title>35 Validasi Request menggunakan Interceptor</title><link>https://www.santekno.com/35-validasi-request-menggunakan-interceptor/</link><pubDate>Sun, 13 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/35-validasi-request-menggunakan-interceptor/</guid><description>&lt;p>Dalam membangun aplikasi backend modern dengan gRPC, memastikan validitas data request adalah aspek krusial. Sama halnya seperti REST, pada gRPC kita bisa menggunakan &lt;strong>interceptor&lt;/strong> untuk melakukan validasi request secara terpusat sebelum mencapai logic utama pada service handler.&lt;/p></description></item><item><title>12 Menulis File Skema GraphQL Pertama Anda</title><link>https://www.santekno.com/12-menulis-file-skema-graphql-pertama-anda/</link><pubDate>Sat, 12 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/12-menulis-file-skema-graphql-pertama-anda/</guid><description>&lt;p>&lt;em>Ditulis oleh: Seorang engineer yang pernah tersesat dalam hutan RESTful API&lt;/em>&lt;/p></description></item><item><title>34 Logging Interceptor dengan Context</title><link>https://www.santekno.com/34-logging-interceptor-dengan-context/</link><pubDate>Sat, 12 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/34-logging-interceptor-dengan-context/</guid><description>&lt;p>Jika kita bicara soal &lt;strong>monitoring&lt;/strong> dan &lt;strong>observability&lt;/strong> di aplikasi modern, maka &lt;em>logging&lt;/em> adalah denyut nadinya. Tidak ada yang lebih menyebalkan daripada bug yang hanya muncul “kadang-kadang” tanpa log yang cukup untuk tracing—sebuah mimpi buruk bagi developer backend mana pun.&lt;/p></description></item><item><title>11 Apa Itu Skema GraphQL? Konsep dan Komponen</title><link>https://www.santekno.com/11-apa-itu-skema-graphql-konsep-dan-komponen/</link><pubDate>Fri, 11 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/11-apa-itu-skema-graphql-konsep-dan-komponen/</guid><description>&lt;p>GraphQL telah mengubah cara kita membangun API. Tidak hanya memberi cara baru dalam query data, GraphQL menawarkan fleksibilitas yang sulit didapat dari REST API biasa. Di balik kekuatan GraphQL, terdapat elemen penting yang menjadi fondasinya: &lt;em>skema&lt;/em>. Pada artikel ini, saya akan membahas secara mendalam tentang apa itu skema GraphQL, konsep dasar yang mendukungnya, serta komponen utama yang harus dipahami oleh setiap engineer yang ingin membangun sistem handal dengan GraphQL.&lt;/p></description></item><item><title>33 Menulis Stream Interceptor Sendiri</title><link>https://www.santekno.com/33-menulis-stream-interceptor-sendiri/</link><pubDate>Fri, 11 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/33-menulis-stream-interceptor-sendiri/</guid><description>&lt;p>Jika Anda pernah membangun aplikasi berbasis gRPC, pasti sudah akrab dengan konsep interceptor. Di ekosistem gRPC, interceptor menempati peran layaknya middleware di framework web seperti Express (Node.js) atau Gin (Go). Namun, ada perbedaan fundamental: selain interceptor untuk unary RPC, gRPC punya mekanisme khusus untuk menangani &lt;strong>streaming RPC&lt;/strong>, yaitu Stream Interceptor. Kali ini, kita akan membedah bagaimana &lt;strong>menulis stream interceptor sendiri&lt;/strong>—mulai dari konsep, perancangan, hingga implementasi dan simulasi penggunaannya.&lt;/p></description></item><item><title>10 Menyiapkan Playground GraphQL untuk Testing Query</title><link>https://www.santekno.com/10-menyiapkan-playground-graphql-untuk-testing-query/</link><pubDate>Thu, 10 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/10-menyiapkan-playground-graphql-untuk-testing-query/</guid><description>&lt;p>GraphQL mulai menjadi standar de facto dalam mengelola data API karena keunggulannya dalam fleksibilitas query dan efisiensi data. Namun, proses testing query kadang menjadi tantangan tersendiri, terutama jika Anda baru terjun ke dunia GraphQL atau belum mengetahui tool yang tepat. Playground GraphQL adalah solusi favorit banyak engineer untuk eksplorasi dan pengujian query sebelum masuk tahap implementasi production code. Pada artikel ini, kita akan melalui 10 langkah praktis menyiapkan Playground GraphQL agar proses testing query menjadi seamless dan efisien.&lt;/p></description></item><item><title>32 Menulis Unary Interceptor Sendiri</title><link>https://www.santekno.com/32-menulis-unary-interceptor-sendiri/</link><pubDate>Thu, 10 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/32-menulis-unary-interceptor-sendiri/</guid><description>&lt;p>Ketika membangun servis gRPC di ekosistem Go, sangat sering kita dihadapkan pada kebutuhan untuk memasang fungsi middleware: entah itu logging request, validasi autentikasi, audit, monitoring, hingga pengelolaan error dengan pola yang konsisten. Di dunia REST, hal seperti ini jamak dilakukan lewat middleware seperti pada Gin atau Echo. Sementara di gRPC, konsep yang setara disebut &lt;em>interceptor&lt;/em>.&lt;/p></description></item><item><title>31 Apa Itu Interceptor dalam gRPC?</title><link>https://www.santekno.com/31-apa-itu-interceptor-dalam-grpc/</link><pubDate>Wed, 09 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/31-apa-itu-interceptor-dalam-grpc/</guid><description>&lt;p>gRPC telah menjadi backbone migrasi banyak sistem monolitik menuju arsitektur microservices. Dengan performa tinggi, dukungan multi-bahasa, dan kemudahan integrasi, tidak heran bila gRPC kini banyak digunakan sebagai transport protocol antara service-service modern. Salah satu fitur powerful namun seringkali underrated pada gRPC adalah Interceptor.&lt;/p></description></item><item><title>9 Membuat HTTP Server Dasar untuk GraphQL Endpoint</title><link>https://www.santekno.com/9-membuat-http-server-dasar-untuk-graphql-endpoint/</link><pubDate>Wed, 09 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/9-membuat-http-server-dasar-untuk-graphql-endpoint/</guid><description>&lt;div class="st-callout st-callout-danger">
 &lt;span class="st-callout-tag">Danger&lt;/span>
 &lt;div>Implementasi GraphQL tidak lagi membutuhkan framework besar. Kita bisa membuat HTTP server dasar untuk melayani query GraphQL dengan efisien dan mudah dipahami. Artikel ini akan membimbing kamu dari nol hingga HTTP server GraphQL sederhana siap pakai, lengkap dengan contoh kode, simulasi query, dan diagram alur.&lt;/div>
&lt;/div>

&lt;hr>
&lt;h2 id="pengantar">Pengantar&lt;/h2>&lt;p>GraphQL menjadi standar baru untuk API modern. Banyak developer ingin mencoba atau men-deploy endpoint GraphQL tanpa repot dengan framework berat seperti Apollo Server atau Relay. Kadang kita hanya butuh endpoint sederhana untuk prototipe, mocking backend, atau learning-by-doing. Apapun alasannya, konsep dasarnya sama: kita butuh HTTP server yang mampu menerima request dan merespons dengan data sesuai &lt;em>query&lt;/em> GraphQL.&lt;/p></description></item><item><title>30 Studi Kasus: Streaming Progress Update</title><link>https://www.santekno.com/30-studi-kasus-streaming-progress-update/</link><pubDate>Tue, 08 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/30-studi-kasus-streaming-progress-update/</guid><description>&lt;h2 id="streaming-progress-update-menggunakan-go-dan-grpc">Streaming Progress Update Menggunakan Go dan gRPC&lt;/h2>&lt;p>Di dunia pengembangan backend modern, pengalaman pengguna yang mulus menjadi perhatian utama. Salah satu tantangan yang sering ditemui adalah bagaimana memberikan &lt;strong>update progress&lt;/strong> secara &lt;em>real-time&lt;/em> kepada user, terutama dalam proses backend yang memakan waktu cukup lama seperti parsing, konversi, atau import data besar.&lt;/p></description></item><item><title>8 Struktur Direktori Ideal untuk Proyek graphql-go</title><link>https://www.santekno.com/8-struktur-direktori-ideal-untuk-proyek-graphql-go/</link><pubDate>Tue, 08 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/8-struktur-direktori-ideal-untuk-proyek-graphql-go/</guid><description>&lt;p>GraphQL menjadi solusi mainstream untuk API karena modelnya yang fleksibel dan kemampuan fetch data yang efisien. Salah satu library yang cukup populer untuk Go adalah &lt;a href="https://github.com/graph-gophers/graphql-go" title="graphql-go" target="_blank" rel="noopener">&lt;code>graphql-go&lt;/code>&lt;/a>
. Meskipun dokumentasi library ini solid, detail tentang struktur proyek sering kali diabaikan—padahal, &lt;em>project structure&lt;/em> punya dampak signifikan ke maintainability dan collaboration.&lt;/p></description></item><item><title>29 Studi Kasus: Streaming Upload File</title><link>https://www.santekno.com/29-studi-kasus-streaming-upload-file/</link><pubDate>Mon, 07 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/29-studi-kasus-streaming-upload-file/</guid><description>&lt;h2 id="streaming-file-upload-dengan-go-dan-grpc">Streaming File Upload dengan Go dan gRPC&lt;/h2>&lt;p>Mengunggah file besar adalah tantangan klasik dalam pengembangan backend, terlebih ketika sistem harus mampu menangani ratusan MB atau bahkan GB dalam satu sesi. Bila dilakukan secara konvensional (buffer all then store), risiko overload memory dan kegagalan sangat tinggi. Di sinilah pentingnya pendekatan &lt;strong>streaming upload&lt;/strong>.&lt;/p></description></item><item><title>7 Instalasi Library graphql-go dan Dependensi Tambahan</title><link>https://www.santekno.com/7-instalasi-library-graphql-go-dan-dependensi-tambahan/</link><pubDate>Mon, 07 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/7-instalasi-library-graphql-go-dan-dependensi-tambahan/</guid><description>&lt;p>Oleh: [Nama Anda], Engineer Backend&lt;/p>
&lt;p>GraphQL telah menjadi salah satu standar baru dalam mendesain API modern. Salah satu library yang cukup populer untuk mengimplementasikan GraphQL di Go (Golang) adalah &lt;a href="https://github.com/graph-gophers/graphql-go" title="graphql-go" target="_blank" rel="noopener">&lt;code>graphql-go&lt;/code>&lt;/a>
. Jika Anda baru memulai, artikel ini akan memandu Anda langkah demi langkah menginstalasi library &lt;code>graphql-go&lt;/code> beserta dependensi tambahan yang sering digunakan dalam proyek nyata. Saya akan lengkapi juga dengan contoh kode, simulasi, serta diagram alur untuk memperjelas proses integrasi.&lt;/p></description></item><item><title>28 Studi Kasus: Streaming Chat Sederhana</title><link>https://www.santekno.com/28-studi-kasus-streaming-chat-sederhana/</link><pubDate>Sun, 06 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/28-studi-kasus-streaming-chat-sederhana/</guid><description>&lt;p>Chat menjadi salah satu fitur yang wajib ada pada banyak aplikasi modern saat ini. Entah itu website toko daring, aplikasi edukasi, atau platform komunitas—semua membutuhkan interaksi real-time agar pengguna merasa lebih terlibat. Pada artikel kali ini, saya akan membahas studi kasus sederhana: bagaimana merancang dan mengimplementasikan sistem chat streaming menggunakan teknologi gRPC Streaming yang populer di lingkungan backend modern.&lt;/p></description></item><item><title>6 Inisialisasi Proyek Go untuk GraphQL</title><link>https://www.santekno.com/6-inisialisasi-proyek-go-untuk-graphql/</link><pubDate>Sun, 06 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/6-inisialisasi-proyek-go-untuk-graphql/</guid><description>&lt;p>GraphQL semakin banyak digunakan sebagai solusi API modern berkat fleksibilitas dan efisiensinya dalam pengambilan data. Go (Golang), dengan performanya yang impresif dan ekosistem tooling yang matang, menjadi salah satu bahasa favorit untuk membangun server GraphQL berskala produksi.&lt;/p></description></item><item><title>27 Menambahkan Interceptor pada Streaming RPC</title><link>https://www.santekno.com/27-menambahkan-interceptor-pada-streaming-rpc/</link><pubDate>Sat, 05 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/27-menambahkan-interceptor-pada-streaming-rpc/</guid><description>&lt;p>Streaming RPC (Remote Procedure Call) di gRPC membawa paradigma baru dalam komunikasi layanan modern. Tidak hanya efisien dan scalable—streaming RPC juga membuka jalan untuk mengirimkan data secara real-time dan dua arah, menjadikannya vital dalam banyak kasus pada microservices architecture.&lt;/p></description></item><item><title>5 Persiapan Tools &amp; Lingkungan Pengembangan GraphQL dengan Go</title><link>https://www.santekno.com/5-persiapan-tools-lingkungan-pengembangan-graphql-dengan-go/</link><pubDate>Sat, 05 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/5-persiapan-tools-lingkungan-pengembangan-graphql-dengan-go/</guid><description>&lt;h2 id="5-persiapan-tools--lingkungan-pengembangan-graphql-dengan-go">5 Persiapan Tools &amp;amp; Lingkungan Pengembangan GraphQL dengan Go&lt;/h2>&lt;p>GraphQL pelan namun pasti mulai menjadi &lt;em>backbone&lt;/em> modern API di banyak tim engineering lintas industri. Kelebihannya dalam query data yang fleksibel, dokumentasi &lt;em>self-explanatory&lt;/em>, dan efisiensi bandwidth membuat banyak backend engineer serta startup mulai meninggalkan RESTful API. Namun, membangun sistem GraphQL (khususnya dengan bahasa Go) bukan cuma soal code. Ia membutuhkan ekosistem alat yang tepat, lingkungan terpadu, sampai struktur kode yang scalable.&lt;/p></description></item><item><title>26 Menangani Error dan Context pada Streaming RPC</title><link>https://www.santekno.com/26-menangani-error-dan-context-pada-streaming-rpc/</link><pubDate>Fri, 04 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/26-menangani-error-dan-context-pada-streaming-rpc/</guid><description>&lt;p>&lt;em>Di era arsitektur cloud native, Remote Procedure Call (RPC) telah berevolusi dari sekadar permintaan-response sederhana menjadi arsitektur komunikasi canggih, salah satunya streaming RPC. Namun, semakin kompleks arsitekturnya, semakin menuntut pengembang memahami bagaimana menangani error dan context dengan baik. Dalam artikel ini, saya akan mengupas teknik menangani error dan context pada streaming RPC, terutama menggunakan gRPC, dan membungkusnya dengan studi kasus, contoh kode, simulasi, serta diagram alur untuk memperjelas konsepnya.&lt;/em>&lt;/p></description></item><item><title>4 Arsitektur GraphQL Server dalam Go</title><link>https://www.santekno.com/4-arsitektur-graphql-server-dalam-go/</link><pubDate>Fri, 04 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/4-arsitektur-graphql-server-dalam-go/</guid><description>&lt;p>GraphQL telah menjadi standar baru dalam membangun API yang scalable dan fleksibel. Ekosistem Go (Golang) sendiri, meskipun identik dengan REST, sebenarnya sudah menyediakan banyak pilihan tools dan arsitektur untuk membangun GraphQL server yang production-ready.&lt;/p></description></item><item><title>25 Cara Mengontrol Aliran Data dengan Stream</title><link>https://www.santekno.com/25-cara-mengontrol-aliran-data-dengan-stream/</link><pubDate>Thu, 03 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/25-cara-mengontrol-aliran-data-dengan-stream/</guid><description>&lt;h2 id="mengontrol-aliran-data-dengan-stream-di-golang">Mengontrol Aliran Data dengan Stream di Golang&lt;/h2>&lt;p>Dalam era sistem yang serba real-time dan berskala besar, mengelola aliran data menjadi kebutuhan penting di hampir setiap aplikasi—mulai dari backend yang menangani request ribuan pengguna, proses ETL data besar, sampai aplikasi IoT yang datanya terus mengalir. Salah satu konsep fundamental yang membantu developer dalam mengatasi masalah ini adalah &lt;strong>stream&lt;/strong>.&lt;/p></description></item><item><title>3 Mengenal graphql-go: Library GraphQL untuk Go</title><link>https://www.santekno.com/3-mengenal-graphql-go-library-graphql-untuk-go/</link><pubDate>Thu, 03 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/3-mengenal-graphql-go-library-graphql-untuk-go/</guid><description>&lt;h2 id="mengenal-graphql-go-library-graphql-untuk-go">Mengenal graphql-go: Library GraphQL untuk Go&lt;/h2>&lt;p>GraphQL telah merevolusi cara pengembang membangun API dalam beberapa tahun terakhir. Dengan pendekatan deklaratif dan query yang fleksibel, GraphQL menjadi pilihan populer menggantikan REST, tidak terkecuali dalam ekosistem bahasa Go (Golang). Salah satu implementasi terkemuka GraphQL di Golang adalah &lt;a href="https://github.com/graph-gophers/graphql-go" title="graphql-go" target="_blank" rel="noopener">&lt;code>graphql-go&lt;/code>&lt;/a>
, library yang sederhana namun powerful untuk membangun server GraphQL.&lt;/p></description></item><item><title>2 Perbandingan Singkat: GraphQL vs REST API</title><link>https://www.santekno.com/2-perbandingan-singkat-graphql-vs-rest-api/</link><pubDate>Wed, 02 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/2-perbandingan-singkat-graphql-vs-rest-api/</guid><description>&lt;p>Perkembangan teknologi web dan mobile membuat kebutuhan akan data yang efisien dan mudah diatur semakin meningkat. Dalam dunia pengembangan API, terdapat dua teknologi populer yang sering kita jumpai: &lt;strong>REST API&lt;/strong> dan &lt;strong>GraphQL&lt;/strong>. Keduanya menawarkan solusi untuk transfer data antara client dan server, namun dengan paradigma yang berbeda.&lt;/p></description></item><item><title>24 Implementasi Bidirectional Streaming RPC</title><link>https://www.santekno.com/24-implementasi-bidirectional-streaming-rpc/</link><pubDate>Wed, 02 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/24-implementasi-bidirectional-streaming-rpc/</guid><description>&lt;p>Bidirectional Streaming RPC adalah salah satu fitur canggih dalam gRPC, framework open-source yang digagas oleh Google untuk kebutuhan komunikasi antar layanan. Dalam skenario aplikasi modern, sering kali kita butuh komunikasi dua arah yang real-time, misal dalam chat aplikasi, transfer file secara potongan, monitoring, atau bahkan collaborative editing. Di artikel ini kita akan menyelami bagaimana implementasi Bidirectional Streaming RPC di gRPC menggunakan bahasa Go—disertai contoh kode, simulasi, dan diagram alur untuk memperjelas bagaimana arsitektur ini berjalan.&lt;/p></description></item><item><title>1 Apa Itu GraphQL? Konsep Dasar dan Manfaatnya</title><link>https://www.santekno.com/1-apa-itu-graphql-konsep-dasar-dan-manfaatnya/</link><pubDate>Tue, 01 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/1-apa-itu-graphql-konsep-dasar-dan-manfaatnya/</guid><description>&lt;h2 id="apa-itu-graphql-konsep-dasar-dan-manfaatnya">Apa Itu GraphQL? Konsep Dasar dan Manfaatnya&lt;/h2>&lt;p>Dalam beberapa tahun terakhir, &lt;strong>GraphQL&lt;/strong> telah menjadi salah satu teknologi API yang paling menarik perhatian, terutama di kalangan web dan mobile developer. Jika kamu sudah lama berkecimpung di dunia pengembangan backend, pasti sudah akrab dengan REST API sebagai standar komunikasi antara client dan server. Namun, GraphQL hadir menawarkan pendekatan baru yang dianggap lebih fleksibel dan efisien. Lalu, apa sebenarnya GraphQL itu? Apa kelebihan serta konsep dasar di baliknya? Mari kita bahas secara mendalam, lengkap dengan contoh kode dan diagram alur agar konsepnya semakin jelas.&lt;/p></description></item><item><title>23 Implementasi Client-side Streaming RPC</title><link>https://www.santekno.com/23-implementasi-client-side-streaming-rpc/</link><pubDate>Tue, 01 Jul 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/23-implementasi-client-side-streaming-rpc/</guid><description>&lt;p>Dalam dunia &lt;em>microservices&lt;/em> modern, &lt;strong>gRPC&lt;/strong> telah menjadi salah satu pilihan utama untuk membangun komunikasi antar layanan yang efisien, terutama jika mengutamakan performa dan fleksibilitas. Salah satu fitur powerful dari gRPC adalah dukungan terhadap &lt;em>streaming RPC&lt;/em>. Kali ini, mari kita fokus pada &lt;strong>Client-side Streaming RPC&lt;/strong>, di mana klien dapat mengirimkan banyak pesan secara berurutan ke server, sebelum akhirnya menerima satu respon agregat dari server.&lt;/p></description></item><item><title>22 Implementasi Server-side Streaming RPC</title><link>https://www.santekno.com/22-implementasi-server-side-streaming-rpc/</link><pubDate>Mon, 30 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/22-implementasi-server-side-streaming-rpc/</guid><description>&lt;p>&lt;strong>gRPC&lt;/strong> telah menjadi salah satu protokol komunikasi yang paling banyak digunakan di ekosistem aplikasi mikroservis modern. Fungsi utamanya sebagai pengganti REST di banyak sistem tidak lepas dari fleksibilitas model RPC (Remote Procedure Call), kecepatan, serta kemampuan streaming datanya yang superior. Salah satu model streaming yang cukup powerful adalah &lt;strong>Server-side Streaming RPC&lt;/strong>.&lt;/p></description></item><item><title>21 Memahami Konsep Streaming pada gRPC</title><link>https://www.santekno.com/21-memahami-konsep-streaming-pada-grpc/</link><pubDate>Sun, 29 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/21-memahami-konsep-streaming-pada-grpc/</guid><description>&lt;p>Jika Anda sudah familiar dengan REST API, mungkin konsep komunikasi request-response terasa sangat natural. Namun, saat aplikasi makin kompleks dan kebutuhan komunikasi dua arah yang efisien dibutuhkan—seperti real-time chat, monitoring sistem, atau transfer file yang besar—REST mulai menunjukkan keterbatasannya. Di sinilah kekuatan gRPC, khususnya fitur streaming-nya, benar-benar menonjol.&lt;/p></description></item><item><title>20 Menambahkan Interceptor Unary di Client</title><link>https://www.santekno.com/20-menambahkan-interceptor-unary-di-client/</link><pubDate>Sat, 28 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/20-menambahkan-interceptor-unary-di-client/</guid><description>&lt;p>Ketika membangun aplikasi distributed system dengan gRPC, sering kali kita membutuhkan logging, monitoring, validasi, atau transformasi data pada request/response yang lewat antara client dan server. Namun, tentunya tidak bijak jika setiap logika tambahan itu kita selipkan pada tiap pemanggilan RPC. Untungnya, gRPC menyediakan konsep interceptor yang sangat powerful dan modular. Salah satu yang paling sering digunakan adalah Unary Interceptor di sisi client.&lt;/p></description></item><item><title>19 Menambahkan Interceptor Unary di Server</title><link>https://www.santekno.com/19-menambahkan-interceptor-unary-di-server/</link><pubDate>Fri, 27 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/19-menambahkan-interceptor-unary-di-server/</guid><description>&lt;p>Saat membangun aplikasi backend berbasis gRPC, salah satu konsep powerful yang wajib dikuasai adalah &lt;strong>interceptor&lt;/strong>. Khususnya pada server-side, &lt;em>unary interceptor&lt;/em> berperan sangat krusial: mulai dari logging, authentication, hingga metrics. Pada artikel ini, kita akan mengupas tuntas cara menambahkan unary interceptor di server gRPC, plus skenario nyata, contoh kode, bahkan &lt;em>flow diagram&lt;/em> agar mudah kamu praktikkan.&lt;/p></description></item><item><title>18 Membaca Metadata di Server gRPC</title><link>https://www.santekno.com/18-membaca-metadata-di-server-grpc/</link><pubDate>Thu, 26 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/18-membaca-metadata-di-server-grpc/</guid><description>&lt;p>gRPC telah menjadi salah satu framework komunikasi antar layanan paling populer di era cloud-native. Berkat performanya yang tinggi dan dukungannya terhadap berbagai bahasa pemrograman, gRPC sering diadopsi di berbagai proyek skala besar. Salah satu fitur gRPC yang powerful namun sering dianggap sepele adalah &lt;strong>metadata&lt;/strong>. Metadata adalah pasangan key-value yang bisa dikirim bersama setiap permintaan (request) atau respons (response) dalam RPC, mirip dengan HTTP headers, namun lebih terintegrasi di level protokol gRPC.&lt;/p></description></item><item><title>17 Menambahkan Metadata pada gRPC Request</title><link>https://www.santekno.com/17-menambahkan-metadata-pada-grpc-request/</link><pubDate>Wed, 25 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/17-menambahkan-metadata-pada-grpc-request/</guid><description>&lt;p>gRPC telah menjadi standar de facto untuk komunikasi service-to-service di banyak perusahaan yang mengadopsi microservices. Sifatnya yang efisien membuatnya sangat cocok untuk sistem berskala besar. Namun, dalam praktik, kebutuhan akan komunikasi yang lebih “kontekstual” seringkali muncul—misal, pengiriman token otentikasi, trace id, atau custom header di setiap request. Disinilah pentingnya &lt;em>metadata&lt;/em> pada gRPC: memberikan medium ekstra untuk mengirim data luar-band tanpa memodifikasi definisi protokol utama.&lt;/p></description></item><item><title>16 Penanganan Error di Server gRPC</title><link>https://www.santekno.com/16-penanganan-error-di-server-grpc/</link><pubDate>Tue, 24 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/16-penanganan-error-di-server-grpc/</guid><description>&lt;h2 id="16-penanganan-error-di-server-grpc">16. Penanganan Error di Server gRPC&lt;/h2>&lt;p>Pada arsitektur sistem terdistribusi modern, &lt;strong>gRPC&lt;/strong> menjadi salah satu protokol RPC yang diandalkan untuk komunikasi antar layanan karena efisiensi, dukungan multi bahasa, dan transportasinya yang robust (HTTP/2). Namun, seperti sistem terdistribusi pada umumnya, &lt;em>failure&lt;/em> pasti terjadi—mulai dari permintaan tidak valid, layanan tidak tersedia, hingga masalah autentikasi. Penanganan error yang baik di sisi server gRPC akan sangat berpengaruh pada &lt;em>experience&lt;/em> klien, reliability sistem secara keseluruhan, sekaligus kemudahan &lt;em>troubleshooting&lt;/em>.&lt;/p></description></item><item><title>15 Menambahkan Timeout dan Context pada Client gRPC</title><link>https://www.santekno.com/15-menambahkan-timeout-dan-context-pada-client-grpc/</link><pubDate>Mon, 23 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/15-menambahkan-timeout-dan-context-pada-client-grpc/</guid><description>&lt;p>Saat membangun aplikasi terdistribusi dengan protokol gRPC, selalu ada tantangan dalam mengelola komunikasi antar layanan secara efisien dan andal. Salah satu aspek krusial namun kadang diabaikan adalah bagaimana menangani waktu tunggu (timeout) dan context pada client gRPC. Tanpa pengelolaan yang baik, service call bisa menggantung, menyebabkan resource leakage, atau bahkan memicu cascading failure. Pada artikel kali ini, kita akan membahas cara menambahkan timeout dan context pada client gRPC, lengkap dengan studi kasus, contoh kode, dan diagram alur.&lt;/p></description></item><item><title>14 Menambahkan Logging Sederhana di Server gRPC</title><link>https://www.santekno.com/14-menambahkan-logging-sederhana-di-server-grpc/</link><pubDate>Sun, 22 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/14-menambahkan-logging-sederhana-di-server-grpc/</guid><description>&lt;p>Ketika membangun aplikasi backend modern, salah satu elemen penting namun sering diabaikan adalah &lt;strong>logging&lt;/strong>. Logging bukan hanya tentang menuliskan error ke file log — ia adalah jendela kehidupan aplikasi kita: Apakah ada yang error? Endpoint mana yang sering diakses? Berapa lama waktu eksekusi tiap permintaan? Apalagi, jika kita menggunakan gRPC yang komunikasinya berbasis protokol biner dan streaming, log yang baik dapat sangat membantu debugging dan pemantauan.&lt;/p></description></item><item><title>13 Implementasi Unary RPC</title><link>https://www.santekno.com/13-implementasi-unary-rpc/</link><pubDate>Sat, 21 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/13-implementasi-unary-rpc/</guid><description>&lt;p>Pada tahun-tahun belakangan ini, konsep &lt;em>Remote Procedure Call&lt;/em> (&lt;em>RPC&lt;/em>) kian populer dalam pengembangan &lt;em>backend services&lt;/em>. Salah satu &lt;em>pattern&lt;/em> yang paling sederhana tapi sering dipakai adalah &lt;strong>Unary RPC&lt;/strong>, di mana klien mengirim satu permintaan dan server mengembalikan satu respons. Di artikel ini, saya akan membahas konsep Unary RPC dan bagaimana mengimplementasikannya menggunakan &lt;strong>gRPC&lt;/strong> di lingkungan Go (Golang). Mari kita berangkat dari teori, praktik, dan &lt;em>best practice&lt;/em> dunia nyata.&lt;/p></description></item><item><title>12 Membuat Client gRPC Pertama Anda</title><link>https://www.santekno.com/12-membuat-client-grpc-pertama-anda/</link><pubDate>Fri, 20 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/12-membuat-client-grpc-pertama-anda/</guid><description>&lt;p>Dalam ekosistem pengembangan perangkat lunak modern, komunikasi antarlayanan (inter-service communication) adalah tulang punggung pada arsitektur microservices. Salah satu protokol RPC (Remote Procedure Call) paling populer dan efisien yang dikembangkan Google adalah &lt;strong>gRPC&lt;/strong>. Protokol ini telah menjadi standar de facto untuk komunikasi layanan-layanan backend di banyak organisasi. Namun, memahami dan mengimplementasikan klien gRPC pertama Anda dapat menjadi tantangan tersendiri jika tidak dibimbing secara sistematis.&lt;/p></description></item><item><title>11 Membuat Server gRPC Pertama Anda</title><link>https://www.santekno.com/11-membuat-server-grpc-pertama-anda/</link><pubDate>Thu, 19 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/11-membuat-server-grpc-pertama-anda/</guid><description>&lt;p>Membangun sistem komunikasi antar layanan yang efisien adalah esensial di era microservices. gRPC hadir sebagai salah satu solusi modern yang powerful dan scalable. Dengan protokol berbasis HTTP/2 dan serialization Protobuf, gRPC mendukung komunikasi yang cepat, ringan, dan kuat lintas bahasa pemrograman. Di artikel ini, saya akan membimbing Anda—dari engineer pemula hingga intermediate—untuk membuat server gRPC pertama Anda menggunakan Go.&lt;/p></description></item><item><title>10 Struktur Kode Otomatis yang Dihasilkan oleh `protoc`</title><link>https://www.santekno.com/10-struktur-kode-otomatis-yang-dihasilkan-oleh-protoc/</link><pubDate>Wed, 18 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/10-struktur-kode-otomatis-yang-dihasilkan-oleh-protoc/</guid><description>&lt;p>Bayangkan Anda sedang mengembangkan layanan microservices yang membutuhkan pertukaran data antar berbagai layanan. Protokol data yang digunakan harus efisien, mudah diperluas, dan mendukung beberapa bahasa pemrograman. Di sinilah &lt;strong>Protocol Buffers (&lt;code>protobuf&lt;/code>)&lt;/strong> menjadi solusi yang sangat relevan.&lt;/p></description></item><item><title>Belajar Golang GraphQL</title><link>https://www.santekno.com/tutorial/golang/graphql/</link><pubDate>Wed, 18 Jun 2025 08:00:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/graphql/</guid><description>&lt;p>Dalam pengembangan API modern, kebutuhan akan efisiensi, fleksibilitas query, dan struktur data yang eksplisit membuat &lt;strong>GraphQL&lt;/strong> menjadi alternatif kuat terhadap REST. GraphQL adalah query language dan runtime untuk API yang dikembangkan oleh Facebook, dirancang agar client bisa mengakses data yang dibutuhkan secara spesifik dan efisien.&lt;/p></description></item><item><title>9 Meng-Generate Kode Go dari File Protobuf</title><link>https://www.santekno.com/9-meng-generate-kode-go-dari-file-protobuf/</link><pubDate>Tue, 17 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/9-meng-generate-kode-go-dari-file-protobuf/</guid><description>&lt;p>Google Protocol Buffers (protobuf) telah menjadi salah satu standard serialization paling populer di dunia backend service. Salah satu kekuatan utama dari protobuf adalah kemampuannya untuk meng-generate kode dalam berbagai bahasa, termasuk Go. Dalam bab ini, kita akan membahas secara mendetail bagaimana melakukan generate kode Go dari file &lt;code>.proto&lt;/code>, menelusuri alur kerjanya, serta membagikan tips praktis agar proses ini berjalan tanpa hambatan.&lt;/p></description></item><item><title>8 Memahami Sintaks Dasar File Protobuf</title><link>https://www.santekno.com/8-memahami-sintaks-dasar-file-protobuf/</link><pubDate>Mon, 16 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/8-memahami-sintaks-dasar-file-protobuf/</guid><description>&lt;h2 id="8-memahami-sintaks-dasar-file-protobuf">8. Memahami Sintaks Dasar File Protobuf&lt;/h2>&lt;p>Protobuf, atau Protocol Buffers, adalah format serialisasi data milik Google yang kini telah menjadi standar &lt;em>de facto&lt;/em> untuk komunikasi data yang cepat, efisien, dan terstruktur. Bila Anda sudah pernah bekerja dengan REST API dan JSON, Anda pasti merasakan betapa mudahnya bekerja dengan data berstruktur. Namun, di balik kemudahan tersebut, ada trade-off dalam hal size dan parsing speed. Di sinilah Protobuf hadir, membawa efisiensi pada level yang lebih tinggi.&lt;/p></description></item><item><title>7 Menulis File `.proto` Pertama Anda</title><link>https://www.santekno.com/7-menulis-file-.proto-pertama-anda/</link><pubDate>Sun, 15 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/7-menulis-file-.proto-pertama-anda/</guid><description>&lt;h2 id="7-menulis-file-proto-pertama-anda-panduan-lengkap-untuk-pemula">7. Menulis File &lt;code>.proto&lt;/code> Pertama Anda: Panduan Lengkap Untuk Pemula&lt;/h2>&lt;p>Ketika Anda mulai mengeksplor dunia sistem terdistribusi, integrasi mikroservis, atau komunikasi lintas bahasa, cepat atau lambat Anda akan berjumpa dengan &lt;strong>Protocol Buffers&lt;/strong> (atau Protobuf). Protobuf adalah format serialisasi data yang dikembangkan oleh Google—yang selain ringan dan super cepat, juga mudah untuk didefinisikan lewat file &lt;code>.proto&lt;/code>. Hari ini, saya akan membimbing Anda menulis file &lt;code>.proto&lt;/code> pertama Anda secara step-by-step, lengkap dengan contoh kode, simulasi penggunaan, dan lempengan tips dari pengalaman nyata di industri.&lt;/p></description></item><item><title>6 Cara Menginstall Plugin protoc-gen-go dan protoc-gen-go-grpc</title><link>https://www.santekno.com/6-cara-menginstall-plugin-protoc-gen-go-dan-protoc-gen-go-grpc/</link><pubDate>Sat, 14 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/6-cara-menginstall-plugin-protoc-gen-go-dan-protoc-gen-go-grpc/</guid><description>&lt;p>Dalam pengembangan layanan berbasis microservices, komunikasi antar layanan menjadi kunci utama—dan Protocol Buffers (&lt;code>protobuf&lt;/code>) hadir sebagai salah satu solusi serialization yang cepat dan efisien. Untuk menggabungkan Protocol Buffers dengan aplikasi Golang, kita memerlukan beberapa tools penting, khususnya plugin &lt;code>protoc-gen-go&lt;/code> dan &lt;code>protoc-gen-go-grpc&lt;/code>.&lt;/p></description></item><item><title>5 Menyiapkan Protocol Buffers (protobuf) untuk gRPC</title><link>https://www.santekno.com/5-menyiapkan-protocol-buffers-protobuf-untuk-grpc/</link><pubDate>Fri, 13 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/5-menyiapkan-protocol-buffers-protobuf-untuk-grpc/</guid><description>&lt;p>Jika kamu sedang membangun microservice modern dengan &lt;strong>gRPC&lt;/strong>, salah satu fondasi terpenting yang akan sering kamu sentuh adalah &lt;strong>Protocol Buffers (protobuf)&lt;/strong>. Artikel ini adalah bagian kelima dari seri pengenalan gRPC, dan kita akan fokus pada bagaimana menyiapkan protobuf untuk digunakan sebagai interface komunikasi dalam sistem gRPC. Saya akan mengajakmu mulai dari konsep, setup, hingga contoh implementasi beserta simulasi komunikasi antara client-server.&lt;/p></description></item><item><title>4 Struktur Proyek gRPC Sederhana di Go</title><link>https://www.santekno.com/4-struktur-proyek-grpc-sederhana-di-go/</link><pubDate>Thu, 12 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/4-struktur-proyek-grpc-sederhana-di-go/</guid><description>&lt;p>gRPC semakin populer sebagai pilihan protokol Remote Procedure Call modern, terutama dalam membangun sistem microservices yang efisien dan scalable. Salah satu keunggulannya adalah dukungan penuh terhadap berbagai bahasa pemrograman, performa yang tinggi dengan HTTP/2, serta mekanisme serialisasi pesan yang andal via Protocol Buffers (protobuf).&lt;/p></description></item><item><title>3 Instalasi gRPC di Go Langkah demi Langkah</title><link>https://www.santekno.com/3-instalasi-grpc-di-go-langkah-demi-langkah/</link><pubDate>Wed, 11 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/3-instalasi-grpc-di-go-langkah-demi-langkah/</guid><description>&lt;h2 id="pendahuluan">Pendahuluan&lt;/h2>&lt;p>Seiring berkembangnya kebutuhan aplikasi modern yang skalabel dan handal seperti microservices, &lt;em>Remote Procedure Call&lt;/em> (RPC) menjadi metode komunikasi lintas proses yang semakin populer. Salah satu teknologi RPC yang powerful dan telah menjadi &lt;em>de facto&lt;/em> standar industri adalah &lt;a href="https://grpc.io/" title="gRPC" target="_blank" rel="noopener">gRPC&lt;/a>
. gRPC menawarkan kecepatan tinggi, kontrak API yang eksplisit via Protobuf, serta dukungan ekosistem yang mumpuni.&lt;/p></description></item><item><title>Rekomendasi Keyboard Keychron Bekas di Bawah 1 Juta – Pilihan Hemat dan Berkualitas</title><link>https://www.santekno.com/rekomendasi-keychron-bekas-di-bawah-1-juta/</link><pubDate>Wed, 11 Jun 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/rekomendasi-keychron-bekas-di-bawah-1-juta/</guid><description>&lt;p>Inget banget waktu itu temen kantor baru pindah cubicle, dan pas beres-beres, dia nemuin Keychron K2 yang udah nggak kepake. Langsung clingak-clinguk, “Eh, lo mau jual nggak?” Eh dia bilang, “Ambil aja, gue udah ganti yang wireless full-size.” Gokil sih&amp;hellip; sejak saat itu, kita jadi ngiler sama Keychron, tapi dompet kadang belum sempat ngejar. Untungnya, dunia keyboard bekas tuh kaya harta karun—asal telaten, bisa dapet harga cakep, performa mantap!&lt;/p></description></item><item><title>2 Perbandingan gRPC dengan REST dan GraphQL</title><link>https://www.santekno.com/2-perbandingan-grpc-dengan-rest-dan-graphql/</link><pubDate>Tue, 10 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/2-perbandingan-grpc-dengan-rest-dan-graphql/</guid><description>&lt;p>Di era modern pengembangan sistem terdistribusi dan microservices, kebutuhan untuk komunikasi antarlayanan semakin krusial. Tiga pendekatan yang cukup populer adalah REST, GraphQL, dan gRPC. Masing-masing punya filosofi, kelebihan, dan kekurangan tersendiri. Dalam artikel ini saya akan membedah ketiganya secara teknis dengan perbandingan performa, skenario penggunaannya, juga contoh kode sederhana agar kita bisa memilih yang paling cocok sesuai kebutuhan.&lt;/p></description></item><item><title>1 Apa itu gRPC dan Mengapa Perlu Dipelajari?</title><link>https://www.santekno.com/1-apa-itu-grpc-dan-mengapa-perlu-dipelajari/</link><pubDate>Mon, 09 Jun 2025 17:00:00 +0700</pubDate><guid>https://www.santekno.com/1-apa-itu-grpc-dan-mengapa-perlu-dipelajari/</guid><description>&lt;p>Kita hidup di era di mana sistem terdistribusi dan aplikasi microservices telah menjadi fondasi arsitektur software modern. Para engineer kini semakin sering menghadapi tantangan integrasi antar layanan yang berjalan lintas bahasa pemrograman, lintas platform, bahkan lintas lingkungan cloud. Dalam skenario ini, protokol komunikasi yang efisien, konsisten, serta mudah diadopsi—seperti gRPC—menjadi semakin vital.&lt;/p></description></item><item><title>Smart USB Hub 7 Port untuk Programmer Multitasking: Solusi USB Terbaik!</title><link>https://www.santekno.com/smart-usb-hub-7-port-untuk-programmer-multitasking/</link><pubDate>Mon, 09 Jun 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/smart-usb-hub-7-port-untuk-programmer-multitasking/</guid><description>&lt;p>Pernah nggak sih Anda ngerasa kayak gurita yang kekurangan tangan? Keyboard, mouse, flashdisk, hard disk eksternal, card reader, headphone, dan&amp;hellip; eh, colokan habis! Kita pernah banget ngalamin situasi absurd kayak gitu. Apalagi pas ngoding sambil dengerin musik, ngelola beberapa device, dan pindahin file antar storage — kepala bisa langsung mendidih kalau harus cabut-pasang kabel terus-menerus 😤&lt;/p></description></item><item><title>Belajar Golang RPC (GRPC)</title><link>https://www.santekno.com/tutorial/golang/grpc/</link><pubDate>Sat, 07 Jun 2025 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/grpc/</guid><description>&lt;p>Di era aplikasi modern yang mengandalkan komunikasi cepat antar layanan, &lt;strong>gRPC&lt;/strong> hadir sebagai solusi efisien dan ringan dibandingkan REST tradisional. gRPC (Google Remote Procedure Call) adalah framework open-source yang dikembangkan oleh Google untuk mendukung komunikasi antar sistem secara cepat, terstruktur, dan lintas platform. Framework ini dibangun di atas HTTP/2 dan menggunakan &lt;strong>Protocol Buffers (Protobuf)&lt;/strong> sebagai format serialisasi datanya, menjadikannya lebih hemat bandwidth dan performa tinggi.&lt;/p></description></item><item><title>Mousepad Gaming XXL Murah Mulai 20 Ribuan – Nyaman &amp; Gede Maksimal!</title><link>https://www.santekno.com/mousepad-gaming-xxl-murah-mulai-20-ribuan/</link><pubDate>Wed, 04 Jun 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/mousepad-gaming-xxl-murah-mulai-20-ribuan/</guid><description>&lt;p>Beberapa waktu lalu, salah satu temen kita di tongkrongan curhat soal gimana frustrasinya dia waktu main Valorant—cuma gara-gara gerakin mouse-nya nyangkut di ujung mousepad kecil. Duh, ngeselin banget kan! Padahal, game udah intense, lawan tinggal satu&amp;hellip; eh, malah gagal clutch. Nah, dari situ kita jadi mikir, &amp;ldquo;Kenapa nggak cari mousepad ukuran XXL aja, yang lega dan bisa bikin setup makin mantap?&amp;rdquo;&lt;/p></description></item><item><title>SSD Eksternal Tercepat untuk Developer | Backup Data Kilat &amp; Aman</title><link>https://www.santekno.com/ssd-eksternal-tercepat-backup-data-developer/</link><pubDate>Mon, 02 Jun 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/ssd-eksternal-tercepat-backup-data-developer/</guid><description>&lt;p>Waktu masih magang di sebuah startup tech di Jakarta, salah satu momen paling bikin panik adalah ketika laptop gue — eh, maksudnya laptop kantor — tiba-tiba hang pas lagi benerin bug penting. File terakhir belum sempet disimpan. Untungnya, mentor gue waktu itu nyodorin SSD eksternal dan bilang, “Backup tuh jangan nunggu error dulu, bro!” Nah dari situ, kita jadi sadar betapa pentingnya punya SSD eksternal yang cepat dan bisa diandalkan.&lt;/p></description></item><item><title>5 Rekomendasi USB Hub Terbaik untuk Meja Kerja Minimalis &amp; Rapi</title><link>https://www.santekno.com/5-usb-hub-terbaik-untuk-meja-kerja-minimalis/</link><pubDate>Wed, 28 May 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/5-usb-hub-terbaik-untuk-meja-kerja-minimalis/</guid><description>&lt;p>&lt;strong>Bikin Setup Makin Rapi, Produktivitas Makin Ngebut!&lt;/strong>&lt;/p>
&lt;p>Waktu pertama kali ngerapiin meja kerja, kita semua pasti pernah ngalamin dilema—mau setup yang minimalis tapi colokan USB di laptop tinggal satu atau dua! Kebayang dong, antara harus nyolokin mouse, keyboard, flashdisk, atau mungkin bahkan charger HP. Waduh, colokan rebutan terus. Teman saya, Dani, pernah sampai beli USB hub abal-abal yang malah bikin laptop-nya nge-hang terus. Dari situ kita belajar, jangan asal pilih USB hub.&lt;/p></description></item><item><title>Strategi Tim MotoGP dalam Menentukan Setup Motor Setiap Sirkuit</title><link>https://www.santekno.com/strategi-tim-motogp-dalam-menentukan-setup-motor-setiap-sirkuit/</link><pubDate>Tue, 27 May 2025 16:00:15 +0700</pubDate><guid>https://www.santekno.com/strategi-tim-motogp-dalam-menentukan-setup-motor-setiap-sirkuit/</guid><description>&lt;h2 id="bukan-sekadar-balapan-tapi-soal-kalkulasi-presisi">Bukan Sekadar Balapan, Tapi Soal Kalkulasi Presisi&lt;/h2>&lt;p>MotoGP adalah ajang balap motor paling bergengsi di dunia. Tapi di balik kecepatan luar biasa dan aksi menegangkan di lintasan, ada kerja keras dan strategi teknis dari tim di paddock. Salah satu hal paling penting yang sering tidak terlihat oleh penonton adalah bagaimana tim menyusun setup motor yang tepat untuk setiap sirkuit.
Tidak ada satu setup yang cocok untuk semua lintasan. Masing-masing sirkuit punya karakter unik: panjang lintasan, jumlah tikungan, jenis aspal, hingga suhu udara bisa sangat memengaruhi performa motor. Maka dari itu, kerja sama antara pembalap, kepala kru, dan teknisi menjadi kunci agar motor tampil optimal setiap akhir pekan.
Jika kamu sering cek situs seperti &lt;a href="https://jadwalmotogp.id/" title="https://jadwalmotogp.id/" target="_blank" rel="noopener">https://jadwalmotogp.id/&lt;/a>
 untuk mengikuti jadwal balapan, kamu juga perlu tahu bahwa persiapan teknis sebelum race sangat menentukan hasil di hari Minggu.&lt;/p></description></item><item><title>10 Keyboard Mechanical Terbaik Programmer Gamers</title><link>https://www.santekno.com/10-keyboard-mechanical-terbaik-programmer-gamers/</link><pubDate>Mon, 26 May 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/10-keyboard-mechanical-terbaik-programmer-gamers/</guid><description>&lt;p>Waktu kecil, dulu kita suka banget main warnet, ya kan? Bunyi ketikan keyboard keras-keras kayak hujan deras, bikin suasana makin panas pas lagi push rank atau ngebut ngerjain tugas coding. Nah, dari situ rasa cinta terhadap keyboard mechanical mulai tumbuh - kayak cinta pertama yang susah move on! Sampai sekarang, buat gaming dan programming, rasanya keyboard mechanical itu udah kayak sahabat setia yang nggak pernah mengecewakan.&lt;/p></description></item><item><title>Meja Kerja Ideal Programmer &amp; Gamers 2025 – Rekomendasi Terbaik di Indonesia</title><link>https://www.santekno.com/meja-kerja-ideal-programmer-gamers-terbaik-2025/</link><pubDate>Wed, 21 May 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/meja-kerja-ideal-programmer-gamers-terbaik-2025/</guid><description>&lt;p>Pernah ngerasain duduk seharian di depan laptop, punggung pegal, tangan kaku, dan mata berair? Duh, rasanya kayak abis maraton coding seminggu tanpa tidur! Nah, waktu itu, temen kantor, si Dika — programmer sejati sekaligus gamer berat — bilang, “Bro, lo butuh upgrade meja kerja deh, bukan cuma kursi aja yang penting.” Dan bener aja&amp;hellip; sejak itu, hidup kita berubah total.&lt;/p></description></item><item><title>Monitor Refresh Rate Tinggi Terbaik 2025</title><link>https://www.santekno.com/monitor-refresh-rate-tinggi-terbaik-2025/</link><pubDate>Mon, 19 May 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/monitor-refresh-rate-tinggi-terbaik-2025/</guid><description>&lt;p>Pernah nggak sih, lagi asik main game tiba-tiba layar nge-freeze? Rasanya kayak lagi balapan motor, terus bannya bocor di tengah jalan&amp;hellip; Wah, langsung pengen banting meja aja rasanya! Nah, dari pengalaman itu, kita jadi makin sadar pentingnya punya monitor dengan refresh rate tinggi . Bukan cuma buat gaming, buat editing video, desain grafis, bahkan sekadar scrolling sosmed, monitor kenceng itu beda banget feel-nya, Anda pasti setuju deh!&lt;/p></description></item><item><title>10 Headset Gaming Surround Sound Terbaik 2025 – Audio Gaming Paling Jernih!</title><link>https://www.santekno.com/headset-gaming-surround-sound-terbaik/</link><pubDate>Wed, 14 May 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/headset-gaming-surround-sound-terbaik/</guid><description>&lt;p>Waktu pertama kali main &lt;em>Call of Duty&lt;/em> pakai headset surround sound, rasanya&amp;hellip; Wah! Kayak beneran ada di tengah tembak-tembakan! Suara peluru yang nyasar dari kiri, lalu ledakan dari belakang—sumpah, jantung langsung deg-degan. Nah, momen itu bikin kita sadar, headset gaming yang punya surround sound tuh bukan cuma aksesoris—itu senjata rahasia!&lt;/p></description></item><item><title>Rekomendasi Webcam Terbaik 2025 untuk Streamer &amp; Developer Remote</title><link>https://www.santekno.com/rekomendasi-webcam-terbaik-streamer-developer-remote/</link><pubDate>Mon, 12 May 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/rekomendasi-webcam-terbaik-streamer-developer-remote/</guid><description>&lt;p>Waktu pertama kali kita kerja remote, salah satu hal yang langsung kerasa “loh kok gini amat ya?” adalah&amp;hellip; webcam! Gambar ngeblur, pencahayaan amburadul, delay suara bikin lawan bicara ngira kita lagi live dari planet lain. Teman kita, Dito — developer remote dari Yogyakarta — pernah cerita, pas client meeting penting, webcam-nya tiba-tiba “freeze” di posisi lagi ngucek mata. Waduh, malu banget tuh katanya 😅&lt;/p></description></item><item><title>5 Rekomendasi Stand Laptop Lipat Murah di Bawah 100 Ribu untuk Programmer Mobile</title><link>https://www.santekno.com/stand-laptop-lipat-murah-100rb-untuk-programmer-mobile/</link><pubDate>Mon, 05 May 2025 10:00:15 +0700</pubDate><guid>https://www.santekno.com/stand-laptop-lipat-murah-100rb-untuk-programmer-mobile/</guid><description>&lt;p>Dulu, waktu awal banget kerja remote dari rumah, meja kerja kita tuh bisa dibilang&amp;hellip; seadanya. Laptop ditaruh di meja makan, duduknya pakai kursi plastik. Punggung pegel, leher kayak mau copot! Tapi lama-lama sadar juga—kenyamanan itu penting, apalagi buat kita yang sehari-hari ngoding sambil ngelawan deadline.&lt;/p></description></item><item><title>10 Mouse Gaming Terbaik 2025 untuk Performa Maksimal | Rekomendasi Terbaru</title><link>https://www.santekno.com/10-mouse-gaming-terbaik-2025-performa-maksimal/</link><pubDate>Thu, 01 May 2025 10:00:00 +0700</pubDate><guid>https://www.santekno.com/10-mouse-gaming-terbaik-2025-performa-maksimal/</guid><description>&lt;p>Beberapa hari lalu, pas lagi nongkrong bareng teman-teman di kafe favorit — yang wangi kopinya kayak ngundang-ngundang gamer buat mabar — kita ngobrolin soal gear gaming terbaru. Ealah, dari obrolan santai itu, ternyata banyak juga yang kebingungan mau pilih mouse gaming yang kece buat tahun 2025 ini.  &lt;/p></description></item><item><title>Distributor Resmi Traktor Kubota – Bina Pertiwi Solusi Pertanian Modern</title><link>https://www.santekno.com/distributor-resmi-traktor-kubota-bina-pertiwi-solusi-pertanian-modern/</link><pubDate>Wed, 23 Apr 2025 10:14:09 +0700</pubDate><guid>https://www.santekno.com/distributor-resmi-traktor-kubota-bina-pertiwi-solusi-pertanian-modern/</guid><description>&lt;p>Dalam dunia pertanian modern, efisiensi dan produktivitas menjadi kunci utama untuk meningkatkan hasil panen dan kesejahteraan petani. Salah satu cara yang terbukti efektif untuk mencapainya adalah dengan menggunakan alat dan mesin pertanian yang berkualitas. Di sinilah peran Bina Pertiwi sebagai distributor resmi &lt;strong>traktor&lt;/strong> Kubota di Indonesia menjadi sangat penting.&lt;/p></description></item><item><title>Cara Menyembunyikan URL CloudFront dan Menggunakan Domain Kustom dengan Aman</title><link>https://www.santekno.com/cara-menyembunyikan-url-cloudfront-dan-menggunakan-domain-kustom-dengan-aman/</link><pubDate>Mon, 21 Apr 2025 11:00:40 +0700</pubDate><guid>https://www.santekno.com/cara-menyembunyikan-url-cloudfront-dan-menggunakan-domain-kustom-dengan-aman/</guid><description>&lt;p>Panduan lengkap untuk menyembunyikan URL bawaan CloudFront dan hanya mengizinkan akses melalui domain kustom Anda. Termasuk konfigurasi SSL, DNS, dan fungsi CloudFront.&lt;/p></description></item><item><title>17 Delete Flag dalam GORM untuk Soft Delete yang Efisien</title><link>https://www.santekno.com/17-delete-flag-dalam-gorm-untuk-soft-delete-yang-efisien/</link><pubDate>Wed, 02 Apr 2025 10:06:11 +0700</pubDate><guid>https://www.santekno.com/17-delete-flag-dalam-gorm-untuk-soft-delete-yang-efisien/</guid><description>&lt;p>Pelajari cara menggunakan delete flag dalam GORM untuk mengelola soft delete dengan metode boolean, Unix timestamp, dan mixed mode. Dilengkapi contoh kode dan unit test&lt;/p></description></item><item><title>16 Soft Delete dalam GORM: Panduan Lengkap dengan Unit Test</title><link>https://www.santekno.com/16-soft-delete-dalam-gorm-panduan-lengkap-dengan-unit-test/</link><pubDate>Mon, 31 Mar 2025 09:57:45 +0700</pubDate><guid>https://www.santekno.com/16-soft-delete-dalam-gorm-panduan-lengkap-dengan-unit-test/</guid><description>&lt;p>Pelajari cara menggunakan soft delete di GORM untuk menghapus data tanpa benar-benar menghapusnya. Panduan ini mencakup contoh kode, penjelasan, dan unit test menggunakan SQLMock.&lt;/p></description></item><item><title>15 Menghapus Data Secara Massal di GORM dengan Golang</title><link>https://www.santekno.com/15-menghapus-data-secara-massal-di-gorm-dengan-golang/</link><pubDate>Fri, 28 Mar 2025 09:53:32 +0700</pubDate><guid>https://www.santekno.com/15-menghapus-data-secara-massal-di-gorm-dengan-golang/</guid><description>&lt;p>Pelajari cara menghapus data secara massal di GORM dengan Golang, melindungi data dari penghapusan global, dan mengembalikan data dari baris yang dihapus (Batch Delete, Block Global Delete, Returning Data).&lt;/p></description></item><item><title>14 Menghapus (Delete) Data Gorm Library</title><link>https://www.santekno.com/14-menghapus-delete-data-gorm-library/</link><pubDate>Wed, 26 Mar 2025 00:24:01 +0700</pubDate><guid>https://www.santekno.com/14-menghapus-delete-data-gorm-library/</guid><description>&lt;p>Panduan lengkap menghapus data di GORM dengan Golang, termasuk delete record, delete by primary key, delete hooks, dan unit test. Cocok untuk pemula!&lt;/p></description></item><item><title>13 Advanced Update Data Gorm Library</title><link>https://www.santekno.com/13-advanced-update-data-gorm-library/</link><pubDate>Mon, 24 Mar 2025 00:02:14 +0700</pubDate><guid>https://www.santekno.com/13-advanced-update-data-gorm-library/</guid><description>&lt;p>Pelajari teknik advanced update di GORM seperti Update with SQL Expression, Update from SubQuery, Without Hooks/Time Tracking, Returning Data From Modified Rows, Check Field has Changed?, dan Change Updating Values dalam Golang. Dilengkapi dengan contoh kode dan unit test.&lt;/p></description></item><item><title>12 Update Data Gorm Library Lanjutan (Bagian 1)</title><link>https://www.santekno.com/12-update-data-gorm-library-lanjutan-bagian-1/</link><pubDate>Fri, 21 Mar 2025 23:59:53 +0700</pubDate><guid>https://www.santekno.com/12-update-data-gorm-library-lanjutan-bagian-1/</guid><description>&lt;p>Pelajari lebih dalam cara melakukan update data di GORM dengan Batch Update, Block Global Updates, dan Updated Records Count dalam Golang. Dilengkapi dengan contoh kode dan unit test.&lt;/p></description></item><item><title>11 Update Data GORM Library</title><link>https://www.santekno.com/11-update-data-gorm-library/</link><pubDate>Wed, 19 Mar 2025 23:50:51 +0700</pubDate><guid>https://www.santekno.com/11-update-data-gorm-library/</guid><description>&lt;p>Pelajari cara melakukan update data menggunakan GORM dalam Golang dengan langkah-langkah lengkap. Artikel ini mencakup Save All Fields, Update Single Column, Update Multiple Columns, Update Selected Fields, dan Update Hooks, serta unit test untuk setiap metode.&lt;/p></description></item><item><title>10 Advance Query Data Gorm Library (Bagian 2)</title><link>https://www.santekno.com/10-advance-query-data-gorm-library-bagian-2/</link><pubDate>Mon, 17 Mar 2025 16:00:30 +0700</pubDate><guid>https://www.santekno.com/10-advance-query-data-gorm-library-bagian-2/</guid><description>&lt;p>Pelajari teknik query lanjutan di GORM dengan Golang, termasuk Find To Map, FirstOrInit, Query Hooks, Iteration, dan lainnya, lengkap dengan contoh kode dan unit test.&lt;/p></description></item><item><title>09 Advance Query Data Gorm Library (Bagian 1)</title><link>https://www.santekno.com/09-advance-query-data-gorm-library-bagian-1/</link><pubDate>Fri, 14 Mar 2025 15:58:18 +0700</pubDate><guid>https://www.santekno.com/09-advance-query-data-gorm-library-bagian-1/</guid><description>&lt;p>Pelajari teknik query lanjutan di GORM dengan Golang, termasuk From SubQuery, Group Conditions, Named Arguments, IN with multiple columns, dan lainnya, lengkap dengan contoh kode dan unit test.&lt;/p></description></item><item><title>08 Advanced Query dengan GORM di Golang</title><link>https://www.santekno.com/08-advanced-query-dengan-gorm-di-golang/</link><pubDate>Wed, 12 Mar 2025 15:55:42 +0700</pubDate><guid>https://www.santekno.com/08-advanced-query-dengan-gorm-di-golang/</guid><description>&lt;p>Pelajari berbagai teknik query tingkat lanjut di GORM dengan Golang, termasuk Smart Select Fields, Locking, SubQuery, From SubQuery, dan lainnya. Dilengkapi contoh kode dan unit test.&lt;/p></description></item><item><title>06 Query Lanjutan dengan GORM di Golang (Bagian 2)</title><link>https://www.santekno.com/06-query-lanjutan-dengan-gorm-di-golang-bagian-2/</link><pubDate>Mon, 10 Mar 2025 15:34:35 +0700</pubDate><guid>https://www.santekno.com/06-query-lanjutan-dengan-gorm-di-golang-bagian-2/</guid><description>&lt;p>Pelajari cara melakukan query lanjutan di GORM dengan Golang, termasuk Group By, Join, Join Preloading, Join a Derived Table, dan Scan. Dilengkapi contoh kode dan unit test.&lt;/p></description></item><item><title>07 Query Data Gorm Library Lanjutan (Bagian 1)</title><link>https://www.santekno.com/07-query-data-gorm-library-lanjutan-bagian-1/</link><pubDate>Fri, 07 Mar 2025 15:32:47 +0700</pubDate><guid>https://www.santekno.com/07-query-data-gorm-library-lanjutan-bagian-1/</guid><description>&lt;p>Pelajari berbagai metode query lanjutan di GORM dengan Golang, termasuk Not Conditions, Selecting Fields, Order, Limit, Offset, dan lainnya. Dilengkapi contoh kode dan unit test.&lt;/p></description></item><item><title>05 Menampilkan Data atau Query Record di GORM dengan Golang</title><link>https://www.santekno.com/05-menampilkan-data-atau-query-record-di-gorm-dengan-golang/</link><pubDate>Wed, 05 Mar 2025 15:24:20 +0700</pubDate><guid>https://www.santekno.com/05-menampilkan-data-atau-query-record-di-gorm-dengan-golang/</guid><description>&lt;p>Pelajari cara menampilkan data atau query record di GORM menggunakan Golang. Panduan lengkap dengan contoh kode, unit test, dan berbagai metode query ke database.&lt;/p></description></item><item><title>04 Create Record di GORM untuk Berbagai Database dalam Golang</title><link>https://www.santekno.com/04-create-record-di-gorm-untuk-berbagai-database-dalam-golang/</link><pubDate>Mon, 03 Mar 2025 14:54:15 +0700</pubDate><guid>https://www.santekno.com/04-create-record-di-gorm-untuk-berbagai-database-dalam-golang/</guid><description>&lt;p>Pelajari cara menggunakan GORM untuk membuat record di berbagai database dalam Golang. Dapatkan panduan lengkap dengan contoh kode, unit test, dan teknik optimal untuk Simple Create, Batch Insert, Create Hooks, dan banyak lagi.&lt;/p></description></item><item><title>DNS Checker Terbaik untuk Memantau Kesehatan DNS Domain Anda</title><link>https://www.santekno.com/dns-checker-terbaik-untuk-memantau-kesehatan-dns-domain-anda/</link><pubDate>Mon, 03 Mar 2025 13:27:40 +0700</pubDate><guid>https://www.santekno.com/dns-checker-terbaik-untuk-memantau-kesehatan-dns-domain-anda/</guid><description>&lt;p>Gunakan &lt;a href="https://id.seedbacklink.com/tool/dns-checker" title="DNS Checker" target="_blank" rel="noopener">DNS Checker&lt;/a>
 dari SeedBacklink untuk memeriksa status DNS dan memastikan situs Anda selalu dapat diakses dengan baik di seluruh dunia. Temukan berbagai alat lainnya di SeedBacklink.&lt;/p></description></item><item><title>03 Koneksi GORM ke Berbagai Database di Golang</title><link>https://www.santekno.com/03-koneksi-gorm-ke-berbagai-database-di-golang/</link><pubDate>Fri, 28 Feb 2025 14:45:53 +0700</pubDate><guid>https://www.santekno.com/03-koneksi-gorm-ke-berbagai-database-di-golang/</guid><description>&lt;p>Pelajari cara menghubungkan GORM sebagai ORM di Golang ke berbagai database seperti MySQL, PostgreSQL, SQLite, SQL Server, dan MongoDB. Dilengkapi dengan contoh kode dan unit test.&lt;/p></description></item><item><title>02 Deklarasi Model pada GORM: Panduan Lengkap ORM di Golang</title><link>https://www.santekno.com/02-deklarasi-model-pada-gorm-panduan-lengkap-orm-di-golang/</link><pubDate>Wed, 26 Feb 2025 14:37:38 +0700</pubDate><guid>https://www.santekno.com/02-deklarasi-model-pada-gorm-panduan-lengkap-orm-di-golang/</guid><description>&lt;p>Pelajari cara deklarasi model pada GORM, library ORM populer di Golang. Panduan lengkap dengan contoh kode, konversi model, fields level permission, embedded struct, dan fields tags. Cocok untuk pemula yang ingin memahami GORM lebih dalam.&lt;/p></description></item><item><title>01 Perkenalan GORM: Library ORM Terbaik untuk Golang</title><link>https://www.santekno.com/01-perkenalan-gorm-library-orm-terbaik-untuk-golang/</link><pubDate>Mon, 24 Feb 2025 14:25:39 +0700</pubDate><guid>https://www.santekno.com/01-perkenalan-gorm-library-orm-terbaik-untuk-golang/</guid><description>&lt;p>Pelajari GORM, library ORM populer untuk Golang yang memudahkan pengelolaan database dengan fitur CRUD, migrasi, transaksi, dan relasi model. Temukan keunggulan serta perusahaan yang menggunakan GORM dalam artikel ini.&lt;/p></description></item><item><title>5 Jenis Authentication digunakan Golang Selain Basic Auth, JWT, dan OAuth</title><link>https://www.santekno.com/5-jenis-authentication-digunakan-golang-selain-basic-auth-jwt-dan-oauth/</link><pubDate>Sat, 08 Feb 2025 14:50:15 +0700</pubDate><guid>https://www.santekno.com/5-jenis-authentication-digunakan-golang-selain-basic-auth-jwt-dan-oauth/</guid><description>&lt;p>Dalam dunia pemrograman web, otentikasi adalah salah satu elemen penting untuk menjaga keamanan aplikasi. Pada artikel ini, kita akan membahas berbagai metode otentikasi yang dapat digunakan dengan Golang menggunakan library &lt;code>httprouter&lt;/code>, selain yang paling populer yaitu Basic Authentication, JWT, dan OAuth. Dengan mengenal berbagai jenis otentikasi ini, Anda bisa memilih yang paling sesuai dengan kebutuhan aplikasi Anda.&lt;/p></description></item><item><title>18 Membuat Middleware Cors Menggunakan Httprouter Pada Golang</title><link>https://www.santekno.com/18-membuat-middleware-cors-menggunakan-httprouter-pada-golang/</link><pubDate>Sat, 08 Feb 2025 07:08:40 +0700</pubDate><guid>https://www.santekno.com/18-membuat-middleware-cors-menggunakan-httprouter-pada-golang/</guid><description>&lt;p>Cross-Origin Resource Sharing (CORS) adalah mekanisme keamanan yang memungkinkan atau membatasi permintaan HTTP dari domain yang berbeda. Dalam pengembangan aplikasi web, sering kali ada kebutuhan untuk berinteraksi dengan API yang tidak berasal dari domain yang sama dengan aplikasi. Oleh karena itu, middleware CORS dibutuhkan untuk mengontrol dan memberikan izin akses dari sumber lain untuk memastikan bahwa permintaan dari berbagai origin dapat diterima dan dijawab oleh server dengan aman.&lt;/p></description></item><item><title>17 Membuat Middleware Ssl Tls Authentication Pada Golang</title><link>https://www.santekno.com/17-membuat-middleware-ssl-tls-authentication-pada-golang/</link><pubDate>Thu, 06 Feb 2025 06:57:44 +0700</pubDate><guid>https://www.santekno.com/17-membuat-middleware-ssl-tls-authentication-pada-golang/</guid><description>&lt;p>Pada artikel ini, kita akan belajar bagaimana cara membuat middleware untuk otentikasi berbasis sertifikat (SSL/TLS) menggunakan library &lt;code>httprouter&lt;/code> di Go. SSL/TLS adalah protokol yang banyak digunakan untuk meningkatkan keamanan komunikasi di internet, salah satunya dengan memastikan hanya pihak yang sah yang dapat berkomunikasi dengan server. Middleware ini akan membantu kita memverifikasi apakah klien mengirimkan sertifikat yang valid untuk mengakses suatu endpoint.&lt;/p></description></item><item><title>16 Membuat Middleware Hmac Authentication Pada Golang</title><link>https://www.santekno.com/16-membuat-middleware-hmac-authentication-pada-golang/</link><pubDate>Tue, 04 Feb 2025 06:56:25 +0700</pubDate><guid>https://www.santekno.com/16-membuat-middleware-hmac-authentication-pada-golang/</guid><description>&lt;p>Pada artikel kali ini, kita akan membahas bagaimana membangun middleware HMAC (Hash-based Message Authentication Code) Authentication menggunakan Go dan library &lt;code>httprouter&lt;/code>. Middleware ini berfungsi untuk mengautentikasi permintaan HTTP berdasarkan tanda tangan HMAC, yang digunakan untuk memastikan integritas data yang dikirim dan bahwa data tersebut berasal dari sumber yang sah.&lt;/p></description></item><item><title>15 Membuat Middleware Session Based Authentication Pada Golang</title><link>https://www.santekno.com/15-membuat-middleware-session-based-authentication-pada-golang/</link><pubDate>Sat, 01 Feb 2025 06:51:27 +0700</pubDate><guid>https://www.santekno.com/15-membuat-middleware-session-based-authentication-pada-golang/</guid><description>&lt;p>Pada artikel kali ini, kita akan membahas langkah-langkah pembuatan middleware untuk &lt;strong>Session-based Authentication&lt;/strong> menggunakan &lt;strong>Golang&lt;/strong> dan &lt;strong>library &lt;code>httprouter&lt;/code>&lt;/strong>. Middleware ini berguna untuk memvalidasi sesi pengguna di setiap request yang masuk ke aplikasi.&lt;/p></description></item><item><title>14 Membuat Middleware Api Key Authentication Pada Golang</title><link>https://www.santekno.com/14-membuat-middleware-api-key-authentication-pada-golang/</link><pubDate>Thu, 30 Jan 2025 06:50:02 +0700</pubDate><guid>https://www.santekno.com/14-membuat-middleware-api-key-authentication-pada-golang/</guid><description>&lt;p>API (Application Programming Interface) memainkan peranan yang sangat penting dalam menghubungkan berbagai aplikasi atau layanan. Untuk memastikan aplikasi Anda tetap aman dan terhindar dari akses yang tidak sah, penggunaan metode autentikasi seperti API Key Authentication sangatlah penting. Dalam artikel ini, kita akan membahas langkah demi langkah cara membuat &lt;strong>middleware API Key Authentication&lt;/strong> menggunakan &lt;code>httprouter&lt;/code> di Golang dan menambahkan &lt;strong>unit test&lt;/strong> untuk setiap fungsi guna memastikan fungsionalitasnya bekerja dengan baik.&lt;/p></description></item><item><title>13 Membuat Middleware Authentication Menggunakan Oauth Pada Golang</title><link>https://www.santekno.com/13-membuat-middleware-authentication-menggunakan-oauth-pada-golang/</link><pubDate>Tue, 28 Jan 2025 06:41:38 +0700</pubDate><guid>https://www.santekno.com/13-membuat-middleware-authentication-menggunakan-oauth-pada-golang/</guid><description>&lt;p>Di dunia pemrograman modern, keamanan aplikasi menjadi hal yang sangat penting, terutama ketika melibatkan otentikasi pengguna. Salah satu metode otentikasi yang banyak digunakan saat ini adalah OAuth 2.0, yang memungkinkan aplikasi untuk mengakses sumber daya pengguna tanpa membagikan kredensial mereka. Dalam artikel ini, kita akan membahas bagaimana cara membuat middleware otentikasi menggunakan OAuth 2.0 dengan menggunakan Go dan library &lt;code>httprouter&lt;/code>.&lt;/p></description></item><item><title>12 Membuat Static File Handler</title><link>https://www.santekno.com/12-membuat-static-file-handler/</link><pubDate>Sat, 25 Jan 2025 06:15:48 +0700</pubDate><guid>https://www.santekno.com/12-membuat-static-file-handler/</guid><description>&lt;h2 id="membuat-static-file-handler-di-golang-dengan-httprouter">Membuat Static File Handler di Golang dengan Httprouter&lt;/h2>&lt;p>Dalam aplikasi web, seringkali kita perlu menyajikan file statis seperti gambar, file CSS, atau JavaScript dari folder publik. Dengan menggunakan library &lt;a href="https://github.com/julienschmidt/httprouter" title="julienschmidt/httprouter" target="_blank" rel="noopener">julienschmidt/httprouter&lt;/a>
, Anda dapat dengan mudah membuat handler untuk melayani file statis. Artikel ini akan membahas langkah-langkah lengkap untuk mengimplementasikan static file handler dengan cara yang sederhana dan efisien di Golang.&lt;/p></description></item><item><title>11 Membuat Middleware Basic Authentication HTTP Router pada Golang</title><link>https://www.santekno.com/11-membuat-middleware-basic-authentication-http-router-pada-golang/</link><pubDate>Thu, 23 Jan 2025 06:07:35 +0700</pubDate><guid>https://www.santekno.com/11-membuat-middleware-basic-authentication-http-router-pada-golang/</guid><description>&lt;p>Basic Authentication adalah metode autentikasi sederhana di mana klien mengirimkan kredensial (username dan password) dalam header setiap permintaan HTTP. Pada artikel ini, kita akan mempelajari cara membuat middleware Basic Authentication di Golang menggunakan library &lt;a href="https://github.com/julienschmidt/httprouter" title="httprouter" target="_blank" rel="noopener">httprouter&lt;/a>
.&lt;/p></description></item><item><title>10 Membuat Middleware Authentication Menggunakan Jwt</title><link>https://www.santekno.com/10-membuat-middleware-authentication-menggunakan-jwt/</link><pubDate>Tue, 21 Jan 2025 06:11:09 +0700</pubDate><guid>https://www.santekno.com/10-membuat-middleware-authentication-menggunakan-jwt/</guid><description>&lt;p>Dalam pengembangan aplikasi modern, autentikasi adalah salah satu komponen paling penting. JSON Web Tokens (JWT) adalah metode populer untuk menangani autentikasi berbasis token. Pada artikel ini, kita akan membuat middleware autentikasi menggunakan JWT di Golang dengan library httprouter dari &lt;a href="https://github.com/julienschmidt/httprouter" title="julienschmidt" target="_blank" rel="noopener">julienschmidt&lt;/a>
.&lt;/p></description></item><item><title>09 Cara Membuat Request Response Header Menggunakan Httprouter</title><link>https://www.santekno.com/09-cara-membuat-request-response-header-menggunakan-httprouter/</link><pubDate>Sun, 19 Jan 2025 06:31:14 +0700</pubDate><guid>https://www.santekno.com/09-cara-membuat-request-response-header-menggunakan-httprouter/</guid><description>&lt;p>Dalam pengembangan aplikasi berbasis web, pengaturan header pada HTTP request dan response sangat penting untuk mengelola data, keamanan, dan metadata lainnya. Artikel ini membahas langkah-langkah untuk mengatur header pada request dan response menggunakan library &lt;a href="https://github.com/julienschmidt/httprouter" title="httprouter" target="_blank" rel="noopener">httprouter&lt;/a>
 di Golang. Dengan panduan ini, bahkan programmer pemula dapat memahami konsep ini dengan mudah.&lt;/p></description></item><item><title>10 Rekomendasi Mic Condensor untuk Podcast dengan Harga Mulai 500 Ribuan</title><link>https://www.santekno.com/10-rekomendasi-mic-condensor-untuk-podcast-dengan-harga-mulai-500-ribuan/</link><pubDate>Sat, 19 Oct 2024 10:27:40 +0700</pubDate><guid>https://www.santekno.com/10-rekomendasi-mic-condensor-untuk-podcast-dengan-harga-mulai-500-ribuan/</guid><description>&lt;p>Pernah nggak sih Anda merasa suara podcast favorit terdengar begitu jernih dan profesional, sampai-sampai Anda bertanya-tanya, &amp;ldquo;Mic apa sih yang mereka pakai?&amp;rdquo; Nah, kalau Anda sedang berpikir untuk memulai podcast atau ingin meningkatkan kualitas audio, mic kondensor bisa jadi jawabannya. Kabar baiknya, Anda nggak perlu mengeluarkan budget yang terlalu besar untuk mendapatkan mic kondensor berkualitas! Dengan harga mulai dari 500 ribuan, Anda sudah bisa mendapatkan mic yang siap bikin podcast Anda terdengar lebih profesional.&lt;/p></description></item><item><title>Cara Mengganti Nama Lengkap dan Username di MacBook Pro: Panduan Lengkap</title><link>https://www.santekno.com/cara-mengganti-nama-lengkap-dan-username-di-macbook-pro-panduan-lengkap/</link><pubDate>Wed, 02 Oct 2024 13:00:00 +0700</pubDate><guid>https://www.santekno.com/cara-mengganti-nama-lengkap-dan-username-di-macbook-pro-panduan-lengkap/</guid><description>&lt;p>Jika kamu baru saja membeli MacBook Pro baru atau ingin memperbarui nama lengkap dan username di terminal agar lebih sesuai dengan identitas kamu, maka artikel ini untuk kamu. Mengubah nama lengkap dan username di MacBook Pro bisa sedikit membingungkan, terutama jika ini pertama kalinya. Namun, jangan khawatir! Pada artikel ini, kita akan membahas langkah-langkah lengkap dan mudah diikuti untuk mengganti nama lengkap serta username pada MacBook Pro kamu, dan memastikan perubahan tersebut tercermin di terminal.&lt;/p></description></item><item><title>Membangun API dengan Golang dan GraphQL</title><link>https://www.santekno.com/membangun-api-dengan-golang-dan-graphql/</link><pubDate>Mon, 30 Sep 2024 09:14:36 +0700</pubDate><guid>https://www.santekno.com/membangun-api-dengan-golang-dan-graphql/</guid><description>&lt;p>Golang (Go) adalah bahasa pemrograman yang dikenal karena kemampuannya dalam menangani concurrent programming dan efisiensi performa. Dengan semakin meningkatnya kebutuhan aplikasi yang responsif dan scalable, GraphQL telah menjadi pilihan populer sebagai query language untuk API. GraphQL memungkinkan client untuk mengambil data yang hanya diperlukan, mengurangi over-fetching yang sering terjadi pada REST API. Dalam artikel ini, kita akan membahas cara membangun API menggunakan Golang dan GraphQL, termasuk implementasi dasar dan bagaimana cara mengoptimalkan performanya.&lt;/p></description></item><item><title>Deploy Aplikasi Golang di Server dengan Docker</title><link>https://www.santekno.com/deploy-aplikasi-golang-di-server-dengan-docker/</link><pubDate>Thu, 18 Jul 2024 16:14:36 +0700</pubDate><guid>https://www.santekno.com/deploy-aplikasi-golang-di-server-dengan-docker/</guid><description>&lt;p>Dalam pengembangan perangkat lunak modern, deployment aplikasi menjadi salah satu tahap penting yang memerlukan pengelolaan sumber daya yang efisien dan konsisten. Docker adalah platform yang memungkinkan pengembang untuk mengemas aplikasi beserta dependensinya ke dalam sebuah container yang dapat dijalankan di berbagai lingkungan. Artikel ini akan membahas cara mendeploy aplikasi Golang menggunakan Docker, serta langkah-langkah praktis untuk mengelola dan menjalankan aplikasi di lingkungan produksi. Untuk informasi lebih lanjut tentang penggunaan concurrent di Golang, Anda dapat merujuk ke &lt;a href="https://www.santekno.com/tutorial/golang/concurrent/" title="tutorial concurrent Golang" target="_blank" rel="noopener">tutorial concurrent Golang&lt;/a>
.&lt;/p></description></item><item><title>Memahami dan Menggunakan GORM sebagai ORM di Golang</title><link>https://www.santekno.com/memahami-dan-menggunakan-gorm-sebagai-orm-di-golang/</link><pubDate>Thu, 18 Jul 2024 16:14:36 +0700</pubDate><guid>https://www.santekno.com/memahami-dan-menggunakan-gorm-sebagai-orm-di-golang/</guid><description>&lt;p>GORM adalah salah satu toolkit ORM (Object-Relational Mapping) yang populer digunakan dalam pengembangan aplikasi dengan bahasa pemrograman Golang. ORM memungkinkan pengembang untuk berinteraksi dengan basis data menggunakan objek yang dipetakan ke tabel-tabel dalam database, mengabstraksi kueri SQL secara langsung. Artikel ini akan membahas secara mendalam tentang GORM, mulai dari konsep dasarnya hingga implementasi praktis dalam pengembangan aplikasi Golang.&lt;/p></description></item><item><title>Menghubungkan Golang dengan Database MySQL/PostgreSQL</title><link>https://www.santekno.com/menghubungkan-golang-dengan-database-mysql/postgresql/</link><pubDate>Thu, 18 Jul 2024 15:14:36 +0700</pubDate><guid>https://www.santekno.com/menghubungkan-golang-dengan-database-mysql/postgresql/</guid><description>&lt;p>Golang, atau Go, telah menjadi bahasa pemrograman yang sangat populer karena kemudahan penggunaannya, performa tinggi, dan dukungan kuat dari komunitas. Salah satu aspek penting dalam pengembangan aplikasi adalah kemampuan untuk berinteraksi dengan database. Dalam artikel ini, kita akan membahas cara menghubungkan aplikasi Golang dengan dua database populer, yaitu MySQL dan PostgreSQL. Dengan pemahaman ini, Anda dapat membangun aplikasi yang lebih dinamis dan kaya fitur. Kami juga akan menunjukkan bagaimana melakukan operasi dasar seperti membuat, membaca, memperbarui, dan menghapus (CRUD) data dalam database. Untuk tutorial yang lebih mendetail, Anda dapat merujuk ke &lt;a href="https://www.santekno.com/tutorial/golang/database/" title="tutorial Golang database" target="_blank" rel="noopener">tutorial Golang database&lt;/a>
.&lt;/p></description></item><item><title>Tutorial Microservices dengan Golang</title><link>https://www.santekno.com/tutorial-microservices-dengan-golang/</link><pubDate>Thu, 18 Jul 2024 15:14:36 +0700</pubDate><guid>https://www.santekno.com/tutorial-microservices-dengan-golang/</guid><description>&lt;h2 id="tutorial-microservices-dengan-golang">Tutorial Microservices dengan Golang&lt;/h2>&lt;h2 id="pengantar">Pengantar&lt;/h2>&lt;p>Microservices adalah arsitektur perangkat lunak yang memecah aplikasi monolitik menjadi serangkaian layanan kecil yang independen, masing-masing berjalan dalam prosesnya sendiri dan berkomunikasi melalui antarmuka yang ringan, biasanya HTTP. Pendekatan ini memungkinkan skalabilitas yang lebih baik, pengembangan yang lebih cepat, dan pemeliharaan yang lebih mudah. Golang, dengan performa tinggi dan dukungan untuk pemrograman bersamaan, adalah pilihan yang sangat baik untuk membangun arsitektur microservices. Dalam artikel ini, kita akan membahas cara membangun aplikasi microservices menggunakan Golang, dengan fokus pada komunikasi antar layanan, pengelolaan data, dan penanganan kesalahan. Untuk informasi lebih lanjut tentang arsitektur RESTful dan praktik terbaik, Anda dapat merujuk ke &lt;a href="https://www.santekno.com/tutorial/golang/restful-api-dan-clean-architecture/" title="tutorial Golang RESTful API dan Clean Architecture" target="_blank" rel="noopener">tutorial Golang RESTful API dan Clean Architecture&lt;/a>
.&lt;/p></description></item><item><title>Optimasi Performa Aplikasi Golang: Tips dan Trik</title><link>https://www.santekno.com/optimasi-performa-aplikasi-golang-tips-dan-trik/</link><pubDate>Thu, 18 Jul 2024 14:14:36 +0700</pubDate><guid>https://www.santekno.com/optimasi-performa-aplikasi-golang-tips-dan-trik/</guid><description>&lt;p>Optimasi performa aplikasi merupakan aspek krusial dalam pengembangan perangkat lunak modern, termasuk dalam lingkungan yang menggunakan bahasa pemrograman Golang. Dengan melakukan optimasi yang tepat, Anda dapat meningkatkan responsivitas aplikasi, mengurangi konsumsi sumber daya, dan memberikan pengalaman pengguna yang lebih baik secara keseluruhan. Artikel ini akan membahas berbagai tips dan trik untuk mengoptimalkan performa aplikasi Golang, mulai dari pengaturan konfigurasi, manajemen memori, hingga teknik-teknik pengkodean yang efisien.&lt;/p></description></item><item><title>Unit Testing di Golang: Panduan dan Praktik Terbaik</title><link>https://www.santekno.com/unit-testing-di-golang-panduan-dan-praktik-terbaik/</link><pubDate>Tue, 16 Jul 2024 15:14:36 +0700</pubDate><guid>https://www.santekno.com/unit-testing-di-golang-panduan-dan-praktik-terbaik/</guid><description>&lt;p>Unit testing adalah proses menguji bagian kecil dari kode sumber aplikasi secara terisolasi untuk memastikan bahwa setiap unit fungsional bekerja sesuai dengan yang diharapkan. Dalam konteks pengembangan perangkat lunak, unit testing adalah langkah krusial untuk mendeteksi bug lebih awal, memastikan kode tetap dapat diandalkan, dan meningkatkan kualitas perangkat lunak secara keseluruhan. Golang, dengan sintaks yang sederhana dan efisien, menyediakan dukungan yang kuat untuk unit testing melalui paket &lt;code>testing&lt;/code>. Artikel ini akan membahas cara melakukan unit testing di Golang, serta praktik terbaik yang dapat Anda terapkan untuk memastikan kode Anda tetap bersih dan bebas dari kesalahan. Untuk pemahaman lebih lanjut tentang dasar-dasar Golang, Anda dapat merujuk ke &lt;a href="https://www.santekno.com/tutorial/golang/dasar/" title="tutorial dasar Golang" target="_blank" rel="noopener">tutorial dasar Golang&lt;/a>
.&lt;/p></description></item><item><title>Laptop yang Wajib Dibeli oleh Engineer: Desain Kuat, Performa Maksimal</title><link>https://www.santekno.com/laptop-yang-wajib-dibeli-oleh-engineer-desain-kuat-performa-maksimal/</link><pubDate>Mon, 15 Jul 2024 08:36:00 +0700</pubDate><guid>https://www.santekno.com/laptop-yang-wajib-dibeli-oleh-engineer-desain-kuat-performa-maksimal/</guid><description>&lt;p>Engineer seringkali membutuhkan perangkat yang kuat dan andal untuk mendukung pekerjaan mereka yang menuntut untuk detail dan teliti. ASUS Vivobook 14 (M1405) hadir sebagai solusi yang menawarkan performa maksimal dan desain yang kokoh. Artikel ini akan membahas mengapa &lt;a href="https://www.asus.com/id/content/8-laptop-slim-terbaik-dari-asus/" title="laptop slim" target="_blank" rel="noopener">laptop slim&lt;/a>
 dari ASUS ini menjadi pilihan yang tepat untuk para engineer serta spesifikasi lengkapnya.&lt;/p></description></item><item><title>Membangun Aplikasi Web dengan Golang dan Gin</title><link>https://www.santekno.com/membangun-aplikasi-web-dengan-golang-dan-gin/</link><pubDate>Thu, 04 Jul 2024 16:10:36 +0700</pubDate><guid>https://www.santekno.com/membangun-aplikasi-web-dengan-golang-dan-gin/</guid><description>&lt;h2 id="pengantar">Pengantar&lt;/h2>&lt;p>Golang, dengan performa dan efisiensinya, semakin populer di kalangan developer untuk membangun aplikasi web. Salah satu framework web yang kuat dan cepat di Golang adalah Gin. Gin adalah framework HTTP web yang ringan dan sangat efisien, cocok untuk membangun aplikasi web dengan cepat. Dalam artikel ini, kita akan membahas cara membangun aplikasi web dengan Golang dan Gin. Kami juga akan menyertakan link ke &lt;a href="https://www.santekno.com/tutorial/golang/web-server/" title="tutorial web server Golang" target="_blank" rel="noopener">tutorial web server Golang&lt;/a>
 untuk referensi lebih lanjut.&lt;/p></description></item><item><title>Menggunakan Goroutines dan Channel di Golang</title><link>https://www.santekno.com/menggunakan-goroutines-dan-channel-di-golang/</link><pubDate>Thu, 04 Jul 2024 16:10:36 +0700</pubDate><guid>https://www.santekno.com/menggunakan-goroutines-dan-channel-di-golang/</guid><description>&lt;h2 id="pengantar">Pengantar&lt;/h2>&lt;p>&lt;strong>Concurrency&lt;/strong> adalah salah satu kekuatan utama dari Golang, menjadikannya pilihan yang sangat baik untuk mengembangkan aplikasi yang skalabel dan efisien. Dengan menggunakan goroutines dan channel, Golang memungkinkan pemrograman concurrent menjadi lebih mudah dan intuitif. Dalam artikel ini, kita akan membahas cara menggunakan goroutines dan channel di Golang, mengapa mereka penting, dan bagaimana mereka bekerja bersama untuk mencapai concurrency. Kami juga akan menyematkan link ke &lt;a href="" title="tutorial concurrent Golang">tutorial concurrent Golang&lt;/a>
 untuk referensi lebih lanjut.&lt;/p></description></item><item><title>Implementasi Rest API dengan Golang</title><link>https://www.santekno.com/implementasi-rest-api-dengan-golang/</link><pubDate>Thu, 04 Jul 2024 14:10:36 +0700</pubDate><guid>https://www.santekno.com/implementasi-rest-api-dengan-golang/</guid><description>&lt;h2 id="pengantar">Pengantar&lt;/h2>&lt;p>REST API (Representational State Transfer Application Programming Interface) adalah salah satu arsitektur yang paling umum digunakan dalam pengembangan aplikasi web. Dengan REST API, aplikasi dapat berkomunikasi satu sama lain melalui HTTP request. Golang, dengan kecepatan dan efisiensinya, adalah pilihan yang tepat untuk membangun REST API yang cepat dan dapat diandalkan. Dalam artikel ini, kita akan membahas bagaimana mengimplementasikan REST API dengan Golang menggunakan library &lt;a href="https://github.com/julienschmidt/httprouter" title="httprouter" target="_blank" rel="noopener">httprouter&lt;/a>
. Kita akan membuat API sederhana untuk mengelola daftar tugas (to-do list).&lt;/p></description></item><item><title>Panduan Lengkap Belajar Golang untuk Pemula</title><link>https://www.santekno.com/panduan-lengkap-belajar-golang-untuk-pemula/</link><pubDate>Thu, 04 Jul 2024 12:10:36 +0700</pubDate><guid>https://www.santekno.com/panduan-lengkap-belajar-golang-untuk-pemula/</guid><description>&lt;h2 id="pengantar">Pengantar&lt;/h2>&lt;p>Golang, atau Go, adalah bahasa pemrograman yang dibuat oleh Google dan dirilis pada tahun 2009. Dikenal karena kesederhanaannya dan efisiensinya dalam penanganan kinerja, Golang menjadi pilihan populer di kalangan developer untuk membangun aplikasi yang cepat dan scalable. Artikel ini bertujuan untuk memberikan panduan lengkap bagi pemula yang ingin mempelajari Golang, mulai dari pengenalan dasar hingga implementasi sederhana.&lt;/p></description></item><item><title>Harga Mesin Es Batu Kristal Memang Mahal, Tapi Bagus Untuk Investasi</title><link>https://www.santekno.com/harga-mesin-es-batu-kristal-memang-mahal-tapi-bagus-untuk-investasi/</link><pubDate>Thu, 04 Jul 2024 11:10:36 +0700</pubDate><guid>https://www.santekno.com/harga-mesin-es-batu-kristal-memang-mahal-tapi-bagus-untuk-investasi/</guid><description>&lt;p>Memulai bisnis minuman, terutama yang berbasis es, memerlukan persiapan yang matang dan peralatan yang tepat. Salah satu peralatan penting yang perlu dipertimbangkan adalah mesin es batu kristal. Mesin ini tidak hanya berfungsi untuk menghasilkan es batu berkualitas tinggi, tetapi juga dapat menjadi faktor penentu kesuksesan bisnis minuman Anda. Berikut ini adalah ulasan mengenai &lt;a href="https://wiratech.co.id/product-category/mesin-minuman/mesin-es-batu/" title="harga mesin es batu kristal" target="_blank" rel="noopener">harga mesin es batu kristal&lt;/a>
 dan mengapa investasi ini sangat menguntungkan.&lt;/p></description></item><item><title>6 Rekomendasi Mouse Gaming Terbaik dengan Harga Mulai 100 Ribuan</title><link>https://www.santekno.com/6-rekomendasi-mouse-gaming-terbaik-dengan-harga-mulai-100-ribuan/</link><pubDate>Wed, 03 Jul 2024 16:14:36 +0700</pubDate><guid>https://www.santekno.com/6-rekomendasi-mouse-gaming-terbaik-dengan-harga-mulai-100-ribuan/</guid><description>&lt;p>&lt;strong>Mouse gaming&lt;/strong> merupakan salah satu peripheral yang kualitasnya dapat memberi pengaruh cukup besar terhadap performa bermain para penggunanya. Maka dari itu, penting bagi para gamer untuk memperhatikan spesifikasi dan fitur-fitur mouse sebelum membeli. Setiap orang pastinya juga memiliki budget yang berbeda-beda untuk membeli suatu barang. Maka dari itu, artikel ini akan memberikan 6 rekomendasi &lt;a href="https://fantech.id/product-category/mouse-gaming/" title="mouse gaming" target="_blank" rel="noopener">mouse gaming&lt;/a>
 terbaik dengan harga mulai dari 100 ribuan. Yuks simak penjelasan di bawah ini!&lt;/p></description></item><item><title>ASUS Zenbook 14 OLED (UX3405): Laptop Tipis yang Ideal untuk Mahasiswa</title><link>https://www.santekno.com/asus-zenbook-14-oled-ux3405-laptop-tipis-yang-ideal-untuk-mahasiswa/</link><pubDate>Fri, 28 Jun 2024 09:09:36 +0700</pubDate><guid>https://www.santekno.com/asus-zenbook-14-oled-ux3405-laptop-tipis-yang-ideal-untuk-mahasiswa/</guid><description>&lt;p>Ketika memilih laptop untuk mendukung aktivitas akademik, mahasiswa sering kali mencari perangkat yang tipis namun bertenaga. Terutama bagi mahasiswa yang memiliki mobilitas tinggi.&lt;/p></description></item><item><title>Fitur Penting yang Harus Diperhatikan dalam Memilih Laptop Bisnis</title><link>https://www.santekno.com/fitur-penting-yang-harus-diperhatikan-dalam-memilih-laptop-bisnis/</link><pubDate>Fri, 28 Jun 2024 09:09:36 +0700</pubDate><guid>https://www.santekno.com/fitur-penting-yang-harus-diperhatikan-dalam-memilih-laptop-bisnis/</guid><description>&lt;p>Dalam dunia bisnis yang serba cepat dan dinamis, memiliki laptop yang andal dan efisien menjadi kebutuhan utama. &lt;a href="https://www.asus.com/id/content/tips-memilih-laptop-untuk-bisnis-apa-saja-yang-harus-diperhatikan/" title="laptop bisnis" target="_blank" rel="noopener">Laptop bisnis&lt;/a>
 harus mampu menangani berbagai tugas berat, dari pengolahan data hingga presentasi, serta menawarkan keamanan yang kuat untuk melindungi informasi sensitif.&lt;/p></description></item><item><title>Menjadi Influencer Sukses: Buat Rate Card Online dengan KOL.ID</title><link>https://www.santekno.com/menjadi-influencer-sukses-buat-rate-card-online-dengan-kol.id/</link><pubDate>Thu, 20 Jun 2024 06:09:36 +0700</pubDate><guid>https://www.santekno.com/menjadi-influencer-sukses-buat-rate-card-online-dengan-kol.id/</guid><description>&lt;p>Di era digital saat ini, influencer telah menjadi salah satu profesi yang paling diminati. Influencer adalah individu yang memiliki kemampuan untuk mempengaruhi opini publik melalui konten yang mereka bagikan di media sosial. Mereka biasanya memiliki pengikut yang banyak dan setia, serta mampu mempengaruhi keputusan pembelian atau pandangan pengikut mereka terhadap suatu produk, layanan, atau isu tertentu. Kemampuan untuk membangun komunitas pengikut yang setia memberikan peluang besar bagi individu untuk mengubah hobi menjadi sumber penghasilan yang menjanjikan. Namun, seiring dengan semakin banyaknya influencer, persaingan pun semakin ketat. Oleh karena itu, penting bagi setiap influencer untuk memiliki strategi yang tepat dalam menawarkan layanan mereka kepada merek-merek besar maupun usaha kecil yang ingin bekerja sama.&lt;/p></description></item><item><title>Golang Framework Paling Populer dan Sering Dipakai</title><link>https://www.santekno.com/golang-framework-paling-populer-dan-sering-dipakai/</link><pubDate>Sun, 26 May 2024 20:52:48 +0700</pubDate><guid>https://www.santekno.com/golang-framework-paling-populer-dan-sering-dipakai/</guid><description>&lt;p>Dalam dunia pengembangan aplikasi, seiring dengan perkembangan teknologi yang semakin pesat, kebutuhan akan framework yang efisien dan mudah digunakan semakin meningkat. Golang, atau sering juga disebut Go, adalah bahasa pemrograman yang berkembang dengan cepat dan banyak diterima oleh komunitas pengembang. Salah satu alasan utama popularitas Golang adalah karena performa dan efisiensinya yang tinggi. Untuk memaksimalkan kemampuan bahasa ini, banyak framework telah dikembangkan. Artikel ini akan membahas beberapa framework Golang paling populer dan sering dipakai dalam pengembangan aplikasi.&lt;/p></description></item><item><title>05 Implementasi Singleton Logger Logrus Pada Golang</title><link>https://www.santekno.com/05-implementasi-singleton-logger-logrus-pada-golang/</link><pubDate>Wed, 01 May 2024 05:41:16 +0700</pubDate><guid>https://www.santekno.com/05-implementasi-singleton-logger-logrus-pada-golang/</guid><description>&lt;p>Pada kali ini kita akan mencoba untuk mengimplementasikan Singleton Design Pattern. Apa itu Singletone? Bisa kamu baca terlebih dahulu artikel &lt;a href="https://www.santekno.com/cara-implementasi-singleton-design-pattern-golang/" title="disini">disini&lt;/a>
. Agar lebih paham lagi jadi &lt;strong>Singleton&lt;/strong> adalah desain standar perangkat lunak yang memberikan jaminan keberadaan hanya satu &lt;em>instance&lt;/em> kelas, sambil mempertahankan titik akses global ke objeknya. Singleton adalah pola desain yang membatasi &lt;em>instantiation&lt;/em> ke suatu objek, kita harus memastikan bahwa ini hanya terjadi sekali.&lt;/p></description></item><item><title>04 Mempelajari Field, Entry dan Hook Logrus Pada Golang</title><link>https://www.santekno.com/04-mempelajari-field-entry-dan-hook-logrus-pada-golang/</link><pubDate>Tue, 30 Apr 2024 05:41:16 +0700</pubDate><guid>https://www.santekno.com/04-mempelajari-field-entry-dan-hook-logrus-pada-golang/</guid><description>&lt;p>Pada kali ini kita akan mencoba mempelajari Logrus lebih mendalam yaitu mengenai Field, entry dan Hook. Fitur-fitur yang disediakan oleh Logrus untuk kebutuhan Logger ini sangat bermanfaat sekali bagi kita ketika kita membutuhkan beberapa fitur yang menunjang bisnis kita. Misalkan &lt;code>field&lt;/code> ini digunakan untuk menyisipkan data atau informasi ke dalam log dan beberapa lain yang akan kita bahas secara rinci.&lt;/p></description></item><item><title>03 Formatter dan Output Logrus Pada Golang</title><link>https://www.santekno.com/03-formatter-dan-output-logrus-pada-golang/</link><pubDate>Mon, 29 Apr 2024 05:41:16 +0700</pubDate><guid>https://www.santekno.com/03-formatter-dan-output-logrus-pada-golang/</guid><description>&lt;p>Pada kali ini kita akan mempelajari dan membahas bagaimana Logger itu memiliki format dan output. Secara default Logger itu pasti memiliki format yang sudah ditentukan apakah itu JSON, file ataupun dalam bentuk format sendiri.&lt;/p></description></item><item><title>02 Logger dan Leveling Logrus Pada Golang</title><link>https://www.santekno.com/02-logger-dan-leveling-logrus-pada-golang/</link><pubDate>Sun, 21 Apr 2024 05:41:16 +0700</pubDate><guid>https://www.santekno.com/02-logger-dan-leveling-logrus-pada-golang/</guid><description>&lt;p>Setelah pada artikel sebelumnya kita sudah membuat projek baru untuk mempelajari lebih dalam tentang Golang Logging, maka kita akan coba bagaimana log tersebut kita inisialisasi. Materi kali ini kita akan mencobanya menggunakan fungsi unit test sehingga kita lebih mudah untuk mendeklarasikannya.&lt;/p></description></item><item><title>01 Pengenalan Logging Pada Golang</title><link>https://www.santekno.com/01-pengenalan-logging-pada-golang/</link><pubDate>Sat, 20 Apr 2024 05:41:16 +0700</pubDate><guid>https://www.santekno.com/01-pengenalan-logging-pada-golang/</guid><description>&lt;h2 id="pengenalan-logging">Pengenalan Logging&lt;/h2>&lt;p>Logging yang berisikan informasi dari sebuah sistem bisa memberikan pesan yang jelas terkait suatu kejadian yang terjadi pada sistem kita. Logging bukan hanya untuk kebutuhan menampilkan informasi dan kadang juga bisa digunakan sebagai proses &lt;em>debugging&lt;/em> ketika terjadi masalah pada sistem yang sudah kita buat.&lt;/p></description></item><item><title>Belajar Logging Golang</title><link>https://www.santekno.com/tutorial/golang/logging/</link><pubDate>Tue, 16 Apr 2024 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/logging/</guid><description>&lt;p>Belajar Golang Logging ini merupakan hal yang perlu kita pelajari juga terutama ketika kita sudah menjalankan projek service kita ke dalam server &lt;em>production&lt;/em> yang mana ketika terjadi kesalahan sistem kita bisa langsung mengetahui informasi kejadian-kejadian yang terjadi pada sistem. Untuk mengetahui semua kejadian yang diproses oleh sistem kita, maka kita perlu mekanisme logging yang menyimpan informasi setiap kejadian yang ada pada sistem kita.&lt;/p></description></item><item><title>12 Membuat Dependecy Injection Library Google Wire</title><link>https://www.santekno.com/12-membuat-dependecy-injection-library-google-wire/</link><pubDate>Tue, 02 Apr 2024 10:41:16 +0700</pubDate><guid>https://www.santekno.com/12-membuat-dependecy-injection-library-google-wire/</guid><description>&lt;p>Kali ini kita akan memcoba membuat dependency Injection menggunakan Library Wire dari github.com/google/wire. Kegunaan dari library ini yaitu kita bisa membuat dependency yang begitu banyak bisa kita generate langsung dengan ringkas dan mudah.&lt;/p></description></item><item><title>11 Tambah Unit Test Menggunakan Mockery</title><link>https://www.santekno.com/11-tambah-unit-test-menggunakan-mockery/</link><pubDate>Mon, 01 Apr 2024 10:41:16 +0700</pubDate><guid>https://www.santekno.com/11-tambah-unit-test-menggunakan-mockery/</guid><description>&lt;p>Pada tahapan ini kita akan membutuhkan dependency sebagai berikut
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="bash">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-muted-foreground/50">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">bash&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">brew install mockery&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>10 Menambahkan Authentication Sederhana</title><link>https://www.santekno.com/10-menambahkan-authentication-sederhana/</link><pubDate>Sat, 30 Mar 2024 10:41:16 +0700</pubDate><guid>https://www.santekno.com/10-menambahkan-authentication-sederhana/</guid><description>&lt;p>Pada tahapan ini kita akan mencoba menambahkan &lt;em>Authentication&lt;/em> sederhana dengan menggunakan &lt;em>middleware&lt;/em> pada Golang. Perlu teman-teman ketahui bahwa middleware adalah proses mencegat suatu API yang mana sebelum service ketika diakses menuju ke dalam &lt;em>handler&lt;/em> layer maka akan melewati &lt;em>middleware&lt;/em> layer ini (yang akan kita buat) untuk menangkap dan memproses sesuatu untuk kebutuhan tertentu. Misalkan, pada kasus ini kita akan mencekat proses service untuk melihat apakah API tersebut memiliki header dengan ketentuan key &lt;code>X-API-Key&lt;/code>.&lt;/p></description></item><item><title>Deployement Service ke Google Kubernetes Engine Cloud (GKE)</title><link>https://www.santekno.com/deployement-service-ke-google-kubernetes-engine-cloud-gke/</link><pubDate>Sun, 10 Mar 2024 13:25:16 +0700</pubDate><guid>https://www.santekno.com/deployement-service-ke-google-kubernetes-engine-cloud-gke/</guid><description>&lt;p>Pada kali ini kita akan coba untuk melakukan deployment service kita ke dalam Server Google Cloud Platform. Pada Google Cloud sudah disediakan khusus untuk deployment berbentuk Kubernetes yaitu berupa Google Kubernetes Engine sehingga ketika kita ingin mendeploy service kita menjadi lebih mudah.&lt;/p></description></item><item><title>Implementasi Microservices Architecture menggunakan Kubernetes</title><link>https://www.santekno.com/implementasi-microservices-architecture-menggunakan-kubernetes/</link><pubDate>Sat, 09 Mar 2024 13:25:16 +0700</pubDate><guid>https://www.santekno.com/implementasi-microservices-architecture-menggunakan-kubernetes/</guid><description>&lt;p>Pada kesempatan ini kita akan mencoba membuat aplikasi yang sudah mengimplementasikan Microservice Architecture dengan menggunakan Kubernetes. Agar lebih tergambar bagaimana kita akan mencoba membuatnya yaitu kita bisa melihat gambar dibawah ini.&lt;/p></description></item><item><title>Memahami Kubernetes Services</title><link>https://www.santekno.com/memahami-kubernetes-services/</link><pubDate>Fri, 08 Mar 2024 13:25:16 +0700</pubDate><guid>https://www.santekno.com/memahami-kubernetes-services/</guid><description>&lt;p>Kubernetes Service memberikan komunikasi antar komponen di dalam ataupun diluar dari aplikasi. Kubernetes Services ini akan membantu menghubungkan aplikasi satu sama lain terhubung dengan pengguna juga.&lt;/p></description></item><item><title>Memahami Kubernetes Networking</title><link>https://www.santekno.com/memahami-kubernetes-networking/</link><pubDate>Thu, 07 Mar 2024 13:25:16 +0700</pubDate><guid>https://www.santekno.com/memahami-kubernetes-networking/</guid><description>&lt;p>Networking pada Kubernetes memang sangat challenging karena beberapa perlu kamu tahu bagaimana jaringan komputer berkomunikasi. Kubernetes memiliki mekanisme sharing machine atau virtual machine setiap antara aplikasi-aplikasi. Maka Kubernetes bekerja menggunakan ports yang mana ports tersebut tidak boleh sama dengan yang lainnya untuk menghindari konflik ports.&lt;/p></description></item><item><title>Memahami Kubernetes Deployments</title><link>https://www.santekno.com/memahami-kubernetes-deployments/</link><pubDate>Wed, 06 Mar 2024 13:25:16 +0700</pubDate><guid>https://www.santekno.com/memahami-kubernetes-deployments/</guid><description>&lt;p>Kita akan belajar bagaimana Kubernetes bekerja dalam proses deployment. Kuberntes bisa memberikan beberapa tags &lt;em>environment&lt;/em> sehingga kita bisa tahu deployment itu dengan label apa.&lt;/p></description></item><item><title>Memahami Kubernetes Replica Controller dan Replicaset</title><link>https://www.santekno.com/memahami-kubernetes-replica-controller-dan-replicaset/</link><pubDate>Tue, 05 Mar 2024 13:25:16 +0700</pubDate><guid>https://www.santekno.com/memahami-kubernetes-replica-controller-dan-replicaset/</guid><description>&lt;h2 id="replica-controller">Replica Controller&lt;/h2>&lt;p>Replica Controller adalah mekanisme yang digunakan untuk melakukan replikasi aplikasi dan kita bisa handle ketika aplikasi kita terdapat &lt;em>failure&lt;/em> atau melakukan inisialisasi POD yang &lt;em>failed&lt;/em>. Maka dengan Replica controller ini kita bisa mengatur scale suatu aplikasi kita yang sedang berjalan.&lt;/p></description></item><item><title>Memahami PODs Kubernetes</title><link>https://www.santekno.com/memahami-pods-kubernetes/</link><pubDate>Mon, 04 Mar 2024 13:25:16 +0700</pubDate><guid>https://www.santekno.com/memahami-pods-kubernetes/</guid><description>&lt;p>Kita akan mencoba membuat &lt;code>pod&lt;/code> menggunakan YAML file pada Kubernetes. Kubernetes biasanya menggunakan YAML file untuk membuat suatu objek-objek konfigurasi terkait PODs, replica, deployment, service dan lainnya.&lt;/p></description></item><item><title>Mempelajari Kembali Sintaks YAML</title><link>https://www.santekno.com/mempelajari-kembali-sintaks-yaml/</link><pubDate>Sun, 03 Mar 2024 13:25:16 +0700</pubDate><guid>https://www.santekno.com/mempelajari-kembali-sintaks-yaml/</guid><description>&lt;h2 id="yaml-konfigurasi">YAML Konfigurasi&lt;/h2>&lt;p>&lt;strong>A YAML&lt;/strong> file digunakan untuk mewakili data. Data konfigurasi kasus di sini adalah perbandingan cepat data sampel dalam tiga format berbeda.&lt;/p></description></item><item><title>Memahami Arsitektur Kubernetes</title><link>https://www.santekno.com/memahami-arsitektur-kubernetes/</link><pubDate>Sat, 02 Mar 2024 13:25:16 +0700</pubDate><guid>https://www.santekno.com/memahami-arsitektur-kubernetes/</guid><description>&lt;h2 id="era-deployments">Era Deployments&lt;/h2> 
&lt;p style="text-align: center">
 &lt;img
 src="https://www.santekno.com/images/kubernetes/container-evolution.svg"
 title="evolution deployments" alt="evolution deployments"
 class="lazyload"
 width="100%" 
 />
&lt;/p>

&lt;p>Pada gambar diatas bisa terlihat era deployment saat ini.&lt;/p></description></item><item><title>Belajar Kubernetes bagi Pemula</title><link>https://www.santekno.com/tutorial/kubernetes/belajar-bagi-pemula/</link><pubDate>Fri, 01 Mar 2024 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/kubernetes/belajar-bagi-pemula/</guid><description>&lt;p>&lt;strong>Belajar Kubernetes&lt;/strong> ini merupakan proses pembelajaran yang sangat penting bagi kita yang belajar infrasturktur cloud baik GCP (Google Cloud), AWS (Amazon), dan Azure yang merupakan platform &lt;em>open-source&lt;/em> yang digunakan untuk melakukan &lt;em>management&lt;/em> aplikasi berbentuk kontainerisasi, serta memberikan beberapa konfigurasi otomatis secara deklaratif. Ekosistem Kubernetes ini berkembang dengan pesat dari mulai &lt;em>service&lt;/em>, &lt;em>support&lt;/em> bahkan beberapa fitur Kubernetes yang saat ini semakin meluas.&lt;/p></description></item><item><title>Pengenalan Belajar Kubernetes</title><link>https://www.santekno.com/pengenalan-belajar-kubernetes/</link><pubDate>Fri, 01 Mar 2024 13:25:16 +0700</pubDate><guid>https://www.santekno.com/pengenalan-belajar-kubernetes/</guid><description>&lt;h2 id="requirements">Requirements&lt;/h2>&lt;ul>
&lt;li>Colima&lt;/li>
&lt;li>Docker&lt;/li>
&lt;li>Kubernetes&lt;/li>
&lt;li>Minikube&lt;/li>
&lt;/ul>
&lt;h2 id="pengertian-kubernetes-atau-k8s">Pengertian Kubernetes atau K8s&lt;/h2>&lt;p>Kita lebih sering disebut yaitu containterize + orchestration
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="bash">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-muted-foreground/50">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">bash&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">container + orchestration&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>Belajar GORM ORM Library Golang</title><link>https://www.santekno.com/tutorial/golang/gorm/</link><pubDate>Thu, 22 Feb 2024 13:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/gorm/</guid><description>&lt;p>GORM adalah pustaka Object-Relational Mapping (ORM) untuk bahasa pemrograman Go yang dirancang untuk memudahkan interaksi antara aplikasi dan basis data relasional. Dengan GORM, pengembang dapat menulis kode yang lebih bersih dan terstruktur, serta mengelola operasi basis data seperti Create, Read, Update, dan Delete (CRUD) secara efisien.&lt;/p></description></item><item><title>09 Membuat Konfigurasi HTTP Router, HTTP Server dan Koneksi Database</title><link>https://www.santekno.com/09-membuat-konfigurasi-http-router-http-server-dan-koneksi-database/</link><pubDate>Mon, 29 Jan 2024 10:41:16 +0700</pubDate><guid>https://www.santekno.com/09-membuat-konfigurasi-http-router-http-server-dan-koneksi-database/</guid><description>&lt;p>Pada tahapan ini kita akan membuat &lt;code>main&lt;/code> fungsi dari projek yang sudah kita buat. Pada fungsi &lt;code>main&lt;/code> kita akan menambahkan beberapa inisialisasi fungsi yang memang pada main fungsi itu digunakan untuk menginisialisasi semua &lt;code>resources&lt;/code> yang dibutuhkan oleh projek misalkan koneksi database, inisialisasi handler, usecase dan repository yang sebelumnya sudah kita buat.&lt;/p></description></item><item><title>08 Menambahkan Validator Request Menggunakan Golang Playground</title><link>https://www.santekno.com/08-menambahkan-validator-request-menggunakan-golang-playground/</link><pubDate>Sun, 28 Jan 2024 10:41:16 +0700</pubDate><guid>https://www.santekno.com/08-menambahkan-validator-request-menggunakan-golang-playground/</guid><description>&lt;p>Pada tahapan ini kita akan menambahkan validasi untuk setiap request yang dikirim ke dalam API. Misalkan pada request tambah, ubah dan hapus. Validasi yang kita gunakan adalah package github.com/go-playground/validator.&lt;/p></description></item><item><title>07 Membuat Handler Sebagai Data Delivery Layer</title><link>https://www.santekno.com/07-membuat-handler-sebagai-data-delivery-layer/</link><pubDate>Sat, 27 Jan 2024 10:41:16 +0700</pubDate><guid>https://www.santekno.com/07-membuat-handler-sebagai-data-delivery-layer/</guid><description>&lt;p>Pada tahapan ini kita akan melanjutkan projek yang sudah kita buat dengan membuat Delivery Layer. Layer ini seperti yang dijelaskan sebelumnya yaitu layer yang menghubungkan request user dengan logic layer.&lt;/p></description></item><item><title>06 Membuat Usecase Sebagai Data Logic</title><link>https://www.santekno.com/06-membuat-usecase-sebagai-data-logic/</link><pubDate>Fri, 26 Jan 2024 10:41:16 +0700</pubDate><guid>https://www.santekno.com/06-membuat-usecase-sebagai-data-logic/</guid><description>&lt;p>Pada kali ini, kita akan melanjutkan projek pembuatan RESTFul API menggunakan Golang ini dengan membuat fungsi &lt;em>Usecase&lt;/em>. Sebelumnya pernah dibahas bahwa &lt;em>Usecase Layer&lt;/em> ini akan berisikan data &lt;em>logic&lt;/em> atau pengolahan data yang mana digunakan beberapa logic yang dibutuhkan dalam sebuah proses.&lt;/p></description></item><item><title>05 Membuat Repository Sebagai Data Akses</title><link>https://www.santekno.com/05-membuat-repository-sebagai-data-akses/</link><pubDate>Tue, 23 Jan 2024 10:41:16 +0700</pubDate><guid>https://www.santekno.com/05-membuat-repository-sebagai-data-akses/</guid><description>&lt;p>Pada kali ini kita akan membuat Article Repository yang kebutuhannya untuk komunikasi ke dalam database MySQL. Kita memiliki tabel pada MySQL pada sebelumnya sudah kita jelaskan, lalu kita akan membuat fungsi-fungsi yang nantinya akan digunakan untuk kebutuhan spesifikasi API. Berikut ini fungsi yang akan kita seperti ini&lt;/p></description></item><item><title>04 Menerapkan Clean Architecture pada Project</title><link>https://www.santekno.com/04-menerapkan-clean-architecture-pada-project/</link><pubDate>Mon, 22 Jan 2024 10:41:16 +0700</pubDate><guid>https://www.santekno.com/04-menerapkan-clean-architecture-pada-project/</guid><description>&lt;p>Pada tahapan ini kita akan mencoba menerapkan Clean Architecture yang mana konsep ini menurut Uncle Bob itu memiliki 4 layer yaitu&lt;/p></description></item><item><title>Belajar RESTFul API Clean Architecture</title><link>https://www.santekno.com/tutorial/golang/restful-api-dan-clean-architecture/</link><pubDate>Sat, 20 Jan 2024 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/restful-api-dan-clean-architecture/</guid><description>&lt;p>Belajar RESTFul API dengan mencoba metode atau konsep &lt;em>Clean Architecture&lt;/em> yang mana ini merupakan konsep yang membagi menjadi beberapa komponen yang memiliki sifat independen dan tidak bergantung pada library external yang spesifik. Sehinnga pada konsep ini kita tidak terpaku secara spesifik terhadap &lt;em>Framework&lt;/em> tertentu atau pun bergantung pada spesifik &lt;em>database&lt;/em> tertentu.&lt;/p></description></item><item><title>03 Membuat Database pada MySQL Golang</title><link>https://www.santekno.com/03-membuat-database-pada-mysql-golang/</link><pubDate>Sun, 21 Jan 2024 05:41:16 +0700</pubDate><guid>https://www.santekno.com/03-membuat-database-pada-mysql-golang/</guid><description>&lt;p>Pada tahap ini kita akan mencoba membuat database pada MySQL untuk persiapan membuat tabel-nya juga akan nantinya kita gunakan untuk membuat API dengan data yang ada pada database. Sebelumnya jika teman-teman belum punya MySQL pada komputer atau laptop maka persiapkan terlebih dahulu instal MySQL dan Database Editornya bisa menggunakan DBeaver, MySQL Workbench atau yang biasa teman-teman pakai untuk management database.&lt;/p></description></item><item><title>Membuat Generator Image Thumbnail Menggunakan Pipeline Pattern</title><link>https://www.santekno.com/membuat-generator-image-thumbnail-menggunakan-pipeline-pattern/</link><pubDate>Mon, 01 Jan 2024 05:41:16 +0700</pubDate><guid>https://www.santekno.com/membuat-generator-image-thumbnail-menggunakan-pipeline-pattern/</guid><description>&lt;p>Generate Image menggunakan Golang juga kita gunakan untuk mempermudah editor agar tidak perlu melakukan edit memakai aplikasi lain sehingga kita bisa mudah menaruh image yang diinginkan. Nah saat ini santekno akan coba membuat generator Image Thumbnail yang sudah ada pada tutorial ini. Misalkan kita ingin membuat thumbnail ini image-nya menjadi lebih ringkas daripada image yang aslinya. Maka kita perlu melakukan convert menjadi file yang lebih ringan dengan ukuran yang kecil. Bagaimana jika image tersebut banyak maka jika kita pakai seperti biasa Golang sequencial maka akan menjadi lama saat kita melakukan eksekusinya. Maka, kita akan coba bandingkan bagaimana proses generate image Thumbnail ini dengan golang yang sequencial dengan menggunakan concurrent Pipeline Patter.&lt;/p></description></item><item><title>Membuat Web Crawler menggunakan Golang</title><link>https://www.santekno.com/membuat-web-crawler-menggunakan-golang/</link><pubDate>Wed, 20 Dec 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/membuat-web-crawler-menggunakan-golang/</guid><description>&lt;p>Web Crawler sering kita gunakan untuk mengambil sesuatu pada suatu website sehingga kita mendapatkan konten yang dibutuhkan. Hal ini biasanya digunakan untuk kebutuhan konten. Dalam hal ini kita akan coba menggunakan Golang untuk membuat Web Crawler sederhana dan akan mengambil beberapa konten seperti URL yang ada pada halaman suatu website tersebut.&lt;/p></description></item><item><title>02 Membuat API Specification menggunakan OpenAPI</title><link>https://www.santekno.com/02-membuat-api-specification-menggunakan-openapi/</link><pubDate>Thu, 02 Nov 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/02-membuat-api-specification-menggunakan-openapi/</guid><description>&lt;p>Pada tahap ini kita akan mencoba membuat semua API Spesification yang berhubungan dengan API yang akan kita buat sehingga kita perlu dokumentasi yang lengkap dengan menggunakan OpenAPI. Jika teman-teman belum memasang OpenAPI di repositorynya maka coba baca terlebih dahulu artikel sebelumnya.&lt;/p></description></item><item><title>01 Pengenalan RESTful Pada Golang</title><link>https://www.santekno.com/01-pengenalan-restful-pada-golang/</link><pubDate>Wed, 01 Nov 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/01-pengenalan-restful-pada-golang/</guid><description>&lt;h2 id="pengenalan-restful-api">Pengenalan RESTFul API&lt;/h2>&lt;p>Dikutip dari website amazon, &lt;strong>API RESTful&lt;/strong> adalah antarmuka yang digunakan oleh dua sistem komputer untuk bertukar informasi secara aman melalui internet. Sebagian besar aplikasi bisnis harus berkomunikasi dengan aplikasi internal dan pihak ketiga lainnya untuk melakukan berbagai tugas. Misalnya, untuk menghasilkan slip gaji bulanan, sistem akun internal Anda harus berbagi data dengan sistem perbankan pelanggan Anda untuk mengotomatiskan tagihan dan berkomunikasi dengan aplikasi absensi internal. API RESTful mendukung pertukaran informasi ini karena mengikuti standar komunikasi perangkat lunak yang aman, andal, dan efisien.&lt;/p></description></item><item><title>Golang JSON 09 Penggunaan Streaming Encoder</title><link>https://www.santekno.com/golang-json-09-penggunaan-streaming-encoder/</link><pubDate>Tue, 17 Oct 2023 07:41:16 +0700</pubDate><guid>https://www.santekno.com/golang-json-09-penggunaan-streaming-encoder/</guid><description>&lt;h2 id="pengenalan-stream-encoder">Pengenalan Stream Encoder&lt;/h2>&lt;p>Selain JSON Decoder, pada package JSON ini juga bisa mendukung Encoder yang digunakan langsung JSON ke dalam &lt;code>io.Writer&lt;/code>. Maka dengan begitu kita tidak perlu menyimpan JSON datanya terlebih dahulu ke dalam suatu variabel &lt;code>string&lt;/code> atau &lt;code>[]byte&lt;/code>, jadi kita bisa langsung saja menulis ke dalam &lt;code>io.Writer&lt;/code>.&lt;/p></description></item><item><title>Golang JSON 08 Penggunaan Streaming Decoder</title><link>https://www.santekno.com/golang-json-08-penggunaan-streaming-decoder/</link><pubDate>Mon, 16 Oct 2023 07:41:16 +0700</pubDate><guid>https://www.santekno.com/golang-json-08-penggunaan-streaming-decoder/</guid><description>&lt;h2 id="pengenalan-stream-decoder">Pengenalan Stream Decoder&lt;/h2>&lt;p>Pada artikel sebelumnya kita pernah belajar package JSON dengan menggunakan konversi data JSOn yang sudah dalam bentuk variabel dan data string atau kita pakai &lt;code>[]byte&lt;/code>. Kadang-kadang data JSON itu berasa dari input berupa io.Reader yaitu bisa dalam bentuk file, Network ataupun request body. Maka kita bisa saja langsung membaca semua data tersebut terlebih dahulu lalu simpan di dalam suatu variabel dan baru kita konversi dari JSON, namun ini kita tidak perlu melakukannya karena pada package JSON memiliki fitur untuk membaca data dari &lt;code>Stream&lt;/code>.&lt;/p></description></item><item><title>Golang JSON 07 Penggunaan Maps</title><link>https://www.santekno.com/golang-json-07-penggunaan-maps/</link><pubDate>Sun, 15 Oct 2023 07:41:16 +0700</pubDate><guid>https://www.santekno.com/golang-json-07-penggunaan-maps/</guid><description>&lt;h2 id="penggunaan-map">Penggunaan Map&lt;/h2>&lt;p>Saat kita menggunakan JSON kita kadang menemukan kasus data JSON yang dinamis yang artinya atribut yang dibentuk JSON tidak tentu, bisa bertambah bisa berkurang dan bahkan tidak tetap. Maka kasus seperti ini jika kita &lt;code>unmarshal&lt;/code> menggunakan Struct akan menyulitkan karena pada struct kita harus definisikan semua atribut-nya.&lt;/p></description></item><item><title>Golang JSON 06 Mengenal JSON Tags</title><link>https://www.santekno.com/golang-json-06-mengenal-json-tags/</link><pubDate>Sat, 14 Oct 2023 07:41:16 +0700</pubDate><guid>https://www.santekno.com/golang-json-06-mengenal-json-tags/</guid><description>&lt;h2 id="pengenalan-json-tags">Pengenalan JSON Tags&lt;/h2>&lt;p>Secara default jika kita membuat struct dan di marshal akan dimapping sesuai dengan nama atribut yang sama dan &lt;em>case sensitive&lt;/em>. Lalu bagaimana jika kita ingin membedakan style antara penamaan atribute pada struct dengan yang di convert ke dalam JSON? Misalkan pada struct kita menggunakan &lt;code>PascalCase&lt;/code> tetapi pada JSON kita ingin menggunakan &lt;code>snake_case&lt;/code>. Untuk mendukung hal tersebut maka package json sudah mendukung &lt;strong>Tags Reflection&lt;/strong> yaitu tags yang bisa menyesuaikan nama json yang nanti akan kita convert ke dalam JSON tersebut sehingga tribute yang ada di struct itu akan di konversi sesuai dengan penamaan ke dalam JSON.&lt;/p></description></item><item><title>05 Mengenal JSON Array</title><link>https://www.santekno.com/05-mengenal-json-array/</link><pubDate>Sat, 14 Oct 2023 06:41:16 +0700</pubDate><guid>https://www.santekno.com/05-mengenal-json-array/</guid><description>&lt;h2 id="pengenalan-json-array">Pengenalan JSON Array&lt;/h2>&lt;p>Selain JSON berbentuk Objek, biasanya dalam JSOn juga kita bisa menggunakan tipe data Array. Sebenarnya array JSON itu mirip seperti yang ada pada JavaScript yang mana di dalamnya terdapat tipe data primitif atau tipe data komplek seperti array objek.&lt;/p></description></item><item><title>04 Mengenal Decode JSON</title><link>https://www.santekno.com/04-mengenal-decode-json/</link><pubDate>Fri, 13 Oct 2023 06:41:16 +0700</pubDate><guid>https://www.santekno.com/04-mengenal-decode-json/</guid><description>&lt;h2 id="pengenalan-decode-json">Pengenalan Decode JSON&lt;/h2>&lt;p>Pada artikel sebelumnya kita sudah belajar encode JSON dan cara membuat JSON Object, maka selanjutnya kita akan mempelajari bagaimana untuk mentranslate dari JSON objek menjadi ke dalam objek struct pada Golang. Konversi dari JSON ke dalam Golang objek struct ini sering kita sebut dengan &lt;code>decode&lt;/code>.&lt;/p></description></item><item><title>03 Mengenal JSON Objek</title><link>https://www.santekno.com/03-mengenal-json-objek/</link><pubDate>Thu, 12 Oct 2023 06:41:16 +0700</pubDate><guid>https://www.santekno.com/03-mengenal-json-objek/</guid><description>&lt;h2 id="pengenalan-json-object">Pengenalan JSON Object&lt;/h2>&lt;p>Pada artikel sebelumnya kita sudah mempelajari encode data seperti &lt;code>string&lt;/code>, &lt;code>number&lt;/code>, &lt;code>boolean&lt;/code> dan tipe primitif lainnya. Tetapi ada satu case pada unit test yang dibuat berupa struct objek. Nah pada kali ini kita akan lebih dalam lagi mempelajari objek dari JSOn tersebut. Data JSON bentuknya objek dan Array sedangkan valuenya bisa berupa objek lagi atau langsung data dengan tipe primitif lainnya.&lt;/p></description></item><item><title>02 Encode JSON</title><link>https://www.santekno.com/02-encode-json/</link><pubDate>Wed, 11 Oct 2023 06:41:16 +0700</pubDate><guid>https://www.santekno.com/02-encode-json/</guid><description>&lt;h2 id="pengenalan-encode-json">Pengenalan Encode JSON&lt;/h2>&lt;p>Bahasa Golang sudah menyediakan fungsi untuk kebutuhan konversi data JSON yaitu kita bisa menggunakan fungsi ini
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nx">json&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">Marshal&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kd">interface&lt;/span>&lt;span class="p">{})&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>01 Pengenalan Package</title><link>https://www.santekno.com/01-pengenalan-package/</link><pubDate>Tue, 10 Oct 2023 06:41:16 +0700</pubDate><guid>https://www.santekno.com/01-pengenalan-package/</guid><description>&lt;h2 id="pengenalan-json">Pengenalan JSON&lt;/h2>&lt;p>JSON singkatan dari &lt;strong>JavaScript Object Notation&lt;/strong> yang merupakan struktur format data yang bentuknya seperti Onject dari JavaScript. JSON ini merupakan format data yang paling banyak digunakan saat ini untuk membuat RESTful API. Semua bahasa pun bisa menggunakan format JSON ini karena bisa menjadi standar format agar bisa komunikasi antar service walaupun menggunakan berbeda bahasanya. Misalkan satu service menggunakan Golang dan service lainnya menggunakan Java, maka agar bisa berkomunikasi dengan baik maka perlu format yang sama yaitu salah satunya JSON ini yang bisa menyeragamkan format dari kedua bahasa tersebut yang ada pada service kita. Anda bisa kunjungi &lt;a href="https://json.org/json-en.html" title="https://json.org/json-en.html" target="_blank" rel="noopener">https://json.org/json-en.html&lt;/a>
 jika ingin lebih lanjut mengempelajarinya.&lt;/p></description></item><item><title>08 Membuat Middleware Router</title><link>https://www.santekno.com/08-membuat-middleware-router/</link><pubDate>Sun, 08 Oct 2023 06:41:16 +0700</pubDate><guid>https://www.santekno.com/08-membuat-middleware-router/</guid><description>&lt;h2 id="pengertian-middleware">Pengertian Middleware&lt;/h2>&lt;p>HttpRouter adalah library untuk membuat http router saja tidak memiliki fitur-fitur lain selain router dan router ini merupakan implememntasi dari &lt;code>http.Handler&lt;/code> bawaan dari Golang sendiri sehingga untuk membuat middleware kita bisa membuatnya sendiri seperti yang pernah kita buat pada Golang Web postingan sebelumnya yaitu HTTP Middleware.&lt;/p></description></item><item><title>07 Menangani Method Not Allowed</title><link>https://www.santekno.com/07-menangani-method-not-allowed/</link><pubDate>Sat, 07 Oct 2023 06:41:16 +0700</pubDate><guid>https://www.santekno.com/07-menangani-method-not-allowed/</guid><description>&lt;h2 id="pengertian-method-not-allowed">Pengertian Method Not Allowed&lt;/h2>&lt;p>Ketika kita menggunakan ServerMux, kita kita tidak bisa menentukan HTTP Method apa yang akan kita gunakan pada Handler. Namun pada Router yang sedang kita gunakan ini, kita bisa menentukan HTTP Method apa yang ingin kita gunakan sehingga pada client akan mengirim method yang sesuai dengan router yang sudah kita tentukan. Jika tidak sesuai dengan ketentuan pada Router maka akan terjadi error Method Not Allowed.&lt;/p></description></item><item><title>06 Menangani Halaman Not Found</title><link>https://www.santekno.com/06-menangani-halaman-not-found/</link><pubDate>Fri, 06 Oct 2023 06:41:16 +0700</pubDate><guid>https://www.santekno.com/06-menangani-halaman-not-found/</guid><description>&lt;h2 id="pengertian-not-found-handler">Pengertian Not Found Handler&lt;/h2>&lt;p>Selain Router bisa mengendalikan &lt;code>panic&lt;/code>, dia juga bisa memiliki handler untuk halaman not found atau sering kita sebut halaman tidak bisa diakses. Not Found handler adalah handler yang dieksekusi ketika client mencoba melakukan request terhadap halaman atau URL website kita yang memang tidak terdapat di dalam Router service kita. Secara default, jika tidak ada route maka akan tidak ditemukan, tetapi Router akan melanjutkan request tersebut ke &lt;code>http.NotFound&lt;/code>, namun kita juga bisa mengubahnya menjadi halaman router tertentu dengan cara mengubah
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="nx">router&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">NotFound&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nx">http&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">Handler&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>05 Mempelajari Panic Handler</title><link>https://www.santekno.com/05-mempelajari-panic-handler/</link><pubDate>Thu, 05 Oct 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/05-mempelajari-panic-handler/</guid><description>&lt;h2 id="pengertian-panic-handler">Pengertian Panic Handler&lt;/h2>&lt;p>Ketika kita membuat logic pada handler pasti kita memikirkan suatu kasus ketika terjadi panic, lalu apa yang harus kita lakukan? Dalam Panic handler ini secara otomatis akan terjadi error dan web akan berhenti mengembalikan response. Pada materi sebelumnya kita pernah membahas tentang Web menanangi panic dengan membuat Middleware khusus secara manual. Namun di Router sudah disediakan untuk menangani &lt;code>panic&lt;/code> dengan cara menggunakan attribute &lt;code>PanicHandler&lt;/code>.
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">http&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">ResponseWriter&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="nx">http&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">Request&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="kd">interface&lt;/span>&lt;span class="p">{})&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>04 Mempelajari Serve File</title><link>https://www.santekno.com/04-mempelajari-serve-file/</link><pubDate>Wed, 04 Oct 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/04-mempelajari-serve-file/</guid><description>&lt;h2 id="pengertian-serve-file">Pengertian Serve File&lt;/h2>&lt;p>Pada materi &lt;a href="https://www.santekno.com/01-pengenalan-web/" title="Membuat Web Golang">Membuat Web Golang&lt;/a>
. Maka pada Router pun sudah mendukung serve static file menggunakan fungsi &lt;code>ServeFiles(Path, FileSystem)&lt;/code> yang mana pada &lt;code>Path&lt;/code> kita harus menggunakan &lt;em>Catch All Parameters&lt;/em>. Sedangkan pada &lt;code>FileSystem&lt;/code> bisa melakukan manual load dari folder atau menggunakan golang Embed seperti yang pernah kita bahas di materi sebelumnya.&lt;/p></description></item><item><title>03 Mempelajari Route Pattern</title><link>https://www.santekno.com/03-mempelajari-route-pattern/</link><pubDate>Tue, 03 Oct 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/03-mempelajari-route-pattern/</guid><description>&lt;h2 id="penggunaan-named-parameter">Penggunaan &lt;em>Named Parameter&lt;/em>&lt;/h2>&lt;p>Apakah Router Pattern itu memiliki Pola? Betul sekali setiap endpoint itu memiliki pola parameter pada suatu URL dan sering disebut dengan &lt;em>Named Parameter&lt;/em>. &lt;em>Named Parameter&lt;/em> ini adalah pola pembuatan parameter dengan menggunakan nama. Setiap nama parameter diawali dengan titik dua &lt;code>:&lt;/code> lalu diikuti dengan nama parameter-nya. Misalkan contoh seperti dibawah ini.&lt;/p></description></item><item><title>02 Mempelajari HTTP Router Params</title><link>https://www.santekno.com/02-mempelajari-http-router-params/</link><pubDate>Mon, 02 Oct 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/02-mempelajari-http-router-params/</guid><description>&lt;h2 id="penggunaan-http-router-params">Penggunaan HTTP Router Params&lt;/h2>&lt;p>Pada &lt;code>httprouter.Handle&lt;/code> memiliki parameter tambahan yaitu &lt;code>Params&lt;/code> yang mana parameter tersebut digunakan untuk menyimpan parameter yang dikirim dari client tetapi &lt;code>Params&lt;/code> ini bukan query dari &lt;code>parameter&lt;/code> melainkan yaitu parameter dari URL. Kadang kita butuh untuk membuat URL yang tidak fix atau bisa berubah-ubah misalkan &lt;code>/product/1&lt;/code>, &lt;code>/product/2&lt;/code> dan seterusnya.&lt;/p></description></item><item><title>01 Pengenalan HTTP Router</title><link>https://www.santekno.com/01-pengenalan-http-router/</link><pubDate>Sun, 01 Oct 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/01-pengenalan-http-router/</guid><description>&lt;h2 id="pengenalan">Pengenalan&lt;/h2>&lt;p>&lt;code>HttpRouter&lt;/code> merupakan salah satu open source library yang populer untuk HTTP Handler di golang. &lt;code>HttpRouter&lt;/code> ini terkenal dengan kecepatannya dan sangat minimalis atau simpel dikarenakan memiliki fitur untuk routing saja, tidak memiliki fitur apapun selain itu. Jika teman-teman ingin lihat lebih detail bisa kunjungi github-nya di sini &lt;a href="https://github.com/julienschmidt/httprouter" title="https://github.com/julienschmidt/httprouter" target="_blank" rel="noopener">https://github.com/julienschmidt/httprouter&lt;/a>
&lt;/p></description></item><item><title>20 Routing Library</title><link>https://www.santekno.com/20-routing-library/</link><pubDate>Tue, 12 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/20-routing-library/</guid><description>&lt;h2 id="routing-library">Routing Library&lt;/h2>&lt;p>Golang sebenarnya sudah menyediakan &lt;code>ServeMux&lt;/code> sebagai handler yang bisa menghandler beberapa endpoint atau istilahnya adalah &lt;code>routing&lt;/code>. Tetapi kebanyakan programmer Golang biasanya akan menggunakan Library untuk melakukan routing hal ini dikarenakan &lt;code>ServeMux&lt;/code> tidak memiliki advaced fitur seperti &lt;em>path variable&lt;/em>, &lt;em>auto binding parameter&lt;/em> dan &lt;em>middleware&lt;/em>. Sehingga banyak alternatif lain yang bisa kita gunakan untuk library routing selain &lt;code>ServeMux&lt;/code>.&lt;/p></description></item><item><title>19 HTTP Middleware</title><link>https://www.santekno.com/19-http-middleware/</link><pubDate>Mon, 11 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/19-http-middleware/</guid><description>&lt;h2 id="middleware">Middleware&lt;/h2>&lt;p>Dalam pembuatan web, konsep &lt;code>middleware&lt;/code> sering kita dengar atau filter atau &lt;code>interceptor&lt;/code> yang mana ini adalah sebuah fitur yang kita bisa menambahkan kode sebelum dan setelah sebuah handler dieksekusi.&lt;/p></description></item><item><title>18 Download File</title><link>https://www.santekno.com/18-download-file/</link><pubDate>Sun, 10 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/18-download-file/</guid><description>&lt;h2 id="download-file">Download File&lt;/h2>&lt;p>Selain upload file, kita juga perlu atau membutuhkan halaman yang bisa melakukan download file atau sesuatu yang ada pada website kita. Pada library Golang sudah disediakan yaitu &lt;code>FileServer&lt;/code> dan &lt;code>ServeFile&lt;/code>. Jika kita ingin memaksa file di download tanpa harus di render oleh browser maka kita bisa menggunakan header &lt;code>Content-Disposition&lt;/code>. Lebih lengkapnya bisa dilihat di halaman ini &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Headers/Content-Disposition" title="https://developer.mozilla.org/en-US/docs/Web/Headers/Content-Disposition" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/Headers/Content-Disposition&lt;/a>
.&lt;/p></description></item><item><title>17 Upload File</title><link>https://www.santekno.com/17-upload-file/</link><pubDate>Sat, 09 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/17-upload-file/</guid><description>&lt;h2 id="upload-file">Upload File&lt;/h2>&lt;p>Selain menerima input data berupa form dan query params, biasanya kita juga membutuhkan input data berupa file dari pengguna kita. Golang sebenarnya sudah memiliki fitur tersebut untuk menangani management upload file tersebut. Hal ini lebih memudahkan kita jika kita membuat web yang bisa menerima input file.&lt;/p></description></item><item><title>16 HTML Web Redirect</title><link>https://www.santekno.com/16-html-web-redirect/</link><pubDate>Fri, 08 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/16-html-web-redirect/</guid><description>&lt;h2 id="redirect">Redirect&lt;/h2>&lt;p>Pada saat kita membuat sebuah website, jika pengguna melakukan akses ke berbagai halaman dengan sembarang maka akan terjadi halaman tidak ditemukan. Maka kita perlu membuat &lt;code>redirect&lt;/code> sebuah halaman jika pengguna melakukan suatu aksi pada halaman website kita. Misalkan setelah selesai login, maka kita akan lakukan &lt;code>redirect&lt;/code> ke halaman dashbard. &lt;code>Redirect&lt;/code> itu sendiri sebenarnya sudah standard dalam HTTP dan bisa melihat di halaman website &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections" title="https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections&lt;/a>
. Kita hanya perlu membuat response code 3xx dan menambahkan header location yang akan dituju. Untungnya pada Golang ada fungsi yang bisa kita gunakan untuk mempermudah ini.&lt;/p></description></item><item><title>15 Web XSS (Cross Site Scripting)</title><link>https://www.santekno.com/15-web-xss-cross-site-scripting/</link><pubDate>Thu, 07 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/15-web-xss-cross-site-scripting/</guid><description>&lt;h2 id="pengenalan-xss-cross-site-scripting">Pengenalan XSS (Cross Site Scripting)&lt;/h2>&lt;p>XSS adalah salah satu security issue yang biasa terjadi ketika membuat web. XSS biasanya terdapat celah keamanan dimana orang bisa secara sengaja memasukkan parameter yang mengandung script atau Javascript agar bisa di render oleh halaman website. Tujuan dari XSS ini adalah untuk mencuri cookie browser pengguna yang sedang mengakses website dan bisa menyebabkan akun pengguna bisa diambil alih jika kita sebagai pemilik website tidak menanganinya dengan baik.&lt;/p></description></item><item><title>14 HTML Template Cache</title><link>https://www.santekno.com/14-html-template-cache/</link><pubDate>Wed, 06 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/14-html-template-cache/</guid><description>&lt;h2 id="pengenalan-template-cache">Pengenalan Template Cache&lt;/h2>&lt;p>Pada kode-kode program sebelumnya yang sudah kita pelajari secara praktik itu tidak efisien. Kenapa seperti itu? karena setiap diakses maka akan memanggil fungsi dan menjabarkan data yang dikirim ke dalam template tersebut sehingga prosesnya pun membutuhkan eksekusi yang tinggi. Setiap handler dipanggil kita akan selalu parsing ulang template-nya. Maka idealnya template hanya melakukan parsing satu kali saja diawal ketika aplikasi akan berjalan maka selanjutnya data template saja yang di caching (disimpan memory) sehingga tidak perlu akses data dan melakukan parsing lagi agar website kita yang kita buat itu bisa &lt;strong>semakin cepat&lt;/strong>.&lt;/p></description></item><item><title>13 HTML Template Function</title><link>https://www.santekno.com/13-html-template-function/</link><pubDate>Tue, 05 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/13-html-template-function/</guid><description>&lt;h2 id="pengenalan-template-function">Pengenalan Template Function&lt;/h2>&lt;p>Selain mengakses &lt;code>field&lt;/code> dalam template, kita juga bisa melakukan akses terhadap suatu fungsi atau &lt;code>function&lt;/code> dalam golang. Cara untuk mengakses function sama seperti halnya mengakses &lt;code>field&lt;/code> namun jika fungsi tersebut memiliki parameter maka kita bisa gunakan tambahan parameter yang dikirim ketika memanggil fungsi di template-nya tersebut.&lt;/p></description></item><item><title>12 HTML Template Layout</title><link>https://www.santekno.com/12-html-template-layout/</link><pubDate>Mon, 04 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/12-html-template-layout/</guid><description>&lt;h2 id="pengenalan-template-layout">Pengenalan Template Layout&lt;/h2>&lt;p>Saat kita membuat halaman website ada beberapa bagian yang selalu sama pada tiap halaman misalnya yaitu &lt;code>header&lt;/code> dan &lt;code>footer&lt;/code>, maka jika terdapat bagian yang sama itu disarankan untuk disimpan pada template yang terpisah agar bisa digunakan di template yang lain atau kadang kita sebut &lt;code>reusable&lt;/code>. Nah pada golang template iin sudah mendukung import dari template lain sehingga bisa kita gunakan untuk mempermudah pembuatan website.&lt;/p></description></item><item><title>11 HTML Template Action</title><link>https://www.santekno.com/11-html-template-action/</link><pubDate>Sun, 03 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/11-html-template-action/</guid><description>&lt;h2 id="pengenalan-template-action">Pengenalan Template Action&lt;/h2>&lt;p>Tidak hanya teks saja kita bisa render dalam template tetapi kita juga bisa mendukung perintah action seperti percabangan &lt;code>if&lt;/code>, perulangan &lt;code>for&lt;/code> dan lain-lain.
Contoh misalkan kita menggunakan percabangan &lt;code>if&lt;/code> seperti ini&lt;/p></description></item><item><title>10 HTML Template Data</title><link>https://www.santekno.com/10-html-template-data/</link><pubDate>Sat, 02 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/10-html-template-data/</guid><description>&lt;h2 id="pengenalan-template-data">Pengenalan Template Data&lt;/h2>&lt;p>Jika Anda sudah mempelajari HTML Template pada artikel sebelumnya, maka kita akan lanjutkam mengenai template data dimana data ini bisa kita tampilkan secara dinamis dengan cara menggunakan data struct ataupun map. Namun perlu diketahui perubahan di dalam text template kita perlu tahu nama &lt;code>field&lt;/code> atau &lt;code>key&lt;/code> yang akan kita gunakan untuk mengisi data dinamis tdi template. Kita bisa menyebutkan nama &lt;code>field&lt;/code> atau &lt;code>key&lt;/code> tersebut seperti contoh &lt;code>{{.NamaField}}&lt;/code>.&lt;/p></description></item><item><title>09 Mengenal HTML Template</title><link>https://www.santekno.com/09-mengenal-html-template/</link><pubDate>Fri, 01 Sep 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/09-mengenal-html-template/</guid><description>&lt;h2 id="web-dinamis-menggunakan-template">Web Dinamis menggunakan Template&lt;/h2>&lt;p>Pada postingan sebelumnya kita telah membahas web dinamis tetapi dengan menggunakan respon string yang terdapat pada statik file. Maka pada kesempatan kali ini kita akan mencoba mengenal templating pada golang dimana halaman katakanlah html tersebut akan dinamis dan bisa berubah-ubah dengan data yang diakses oleh user.&lt;/p></description></item><item><title>08 Memahami File Server</title><link>https://www.santekno.com/08-memahami-file-server/</link><pubDate>Thu, 31 Aug 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/08-memahami-file-server/</guid><description>&lt;h2 id="pengenalan-file-server">Pengenalan File Server&lt;/h2>&lt;p>Pada Golang memiliki sebuah fitur yang bernama FileServer. Dengan ini kita bisa membuat Handler di Golang Web yang telah kita gunakan itu sebagai static file server dan FileServer ini tidak perlu manual melakukan load lagi. Sehingga kita bisa tambahkan ke dalam &lt;code>http.Server&lt;/code> atau &lt;code>http.ServeMux&lt;/code>.&lt;/p></description></item><item><title>07 Memahami Cookie</title><link>https://www.santekno.com/07-memahami-cookie/</link><pubDate>Wed, 30 Aug 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/07-memahami-cookie/</guid><description>&lt;h2 id="pengenalan-cookie">Pengenalan Cookie&lt;/h2>&lt;p>Sebelum ke pembahasan Cookie kita perlu ketahui bahwa HTTP merupakan &lt;strong>stateless&lt;/strong> antara client dan server yang artinya server tidak menyimpan data apapun untuk mengingat setiap request dari client. Hal ini bertujuan agar mudah melakukan scalability dari server itu sendiri. Lalu bagaimana cara agar server bisa mengingat sebuah client? misalnya ketika kita sudah login di suatu website, secara otomatis server harus tahu jika client tersebut sudah login sehingga request selanjutnya tidak perlu lagi melakukan login. Hal seperti ini bisanya kita bisa memanfaatkan &lt;code>Cookie&lt;/code>.&lt;/p></description></item><item><title>06 Response Code</title><link>https://www.santekno.com/06-response-code/</link><pubDate>Tue, 29 Aug 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/06-response-code/</guid><description>&lt;h2 id="pengenalan-response-code">Pengenalan Response Code&lt;/h2>&lt;p>Hal yang perlu kita ketahui juga dalam HTTP yaitu response code. Ini merupakan representasi dari kode response yang mana dari kode ini kita bisa melihat apakah sebuah request yang kita kirim dari client itu sukses dilakukan proses oleh server atau gagal diproses oleh server. Maka ada banyak sekali response code yang bisa kita gunakan saat membuat web. Kamu bisa langsung lihat lebih dalam beberapa HTTP Status Code disini &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status" title="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/HTTP/Status&lt;/a>
&lt;/p></description></item><item><title>05 Request Form Post</title><link>https://www.santekno.com/05-request-form-post/</link><pubDate>Mon, 28 Aug 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/05-request-form-post/</guid><description>&lt;h2 id="pengenalan-form-post">Pengenalan Form Post&lt;/h2>&lt;p>Sama halnya dengan postingan sebelumnya ketika kita menggunakan method GET maka hasil semua data di form akan menjadi query param sedangkan jika kita menggunakan POST maka semua data di form dikirim via body HTTP Request hanya berbeda methodnya saja. Semua data form post yang dikirim dari client secara otomatis akan disimpan dalam atribut &lt;code>Request.PostFrom&lt;/code>. Namun sebelum kita bisa mengambil data atribut PostForm, kita wajib memanggil method &lt;code>Request.ParseForm()&lt;/code> terlebih dahulu lalu method ini akan digunakan untuk melakukan parsing body. Parsing data tersebut akan menghasilkan data form, jika tidak ada maka akan menyebabkan error pada parsing-nya.&lt;/p></description></item><item><title>04 Request Header</title><link>https://www.santekno.com/04-request-header/</link><pubDate>Fri, 18 Aug 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/04-request-header/</guid><description>&lt;h2 id="pengenalan-header">Pengenalan Header&lt;/h2>&lt;p>Selain query parameter pada HTTP juga kita bisa menggunakan &lt;strong>Header&lt;/strong>. Header adalah informasi tambahan yang biasa dikirim dari client ke server atau pun sebaliknya. Dalam Header, tidak hanya ada pada HTTP Request tetapi pada HTTP Respone pun kita bisa menambahkan informasi header. Saat kita menggunakan browser pada komputer kita, biasanya secara otomatis header akan ditampilkan oleh browser seperti informasi browser, jenis tipe content yang dikirim dan diterima oleh browser dan masih banyak lagi.&lt;/p></description></item><item><title>03 Penggunaan Query Parameter</title><link>https://www.santekno.com/03-penggunaan-query-parameter/</link><pubDate>Thu, 17 Aug 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/03-penggunaan-query-parameter/</guid><description>&lt;h2 id="pengenalan-query-parameter">Pengenalan Query Parameter&lt;/h2>&lt;p>Query parameter adalah salah satu fitur dari http yang biasanya kita gunakan untuk mengirim data dari client ke dalam server. Query pameter ini ditempatkan pada URL dari endpoint yang sudah kita buat. Untuk menambahkan query parameter, kita bisa gunakan &lt;code>?=nama=value&lt;/code> pada URL website kita.&lt;/p></description></item><item><title>02 Penggunaan HTTP Test</title><link>https://www.santekno.com/02-penggunaan-http-test/</link><pubDate>Tue, 15 Aug 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/02-penggunaan-http-test/</guid><description>&lt;h2 id="pengenalan-http-test">Pengenalan HTTP Test&lt;/h2>&lt;p>HTTP Test pada golang sudah disediakan package khusus untuk membuat unit test terhadap fitur Web. Semua itu ada pada package &lt;code>net/http/httptest&lt;/code> &lt;a href="https://golang.org/pkg/net/http/httptest/" title="https://golang.org/pkg/net/http/httptest/" target="_blank" rel="noopener">https://golang.org/pkg/net/http/httptest/&lt;/a>
. Dengan menggunakan package ini, kita bisa melakukan unit test terhadap handler web yang sudah kita buat tanpa harus menjalankan aplikasi web-nya sehingga kita bisa langsung fokus terhadap handler function yang ingin kita test.&lt;/p></description></item><item><title>01 Pengenalan Web</title><link>https://www.santekno.com/01-pengenalan-web/</link><pubDate>Mon, 14 Aug 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/01-pengenalan-web/</guid><description>&lt;h2 id="pengenalan-web">Pengenalan Web&lt;/h2>&lt;p>Web merupakan kumpulan informasi yang tersedia dalam sebuah komputer yang terkoneksi secara langsung menerus melalui internet. Web ini berisi informasi dalam bentuk apapun seperti teks, audio, video dan lainnya. Web berjalan diaplikasi yang namanya web server yaitu aplikasi yang digunakan untuk menyimpan dan menyampaikan isi informasi web.&lt;/p></description></item><item><title>Pengenalan Dan Implementasi Golang Embed</title><link>https://www.santekno.com/pengenalan-dan-implementasi-golang-embed/</link><pubDate>Tue, 08 Aug 2023 05:23:16 +0700</pubDate><guid>https://www.santekno.com/pengenalan-dan-implementasi-golang-embed/</guid><description>&lt;h2 id="pengenalan-embed-package">Pengenalan Embed Package&lt;/h2>&lt;p>Sejak Golang merilis versi 1.16 terdapat fitur baru dengan nama Embed. Package embed ini adalah fitur yang mempermudah membuka isi file pada saat compile time secara otomatis dimasukkan isi file tersebut ke dalam variabel yang sudah kita definisikan. Lebih lengkapnya bisa lihat &lt;a href="https://golang.org/pkg/embed" title="di sini" target="_blank" rel="noopener">di sini&lt;/a>
.&lt;/p></description></item><item><title>Mengenal Repository Pattern pada Golang</title><link>https://www.santekno.com/mengenal-repository-pattern-pada-golang/</link><pubDate>Sat, 05 Aug 2023 05:23:16 +0700</pubDate><guid>https://www.santekno.com/mengenal-repository-pattern-pada-golang/</guid><description>&lt;p>Dalam buku Domain-Driven Design, &lt;code>Eric Evans&lt;/code> menjelaskan bahwa




&lt;div class="st-callout st-callout-danger">
 &lt;span class="st-callout-tag">Danger&lt;/span>
 &lt;div>Repository is a mechanism for encapsulating storage, retrieval and search behaviour, which emulates a collection of objects&lt;/div>
&lt;/div>
&lt;/p></description></item><item><title>Pengenalan Integrasi Database MySQL pada Golang</title><link>https://www.santekno.com/pengenalan-integrasi-database-mysql-pada-golang/</link><pubDate>Sun, 23 Jul 2023 05:23:16 +0700</pubDate><guid>https://www.santekno.com/pengenalan-integrasi-database-mysql-pada-golang/</guid><description>&lt;h2 id="pengenalan-package-database">Pengenalan Package Database&lt;/h2>&lt;p>Pada pemrograman Golang sebenarnya secara default itu memiliki sebuah package bernama database. Package ini memiliki kumpulan standar &lt;code>interface&lt;/code> yang menjadikan standar untuk komunikasi ke dalam database sehingga kita bisa langsung membuat program yang akan kita buat itu menggunakan package tersebut untuk mengakses beberapa jenis database apapun dengan kode yang sama. Tetapi yang akan membedakan adalah hanya kode query &lt;code>SQL&lt;/code> yang digunakan sesuai dengan database yang digunakan.&lt;/p></description></item><item><title>Mengenal Package Context With Timeout Pada Golang</title><link>https://www.santekno.com/mengenal-package-context-with-timeout-pada-golang/</link><pubDate>Fri, 21 Jul 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/mengenal-package-context-with-timeout-pada-golang/</guid><description>&lt;h2 id="pengenalan-package-contextwithtimeout">Pengenalan package context.WithTimeout&lt;/h2>&lt;p>Pada artikel sebelumnya kita sudah mempelajari &lt;code>context.WithCancel&lt;/code> dimana kita mengirim sinyal cancel dari &lt;code>context&lt;/code> secara manual. Selain itu kita juga bisa menambahkan sinyal &lt;code>cancel&lt;/code> ke dalam &lt;code>context&lt;/code> secara otomatis dengan menggunakan pengaturan waktu &lt;code>timeout&lt;/code>. Dengan menggunakan pengaturan waktu, kita tidak perlu lagi melakukan pemanggilan eksekusi cancel secara manual, tetapi dengan &lt;code>timeout&lt;/code> cancel akan otomatis dieksekusi jika waktu &lt;code>timeout&lt;/code> sudah terlewati.&lt;/p></description></item><item><title>Mengenal Package Context With Cancel Pada Golang</title><link>https://www.santekno.com/mengenal-package-context-with-cancel-pada-golang/</link><pubDate>Thu, 20 Jul 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/mengenal-package-context-with-cancel-pada-golang/</guid><description>&lt;h2 id="pengenalan-package-contextwithcancel">Pengenalan package context.WithCancel&lt;/h2>&lt;p>&lt;code>Context&lt;/code> yang bisa menambahkan value, kita juga bisa menambahkan sinyal cancel ke dalam context. Biasanya &lt;code>context cancel&lt;/code> ini dipakai saat kita butuh menjalankan proses lain, dan kita ingin memberi cancel ke proses tersebut. context cancel ini dijalankan biasanya menggunakan goroutine yang berbeda sehingga dengan mudah kita ingin membatalkan proses eksekusi goroutine tersebut, jadi tingal kita kirim sinyal cancel ke dalam context maka goroutine yang ingin kita stop sudah bisa kita lakukan.&lt;/p></description></item><item><title>Mengenal Package Context With Value Pada Golang</title><link>https://www.santekno.com/mengenal-package-context-with-value-pada-golang/</link><pubDate>Sat, 15 Jul 2023 05:48:19 +0700</pubDate><guid>https://www.santekno.com/mengenal-package-context-with-value-pada-golang/</guid><description>&lt;h2 id="pengenalan-package-contextwithvalue">Pengenalan package context.WithValue&lt;/h2>&lt;p>Pada awal penjelasan context kita tahu bahwa context akan dibuat pertama kali saat inisialisasi dengan menggunakan &lt;code>context.Background()&lt;/code> atau &lt;code>context.TODO()&lt;/code> yang mana pada context tersebut tidak memiliki value alias masih kosongan. Kita bisa menambahkan value dari sebuah context dengan konsep seperti map yaitu [key - value].&lt;/p></description></item><item><title>Mengenal Package Context Pada Golang</title><link>https://www.santekno.com/mengenal-package-context-pada-golang/</link><pubDate>Sat, 15 Jul 2023 05:41:16 +0700</pubDate><guid>https://www.santekno.com/mengenal-package-context-pada-golang/</guid><description>&lt;h2 id="pengenalan-package-context">Pengenalan package context&lt;/h2>&lt;p>Context merupakan package yang bisa menyimpan dan membawa suatu data value, sinyal timeout dan sinyal deadline. Context ini berjalan dan dibuat per satu request. Pada context biasanya akan membawa value dari inisialisasi sampai akhir proses dijalankan. Context ini kadang jadi keharusan ketika kita melakukan kode pada program agar dari awal fungsi menuju ke fungsi selanjutnya itu bisa digunakan value sebelumnya apabila proses pada fungsi selanjutnya membutuhkan data dari proses awal.&lt;/p></description></item><item><title>Mengenal Package Ticker Pada Golang</title><link>https://www.santekno.com/mengenal-package-ticker-pada-golang/</link><pubDate>Sat, 15 Jul 2023 05:39:40 +0700</pubDate><guid>https://www.santekno.com/mengenal-package-ticker-pada-golang/</guid><description>&lt;h2 id="pengenalan-package-timeticker">Pengenalan package time.Ticker&lt;/h2>&lt;p>Package golang ini adalah package yang digunakan untuk perulangan untuk kejadian tertentu yang nantinya akan terus diulan dalam waktu tertentu. Ticker ini jika sudah &lt;code>expire&lt;/code> maka akan mengirim ke dalam channel sebuah trigger atau signal.&lt;/p></description></item><item><title>Mengenal Package Timer Pada Golang</title><link>https://www.santekno.com/mengenal-package-timer-pada-golang/</link><pubDate>Sat, 15 Jul 2023 05:37:55 +0700</pubDate><guid>https://www.santekno.com/mengenal-package-timer-pada-golang/</guid><description>&lt;h2 id="pengenalan-package-timetimer">Pengenalan package time.Timer&lt;/h2>&lt;p>&lt;code>time.Timer&lt;/code> adalah package yang berhubungan dengan waktu atau kejadian yang akan terjadi saat proses dijalankan. Misalkan kita akan memberikan &lt;code>delay&lt;/code> selama beberapa detik untuk menuju ke proses selanjutnya atau ada skema hal lain.&lt;/p></description></item><item><title>Mengenal Dan Implementasi Sync Atomic Pada Golang</title><link>https://www.santekno.com/mengenal-dan-implementasi-sync-atomic-pada-golang/</link><pubDate>Sun, 02 Jul 2023 12:50:07 +0700</pubDate><guid>https://www.santekno.com/mengenal-dan-implementasi-sync-atomic-pada-golang/</guid><description>&lt;h2 id="pengenalan-syncatomic">Pengenalan &lt;code>sync.Atomic&lt;/code>&lt;/h2>&lt;p>Untuk operasi atomik pada variabel pada golang, paket &lt;code>sync/atomic&lt;/code> menawarkan metode tingkat rendah tertentu. Di Go, metode ini memungkinkan beberapa &lt;code>goroutine&lt;/code> untuk mengubah variabel bersama dengan aman tanpa menggunakan kunci atau sinkronisasi eksplisit lainnya. Fungsi seperti &lt;code>AddInt64&lt;/code>, &lt;code>AddUint32&lt;/code>, &lt;code>CompareAndSwapInt32&lt;/code>, dll digunakan untuk melakukan aritmatika dasar pada berbagai jenis variabel dapat ditemukan dalam paket &lt;code>atom&lt;/code>. Metode &lt;code>AddInt64&lt;/code> misalnya, menjamin bahwa modifikasi yang dibuat oleh &lt;code>goroutine&lt;/code> lain akan terlihat saat menambahkan nilai tertentu ke variabel &lt;code>int64&lt;/code> dengan gaya atomik.&lt;/p></description></item><item><title>Mengenal Sync Cond Pada Golang</title><link>https://www.santekno.com/mengenal-sync-cond-pada-golang/</link><pubDate>Sun, 02 Jul 2023 11:26:02 +0700</pubDate><guid>https://www.santekno.com/mengenal-sync-cond-pada-golang/</guid><description>&lt;h2 id="pengenalan-synccond">Pengenalan &lt;code>sync.Cond&lt;/code>&lt;/h2>&lt;p>&lt;code>sync.Cond&lt;/code> adalah proses locking yang digunakan dengan kondisi tertentu. &lt;code>sync.Cond&lt;/code> dalam paket sinkronisasi Golang mengimplementasikan variabel kondisional yang dapat digunakan dalam skenario dimana banyak &lt;code>reader&lt;/code> sedang menunggu sumber daya berbarengan. Cond pooling point: beberapa goroutine menunggu, 1 event notifikasi goroutine terjadi. Setiap Cond diasosiasikan dengan &lt;code>Lock&lt;/code> **(&lt;em>sync. Mutex atau &lt;em>sync.RWMutex)&lt;/em>&lt;/em> yang harus ditambahkan saat memodifikasi kondisi atau memanggil metode &lt;code>wait()&lt;/code>, untuk melindungi kondisi.&lt;/p></description></item><item><title>Mengenal Sync Once Pada Golang</title><link>https://www.santekno.com/mengenal-sync-once-pada-golang/</link><pubDate>Sat, 24 Jun 2023 20:24:15 +0700</pubDate><guid>https://www.santekno.com/mengenal-sync-once-pada-golang/</guid><description>&lt;h2 id="pengenalan-synconce">Pengenalan &lt;code>sync.Once&lt;/code>&lt;/h2>&lt;p>Fitur ini pada Golang bisa kita gunakan untuk memasikan sebuah function dilakukan eksekusi hanya dalam satu kali saja. Kadang kalau kita sudah memiliki banyak goroutine yang sedang mengakses, maka dengan &lt;code>sync.Once&lt;/code> ini bisa dipastikan hanya goroutine yang memiliki akses pertama yang bisa mengeksekusi function tersebut. Maka jika ada goroutine lain yang sedang berjalan tidak akan melakukan eksekusi dan menghiraukan fungsi tersebu.&lt;/p></description></item><item><title>Mengenal Sync Map Pada Golang</title><link>https://www.santekno.com/mengenal-sync-map-pada-golang/</link><pubDate>Sat, 24 Jun 2023 20:23:15 +0700</pubDate><guid>https://www.santekno.com/mengenal-sync-map-pada-golang/</guid><description>&lt;h2 id="pengenalan-syncmap">Pengenalan &lt;code>sync.Map&lt;/code>&lt;/h2>&lt;p>&lt;code>sync.Map&lt;/code> ini sebenarnya mirip sekali dengan Generic Golangnya &lt;code>map&lt;/code> biasa, namun yang membedakan &lt;code>map&lt;/code> ini aman untuk digunakan saat concurrent goroutine.&lt;/p></description></item><item><title>Mengenal Sync Pool Pada Golang</title><link>https://www.santekno.com/mengenal-sync-pool-pada-golang/</link><pubDate>Sat, 24 Jun 2023 20:23:15 +0700</pubDate><guid>https://www.santekno.com/mengenal-sync-pool-pada-golang/</guid><description>&lt;h2 id="pengenalan-syncpool">Pengenalan &lt;code>sync.Pool&lt;/code>&lt;/h2>&lt;p>&lt;code>sync.Pool&lt;/code> sering kita dengar saat implementasi design patter yaitu bernama Object Pool Pattern. Pool adalah sekumpulan objek sementara yang dapat disimpan dan diambil secara individual. Sebuah Pool aman untuk digunakan oleh beberapa goroutine secara bersamaan.&lt;/p></description></item><item><title>Mengenal WaitGroup Pada Golang</title><link>https://www.santekno.com/mengenal-waitgroup-pada-golang/</link><pubDate>Mon, 19 Jun 2023 06:42:15 +0700</pubDate><guid>https://www.santekno.com/mengenal-waitgroup-pada-golang/</guid><description>&lt;h2 id="perkenalan">Perkenalan&lt;/h2>&lt;p>Waitgroup adalah fitur dari Golang yang digunakan untuk menunggu sebuah proses yang dilakukan oleh beberapa goroutine. Hal ini dilakukan dikarenakan kita perlu melakukan proses secara bersamaan tetapi ketika akan melanjutkan proses selanjutnya kita membutuhkan data dari hasil sebelumnya akhirnya kita harus menunggu terlebih dahulu dari proses sebelumnya untuk mendapatkan datanya.&lt;/p></description></item><item><title>Mengenal Deadlock Dan Cara Mengatasinya Pada Golang</title><link>https://www.santekno.com/mengenal-deadlock-dan-cara-mengatasinya-pada-golang/</link><pubDate>Sat, 17 Jun 2023 09:06:19 +0700</pubDate><guid>https://www.santekno.com/mengenal-deadlock-dan-cara-mengatasinya-pada-golang/</guid><description>&lt;h2 id="pengenalan">Pengenalan&lt;/h2>&lt;p>Salah satu masalah yang terjadi ketika menggunakan &lt;code>concurrent&lt;/code> atau &lt;code>paralel&lt;/code> yaitu sistem &lt;code>deadlock&lt;/code>. Apa itu deadlock? &lt;strong>Deadlock&lt;/strong> adalah kejadian dimana sebuah proses concurrent atau goroutine saling menunggu (lock) sehingga tidak ada satupun goroutine yang bisa berjalan. Maka hati-hati bagi Anda jika membuat aplikasi atau program yang mengimplementasikan mutex lock and unlock dengan menggunakan goroutine. Baiklah kita akan coba saja langsung bagaimana simulasi pada program golang ketika terjadi &lt;code>deadlock&lt;/code>.&lt;/p></description></item><item><title>Cara Membuat RW Mutex Dan Kegunaanya Pada Golang</title><link>https://www.santekno.com/cara-membuat-rw-mutex-dan-kegunaanya-pada-golang/</link><pubDate>Wed, 14 Jun 2023 19:03:26 +0700</pubDate><guid>https://www.santekno.com/cara-membuat-rw-mutex-dan-kegunaanya-pada-golang/</guid><description>&lt;h2 id="pengenalan-syncrwmutex">Pengenalan &lt;code>Sync.RWMutex&lt;/code>&lt;/h2>&lt;p>Setelah kita pernah mempelajari &lt;a href="https://www.santekno.com/cara-membuat-mutex-dan-kegunaannya-pada-golang/" title="Pengenalan dan Pembuatan `Mutex`">Pengenalan dan Pembuatan `Mutex`&lt;/a>
 pada postingan sebelumnya, lalu kita akan lanjut ke tahap selanjutnya yaitu pengenalan &lt;code>RWMutex&lt;/code>. Nah apa bedanya dengan yang sebelumnya?&lt;/p></description></item><item><title>Cara Membuat Mutex Dan Kegunaannya Pada Golang</title><link>https://www.santekno.com/cara-membuat-mutex-dan-kegunaannya-pada-golang/</link><pubDate>Wed, 14 Jun 2023 18:36:31 +0700</pubDate><guid>https://www.santekno.com/cara-membuat-mutex-dan-kegunaannya-pada-golang/</guid><description>&lt;h2 id="pengenalan-syncmutex">Pengenalan &lt;code>Sync.Mutex&lt;/code>&lt;/h2>&lt;p>Mutex atau kepanjangan dari &lt;em>Mutual Exclusion&lt;/em> adalah suatu cara untuk mengatasi race condition di dalam bahasa Golang. Mutex bisa digunakan untuk melakukan &lt;code>locking&lt;/code> and &lt;code>unlocking&lt;/code> terhadap suatu mutex sehingga jika sudah di &lt;code>lock&lt;/code> maka tidak akan bisa melakukan &lt;code>locking&lt;/code> lagi sampai kita melakukan &lt;code>unlocking&lt;/code>.&lt;/p></description></item><item><title>Cara Koneksi Golang Dengan Database MS SQL Server</title><link>https://www.santekno.com/cara-koneksi-golang-dengan-database-ms-sql-server/</link><pubDate>Tue, 04 Apr 2023 03:23:56 +0700</pubDate><guid>https://www.santekno.com/cara-koneksi-golang-dengan-database-ms-sql-server/</guid><description>&lt;h2 id="dependency">Dependency&lt;/h2>&lt;p>Pastikan sudah buat projek dengan &lt;code>go mod init mssql-go&lt;/code> pada folder &lt;code>mssql-go&lt;/code> dan dependency yang akan kita pakai yaitu menggunakan
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nx">_&lt;/span> &lt;span class="s">&amp;#34;github.com/microsoft/go-mssqldb&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>


Jika belum ada bisa kita coba download terlebih dahulu dependency diatas dengan cara perintah dibawah ini.
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="bash">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-muted-foreground/50">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">bash&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">go get github.com/microsoft/go-mssqldb&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>Cara Koneksi Golang Dengan Mongodb</title><link>https://www.santekno.com/cara-koneksi-golang-dengan-mongodb/</link><pubDate>Tue, 04 Apr 2023 03:22:28 +0700</pubDate><guid>https://www.santekno.com/cara-koneksi-golang-dengan-mongodb/</guid><description>&lt;h2 id="dependecy-yang-dibutuhkan">Dependecy yang dibutuhkan&lt;/h2>&lt;p>Menambahkan beberapa dependency yang digunakan
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="s">&amp;#34;go.mongodb.org/mongo-driver/bson&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">&lt;span class="s">&amp;#34;go.mongodb.org/mongo-driver/mongo&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">&lt;span class="s">&amp;#34;go.mongodb.org/mongo-driver/mongo/options&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>Cara Koneksi Golang Dengan Database Postgres</title><link>https://www.santekno.com/cara-koneksi-golang-dengan-database-postgres/</link><pubDate>Tue, 04 Apr 2023 03:20:57 +0700</pubDate><guid>https://www.santekno.com/cara-koneksi-golang-dengan-database-postgres/</guid><description>&lt;h2 id="dependency">Dependency&lt;/h2>&lt;p>Pastikan sudah buat projek dengan &lt;code>go mod init postgres-go&lt;/code> pada folder &lt;code>postgres-go&lt;/code> dan dependency yang akan kita pakai yaitu menggunakan
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nx">_&lt;/span> &lt;span class="s">&amp;#34;github.com/lib/pq&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>


Jika belum ada bisa kita coba download terlebih dahulu dependency diatas dengan cara perintah dibawah ini.
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="bash">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-muted-foreground/50">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">bash&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">go get github.com/lib/pg&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>Cara Komunikasi Golang Dengan Database Mysql</title><link>https://www.santekno.com/cara-komunikasi-golang-dengan-database-mysql/</link><pubDate>Sun, 05 Feb 2023 11:18:37 +0700</pubDate><guid>https://www.santekno.com/cara-komunikasi-golang-dengan-database-mysql/</guid><description>&lt;h2 id="package-atau-library">Package atau Library&lt;/h2>&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="s">&amp;#34;github.com/go-sql-driver/mysql&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>


&lt;h2 id="inisialisasi-projek">Inisialisasi Projek&lt;/h2>&lt;p>Siapkan folder baru dengan nama &lt;code>mysql-native&lt;/code>, lalu buat inisialisasi module golang agar lebih termodular. Berikut perintah cepatnya.
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="bash">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-muted-foreground/50">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">bash&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">$ mkdir mysql-native
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">$ &lt;span class="nb">cd&lt;/span> mysql-native
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">$ go mod init github.com/santekno/mysql-native&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>Belajar Web HTTP Router</title><link>https://www.santekno.com/tutorial/golang/http-router/</link><pubDate>Sat, 21 Jan 2023 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/http-router/</guid><description>&lt;p>Belajar Web HTTP Router ini merupakan proses pembelajaran yang paling penting dan mendasar bagi Backend Software Engineer karena di dunia pekerjaan biasanya semua komunikasi menggunakan HTTP Web yang mana komikasi itu dalam bentuk API Web. Dari belajar Web HTTP Router ini Anda bisa memahami bagaimana proses kerja Web HTTP Router terutama pada Golang, menggunakan parameter, method yang digunakan untuk transfer data dari Client ke Server dan masih banyak lagi.&lt;/p></description></item><item><title>Belajar Web JSON</title><link>https://www.santekno.com/tutorial/golang/web-json/</link><pubDate>Sat, 21 Jan 2023 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/web-json/</guid><description>&lt;p>Belajar Web JSON sangat penting sekali untuk kita bisa lebih memahami komunikasi standar dari antar API. Pada topik ini kita bisa memahami dari mulai pengenalan package JSON pada Golang, beberapa pengertian dan istilah yang sering digunakan pada komunikasi API sampai kita bisa melakukan encode dan decode suatu data JSON menggunakan bahasa Golang. Jangan tertinggal selalu belajar untuk lebih memahami dari suatu topik. Semoga bisa bermanfaat bagi teman-teman.&lt;/p></description></item><item><title>Belajar Web Server</title><link>https://www.santekno.com/tutorial/golang/web-server/</link><pubDate>Sat, 21 Jan 2023 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/web-server/</guid><description>&lt;p>Belajar Web Server merupakah hal yang harus dipelajari bagi pemula Software Engineer ataupun seorang Developer agar lebih memahami proses web server itu bisa berjalan, pemahaman HTML client dan server terutama pada bahasa Golang ini. Pada topik ini juga kami sertai beberapa tambahan agar teman-teman bisa memahami bagaimana proses unduh dan unggah suatu web server pada Golang bisa berjalan.&lt;/p></description></item><item><title>Perangkat Lunak dan Hardware</title><link>https://www.santekno.com/tutorial/hardware/</link><pubDate>Sat, 21 Jan 2023 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/hardware/</guid><description/></item><item><title>Penggunaan Channel Select Range Timeout</title><link>https://www.santekno.com/penggunaan-channel-select-range-timeout/</link><pubDate>Sun, 08 Jan 2023 13:28:26 +0700</pubDate><guid>https://www.santekno.com/penggunaan-channel-select-range-timeout/</guid><description>&lt;p>Adanya channel sangat membantu kita untuk mengelola goroutine yang sedang berjalan pada program kita. Ada kalanya kita juga perlu mengelola goroutine banyak dan dibutuhkan banyak channel juga. Maka, disinilah kegunaan &lt;code>select&lt;/code>. &lt;code>select&lt;/code> memudahkan kita mengontrol komunikasi data lewat channel. Cara penggunannya sama seperti seleksi kondisi &lt;code>switch&lt;/code>.&lt;/p></description></item><item><title>Pengenalan Channel Pada Golang</title><link>https://www.santekno.com/pengenalan-channel-pada-golang/</link><pubDate>Sun, 08 Jan 2023 13:24:42 +0700</pubDate><guid>https://www.santekno.com/pengenalan-channel-pada-golang/</guid><description>&lt;p>Channel adalah penghubung goroutine yang dari satu ke yang lainnya. Channel ini sifat-nya &lt;code>synchronous&lt;/code> karena ada blocking. Channel bisa didefinisikan dengan bentuk variabel dengan keyword &lt;code>chan&lt;/code>. Variabel ini memiliki tugas untuk mengirim dan menerima data.&lt;/p></description></item><item><title>Pengenalan Go Routine Pada Golang</title><link>https://www.santekno.com/pengenalan-go-routine-pada-golang/</link><pubDate>Fri, 30 Dec 2022 16:35:01 +0700</pubDate><guid>https://www.santekno.com/pengenalan-go-routine-pada-golang/</guid><description>&lt;p>Penggunaan go-routine saat proses yang akan dieksekusi sebagai goroutine harus dibungkus kedalam fungsi. Pada saat pemanggilan fungsi tersebut ditambahkan di depannya dengan perintah &lt;code>go&lt;/code>. Dengan demikian proses tersebut akan dideteksi sebagai goroutine baru.&lt;/p></description></item><item><title>Integrasi Code Analysis Sonarcube Golang</title><link>https://www.santekno.com/integrasi-code-analysis-sonarcube-golang/</link><pubDate>Fri, 30 Dec 2022 16:20:53 +0700</pubDate><guid>https://www.santekno.com/integrasi-code-analysis-sonarcube-golang/</guid><description>&lt;h2 id="persyaratan">Persyaratan&lt;/h2>&lt;ul>
&lt;li>Install Docker&lt;/li>
&lt;li>Install Install SonarQube Commnunity&lt;/li>
&lt;li>Install Java&lt;/li>
&lt;li>Install sonar-scanner-cli&lt;/li>
&lt;/ul>
&lt;h2 id="pengenalan-sonarqube">Pengenalan SonarQube&lt;/h2>&lt;p>SonarQube adalah alat peninjauan kode otomatis untuk mendeteksi bug, kerentanan, dan code smells dalam kode yang dibuat. SonarQube bisa terintegrasi dengan alur kerja dalam banyak proyek dalam pemeriksaan kode yang berkelanjutan.&lt;/p></description></item><item><title>Cara Mengatasi Error Handling pada Golang</title><link>https://www.santekno.com/cara-mengatasi-error-handling-pada-golang/</link><pubDate>Thu, 22 Dec 2022 21:47:35 +0700</pubDate><guid>https://www.santekno.com/cara-mengatasi-error-handling-pada-golang/</guid><description>&lt;p>Saat ini Santekno akan membahas tentang penanganan Error pada bahasa Golang. Kita akan mempelajari dari penanganan yang mudah sampai beberapa implementasi yang begitu kompleks. Golang sudah menyediakan penanganan &lt;code>Error&lt;/code> dengan mudah, kita bisa juga melakukan modifikasi sedikit agar &lt;code>Error&lt;/code> tersebut bisa lebih mudah dipahami oleh kita sendiri dan orang yang nantinya akan berkolaborasi dengan kita. Hal yang pertama yang akan kita lakukan yaitu dengan mengkostumisasi &lt;code>Error&lt;/code> bawaan dari golang.&lt;/p></description></item><item><title>Belajar Concurrent Golang</title><link>https://www.santekno.com/tutorial/golang/concurrent/</link><pubDate>Wed, 21 Dec 2022 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/concurrent/</guid><description>&lt;p>Belajar Concurrent Golang ini merupakan proses pembelajaran yang sangat penting karena ini yang biasa digunakan developer untuk mengefisienkan proses, mempermudah proses sampai bisa lebih cepat dalam proses mengolah data yang besar. Pada Golang saja proses concurrent ini dikenalkan berbeda ketika belajar bahasa pemrograman yang lain itu tidak menggunakan mekanisme concurrent tetapi lebih ke paralel prosessing dengan multi treading.&lt;/p></description></item><item><title>Teknik Membuat Mocking Unit Test Pada Golang</title><link>https://www.santekno.com/teknik-membuat-mocking-unit-test-pada-golang/</link><pubDate>Tue, 29 Nov 2022 06:03:13 +0700</pubDate><guid>https://www.santekno.com/teknik-membuat-mocking-unit-test-pada-golang/</guid><description>&lt;p>Saat kita membuat fungsi atau sedang melakukan code terkadang kita suka kesusahan untuk melakukan unit test di beberapa titik yang tidak bisa kita cover dengan unit test.
Maka berikut ini ada beberapa cara teknik melakukan unit test dengan teknik mocking. Tetapi sebenarnya kita juga bisa menggunakan Third-party yang sudah tersedia dibeberapa library sehingga tinggal langsung kita pakai saja.&lt;/p></description></item><item><title>Cara Membuat Integration Test Pada Golang</title><link>https://www.santekno.com/cara-membuat-integration-test-pada-golang/</link><pubDate>Tue, 29 Nov 2022 05:57:55 +0700</pubDate><guid>https://www.santekno.com/cara-membuat-integration-test-pada-golang/</guid><description>&lt;p>Melakukan integration test untuk API setidaknya kita harus bisa menjalankan aplikasi-nya terlebih dahulu agar bisa dilakukan pengetesan secara terintegrasi.
Hal ini perlu kita siapkan beberapa case, test case yang mencakup kebutuhan dari integration Test tersebut. Misalkan dari &lt;code>API Endpoint&lt;/code> kita yang sudah dikerjakan itu memiliki resource &lt;code>database&lt;/code>, &lt;code>cache&lt;/code> ataupun eksternal lain yang berhubungan dengan keberlangsungannya suatu API Endpoint tersebut.&lt;/p></description></item><item><title>Cara Membuat Unit Test Menggunakan Library Moq Pada Golang</title><link>https://www.santekno.com/cara-membuat-unit-test-menggunakan-library-moq-pada-golang/</link><pubDate>Sun, 30 Oct 2022 20:09:46 +0700</pubDate><guid>https://www.santekno.com/cara-membuat-unit-test-menggunakan-library-moq-pada-golang/</guid><description>&lt;p>Melakukan unit test dengan cara mocking ini biasanya digunakan jika sudah beberapa fungsi yang dilakukan dengan format &lt;code>interface&lt;/code> sehingga kita bisa asumsikan jika memanggil fungsi &lt;code>interface&lt;/code> tersebut kita meyakini bahwa harus menghasilkan program yang benar.&lt;/p></description></item><item><title>Cara Membuat Unit Benchmark Pada Golang</title><link>https://www.santekno.com/cara-membuat-unit-benchmark-pada-golang/</link><pubDate>Sun, 30 Oct 2022 20:03:39 +0700</pubDate><guid>https://www.santekno.com/cara-membuat-unit-benchmark-pada-golang/</guid><description>&lt;p>Package &lt;code>testing&lt;/code> selain berisikan tools untuk testing juga berisikan tools untuk benchmarking. Cara pembuatan benchmark sendiri cukup mudah yaitu dengan membuat fungsi yang namanya diawali dengan &lt;code>Benchmark&lt;/code> dan parameternya bertipe &lt;code>*testing.B&lt;/code>.&lt;/p></description></item><item><title>Cara Membuat Unit Test Pada Golang</title><link>https://www.santekno.com/cara-membuat-unit-test-pada-golang/</link><pubDate>Sun, 30 Oct 2022 19:51:13 +0700</pubDate><guid>https://www.santekno.com/cara-membuat-unit-test-pada-golang/</guid><description>&lt;h2 id="unit-testing-menggunakan-library-go">Unit Testing Menggunakan Library Go&lt;/h2>&lt;p>Pemrograman tidak mudah bahkan &lt;code>programmer&lt;/code> terbaik tidak mampu menulis program yang bekerja persis seperti yang diinginkan setiap saat. Oleh karena itu bagian penting dari proses pengembangan perangkat lunak adalah pengujian (&lt;code>testing&lt;/code>). Menulis &lt;code>test&lt;/code> untuk kode kita adalah cara yang baik untuk memastikan kualitas dan meningkatkan keandalan.&lt;/p></description></item><item><title>Mengenal Hashes Cryptography Pada Golang</title><link>https://www.santekno.com/mengenal-hashes-cryptography-pada-golang/</link><pubDate>Mon, 24 Oct 2022 16:56:04 +0700</pubDate><guid>https://www.santekno.com/mengenal-hashes-cryptography-pada-golang/</guid><description>&lt;h2 id="hashes--cryptography">Hashes &amp;amp; Cryptography&lt;/h2>&lt;p>Fungsi &lt;code>hash&lt;/code> mengambil satu set data dan menguranginya ke ukuran tetap yang lebih kecil. &lt;strong>Hash&lt;/strong> sering digunakan dalam pemrograman untuk segala hal mulai dari mencari data hingga mendeteksi perubahan dengan mudah. Fungsi &lt;code>hash&lt;/code> di Go dibagi menjadi dua kategori yaitu &lt;code>kriptografi&lt;/code> dan &lt;code>non-kriptografi&lt;/code>. Fungsi &lt;code>hash&lt;/code> &lt;code>non-kriptografi&lt;/code> dapat ditemukan di bawah paket &lt;code>hash&lt;/code> dan termasuk &lt;code>adler32&lt;/code>, &lt;code>crc32&lt;/code>, &lt;code>crc64&lt;/code> dan &lt;code>fnv&lt;/code>.&lt;/p></description></item><item><title>Mengenal Container List Dan Sort pada Golang</title><link>https://www.santekno.com/mengenal-container-list-dan-sort-pada-golang/</link><pubDate>Mon, 24 Oct 2022 16:55:44 +0700</pubDate><guid>https://www.santekno.com/mengenal-container-list-dan-sort-pada-golang/</guid><description>&lt;p>Selain &lt;code>arrays&lt;/code> dan &lt;code>maps&lt;/code>, Go memiliki beberapa koleksi lagi yang tersedia di bawah paket kontainer. Kita akan melihat paket &lt;code>container/list&lt;/code> sebagai contoh.&lt;/p></description></item><item><title>Mengenal Library Standard String pada Golang</title><link>https://www.santekno.com/mengenal-library-standard-string-pada-golang/</link><pubDate>Mon, 10 Oct 2022 08:44:00 +0700</pubDate><guid>https://www.santekno.com/mengenal-library-standard-string-pada-golang/</guid><description>&lt;p>Sebagai programmer yang sedang belajar Go lang kita perlu mengetahui juga library package bawaan &lt;code>default&lt;/code> dari Go agar kita lebih paham dan mudah saat nanti berinteraksi dengan package core. Banyak sekali &lt;code>library&lt;/code> bawaan dari golang yang kita bisa mempermudah kita saat ngoding. Misalkan kita perlu konversi string maka library Go secara default sudah disediakan.&lt;/p></description></item><item><title>Mengenal Library Input Output Pada Golang</title><link>https://www.santekno.com/mengenal-library-input-output-pada-golang/</link><pubDate>Mon, 10 Oct 2022 07:44:00 +0700</pubDate><guid>https://www.santekno.com/mengenal-library-input-output-pada-golang/</guid><description>&lt;p>Sebelum mempelajari libary IO Golang, banyak sekali fungsi terdapat dalam library IO tetapi yang paling utama ada 2 interface fungsi yaitu &lt;code>Reader&lt;/code> dan &lt;code>Writer&lt;/code>. &lt;code>Reader&lt;/code> biasanya digunakan untuk membaca data dari suatu file atau beberapa input/output yang disediakan. Sedangkan &lt;code>Writer&lt;/code> adalah fungsi yang nantinya akan menulis data ke suatu file atau input/output yang disediakan oleh sistem kita.&lt;/p></description></item><item><title>Mengenal Fungsi, multiple return, variadic dan closure pada Golang</title><link>https://www.santekno.com/mengenal-fungsi-multiple-return-variadic-dan-closure-pada-golang/</link><pubDate>Wed, 17 Aug 2022 07:42:06 +0700</pubDate><guid>https://www.santekno.com/mengenal-fungsi-multiple-return-variadic-dan-closure-pada-golang/</guid><description>&lt;h2 id="second-function">Second Function&lt;/h2>&lt;p>Terdiri dari &lt;code>input&lt;/code>, &lt;code>output&lt;/code>.&lt;/p>
&lt;p>Sampai sekarang program Go itu kita bisa gunakan hanya pada fungsi main saja seperti ini.
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl"> &lt;span class="kd">func&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{}&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>


Misalkan pada program sebelumnya kita mengoperasikan penjumlahan, dan rata-rata dalam suatu array, nah agar lebih modular lagi kita akan ganti menjadi fungsi terpisah seperti ini.
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">average&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">xs&lt;/span> &lt;span class="p">[]&lt;/span>&lt;span class="kt">float64&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="kt">float64&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl"> &lt;span class="nx">total&lt;/span> &lt;span class="o">:=&lt;/span> &lt;span class="mf">0.0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="nx">_&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">v&lt;/span> &lt;span class="o">:=&lt;/span> &lt;span class="k">range&lt;/span> &lt;span class="nx">xs&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl"> &lt;span class="nx">total&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="nx">v&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nx">total&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="nb">float64&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">xs&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">7&lt;/span>&lt;span class="cl">&lt;span class="p">}&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>


Maka kita akan coba-coba bagaimana suatu variable bisa bekerja dalam fungsi-fungsi dan dependency yang terkait.
Program A
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">f&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">	&lt;span class="nx">fmt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">Println&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl">	&lt;span class="nx">x&lt;/span> &lt;span class="o">:=&lt;/span> &lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl">	&lt;span class="nf">f&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">7&lt;/span>&lt;span class="cl">&lt;span class="p">}&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>


Program B
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">f&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">x&lt;/span> &lt;span class="kt">int&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl"> &lt;span class="nx">fmt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">Println&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl">&lt;span class="nx">x&lt;/span> &lt;span class="o">:=&lt;/span> &lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl">&lt;span class="nf">f&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">x&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">}&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>Mengenal Struktur Control, Perulangan, Kondisi dan Map Pada Golang</title><link>https://www.santekno.com/mengenal-struktur-control-perulangan-kondisi-dan-map-pada-golang/</link><pubDate>Wed, 17 Aug 2022 07:42:06 +0700</pubDate><guid>https://www.santekno.com/mengenal-struktur-control-perulangan-kondisi-dan-map-pada-golang/</guid><description>&lt;h2 id="for">For&lt;/h2>&lt;p>Perulangan pada golang hanya operasi &lt;code>for&lt;/code> saja tidak punya &lt;code>foreach&lt;/code>, &lt;code>while&lt;/code>, &lt;code>do&lt;/code>, &lt;code>until&lt;/code> tetapi dengan menggunakan &lt;code>for&lt;/code> ini semua operasi dalam aritmatika ataupun algoritma sudah bisa dilakukan. Misalkan contoh dasar kita akan mengeluarkan bilangan/angka dari 0-1. Maka code-nya seperti ini
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kn">package&lt;/span> &lt;span class="nx">main&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="s">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl">	&lt;span class="k">for&lt;/span> &lt;span class="nx">i&lt;/span> &lt;span class="o">:=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nx">i&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nx">i&lt;/span>&lt;span class="o">++&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">7&lt;/span>&lt;span class="cl">		&lt;span class="nx">fmt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">Println&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">i&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">8&lt;/span>&lt;span class="cl">	&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">9&lt;/span>&lt;span class="cl">&lt;span class="p">}&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>


Maka hasil dari program diatas mengeluarkan output
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="bash">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-muted-foreground/50">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">bash&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="ln"> 1&lt;/span>&lt;span class="cl">$ go run golang-basic/06-structure/perulangan-angka.go
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 2&lt;/span>&lt;span class="cl">&lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 3&lt;/span>&lt;span class="cl">&lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 4&lt;/span>&lt;span class="cl">&lt;span class="m">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 5&lt;/span>&lt;span class="cl">&lt;span class="m">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 6&lt;/span>&lt;span class="cl">&lt;span class="m">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 7&lt;/span>&lt;span class="cl">&lt;span class="m">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 8&lt;/span>&lt;span class="cl">&lt;span class="m">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 9&lt;/span>&lt;span class="cl">&lt;span class="m">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">10&lt;/span>&lt;span class="cl">&lt;span class="m">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">11&lt;/span>&lt;span class="cl">&lt;span class="m">10&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>Mengenal Variabel dan Constants pada pemrograman Golang</title><link>https://www.santekno.com/mengenal-variabel-dan-constants-pada-pemrograman-golang/</link><pubDate>Mon, 01 Aug 2022 07:42:06 +0700</pubDate><guid>https://www.santekno.com/mengenal-variabel-dan-constants-pada-pemrograman-golang/</guid><description>&lt;h2 id="variable">Variable&lt;/h2>&lt;p>Berikut contoh implementasi dasar penggunaan variable pada program dibawah ini
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kn">package&lt;/span> &lt;span class="nx">main&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="s">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl">	&lt;span class="kd">var&lt;/span> &lt;span class="nx">x&lt;/span> &lt;span class="kt">string&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">7&lt;/span>&lt;span class="cl">	&lt;span class="nx">x&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s">&amp;#34;Hello World&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">8&lt;/span>&lt;span class="cl">	&lt;span class="nx">fmt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">Println&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">9&lt;/span>&lt;span class="cl">&lt;span class="p">}&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>


Dalam program ini kita akan mencetak string &lt;code>Hello World&lt;/code> dengan menyimpan terlebih dahulu string ke dalam suatu variabel yaitu &lt;code>x&lt;/code> dan selanjutnya mencetak variabel tersebut menggunakan fungsi &lt;code>fmt.Println()&lt;/code>.&lt;/p></description></item><item><title>Belajar Golang Database</title><link>https://www.santekno.com/tutorial/golang/database/</link><pubDate>Sat, 21 May 2022 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/database/</guid><description>&lt;p>Belajar Golang Database merupakan topik yang sangat krusial karena setiap projek biasanya pasti membutuhkan interaksi dengan database yang mana sebagai &lt;code>source&lt;/code> data yang digunakan untuk mengolah, mengambil sampai menyimpan data. Dalam Golang proses ini ada beberapa tahap yaitu dari mulai melakukan koneksi ke dalam database, melakukan &lt;code>query&lt;/code> mengambil data, menyimpan data dan mengubah data menjadi yang terbaru.&lt;/p></description></item><item><title>Cara Implementasi Singleton Design Pattern Golang</title><link>https://www.santekno.com/cara-implementasi-singleton-design-pattern-golang/</link><pubDate>Tue, 11 May 2021 19:40:42 +0700</pubDate><guid>https://www.santekno.com/cara-implementasi-singleton-design-pattern-golang/</guid><description>&lt;h2 id="pengertian-dasar">Pengertian Dasar&lt;/h2>



&lt;div class="st-callout st-callout-danger">
 &lt;span class="st-callout-tag">Danger&lt;/span>
 &lt;div>Singleton is a software design standard. This standard guarantees the existence of only one instance of a class, while maintaining a global point of access to its object.&lt;/div>
&lt;/div>

&lt;p>Sesuai dengan &lt;em>quote&lt;/em> yang diatas bahwa &lt;strong>Singleton&lt;/strong> adalah desain standar perangkat lunak yang memberikan jaminan keberadaan hanya satu &lt;em>instance&lt;/em> kelas, sambil mempertahankan titik akses global ke objeknya. Singleton adalah pola desain yang membatasi &lt;em>instantiation&lt;/em> ke suatu objek, kita harus memastikan bahwa ini hanya terjadi sekali. Nah kamu sudah mulai kebayang kah?&lt;/p></description></item><item><title>Membuat Distibuted Search Engine Sederhana Menggunakan Worker Pool Pada Golang</title><link>https://www.santekno.com/membuat-distibuted-search-engine-sederhana-menggunakan-worker-pool-pada-golang/</link><pubDate>Fri, 23 Apr 2021 15:25:34 +0700</pubDate><guid>https://www.santekno.com/membuat-distibuted-search-engine-sederhana-menggunakan-worker-pool-pada-golang/</guid><description>&lt;h2 id="pendahuluan">Pendahuluan&lt;/h2>&lt;p>Kamu tahu google adalah tempat kita mencari beberapa kata kunci yang dapat menghasilkan berbagai jutaan informasi yang kita dapat hanya dengan mengetik beberapa kata kunci dan dalam waktu kurang dari 1 detik kita sudah bisa mendapatkan berbagai informasi terkait kata kunci yang kita cari. Nah ini adalah contoh miniatur atau &lt;em>search engine&lt;/em> versi sederhana bagaimana kita bisa mengimplementasikan worker pool menjadi suatu engine yang berguna untuk pencarian.&lt;/p></description></item><item><title>Implementasi Concurrency Worker Pool Pada Golang</title><link>https://www.santekno.com/implementasi-concurrency-worker-pool-pada-golang/</link><pubDate>Fri, 23 Apr 2021 13:48:56 +0700</pubDate><guid>https://www.santekno.com/implementasi-concurrency-worker-pool-pada-golang/</guid><description>&lt;h2 id="pengertian-dasar">Pengertian Dasar&lt;/h2>&lt;p>&lt;strong>Worker pool&lt;/strong> adalah teknik manajemen &lt;strong>goroutine&lt;/strong> dalam concurrent programming pada Go. Sejumlah worker dijalankan dan masing-masing memiliki tugas yang sama yaitu menyelesaikan sejumlah &lt;em>jobs&lt;/em>. Dengan metode &lt;strong>worker pool&lt;/strong> ini, maka penggunaan memory dan performansi program akan bisa optimal.&lt;/p></description></item><item><title>Cara Implementasi Concurrency Pattern Fan In dan Fan Out Pada Golang</title><link>https://www.santekno.com/cara-implementasi-concurrency-pattern-fan-in-dan-fan-out-pada-golang/</link><pubDate>Mon, 19 Apr 2021 13:25:16 +0700</pubDate><guid>https://www.santekno.com/cara-implementasi-concurrency-pattern-fan-in-dan-fan-out-pada-golang/</guid><description>&lt;h2 id="channel-dalam-go">Channel dalam Go&lt;/h2>&lt;p>Membuat program bersamaan di Go memiliki pendekatan yang unik. Pendekatannya adalah berbagi memori dengan berkomunikasi, bukan berkomunikasi dengan berbagi memori yang tidak diizinkan di Go. Pendekatan ini dapat dilakukan dengan menggunakan &lt;strong>channel&lt;/strong> yang dapat digunakan oleh &lt;em>goroutine&lt;/em> untuk saling berkomunikasi.&lt;/p></description></item><item><title>Cara Implementasi Binary Search and Tree Golang</title><link>https://www.santekno.com/cara-implementasi-binary-search-and-tree-golang/</link><pubDate>Mon, 19 Apr 2021 11:33:03 +0700</pubDate><guid>https://www.santekno.com/cara-implementasi-binary-search-and-tree-golang/</guid><description>&lt;h2 id="pengertian-dasar">Pengertian Dasar&lt;/h2>&lt;p>Struktur data &lt;strong>Binary Search and Tree&lt;/strong> adalah pola yang digunakan untuk pencarian berbasis Tree. Sebelum kamu lebih lanjut mengenal Binary Search Tree biasa disebut BST, kamu perlu terlebih dahulu paham terhatap konsep &lt;strong>Tree&lt;/strong>. &lt;strong>Tree (pohon)&lt;/strong> adalah salah satu bentuk struktur data yang menggambarkan hubungan hierarki antar elemen-elemennya (seperti relasi one to many). Sebuah node dalam tree biasanya bisa memiliki beberapa node lagi sebagai percabangan atas dirinya.&lt;/p></description></item><item><title>Cara Implementasi Queue (Antrian) Pada Golang</title><link>https://www.santekno.com/cara-implementasi-queue-antrian-pada-golang/</link><pubDate>Thu, 15 Apr 2021 14:42:06 +0700</pubDate><guid>https://www.santekno.com/cara-implementasi-queue-antrian-pada-golang/</guid><description>&lt;h2 id="pengertian-dasar">Pengertian Dasar&lt;/h2>&lt;p>Queue atau sering kita tahu itu satu struktur data antrian dimana data yang kita masukkan akan diantrikan, dengan kata lain data yang pertama masuk akan keluar pertama juga. Biasanya kita sering tahu istrila FIFO (First In First Out).&lt;/p></description></item><item><title>Cara Menentukan Huruf Vokal Konsonan Pada Golang</title><link>https://www.santekno.com/cara-menentukan-huruf-vokal-konsonan-pada-golang/</link><pubDate>Thu, 15 Apr 2021 13:08:12 +0700</pubDate><guid>https://www.santekno.com/cara-menentukan-huruf-vokal-konsonan-pada-golang/</guid><description>&lt;h2 id="pendahuluan">Pendahuluan&lt;/h2>&lt;p>Menentukan vokal konsonan disini akan dibagi beberapa contoh, Nantinya kita akan lebih tahu proses mana saja yang akan dijalankan secara berurutan. Yang sudah kita tahu bahwa karakter vokal itu adalah &lt;code>a&lt;/code>,&lt;code>i&lt;/code>,&lt;code>u&lt;/code>,&lt;code>e&lt;/code>,&lt;code>o&lt;/code> dan ini akan menjadi kondisi dalam program nantinya.&lt;/p></description></item><item><title>Cara Implementasi Stack Golang</title><link>https://www.santekno.com/cara-implementasi-stack-golang/</link><pubDate>Tue, 13 Apr 2021 05:20:04 +0700</pubDate><guid>https://www.santekno.com/cara-implementasi-stack-golang/</guid><description>&lt;h2 id="apa-itu-stack">Apa itu stack?&lt;/h2>&lt;p>&lt;em>Stack&lt;/em> adalah salah satu yang biasa digunakan dalam pemrograman atau sistem penyimpanan komputer. Bagi &lt;code>programmer&lt;/code> atau biasanya berkecimpung di dunia IT, pasti sudah familiar dengan istilah ini. Stack digunakan untuk mempermudah mengorganisasikan suatu data. Jadi sebenarnya apa sih Stack itu? Apa kelebihan dan kekurangan saat menggunakannya? Baik, Santekno akan menjelaskan kepada Anda lebih detail dan Santekno akan memberikan &lt;code>sample&lt;/code> yang sangat mudah untuk mengimplementasikan stack.&lt;/p></description></item><item><title>Cara Implementasi Single Double Linked List Pada Golang</title><link>https://www.santekno.com/cara-implementasi-single-double-linked-list-pada-golang/</link><pubDate>Fri, 09 Apr 2021 12:58:48 +0700</pubDate><guid>https://www.santekno.com/cara-implementasi-single-double-linked-list-pada-golang/</guid><description>&lt;h2 id="pengertian-dasar">Pengertian Dasar&lt;/h2>&lt;p>Jika kamu sudah pernah baca-baca soal Linked List bisa baca terlebih dahulu postingan Santekno sebelumnya &lt;strong>&lt;a href="https://www.santekno.com/cara-menggunakan-single-linked-list-menggunakan-c-/" title="single linked list">single linked list&lt;/a>
&lt;/strong> dan &lt;strong>&lt;a href="https://www.santekno.com/cara-membuat-double-linked-list-menggunakan-c-/" title="double linked list">double linked list&lt;/a>
&lt;/strong>&lt;/p></description></item><item><title>Kebijakan Privasi</title><link>https://www.santekno.com/kebijakan-privasi/</link><pubDate>Mon, 12 Oct 2020 16:35:00 +0000</pubDate><guid>https://www.santekno.com/kebijakan-privasi/</guid><description>&lt;p>Website &lt;a href="https://www.santekno.com/" title="https://www.santekno.com/" target="_blank" rel="noopener">https://www.santekno.com/&lt;/a>
 dimiliki oleh santekno, yang akan menjadi pengontrol atas data pribadi Anda.&lt;/p></description></item><item><title>Syarat dan Ketentuan</title><link>https://www.santekno.com/syarat-dan-ketentuan/</link><pubDate>Mon, 12 Oct 2020 16:35:00 +0000</pubDate><guid>https://www.santekno.com/syarat-dan-ketentuan/</guid><description>&lt;p>Selamat datang di Santekno!&lt;/p>
&lt;p>Syarat dan ketentuan berikut menjelaskan peraturan dan ketentuan penggunaan Website santekno dengan alamat &lt;a href="https://www.santekno.com/" title="https://www.santekno.com/" target="_blank" rel="noopener">https://www.santekno.com/&lt;/a>
.&lt;/p></description></item><item><title>Tentang Santekno</title><link>https://www.santekno.com/about/</link><pubDate>Mon, 12 Oct 2020 16:35:00 +0000</pubDate><guid>https://www.santekno.com/about/</guid><description>&lt;p>Santekno awalnya adalah blog catatan saya saat kuliah Jaringan Komputer dan Ilmu Komputer. Dibalik tugas-tugas dan catatan itu, saya ingin berbagi ilmu dan pengalaman bersama teman-teman semua. Semoga blog ini terus berlanjut dan informasinya selalu terupdate.&lt;/p></description></item><item><title>Mengenal Pointer Pada Golang</title><link>https://www.santekno.com/mengenal-pointer-pada-golang/</link><pubDate>Thu, 03 Sep 2020 14:00:06 +0700</pubDate><guid>https://www.santekno.com/mengenal-pointer-pada-golang/</guid><description>&lt;p>Pada bahasa Golang, kita tahu bahwa untuk mengirimkan suatu variable ke dalam fungsi bisa berupa parameter dan pointer. Pointer ini biasanya berupa alokasi data dengan alamat tertentu.
Contoh bisa dilihat pada program dibawah ini.
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln"> 1&lt;/span>&lt;span class="cl">&lt;span class="kn">package&lt;/span> &lt;span class="nx">main&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 2&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 3&lt;/span>&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="s">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 4&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 5&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">zero&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">xPtr&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="kt">int&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 6&lt;/span>&lt;span class="cl">	&lt;span class="o">*&lt;/span>&lt;span class="nx">xPtr&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 7&lt;/span>&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 8&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 9&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">10&lt;/span>&lt;span class="cl">	&lt;span class="nx">x&lt;/span> &lt;span class="o">:=&lt;/span> &lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">11&lt;/span>&lt;span class="cl">	&lt;span class="nf">zero&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">&amp;amp;&lt;/span>&lt;span class="nx">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">12&lt;/span>&lt;span class="cl">	&lt;span class="nx">fmt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">Println&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">13&lt;/span>&lt;span class="cl">&lt;span class="p">}&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>Mengenal Struct dan Interface Pada Golang</title><link>https://www.santekno.com/mengenal-struct-dan-interface-pada-golang/</link><pubDate>Fri, 03 Apr 2020 14:20:06 +0700</pubDate><guid>https://www.santekno.com/mengenal-struct-dan-interface-pada-golang/</guid><description>&lt;p>Meskipun mungkin bagi kita untuk menulis program hanya menggunakan tipe data bawaan Go, pada titik tertentu itu akan menjadi sangat membosankan. Pertimbangkan program yang berinteraksi dengan bentuk seperti kode dibawah ini.&lt;/p></description></item><item><title>Mengenal Tipe Data pada pemrograman Golang</title><link>https://www.santekno.com/mengenal-tipe-data-pada-pemrograman-golang/</link><pubDate>Sun, 01 Mar 2020 07:42:06 +0700</pubDate><guid>https://www.santekno.com/mengenal-tipe-data-pada-pemrograman-golang/</guid><description>&lt;h2 id="numbers">Numbers&lt;/h2>&lt;h3 id="integers">Integers&lt;/h3>&lt;p>Terdapat tipe integer yang bisa kita gunakan diantaranya yaitu &lt;code>uint8&lt;/code>, &lt;code>uint16&lt;/code>, &lt;code>uint32&lt;/code>, &lt;code>uint64&lt;/code>, &lt;code>int8&lt;/code>, &lt;code>int16&lt;/code>, &lt;code>int32&lt;/code> dan &lt;code>int64&lt;/code>. Berikut ini contoh penggunaan variabel tipe integer pada program go:
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="go">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-emerald-500">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">go&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="kn">package&lt;/span> &lt;span class="nx">main&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="s">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl"> &lt;span class="nx">fmt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">Println&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;1 + 1 =&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl">&lt;span class="p">}&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>


Jika kamu menjalankan program ini dan kamu bisa melihat outputnya seperti dibawah ini:
&lt;div class="st-code-block my-6 rounded-lg border border-border overflow-hidden" data-lang="bash">
 &lt;div class="st-code-bar flex items-center justify-between gap-3 px-4 py-1.5 border-b border-border">
 &lt;div class="flex items-center gap-2.5 min-w-0">
 &lt;span class="w-2.5 h-2.5 rounded-full flex-shrink-0 bg-muted-foreground/50">&lt;/span>
 &lt;span class="font-mono text-[11px] text-muted-foreground truncate">bash&lt;/span>
 &lt;/div>
 &lt;button type="button" class="st-copy-btn inline-flex items-center gap-1.5 !min-h-0 px-2 py-1 leading-none rounded-md text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer" data-copied-label="Tersalin!" aria-label="Salin">
 &lt;svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">&lt;rect x="9" y="9" width="13" height="13" rx="2"/>&lt;path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>&lt;/svg>
 &lt;span class="st-copy-label">Salin&lt;/span>
 &lt;/button>
 &lt;/div>
 &lt;div class="st-code-body overflow-x-auto">&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">$ go run main.go 
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">1+1&lt;span class="o">=&lt;/span>&lt;span class="m">2&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>

&lt;/p></description></item><item><title>Cara Melakukan Debug Golang Pada Vscode</title><link>https://www.santekno.com/cara-melakukan-debug-golang-pada-vscode/</link><pubDate>Thu, 20 Feb 2020 11:41:06 +0700</pubDate><guid>https://www.santekno.com/cara-melakukan-debug-golang-pada-vscode/</guid><description>&lt;p>Mungkin Anda pasti pernah melihat aplikasi yang sudah &lt;code>live&lt;/code> terdapat &lt;code>error&lt;/code> atau aplikasi tersebut berhenti ditengah-tengah proses yang sedang kita jalankan. Tentunya hal ini menjadi tidak nyaman karena kita harus mengulang proses tersebut dari awal. Proses yang secara tiba-tiba berhenti itu biasanya dinamakan dengan &lt;code>bug&lt;/code>. &lt;em>Bug&lt;/em> sendiri adalah suatu error yang terjadi akibat suatu error yang terjadi akibat tidak sempurnyanya sebuah instruksi atau proses yang dijalankan. Penyebab &lt;em>bug&lt;/em> itu banyak sekali faktornya, mungkin dari proses pembuatannya tidak sempurna, atau ketika menjalankan suatu proses yang membutuhkan sesuatu misalnya resource dan kebutuhan itu tidak dapat dipenuhi maka akan timbul &lt;code>bug&lt;/code>.&lt;/p></description></item><item><title>VSCode Extension Yang Sering Digunakan Programmer Golang</title><link>https://www.santekno.com/vscode-extension-yang-sering-digunakan-programmer-golang/</link><pubDate>Mon, 17 Feb 2020 16:07:35 +0700</pubDate><guid>https://www.santekno.com/vscode-extension-yang-sering-digunakan-programmer-golang/</guid><description>&lt;p>Visual Studio Code memang sedang &lt;em>hits&lt;/em> digandrungi oleh para programmer karena digadang lebih mudah penggunaannya dan lebih ringan jika dijalankan dalam suatu komputer. Selain mudah, &lt;code>vscode&lt;/code> biasa para programmer sebut, banyak juga pendukung atau extension yang dapat menunjang kebutuhan programmer agar lebih mudah dalam melakukan pekerjaan. Extensin/plugin tambahan sering kita gunakan untuk membantu mempermudah programmer ketika sedang asik &lt;em>ngoding&lt;/em>. Nah, berikut ini Santekno ada beberapa rekomendasi extension yang bisa digunakan agar pekerjaan kamu lebih mudah dan membantu lebih keren dalam melakukan &lt;em>ngoding&lt;/em>.&lt;/p></description></item><item><title>Cara Setup Development Go Di Visual Studio Code</title><link>https://www.santekno.com/cara-setup-development-go-di-visual-studio-code/</link><pubDate>Sat, 15 Feb 2020 14:09:42 +0700</pubDate><guid>https://www.santekno.com/cara-setup-development-go-di-visual-studio-code/</guid><description>&lt;p>Sejak saat mengenal Visual Studio Code yang Open Source, sejak saat itu juga Santekno mengerjakan suatu project atau istilahnya &lt;code>ngoding&lt;/code> menggunakan IDE Visual Studio Code (VSCode). Disamping ringan pada saat penggunaannya juga banyak fitur-fitur tamhanan (plugin) yang bisa mendukung kita untuk koding.&lt;/p></description></item><item><title>Belajar Golang Dasar</title><link>https://www.santekno.com/tutorial/golang/dasar/</link><pubDate>Tue, 21 Jan 2020 22:50:00 +0000</pubDate><guid>https://www.santekno.com/tutorial/golang/dasar/</guid><description>&lt;p>Belajar Dasar Golang perlu kita pahami bersama untuk pemula yang ingin mendalami pemrograman Golang bisa terlebih dahulu mempelajari beberapa artikel di topik ini. Anda bisa mempelajarinya mulai dari cara melakukan instalasi Golang pada komputer atau laptop Anda sampai bisa membuat projek sederhana untuk mengimplementasikan RESTFul API yang biasanya dibutuhkan untuk pengalaman seorang Software Engineer Backend atau Software Developer.&lt;/p></description></item><item><title>Cara Instalasi Golang pada Komputer Windows, Macbook dan Linux</title><link>https://www.santekno.com/cara-instalasi-golang-pada-komputer-windows-macbook-dan-linux/</link><pubDate>Wed, 01 Jan 2020 07:42:06 +0700</pubDate><guid>https://www.santekno.com/cara-instalasi-golang-pada-komputer-windows-macbook-dan-linux/</guid><description>&lt;p>Cara melakukan instalasi Golang pada komputer teman-teman bisa download terlebih dahulu golang library yang ada di website &lt;a href="https://golang.org/doc/install" title="Golang" target="_blank" rel="noopener">Golang&lt;/a>
.&lt;/p></description></item><item><title>Cara Mengatasi Apache Tidak Berjalan atau Running pada XAMPP</title><link>https://www.santekno.com/cara-mengatasi-apache-tidak-berjalan-atau-running-pada-xampp/</link><pubDate>Sun, 29 Dec 2019 23:08:00 +0000</pubDate><guid>https://www.santekno.com/cara-mengatasi-apache-tidak-berjalan-atau-running-pada-xampp/</guid><description>&lt;p>Salam sobat blogger. Xampp adalah aplikasi yang berguna sebagai pembuatan virtual server yang sangat terkenal di kalangan para programmer. Suatu virtual yang terdapat pada Xampp ini digunakan untuk para developer khususnya web agar seperti halnya di hosting. Karena dalam aplikasi Xampp ini terdapat Apache sebagai Web Server, phpmyadmin sebagai Database Server dan banyak lagi.&lt;/p></description></item><item><title>Perbedaan Monitor CRT, LCD, LED dan Plasma</title><link>https://www.santekno.com/perbedaan-monitor-crt-lcd-led-dan-plasma/</link><pubDate>Sun, 29 Dec 2019 22:59:00 +0000</pubDate><guid>https://www.santekno.com/perbedaan-monitor-crt-lcd-led-dan-plasma/</guid><description>&lt;p>Perbedaan Monitor CRT, LCD, LED dan Plasma itu sangat di gantungkan oleh generasi dan cara pemanfaatan monitor tersebut. Monitor komputer adalah sebuah media output/ alat pengeluaran berbentuk gambar visual yang berasal dari sinyal elektronik komputer. Karena merupakan media visualisasi tampilan sistem operasi, penggunaan monitor pada komputer atau laptop memiliki peranan yang sangat penting dalam menampilkan pemrosesan data dan hasil dari pemrosesan tersebut. Setiap merek, tipe dan ukuran monitor memiliki resolusi yang berbeda-beda. Resolusi inilah yang menentukan ketajaman gambar yang tampil pada monitor.&lt;/p></description></item><item><title>Arsip</title><link>https://www.santekno.com/archive/</link><pubDate>Sun, 29 Dec 2019 22:50:00 +0000</pubDate><guid>https://www.santekno.com/archive/</guid><description/></item><item><title>Bagian-bagian Mouse Komputer dan Fungsinya</title><link>https://www.santekno.com/bagian-bagian-dari-mouse-komputer/</link><pubDate>Sun, 29 Dec 2019 22:50:00 +0000</pubDate><guid>https://www.santekno.com/bagian-bagian-dari-mouse-komputer/</guid><description>&lt;p>Mouse komputer modern punya &lt;strong>sekitar sepuluh komponen utama&lt;/strong>: tombol kiri dan kanan, roda gulir, tombol samping, tombol DPI, sensor optik, switch, encoder, papan sirkuit, kaki PTFE, dan sistem koneksi. Pada mouse nirkabel, ada satu lagi yang menentukan segalanya — baterai.&lt;/p></description></item><item><title>Cara Membedakan RAM DDR1, DDR2, DDR3, DDR4, dan DDR5</title><link>https://www.santekno.com/cara-membedakan-ram-ddr1-ddr2-dan-ddr3/</link><pubDate>Sun, 29 Dec 2019 22:39:00 +0000</pubDate><guid>https://www.santekno.com/cara-membedakan-ram-ddr1-ddr2-dan-ddr3/</guid><description>&lt;p>Cara paling cepat membedakan generasi RAM DDR adalah &lt;strong>melihat posisi celah (notch) di deretan pin bagian bawahnya&lt;/strong>. Setiap generasi menaruh celah itu di titik yang berbeda, dan itu memang disengaja pabrikan supaya RAM generasi berbeda mustahil terpasang di slot yang salah.&lt;/p></description></item><item><title>Pengertian dan Konfigurasi DHCP pada Router Cisco</title><link>https://www.santekno.com/pengertian-dan-konfigurasi-dhcp-pada-router-cisco/</link><pubDate>Sun, 29 Dec 2019 22:30:00 +0000</pubDate><guid>https://www.santekno.com/pengertian-dan-konfigurasi-dhcp-pada-router-cisco/</guid><description>&lt;h2 id="pengertian">Pengertian&lt;/h2>&lt;p>DHCP (Dynamic Host Configuration Protocol) pada Router Cisco adalah protocol yang berbasis arsitektur client/server yang digunakan untuk memudahkan pengalokasian alamat IP dalam satu jaringan. ISP secara otomatis akan memberikan alamat IP baru kepada komputer yang memintanya. Komputer yang meminta alamat IP disebut DHCP Client sedangkan Komputer yang memberikan alamat IP disebut DHCP server. Ketika konfigurasi TCP/IP, administrator tidak perlu memberikan alamat IP secara manual, tapi cukup dengan memberikan referensi kepada DHCP Server.&lt;/p></description></item><item><title>Layanan WAN (Wide Area Network)</title><link>https://www.santekno.com/layanan-wan-wide-area-network/</link><pubDate>Sun, 29 Dec 2019 22:24:00 +0000</pubDate><guid>https://www.santekno.com/layanan-wan-wide-area-network/</guid><description>&lt;p>Layanan WAN yang ada di dunia sudah banyak dan terbilang semakin canggih dan semakin compatible dengan berbagai perangkat seiring dengan berkembangnya teknologi kabel atau nirkabel. Jaringan WAN sangatlah luas dan membutuhkan teknologi yang cepat dalam mentransmisikan data sehingga banyak layanan yang diberikan dari beberapa ISP (orang ke-3) yang memberikan layanan.&lt;/p></description></item><item><title>Cara Memberi Password Telnet dan Console pada Router Cisco</title><link>https://www.santekno.com/cara-memberi-password-telnet-dan-console-pada-router-cisco/</link><pubDate>Sun, 29 Dec 2019 21:49:00 +0000</pubDate><guid>https://www.santekno.com/cara-memberi-password-telnet-dan-console-pada-router-cisco/</guid><description>&lt;p>Salam teman-teman, kali ini Santekno akan menjelaskan mengenai Networking atau Jaringan Komputer. Dan pada saat ini Santekno akan lebih menjelaskan kepada Keamanan dalam suatu jaringan dimulai dari device sendiri sampai pada Firewall yang akan nanti diterapkan.&lt;/p></description></item><item><title>Cara Membuat MySQL Server</title><link>https://www.santekno.com/cara-membuat-mysql-server/</link><pubDate>Sun, 29 Dec 2019 21:05:00 +0000</pubDate><guid>https://www.santekno.com/cara-membuat-mysql-server/</guid><description>&lt;p>Cara membuat MySQL Server di Fedora Core 7 itu lumayan gampang karena asalkan aplikasi mySQL pada Linux Anda sudah di instal maka bisa langsung di jalankan dengan baik dan bisa digunakan secar mudah. Tetapi kita harus tahu dulu perintah-perintah SQL agar nanti gampang untuk pembuatan tabel, database dan lain sebagainya.&lt;/p></description></item><item><title>Pengertian VLAN (Virtual LAN)</title><link>https://www.santekno.com/pengertian-vlan-virtual-lan/</link><pubDate>Sun, 29 Dec 2019 20:46:00 +0000</pubDate><guid>https://www.santekno.com/pengertian-vlan-virtual-lan/</guid><description>&lt;h2 id="pengertian">Pengertian&lt;/h2>&lt;p>Pada kesempatan kali ini Santekno akan membahas lagi mengenai pengetahuan Networking yang mendasar seperti VLAN yang sudah biasa para engginer konfigurasikan agar suatu switch bisa digunakan untuk membagi network yang berbeda dalam satu jaringan lokal. Seperti kita ketahui bahwa switch tidak bisa membaca &lt;strong>Layer 3&lt;/strong> sehingga tidak bisa membaca Network sehingga hanya bisa dihubungkan hanya satu network saja.&lt;/p></description></item><item><title>Pengertian PPP (Point to Point Protocol)</title><link>https://www.santekno.com/pengertian-ppp-point-to-point-protocol/</link><pubDate>Sun, 29 Dec 2019 19:14:00 +0000</pubDate><guid>https://www.santekno.com/pengertian-ppp-point-to-point-protocol/</guid><description>&lt;h2 id="pengertian">Pengertian&lt;/h2>&lt;p>&lt;strong>Point-to-Point Protocol&lt;/strong> (sering disingkat menjadi PPP) adalah sebuah protokol enkapsulasi paket jaringan yang banyak digunakan pada wide area network (WAN). Protokol ini merupakan standar industri yang berjalan pada lapisan data-link (layer 2) dan dikembangkan pada awal tahun 1990-an sebagai respons terhadap masalah-masalah yang terjadi pada protokol Serial Line Internet Protocol (SLIP), yang hanya mendukung pengalamatan IP statis kepada para kliennya. Dibandingkan dengan pendahulunya (SLIP), PPP jauh lebih baik, mengingat kerja protokol ini lebih cepat, menawarkan koreksi kesalahan, dan negosiasi sesi secara dinamis tanpa adanya intervensi dari pengguna. Selain itu, protokol ini juga mendukung banyak protokol-protokol jaringan secara simultan.&lt;/p></description></item><item><title>Pengertian NAT dan Cara Konfigurasi pada Router Cisco</title><link>https://www.santekno.com/pengertian-nat-dan-cara-konfigurasi-pada-router-cisco/</link><pubDate>Sun, 29 Dec 2019 17:22:00 +0000</pubDate><guid>https://www.santekno.com/pengertian-nat-dan-cara-konfigurasi-pada-router-cisco/</guid><description>&lt;h2 id="pengertian">Pengertian&lt;/h2>&lt;p>Saat ini, protokol IP yang banyak digunakan adalah IP versi 4 (IPv4). Dengan panjang alamat 4 byte berarti terdapat 2 pangkat 32 = 4.294.967.296 alamat IP yang tersedia. Jumlah ini secara teoritis, jumlah komputer yang dapat langsung koneksi ke internet. Karena keterbatasan ini sebagian besar ISP (Internet Service Provider) hanya akan mengalokasikan satu alamat untuk satu pengguna dan alamat ini bersifat dinamik, dalam arti alamat IP yang diberikan akan berbeda setiap kali user melakukan koneksi ke Internet.&lt;/p></description></item><item><title>Cara Konfigurasi VLAN pada Cisco Packet Tracer</title><link>https://www.santekno.com/cara-konfigurasi-vlan-pada-cisco-packet-tracer/</link><pubDate>Sun, 29 Dec 2019 14:16:00 +0000</pubDate><guid>https://www.santekno.com/cara-konfigurasi-vlan-pada-cisco-packet-tracer/</guid><description>&lt;p>Salam sobat blogger, kali ini Santekno akan menjelaskan konfigurasi VLAN (Virtual LAN). VLAN adalah aplikasi yang digunakan pada jaringan komputer khususnya layer 2 dan perangkat yang digunakan adalah Switch. Santekno telah menjelaskan pada postingan sebelumnya yaitu &lt;strong>&lt;a href="https://www.santekno.com/pengertian-vlan-virtual-lan/" title="Pengertian VLAN (Virtual LAN)">Pengertian VLAN (Virtual LAN)&lt;/a>
&lt;/strong> dengan detail dan jelas.&lt;/p></description></item><item><title>Cara Membuat SSH Server</title><link>https://www.santekno.com/cara-membuat-ssh-server/</link><pubDate>Sun, 29 Dec 2019 12:54:00 +0000</pubDate><guid>https://www.santekno.com/cara-membuat-ssh-server/</guid><description>&lt;p>Cara Membuat SSH Server pada Fedora Core 7 itu gampang-gampang susah tetapi jika sudah terjun langsung dan mempraktikan konfigurasinya terkesan sangat simpel dari konfigurasi server-server yang lainnya. Server SSH atau Secure Shell menyediakan service untuk keperluan remote login. Remote login adalah bagaimana agar user dapat melakukan login dari client ke server SSH via jaringan. User cuku menggunakan aplikasi SSH seperti : &lt;code>ssh&lt;/code>, &lt;code>putty&lt;/code> dan sebagainya.&lt;/p></description></item><item><title>Jenis-jenis Serangan pada Jaringan Komputer</title><link>https://www.santekno.com/jenis-jenis-serangan-pada-jaringan-komputer/</link><pubDate>Sun, 29 Dec 2019 10:22:00 +0000</pubDate><guid>https://www.santekno.com/jenis-jenis-serangan-pada-jaringan-komputer/</guid><description>&lt;p>Salam sobat blogger, Santekno akan menjelaskan berbagai macam dan jenis serangan yang ada pada jaringan komputer. Banyak sekali serangan yang dilakukan seorang hacker agar bisa menjebol suatu pertahanan dalam suatu jaringan LAN, MAN atau bahkan WAN.&lt;/p></description></item><item><title>Cara konfigurasi OSPF pada Router Cisco</title><link>https://www.santekno.com/cara-konfigurasi-ospf-pada-router-cisco/</link><pubDate>Sun, 29 Dec 2019 09:16:00 +0000</pubDate><guid>https://www.santekno.com/cara-konfigurasi-ospf-pada-router-cisco/</guid><description>&lt;p>Hari ini santekno akan memposting tentang cara konfigurasi &lt;a href="https://www.santekno.com/ospf-open-shortest-path-first/" title="routing protocol OSPF">routing protocol OSPF&lt;/a>
 pada router Cisco dengan menggunakan Packet Tracer 6.&lt;/p></description></item><item><title>Cara Konfigurasi RIP pada Router Cisco</title><link>https://www.santekno.com/cara-konfigurasi-rip-pada-router-cisco/</link><pubDate>Sat, 28 Dec 2019 19:54:00 +0000</pubDate><guid>https://www.santekno.com/cara-konfigurasi-rip-pada-router-cisco/</guid><description>&lt;p>Salam sobat, Santekno saat ini akan menjelaskan tentang bagaimana cara konfigurasi RIP yaitu &lt;strong>dynamic protocol&lt;/strong> yang biasa kita gunakan pada LAN atau sering dipakai pada topologi yang sangat simple karena protokol RIP ini hanya bisa berjalan pada 15 Router saja selebihnya RIP akan tidak berjalan dan berkerja sangat lambat.&lt;/p></description></item><item><title>Pengertian Rip Routing Information</title><link>https://www.santekno.com/pengertian-rip-routing-information/</link><pubDate>Sat, 28 Dec 2019 19:54:00 +0000</pubDate><guid>https://www.santekno.com/pengertian-rip-routing-information/</guid><description>&lt;h2 id="pengertian">Pengertian&lt;/h2>&lt;p>&lt;strong>RIP (Router Information Protocol)&lt;/strong> adalah Routing protokol yang menggunakan algoritma &lt;em>distance vector&lt;/em>, yaitu algortima &lt;strong>Bellman-Ford&lt;/strong>. Pertama kali dikenalkan pada tahun 1969 dan merupakan algoritma routing yang pertama pada &lt;strong>ARPANET&lt;/strong>. Versi awal dari routing protokol ini dibuat oleh &lt;strong>Xerox Parc’s PARC Universal Packet Internetworking&lt;/strong> dengan nama Gateway Internet Protocol. Kemudian diganti nama menjadi Router Information Protocol (RIP) yang merupakan bagian Xerox network Services.&lt;/p></description></item><item><title>Cara Konfigurasi EIGRP pada Router Cisco</title><link>https://www.santekno.com/cara-konfigurasi-eigrp-pada-router-cisco/</link><pubDate>Sat, 28 Dec 2019 12:17:00 +0000</pubDate><guid>https://www.santekno.com/cara-konfigurasi-eigrp-pada-router-cisco/</guid><description>&lt;p>Salam sobat blogger, kali ini Santekno akan menjelaskan tentang konfigurasi EIGRP (Enhanced Interior Gateway Routing Protocol) dengan mudah dan secara bertahap. Sobat blogger gampang sekali apabila ingin melakukan konfigurasi routing protokol EIGRP pada router Cisco.&lt;/p></description></item><item><title>BGP (Border Gateway Protocol)</title><link>https://www.santekno.com/bgp-border-gateway-protocol/</link><pubDate>Sat, 28 Dec 2019 09:50:00 +0000</pubDate><guid>https://www.santekno.com/bgp-border-gateway-protocol/</guid><description>&lt;h2 id="pengertian">Pengertian&lt;/h2>&lt;p>Border Gateway Protocol (BGP) merupakan salah satu jenis routing protokol yang digunakan untuk koneksi antar Autonomous System (AS), dan salah satu jenis routing protokol yang banyak digunakan di ISP besar (Telkomsel) ataupun perbankan. BGP termasuk dalam kategori routing protokol jenis Exterior Gateway Protokol (EGP).&lt;/p></description></item><item><title>EIGRP (Enhanced Interior Gateway Routing Protocol)</title><link>https://www.santekno.com/eigrp-enhanced-interior-gateway-routing-protocol/</link><pubDate>Sat, 28 Dec 2019 09:25:00 +0000</pubDate><guid>https://www.santekno.com/eigrp-enhanced-interior-gateway-routing-protocol/</guid><description>&lt;h2 id="pengertian">Pengertian&lt;/h2>&lt;p>EIGRP (Enhanced Interior Gateway Routing Protocol) merupakan hasil pengembangan dari routing ptotokol pendahulunya yaitu IGRP yang keduanya adalah routing pengembangan dari CISCO. Pengembangan itu dihasilkan oleh perubahan dan bermacam-macam tuntutan dalam jaringan Skala jaringan yang besar. EIGRP menggabungkan kemampuan dari &lt;strong>Link-State&lt;/strong> Protokol dan &lt;strong>Distance Vector&lt;/strong> Protokol, terlebih lagi EIGRP memuat beberapa protocol penting yang secara baik meningkatkan efisiensi penggunaannya ke routing protocol lain.&lt;/p></description></item><item><title>OSPF (Open Shortest Path First)</title><link>https://www.santekno.com/ospf-open-shortest-path-first/</link><pubDate>Sat, 28 Dec 2019 09:09:00 +0000</pubDate><guid>https://www.santekno.com/ospf-open-shortest-path-first/</guid><description>&lt;h2 id="pengertian">Pengertian&lt;/h2>&lt;p>&lt;strong>OSPF (Open Shortest Path First)&lt;/strong> merupakan sebuah routing protokol berjenis &lt;strong>&lt;a href="https://www.santekno.com/igrp-interior-gateway-routing-protocol/" title="IGRP (InteriorGateway Routing Protocol)">IGRP (InteriorGateway Routing Protocol)&lt;/a>
&lt;/strong> yang hanya dapat bekerja dalam jaringan internal suatu ogranisasi atau perusahaan. Jaringan internal maksudnya adalah jaringan di mana Anda masih memiliki hak untuk menggunakan, mengatur, dan memodifikasinya. Atau dengan kata lain, Anda masih memiliki hak administrasi terhadap jaringan tersebut. Jika Anda sudah tidak memiliki hak untuk menggunakan dan mengaturnya, maka jaringan tersebut dapat dikategorikan sebagai jaringan eksternal.&lt;/p></description></item><item><title>IGRP (Interior Gateway Routing Protocol)</title><link>https://www.santekno.com/igrp-interior-gateway-routing-protocol/</link><pubDate>Sat, 28 Dec 2019 09:02:00 +0000</pubDate><guid>https://www.santekno.com/igrp-interior-gateway-routing-protocol/</guid><description>&lt;h2 id="pengertian">Pengertian&lt;/h2>&lt;p>IGRP (Interior Gateway Routing Protocol) adalah protocol &lt;strong>distance vector&lt;/strong> yang diciptakan oleh perusahaan Cisco untuk mengatasi kekurangan RIP. Jumlah hop maksimum menjadi 255 dan sebagai metric, IGRP menggunakan &lt;strong>Bandwidth, MTU, Delay Dan Load&lt;/strong>. IGRP adalah protocol routing yang menggunakan Autonomous System (AS) yang dapat menentukan routing berdasarkan system interior atau exterior. &lt;strong>Administrative distance&lt;/strong> untuk IGRP adalah 100.&lt;/p></description></item><item><title>Pengertian, Perbedaan Routing Static dan Routing Dynamic</title><link>https://www.santekno.com/pengertian-perbedaan-routing-static-dan-routing-dynamic/</link><pubDate>Sat, 28 Dec 2019 08:39:00 +0000</pubDate><guid>https://www.santekno.com/pengertian-perbedaan-routing-static-dan-routing-dynamic/</guid><description>&lt;p>Pengertian, Perbedaan Routing Static dan Routing Dynamic yang akan kita bahas pada posting kali ini. Banyak perbedaan dari beberapa routing yang telah ada sekarang dan biasanya routing itu sangat dibutuhkan untuk menghubungkan jaringan antar lokal ataupun antar kota. Routing adalah Konfigurasi yang akan dilakukan pada perangkat keras Router. Jenis-jenis router pun berbeda-beda, konfigurasinya pun berbeda-beda. Contoh CISCO produksi router CISCO banyak digunakan karena konfigurasinya sudah familiar dan banyak instansi pendidikan pun sudah dijadikan matakuliah agar bisa di pelajari lebih lanjut. Secara umum, router dibagi menjadi dua buah jenis, yaitu&lt;/p></description></item><item><title>Cara Konfigurasi Static Route pada Router Cisco</title><link>https://www.santekno.com/cara-konfigurasi-static-route-pada-router-cisco/</link><pubDate>Sat, 28 Dec 2019 00:28:00 +0000</pubDate><guid>https://www.santekno.com/cara-konfigurasi-static-route-pada-router-cisco/</guid><description>&lt;p>Hai sobat kali ini Santekno akan menjelaskan tentang Static Route. Postingan yang terdahulu memang sudah menjelaskan lebih detail tentang pengenalan, pengertian dari Static Route. Bahkan Santekno telah menjelaskan perbedaan dari Static Route dengan Dynamic Route.&lt;/p></description></item><item><title>Komponen Router dan Fungsinya</title><link>https://www.santekno.com/komponen-router-dan-fungsinya/</link><pubDate>Wed, 25 Dec 2019 20:22:00 +0000</pubDate><guid>https://www.santekno.com/komponen-router-dan-fungsinya/</guid><description>&lt;p>Router adalah alat yang sering di jumpai pada instalasi jaringan di berbagai tempat bahkan dunia. Sehingga untuk menjadi seorang ahli jaringan perlu diketahui Komponen router dan fungsinya. Untuk saat ini Santekno akan menjelaskan bagian-bagian dari Router dan fungsi dari bagian-bagian tersebut.&lt;/p></description></item><item><title>Cara Membuat FTP Server</title><link>https://www.santekno.com/cara-membuat-ftp-server/</link><pubDate>Wed, 25 Dec 2019 15:17:00 +0000</pubDate><guid>https://www.santekno.com/cara-membuat-ftp-server/</guid><description>&lt;p>Cara membuat FTP Server di Fedora 8 membutuhkan beberapa Server DNS yang sudah di setting untuk FTP. Maka jika belum harus setting terlebih dahulu, lihat postingan sebelumnya Cara Membuat DNS Server di Fedora 8.&lt;/p></description></item><item><title>Urutan Kabel UTP Straight dan Cross Over</title><link>https://www.santekno.com/urutan-kabel-utp-straight-dan-cross-over/</link><pubDate>Wed, 25 Dec 2019 13:50:00 +0000</pubDate><guid>https://www.santekno.com/urutan-kabel-utp-straight-dan-cross-over/</guid><description>&lt;p>Kabel UTP merupakan salah satu media transmisi yang paling banyak digunakan untuk membuat sebuah jaringan local (Local Area Network), selain karena harganya relative murah, mudah dipasang dan cukup bisa diandalkan. Sesuai namanya Unshielded Twisted Pair berarti kabel pasangan berpilin/terbelit (twisted pair) tanpa pelindung (unshielded).&lt;/p></description></item><item><title>Cara Membuat DNS Server</title><link>https://www.santekno.com/cara-membuat-dns-server/</link><pubDate>Wed, 25 Dec 2019 13:19:00 +0000</pubDate><guid>https://www.santekno.com/cara-membuat-dns-server/</guid><description>&lt;p>Cara Membuat DNS Server pada Fedora Core 7 merupakan pengalihan dari suatu ip address menjadi nama sesuai dengan keinginan kita agar gampang di ingat. Baiklah, SanTekno sekarang akan membahas tentang DNS Server. DNS server bertanggung jawab penuh mengelola domain masing-masing client. Tidak ada server tunggal yang akan bertanggung jawab mengelola semua domain. Jika sebuah client memerlukan informasi IP Address yang tidak dapat diberikan oleh server yang ada pada domainnya, maka server tersebut akan “men-delegasikan-nya” kepada server lain mengikuti prinsip top-down.&lt;/p></description></item><item><title>Definisi IP Address dan Subnet Mask</title><link>https://www.santekno.com/definisi-ip-address-dan-subnet-mask/</link><pubDate>Wed, 25 Dec 2019 13:15:00 +0000</pubDate><guid>https://www.santekno.com/definisi-ip-address-dan-subnet-mask/</guid><description>&lt;p>Jaringan komputer tidak terlepas dari Internet Protokol dan berbagai hal tentang Jaringan komputer lainnya. Pada Kesempatan kali ini Santekno, akan menjelaskan beberapa hal tentang IPv4 dan Subnet Mask. Untuk membuka wawasan lebih luas berikut adalah beberapa penjelasannya.&lt;/p></description></item><item><title>Jenis-jenis Name Server</title><link>https://www.santekno.com/jenis-jenis-name-server/</link><pubDate>Wed, 25 Dec 2019 10:33:00 +0000</pubDate><guid>https://www.santekno.com/jenis-jenis-name-server/</guid><description>&lt;p>Jenis-jenis Name Server memang sudah diklasifikasikan terlebih dahulu sehingga semua pengolahan dan konfigurasi pada DNS Server bisa lebih baik dan bisa juga menggunakan beberapa penggunaan yang lain atau antar server lain bisa terhubung. Baiklah ada jenis-jenis Name server :&lt;/p></description></item><item><title>Cara Membuat Web Server</title><link>https://www.santekno.com/cara-membuat-web-server/</link><pubDate>Wed, 25 Dec 2019 06:44:00 +0000</pubDate><guid>https://www.santekno.com/cara-membuat-web-server/</guid><description>&lt;p>Cara membuat Web Server pada Fedora Core 7 merupakan suatu layanan internet yang bisa di gunakan bagi para ahli networking. Yang sering di jumpai pada Web Server adalah WWW (World Wide Web), dimana www fasilitas yang paling terpopuler di dunia internet. Kalian pernah melihat suatu Web? Pasti bagi pengguna internet dimana mencari suatu artikel pasti menemukan sebuah web entah itu blog, wordpress, joomla, dll. Protokol yang biasa digunakan pada web adalah HTTP singkatan dari Hypertext Transfer Protocol. HTTP bertenggung jawab menganngani proses komunikasi antara client Web (browser atau web browser) dan Server web.&lt;/p></description></item><item><title>Pengertian dan Jenis Keyboard</title><link>https://www.santekno.com/pengertian-dan-jenis-keyboard/</link><pubDate>Thu, 12 Dec 2019 09:32:00 +0000</pubDate><guid>https://www.santekno.com/pengertian-dan-jenis-keyboard/</guid><description>&lt;p>Papan ketik(bahasa Inggris: atau kibor adalah peranti untuk mengetik atau memasukkan huruf, angka, atau simbol tertentu ke perangkat lunak atau sistem operasi yang dijalankan oleh komputer.&lt;/p></description></item><item><title>Kenapa Ipv6</title><link>https://www.santekno.com/kenapa-ipv6/</link><pubDate>Thu, 12 Dec 2019 08:47:45 +0700</pubDate><guid>https://www.santekno.com/kenapa-ipv6/</guid><description>&lt;h2 id="kenapa-harus-ipv6">Kenapa harus IPv6&lt;/h2>&lt;p>Kenapa IPv6? Ini adalah pertanyaan yang banyak di lontarkan oleh semua orang. IPv6 merupakan alihan dari protokol terdahulu yaitu &lt;strong>&lt;a href="https://www.santekno.com/definisi-ip-address-dan-subnet-mask/" title="IPv4">IPv4&lt;/a>
&lt;/strong> yang di APNIC sudah penuh sehingga perlu perluasan alamat. Maka dikeluarkanlah IPv6 yang sangat panjang bitnya.&lt;/p></description></item><item><title>Macam - Macam Printer</title><link>https://www.santekno.com/macam-macam-printer/</link><pubDate>Fri, 22 Nov 2019 22:28:00 +0000</pubDate><guid>https://www.santekno.com/macam-macam-printer/</guid><description>&lt;p>hardware - Macam-macam printer memang banyak sekali di dunia ini, dari beragam printer sampai ke dalam printer masa sekarang digunakan banyak sekali. Printer adalah sebuah output yang mungkin banyak orang sebut hasil dari printer adalah hardcopy. Apa sih printer itu? Nah itu yang akan Santekno bahas kali ini.&lt;/p></description></item><item><title>Perintah Dasar Linux Part 4</title><link>https://www.santekno.com/perintah-dasar-linux-part-4/</link><pubDate>Sun, 10 Nov 2019 14:39:00 +0000</pubDate><guid>https://www.santekno.com/perintah-dasar-linux-part-4/</guid><description>&lt;p>Perintah dasar Linux sebelumnya sudah di bahas banyak sekali partnya. Dan alhamdulillah ini adalah pembahasan yang terakhir untuk Perintah Dasar Linux. Pada hari ini Santekno akan membahas lebih dalam lagi mengenai System Resource dan Manajemen User. Dimana perintah-perintah ini sangat penting untuk bisa mendalami dan memahami Perintah Linux.&lt;/p></description></item><item><title>Perintah Dasar Linux Part 3</title><link>https://www.santekno.com/perintah-dasar-linux-part-3/</link><pubDate>Sun, 10 Nov 2019 14:27:00 +0000</pubDate><guid>https://www.santekno.com/perintah-dasar-linux-part-3/</guid><description>&lt;p>Setelah Anda Mempelajari pada postingan sebelumnya Perintah Dasar Part 2. Kini tinggal melanjutkan tahapan kita, agar bisa lebih mahir dan bertambah pengetahuan juga, kita melanjutkan postingan Kali ini dengan Perintah Dasar Linux.&lt;/p></description></item><item><title>Perintah Dasar Linux Part 2</title><link>https://www.santekno.com/perintah-dasar-linux-part-2/</link><pubDate>Sun, 10 Nov 2019 06:54:00 +0000</pubDate><guid>https://www.santekno.com/perintah-dasar-linux-part-2/</guid><description>&lt;p>Perintah Dasar Linux sudah di pelajari di postingan sebelumnya. Sekarang, Perintah dasar Linux Part 2 akan menjelaskan lanjutan dari penjelasan Artikel yang pertama. Jika ingin lebih paham lagi perintah dasar linux dengan baik coba saja pelajari dari Artikel pertama Perintah Dasar Linux dan lanjutkan ke artikel berikutnya.&lt;/p></description></item><item><title>Perintah Dasar Linux</title><link>https://www.santekno.com/perintah-dasar-linux/</link><pubDate>Fri, 08 Nov 2019 21:34:00 +0000</pubDate><guid>https://www.santekno.com/perintah-dasar-linux/</guid><description>&lt;p>Perintah Dasar Linux sangat banyak sekali tetapi harus kita pahami sedikit demi sedikit. Perintah linux itu harus kita gunakan setiap hari jika ingin mahir dalam pengoperasian linux. Distro Linux seperti Debian, Redhat, CentOS, Fedora, Ubuntu, perintahnya hampir sma semua. Kebetulan Santekno sekarang sedang mempelajari distro Linux Fedora Core 7. Jadi tidak perlu pusing membedakan distro Linux manapun. Jika Anda pernah menggunakan DOS, maka akan melihat bahwa beberapa perintah DOS itu mirip dengan perintah Linux. Sebenarnya perntah DOS banyak diambil dari perintah Linux. Begitu pula Linux, cukup banyak perintah UNIX. Linux dan UNIX bagaikan saudara dekat.&lt;/p></description></item><item><title>Sejarah Mouse Komputer</title><link>https://www.santekno.com/sejarah-mouse-komputer/</link><pubDate>Wed, 23 Oct 2019 06:07:00 +0000</pubDate><guid>https://www.santekno.com/sejarah-mouse-komputer/</guid><description>&lt;h2 id="penemuan-mouse-pertama">Penemuan Mouse Pertama&lt;/h2>&lt;p>Mouse pertama ditemukan oleh Douglas Engelbart dari Stanford Research Institute pada tahun 1963. Mouse adalah satu dari beberapa alat penunjuk (pointing device) yang dikembangkan untuk oN Line System (NLS) milik Engelbard. Selain mouse, yang pada mulanya disebut “bug”, juga dikembangkan beberapa alat pendeteksi gerakan tubuh yang lain, misalnya alat yang diletakkan di kepala untuk mendeteksi gerakan dagu. Karena kenyamanan dan kepraktisannya, mouse-lah yang dipilih. Mouse pertama berukuran besar, dan menggunakan dua buah roda yang saling tegak lurus untuk mendeteksi gerakan ke sumbu X dan sumbu Y.&lt;/p></description></item><item><title>Pengertian dan Fungsi Mouse Komputer</title><link>https://www.santekno.com/pengertian-dan-fungsi-mouse-komputer/</link><pubDate>Wed, 23 Oct 2019 04:50:00 +0000</pubDate><guid>https://www.santekno.com/pengertian-dan-fungsi-mouse-komputer/</guid><description>&lt;p>Mouse adalah &lt;strong>perangkat penunjuk yang mengubah gerakan tangan di permukaan datar menjadi gerakan kursor di layar&lt;/strong>. Ia terhubung ke komputer lewat kabel atau nirkabel, dan menerjemahkan gerakan dua dimensi tanganmu menjadi koordinat yang dimengerti sistem operasi.&lt;/p></description></item><item><title>Bagian-bagian Harddisk</title><link>https://www.santekno.com/bagian-bagian-harddisk/</link><pubDate>Sun, 13 Oct 2019 19:20:00 +0000</pubDate><guid>https://www.santekno.com/bagian-bagian-harddisk/</guid><description>&lt;p>Harddisk punya &lt;strong>lima komponen fisik utama&lt;/strong>: platter tempat data tersimpan, spindle yang memutarnya, lengan aktuator yang menggeser posisi baca, head yang membaca dan menulis, serta papan sirkuit yang mengendalikan semuanya.&lt;/p></description></item><item><title>Macam-macam Optical Drive dan Kemampuannya</title><link>https://www.santekno.com/macam-macam-optical-drive/</link><pubDate>Sun, 06 Oct 2019 11:52:00 +0000</pubDate><guid>https://www.santekno.com/macam-macam-optical-drive/</guid><description>&lt;p>Optical drive dibedakan dari &lt;strong>apa yang bisa ia baca dan apa yang bisa ia tulis&lt;/strong>. Aturannya sederhana: tiap generasi menambah kemampuan generasi sebelumnya, tidak menggantikannya. Drive Blu-ray masih bisa memutar CD dari tahun 90-an.&lt;/p></description></item><item><title>CD dan DVD: Perbedaan, Kapasitas, dan Cara Kerjanya</title><link>https://www.santekno.com/cd-dan-dvd/</link><pubDate>Sun, 06 Oct 2019 11:28:00 +0000</pubDate><guid>https://www.santekno.com/cd-dan-dvd/</guid><description>&lt;p>CD dan DVD punya ukuran fisik yang persis sama — cakram 12 cm, tebal 1,2 mm — tapi DVD memuat &lt;strong>sekitar tujuh kali lebih banyak data&lt;/strong>. Penyebabnya satu: warna laser yang dipakai membacanya.&lt;/p></description></item><item><title>Jenis Keyboard Masa Kini</title><link>https://www.santekno.com/jenis-keyboard-masa-kini/</link><pubDate>Thu, 26 Sep 2019 09:40:00 +0000</pubDate><guid>https://www.santekno.com/jenis-keyboard-masa-kini/</guid><description>&lt;p>alau kita berbicara di zaman yang sekarang, banyak perangkat-perangkat keras yang aneh-aneh tetapi manfaatnya banyak. Contoh : converter SATA 2 USB atau yang lainnya. Untuk kali ini saya hanya membahas keyboard. Berikut ini ada beberapa keyboard yang berteknologi mewah&lt;/p></description></item><item><title>Cara Membaut Stack Menggunakan Standar Template Library</title><link>https://www.santekno.com/cara-membaut-stack-menggunakan-standar-template-library/</link><pubDate>Thu, 16 May 2019 13:06:00 +0700</pubDate><guid>https://www.santekno.com/cara-membaut-stack-menggunakan-standar-template-library/</guid><description>&lt;p>&lt;strong>Stack (tumpukan)&lt;/strong> adalah struktur data yang memberikan data seperti tumpukan dalam gelas, jadi jika suatu data akan dimasukkan ke dalam gelas yang pertama akan menjadi yang terakhir untuk diambil, maka struktur data ini menganut kaidah &lt;code>LIFO (Last In First Out)&lt;/code>. Arti dari LIFO itu adalah yang terakhir masuk maka akan menjadi yang pertama keluar.&lt;/p></description></item><item><title>Cara Membuat Stack menggunakan Double Linked List</title><link>https://www.santekno.com/cara-membuat-stack-menggunakan-double-linked-list/</link><pubDate>Thu, 16 May 2019 13:04:00 +0700</pubDate><guid>https://www.santekno.com/cara-membuat-stack-menggunakan-double-linked-list/</guid><description>&lt;p>&lt;strong>Stack (tumpukan)&lt;/strong> adalah struktur data yang memberikan data seperti tumpukan dalam gelas, jadi jika suatu data akan dimasukkan ke dalam gelas yang pertama akan menjadi yang terakhir untuk diambil, maka struktur data ini menganut kaidah &lt;code>LIFO (Last In First Out)&lt;/code>. Arti dari LIFO itu adalah yang terakhir masuk maka akan menjadi yang pertama keluar.&lt;/p></description></item><item><title>Cara Membuat Stack menggunakan Array C++</title><link>https://www.santekno.com/cara-membuat-stack-menggunakan-array-c-/</link><pubDate>Thu, 16 May 2019 13:02:00 +0700</pubDate><guid>https://www.santekno.com/cara-membuat-stack-menggunakan-array-c-/</guid><description>&lt;p>&lt;strong>Stack (tumpukan)&lt;/strong> adalah struktur data yang memberikan data seperti tumpukan dalam gelas, jadi jika suatu data akan dimasukkan ke dalam gelas yang pertama akan menjadi yang terakhir untuk diambil, maka struktur data ini menganut kaidah &lt;code>LIFO (Last In First Out)&lt;/code>. Arti dari LIFO itu adalah yang terakhir masuk maka akan menjadi yang pertama keluar.&lt;/p></description></item><item><title>Cara Membuat Double Linked List menggunakan C++</title><link>https://www.santekno.com/cara-membuat-double-linked-list-menggunakan-c-/</link><pubDate>Thu, 16 May 2019 13:00:00 +0700</pubDate><guid>https://www.santekno.com/cara-membuat-double-linked-list-menggunakan-c-/</guid><description>&lt;p>&lt;strong>Double Linked List&lt;/strong> adalah ebuah &lt;strong>linked list&lt;/strong> yang menggunakan sebuah &lt;em>variabel pointer&lt;/em> saja untuk menyimpan banyak data dengan metode &lt;strong>linked list&lt;/strong>, suatu daftar isi yang saling berhubungan.&lt;/p></description></item><item><title>Cara Menggunakan Single Linked List Menggunakan C++</title><link>https://www.santekno.com/cara-menggunakan-single-linked-list-menggunakan-c-/</link><pubDate>Thu, 16 May 2019 12:00:00 +0700</pubDate><guid>https://www.santekno.com/cara-menggunakan-single-linked-list-menggunakan-c-/</guid><description>&lt;p>&lt;strong>Linked List&lt;/strong> adalah salah satu bentuk struktur data, berisi kumpulan data (&lt;em>node&lt;/em>) yang tersusun secara &lt;em>sekuensial&lt;/em>, saling sambung menyambung, dinamis dan terbatas. Sedangkan &lt;strong>Single Linked List&lt;/strong> adalah sebuah &lt;strong>linked list&lt;/strong> yang menggunakan sebuah &lt;code>variabel pointer&lt;/code> saja untuk menyimpan banyak data dengan metode &lt;strong>linked list&lt;/strong>, suatu daftar isi yang saling berhubungan.&lt;/p></description></item><item><title>Cara Mencari Akar dari Persamaan Kuadrat</title><link>https://www.santekno.com/cara-mencari-akar-dari-persamaan-kuadrat/</link><pubDate>Tue, 07 May 2019 12:00:00 +0700</pubDate><guid>https://www.santekno.com/cara-mencari-akar-dari-persamaan-kuadrat/</guid><description>&lt;p>Jika Anda ingin mencari akar dari persamaan kuadrat &lt;code>ax2 + bx + c = 0&lt;/code> dimana &lt;code>a&lt;/code>, &lt;code>b&lt;/code> dan &lt;code>c&lt;/code> adalah &lt;code>koefisien&lt;/code>. Program ini akan meminta koefisien: &lt;code>a&lt;/code>, &lt;code>b&lt;/code> dan &lt;code>c&lt;/code> dari pengguna dan menampilkan akar.&lt;/p></description></item><item><title>Cara Menentukan Angka Terbesar dari 3 Angka</title><link>https://www.santekno.com/cara-menentukan-angka-terbesar-dari-3-angka/</link><pubDate>Mon, 06 May 2019 12:00:00 +0700</pubDate><guid>https://www.santekno.com/cara-menentukan-angka-terbesar-dari-3-angka/</guid><description>&lt;p>Pada program ini pengguna diminta untuk memasukkan tiga angka dan program ini akan menemukan terbesar di antara tiga angka tersebut yang sudah dimasukkan oleh pengguna. Program ini dapat diselesaikan dalam satu cara.&lt;/p></description></item><item><title>Cara Menentukan Bilangan Ganjil Genap</title><link>https://www.santekno.com/cara-menentukan-bilangan-ganjil-genap/</link><pubDate>Sun, 05 May 2019 12:00:00 +0700</pubDate><guid>https://www.santekno.com/cara-menentukan-bilangan-ganjil-genap/</guid><description>&lt;p>Bilangan ganjil atau genap pada program C dapat digunakan dengan proses kondisional, atau lebih jelasnya menggunakan sintak &lt;code>if .. else&lt;/code> atau &lt;code>switch case&lt;/code>. Berikut ini menentukan Bilangan Ganjil Genap dengan program yang sederhana.&lt;/p></description></item><item><title>Cara Menentukan Huruf Vokal dan Konsonan</title><link>https://www.santekno.com/cara-menentukan-huruf-vokal-dan-konsonan/</link><pubDate>Sat, 04 May 2019 12:00:00 +0700</pubDate><guid>https://www.santekno.com/cara-menentukan-huruf-vokal-dan-konsonan/</guid><description>&lt;p>Program menentukan huruf vokal dan konsonan dilakukan dengan memilih kondisional, dengan menggunakan if .. else lebih tepatnya karena suatu kondisi huruf vokal yang hanya a, i, u, e, o bisa dikondisikan pada saat kondisi true. Dan pengecekan itu harus semua huruf kecil ataupun huruf besar. Program ini meminta pengguna untuk memasukkan karakter dan memeriksa apakah karakter termasuk vokal atau tidak.&lt;/p></description></item><item><title>Cara Menampilkan Code ASCII</title><link>https://www.santekno.com/cara-menampilkan-code-ascii/</link><pubDate>Fri, 03 May 2019 12:00:00 +0700</pubDate><guid>https://www.santekno.com/cara-menampilkan-code-ascii/</guid><description>&lt;p>Pada kali ini Santekno akan menjelaskan program C yang menampilkan Kode ASCII jika user sudah melakukan input. Kode ASCII ini digunakan untuk menampilkan karakter dalam suatu tipe char atau string. Pada postingan sebelumnya telah dibahas tentang bagaimana &lt;a href="https://localhost:1313/posts/tutorial-c/cara-menampilkan-code-ascii/" title="pertambahan dua variabel pada program C" target="_blank" rel="noopener">pertambahan dua variabel pada program C&lt;/a>
 dan sekarang bagaimana caranya menampilkan kode ASCII agar bisa dilihat berapa nilainya.&lt;/p></description></item><item><title>Cara Pertambahan dua variabel</title><link>https://www.santekno.com/cara-pertambahan-dua-variabel/</link><pubDate>Thu, 02 May 2019 12:00:00 +0700</pubDate><guid>https://www.santekno.com/cara-pertambahan-dua-variabel/</guid><description>&lt;p>Pada kesempatan ini, Santekno akan memberikan tutorial bagaimana cara menghitung pertambahan dua variabel dengan menggunakan program C. Program C ini merupakan dasar logika agar bisa terlatih untuk melakukan pemrograman apapun. Program pertambaha ini sangat berguna karena semua program pasti melakukan aritmatika seperti pertambahan, pengurangan, pembagian, dan perkalian.&lt;/p></description></item><item><title>Ihsan Arif</title><link>https://www.santekno.com/author/</link><pubDate>Mon, 01 Apr 2019 00:00:00 +0000</pubDate><guid>https://www.santekno.com/author/</guid><description/></item><item><title>Cari tulisan</title><link>https://www.santekno.com/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.santekno.com/search/</guid><description/></item></channel></rss>