Dasar Pemrograman Golang: a free Indonesian Go textbook that tracks the language
đź“– Source Code Website/Ebook Dasar Pemrograman Golang
At a glance
- What is it?
- A 160 chapter open source Go book published as a website, PDF, EPUB and Mobi, licensed CC BY-SA 4.0, with chapters grouped into basics, basic web, advanced topics and case studies.
- Who is it for?
- This is a textbook with a build system rather than a documentation site, and that framing explains most of its decisions. Honkit renders Markdown from `content/`, the ebook artefacts are generated from the same source, and a `crowdin.yml` sits in the root because translation is a first-class concern for a book with this audience.
- Can I use it commercially?
- Yes, with credit. CC-BY-SA-4.0 allows commercial use as long as you credit the authors and indicate what you changed. It is written for creative content, so check how it applies to any code.
- Is it still maintained?
- Yes. The repository last received commits 120 days ago.
- What is it written in?
- Mainly Go, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 10, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A book in Indonesian, free to redistribute with attribution
The repository description calls it source code for a website and ebook on the fundamentals of Go programming, and the topics confirm the shape: `book`, `ebook`, `go`, `golang`, `learning`, `source-code` and `tutorial`. GitHub records the language as Go, with 2,636 stars, 420 forks and 50 open issues, and the last push was on 2026-06-12.
The opening section is an argument for the language rather than an introduction to the book. It dates Go to 2009 and points at the GoUsers list of companies using it in production, then places the book among many available Go references. The framing is deliberately modest: this is one reference among several, and the author says so.
Licensing is unusually clear and worth quoting precisely. The book is free to redistribute for commercial or non-commercial use, provided the original credit is included, naming either Dasar Pemrograman Golang or the author's name, and the original licence is not changed. That is CC BY-SA 4.0, and the repository records the same identifier. A FOSSA badge for licence compliance analysis sits next to the licence paragraph, so the terms are treated as something to verify rather than assert. For anyone wanting to translate the book or teach from it, the share-alike clause is the constraint that matters, and the content distribution page is where the detail lives.
Four ordered categories, 160 chapters
The book is organised into four blocks that build on each other, and the structure is the main thing a reader should understand before starting.
The first category is basic Go programming, aimed at readers who have never used the language. It runs from installation and execution through hello world, then into keywords, pointers, structs, interfaces, reflection, goroutines, channels and date and time handling. The second category is basic Go web programming, and it carries an explicit constraint that shapes every chapter in it: no external frameworks or libraries are used, only Go's own standard library, covering routing, multiplexers, middleware and cookies. The third category moves to advanced topics and does use well-known community libraries, naming http, ssl, cors, csrf, mail, pdf, excel, ftp, ssh, web socket, protobuf and gRPC with protobuf. The fourth category is case studies, described as proofs of concept solving real project problems.
Roughly 160 chapters in total. For someone deciding whether this suits them, the second category's no-framework rule is the decisive detail, because it is unusual to find web tutorials that refuse to reach for a framework.
Honkit, a content directory and a Crowdin file
The file tree shows this is a generated site rather than hand-written HTML:
content/
crowdin.yml
etc/
examples
package.json
CNAME`package.json` is short and names the tool. The dev dependencies are `honkit` plus four GitBook plugins for comments, search, metadata and sitemap, and there are exactly two scripts, a build script that runs `honkit build` and a serve script that runs `honkit serve` after changing into `content/`.
The serve script changing directory into `content/` tells you where the book source lives, which matches the `content/` entry in the tree. A `CNAME` file pins the custom domain, which is why the README's online link points at a `dasarpemrogramangolang.novalagung.com` host rather than a GitHub Pages project URL.
Two files in that tree are more interesting than they look. `crowdin.yml` means the book has translation infrastructure, which fits a project whose audience is Indonesian but whose subject has a global community. And `examples` appears as a submodule entry with `.gitmodules` in the root, which is consistent with the README's separate example repository: the practice code lives at its own URL and is pulled in rather than duplicated.
That separation is a deliberate pedagogical choice. The README advises readers not to copy and paste from the example source and instead to write the code themselves, which only works if the examples are a separate thing you can avoid.
Version numbering that encodes the date
Release tags are dates. The three most recent are v4.0.20250422 from April 2025, v4.0.20251111 from November 2025, and v4.1.20260510 from May 2026.
Here is a discrepancy worth handling carefully rather than picking a side on. The README states the ebook version is v4.0.20251111 alongside Go 1.26.4, while the newest release on the repository is v4.1.20260510, a minor version bump above the one the README advertises. Both are facts about the repository right now. The README also asks readers to consult the online version for the most current content and to re-download the ebook for the newest version, which is a hint that the PDF, EPUB and Mobi files in `ebooks/` can lag behind the website.
So if you want the corrected text, the web version is the safer artefact. If you want an offline file, check which tag it was generated from before assuming the download links point at the latest release. That is a small thing to check and the difference between reading corrected material and re-reading stale material.
What recent releases actually changed, and why it matters
The v4.1.20260510 release notes are a useful sample of how this book is maintained, because each entry names a chapter and a reason.
Several changes are about Go's own moving behaviour. The Go Command chapter's explanation of `go get` was updated to match modern behaviour, including what happens when it runs outside a module. The HTTP/2 chapter was rewritten because browsers no longer support server push, which is the kind of edit that keeps a technical book from teaching something that stopped being true. The Go Generics chapter had its `comparable` explanation clarified.
Two entries are corrections of conceptual errors rather than updates. The SHA1 chapter was fixed to separate the concept of a hash from encryption, with a security note added about production use. The JWT chapter was corrected on the difference between signing and encryption, and synchronised with `RegisteredClaims`. Those are the kind of errors that pass unnoticed in a tutorial and matter a great deal to a reader who is learning the underlying model.
Other entries are presentational. The slice chapter was reordered so that `make` appears after the core slice concepts, and the map chapter was clarified on the difference between `make` and `new`. Earlier releases show the same mix, including a Redis chapter syntax fix, a typo fix in the multiple return chapter, and a code refactor in the HTML template rendering chapter. Community pull requests appear by name in the release notes alongside the author's own edits, which is what a maintained open textbook looks like in practice.
Editorial conclusion
This is a textbook with a build system rather than a documentation site, and that framing explains most of its decisions. Honkit renders Markdown from `content/`, the ebook artefacts are generated from the same source, and a `crowdin.yml` sits in the root because translation is a first-class concern for a book with this audience. What the repository settles well is scope, licensing and the maintenance cadence, including a release that corrected a chapter on SHA1 hashing to separate hashing from encryption and one that dropped the HTTP/2 server push section because browsers no longer support it. What it does not settle is the version mismatch between the README and the latest release tag. Start with the web version rather than the download, since the web text is where the current corrections land first.
Frequently asked questions
What is Dasar Pemrograman Golang and who is it for?
It is a free open source Indonesian-language textbook on Go, published as a website and as PDF, EPUB and Mobi downloads, with around 160 chapters and 2,636 GitHub stars. The first block of chapters starts from installation and hello world and works up through pointers, structs, interfaces, reflection, goroutines and channels, so it is aimed at readers new to the language as well as at those who want a structured path through it.
Can I use this Go book to learn web development, and does it use frameworks?
It has a dedicated basic web programming section, and that section explicitly avoids external frameworks and libraries, using only Go's own standard library for routing, multiplexers, middleware and cookies. Framework-adjacent topics appear later, in the advanced category, where well-known community libraries are used for http, ssl, cors, csrf, mail, pdf, excel, ftp, ssh, web sockets, protobuf and gRPC. Whether the no-framework approach helps you is a matter of taste, and it is the clearest thing to know before you start.
Can I translate or republish Dasar Pemrograman Golang?
The book is licensed CC BY-SA 4.0 and is free to redistribute for commercial or non-commercial use, provided the original credit is included, naming either Dasar Pemrograman Golang or the author's name, and the original licence is not changed. The share-alike clause means a modified or translated version has to keep the same licence. A FOSSA licence analysis badge is shown in the README, and a Crowdin configuration file sits in the repository root.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/novalagung-dasarpemrogramangolang)