# Summary

* [Dasar Pemrograman Golang](README.md)
* [Kontributor](CONTRIBUTORS.md)

<hr>

* [Course Mendeploy Aplikasi Go ke Docker dan Kubernetes (PROMO!)](https://www.udemy.com/course/praktis-belajar-docker-dan-kubernetes-untuk-pemula/?couponCode=BIGSALEMARCH)
* [Belajar Devops](https://devops.novalagung.com/)

<hr>

* A. Pemrograman Go Dasar
  * [A.1. Belajar Golang](1-berkenalan-dengan-golang.md)
  * [A.2. Instalasi Golang](2-instalasi-golang.md)
  * [A.3. Setup Go Modules](A-setup-go-project-dengan-go-modules.md)
  * [A.4. Setup GOPATH Dan Workspace](A-gopath-dan-workspace.md)
  * [A.5. Instalasi Editor](A-instalasi-editor.md)
  * [A.6. Go Command](A-go-command.md)
  * [A.7. Program Pertama: Hello World](A-hello-world.md)
  * [A.8. Komentar](A-komentar.md)
  * [A.9. Variabel](A-variabel.md)
  * [A.10. Tipe Data](A-tipe-data.md)
  * [A.11. Konstanta](A-konstanta.md)
  * [A.12. Operator](A-operator.md)
  * [A.13. Seleksi Kondisi](A-seleksi-kondisi.md)
  * [A.14. Perulangan](A-perulangan.md)
  * [A.15. Array](A-array.md)
  * [A.16. Slice](A-slice.md)
  * [A.17. Map](A-map.md)
  * [A.18. Fungsi](A-fungsi.md)
  * [A.19. Fungsi Multiple Return](A-fungsi-multiple-return.md)
  * [A.20. Fungsi Variadic](A-fungsi-variadic.md)
  * [A.21. Fungsi Closure](A-fungsi-closure.md)
  * [A.22. Fungsi Sebagai parameter](A-fungsi-sebagai-parameter.md)
  * [A.23. Pointer](A-pointer.md)
  * [A.24. Struct](A-struct.md)
  * [A.25. Method](A-method.md)
  * [A.26. Properti Public dan Private (Exported vs Unexported)](A-properti-public-dan-private.md)
  * [A.27. Interface](A-interface.md)
  * [A.28. Interface Kosong](A-interface-kosong.md)
  * [A.29. Reflect](A-reflect.md)
  * [A.30. Goroutine](A-goroutine.md)
  * [A.31. Channel](A-channel.md)
  * [A.32. Buffered Channel](A-buffered-channel.md)
  * [A.33. Channel - Select](A-channel-select.md)
  * [A.34. Channel - Range & Close](A-channel-range-close.md)
  * [A.35. Channel - Timeout](A-channel-timeout.md)
  * [A.36. Defer & Exit](A-defer-exit.md)
  * [A.37. Error, Panic, & Recover](A-error-panic-recover.md)
  * [A.38. Layout Format String](A-string-format.md)
  * [A.39. Random](A-random.md)
  * [A.40. Time, Parsing Time, & Format Time](A-time-parsing-format.md)
  * [A.41. Timer, Ticker, & Scheduler](A-timer-ticker-scheduler.md)
  * [A.42. Time Duration](A-time-duration.md)
  * [A.43. Konversi Antar Tipe Data](A-data-type-conversion.md)
  * [A.44. Fungsi String](A-strings.md)
  * [A.45. Regex](A-regex.md)
  * [A.46. Encode - Decode Base64](A-encoding-base64.md)
  * [A.47. Hash Sha1](A-hash-sha1.md)
  * [A.48. Arguments & Flag](A-command-line-args-flag.md)
  * [A.49. Exec](A-exec.md)
  * [A.50. File](A-file.md)
  * [A.51. Web Server](A-web-server.md)
  * [A.52. URL Parsing](A-url-parsing.md)
  * [A.53. JSON Data](A-json.md)
  * [A.54. Web Service API Server](A-web-service-api.md)
  * [A.55. Simple Client HTTP Request](A-client-http-request-simple.md)
  * [A.56. SQL](A-sql.md)
  * [A.57. NoSQL MongoDB](A-mongodb.md)
  * [A.58. Unit Test](A-unit-test.md)
  * [A.59. sync.WaitGroup](A-waitgroup.md)
  * [A.60. sync.Mutex](A-mutex.md)
  * [A.61. Go Vendoring](A-go-vendoring.md)
  * [A.62. Concurrency Pattern: Pipeline](A-concurrency-pipeline.md)
  * [A.63. Concurrency Pattern: Simplified Fan-in Fan-out Pipeline](A-simplified-fan-in-fan-out-pipeline.md)
  * [A.64. Concurrency Pattern: Context Cancellation Pipeline](A-pipeline-context-cancellation.md)

<hr>

* B. Pemrograman Web Go Dasar
  * [B.1. Golang Web App: Hello World](B-1-golang-web-hello-world.md)
  * [B.2. Routing http.HandleFunc](B-2-routing-http-handlefunc.md)
  * [B.3. Routing Static Assets](B-3-routing-static-assets.md)
  * [B.4. Template: Render HTML Template](B-4-template-render-html.md)
  * [B.5. Template: Render Partial HTML Template](B-5-template-render-partial-html.md)
  * [B.6. Template: Actions & Variables](B-6-template-actions-variables.md)
  * [B.7. Template: Functions](B-7-template-functions.md)
  * [B.8. Template: Custom Functions](B-8-template-custom-functions.md)
  * [B.9. Template: Render Specific HTML Template](B-9-render-specific-html-template.md)
  * [B.10. Template: Render HTML String](B-10-render-html-string.md)
  * [B.11. HTTP Method: POST & GET](B-11-http-method.md)
  * [B.12. Form Value](B-12-form-value.md)
  * [B.13. Form Upload File](B-13-form-upload-file.md)
  * [B.14. AJAX JSON Payload](B-14-ajax-json-payload.md)
  * [B.15. AJAX JSON Response](B-15-ajax-json-response.md)
  * [B.16. AJAX Multiple File Upload](B-16-ajax-multi-upload.md)
  * [B.17. Download File](B-17-download-file.md)
  * [B.18. HTTP Basic Auth](B-18-http-basic-auth.md)
  * [B.19. Middleware http.Handler](B-19-middleware-using-http-handler.md)
  * [B.20. Custom Multiplexer](B-20-custom-mux-multiplexer.md)
  * [B.21. HTTP Cookie](B-21-cookie.md)
  * [B.22. Simple Configuration](B-22-simple-configuration.md)
  * [B.23. Server Handler HTTP Request Cancellation](B-server-handler-http-request-cancellation.md)

<hr>

* C. Pemrograman Go Lanjut
  * [C.1. Echo Framework & Routing](C-1-echo-routing.md)
  * [C.2. Parsing HTTP Request Payload (Echo)](C-2-parsing-http-request-payload-echo.md)
  * [C.3. HTTP Request Payload Validation (Validator v9, Echo)](C-3-http-request-payload-validation.md)
  * [C.4. HTTP Error Handling (Validator v9, Echo)](C-4-http-error-handling.md)
  * [C.5. Template Rendering in Echo](C-5-echo-template-rendering.md)
  * [C.6. Advanced Middleware & Logging (Logrus, Echo Logger)](C-6-advanced-middleware-and-logging.md)
  * [C.7. CLI Flag Parser (Kingpin)](C-7-flag-parser.md)
  * C.8. Advanced Configuration
    * [C.8.A. Advanced Configuration: Viper](C-8-A-advanced-configuration-viper.md)
    * [C.8.B. Best Practice Configuration: Environment Variable](C-8-B-best-practice-configuration-env-var.md)
  * [C.9. Secure Cookie (Gorilla Securecookie)](C-9-securecookie.md)
  * [C.10. Session (Gorilla Session)](C-10-session.md)
  * [C.12. CORS & Preflight Request](C-12-cors-preflight-request.md)
  * [C.13. CSRF](C-13-csrf.md)
  * [C.14. Secure Middleware](C-14-secure-middleware.md)
  * [C.15. HTTP Gzip Compression (gziphandler)](C-15-http-gzip-compression.md)
  * [C.16. Send Mail (net/smtp, Gomail v2)](C-16-send-email.md)
  * [C.17. Read & Write Excel XLSX File (Excelize)](C-17-read-write-excel-xlsx-file.md)
  * [C.18. Write PDF File (gofpdf)](C-18-write-pdf-file.md)
  * [C.19. Convert HTML to PDF (go-wkhtmltopdf)](C-19-convert-html-to-pdf.md)
  * [C.20. Scraping & Parsing HTML (goquery)](C-20-scraping-parsing-html.md)
  * [C.21. Parse & Generate XML (etree)](C-21-xml-parser.md)
  * [C.22. HTTPS/TLS Web Server](C-22-https-tls.md)
  * [C.23. HTTP/2 & HTTP/2 Server Push](C-23-http2-server-push.md)
  * [C.24. Advanced Client HTTP Request](C-24-client-http-request-advanced.md)
  * [C.25. Secure & Insecure Client HTTP Request](C-25-secure-insecure-client-http-request.md)
  * [C.26. FTP](C-26-golang-ftp.md)
  * [C.27. SSH & SFTP](C-27-golang-ssh-sftp.md)
  * [C.29. Protobuf](C-29-golang-protobuf-implementation.md)
  * [C.30. gRPC + Protobuf](C-30-golang-grpc-protobuf.md)
  * [C.32. JSON Web Token (JWT)](C-32-golang-jwt.md)
  * [C.33. LDAP Authentication](C-33-golang-ldap-authentication.md)
  * [C.34. SSO SAML (Service Provider)](C-34-golang-sso-saml-sp.md)
  * [C.35. Dockerize Aplikasi Golang](C-dockerize-golang.md)

<hr>

* D. Studi Kasus
  * [D.1. Insert 1 Juta Data dari File CSV Ke Database Server, Menggunakan Teknik Worker Pool, Database Connection Pool, dan Mekanisme Failover](D-insert-1mil-csv-record-into-db-in-a-minute.md)
  * [D.2. Google API Search Dengan Timeout](D-google-api-search.md)
  * [D.3. Web Socket: Chatting App](D-golang-web-socket-chatting-app.md)
