Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Crowdin updates #240

Open
wants to merge 504 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
504 commits
Select commit Hold shift + click to select a range
56c1181
New translations c-golang-ftp.md (English)
novalagung Dec 25, 2023
fc34df4
New translations c-golang-jwt.md (English)
novalagung Dec 25, 2023
9c0e3c8
New translations c-golang-ldap-authentication.md (English)
novalagung Dec 25, 2023
2a3b8c8
New translations c-golang-redis.md (English)
novalagung Dec 25, 2023
626c3db
New translations c-golang-ssh-sftp.md (English)
novalagung Dec 25, 2023
4793851
New translations c-golang-sso-saml-sp.md (English)
novalagung Dec 25, 2023
b7f436e
New translations c-golang-web-framework.md (English)
novalagung Dec 25, 2023
8e07780
New translations c-http-error-handling.md (English)
novalagung Dec 25, 2023
ab70496
New translations c-http-gzip-compression.md (English)
novalagung Dec 25, 2023
aede54c
New translations c-http-request-payload-validation.md (English)
novalagung Dec 25, 2023
cdcc3c8
New translations c-http2-server-push.md (English)
novalagung Dec 25, 2023
ccd28ab
New translations c-https-tls.md (English)
novalagung Dec 25, 2023
1eb1b99
New translations c-parsing-http-request-payload-echo.md (English)
novalagung Dec 25, 2023
13e0093
New translations c-project-layout-structure.md (English)
novalagung Dec 25, 2023
a7a7fcc
New translations c-read-write-excel-xlsx-file.md (English)
novalagung Dec 25, 2023
bab3390
New translations c-scraping-parsing-html.md (English)
novalagung Dec 25, 2023
17ef29e
New translations c-secure-insecure-client-http-request.md (English)
novalagung Dec 25, 2023
93e91e7
New translations c-secure-middleware.md (English)
novalagung Dec 25, 2023
f99541b
New translations c-securecookie.md (English)
novalagung Dec 25, 2023
47715de
New translations c-send-email.md (English)
novalagung Dec 25, 2023
6c235b1
New translations c-session.md (English)
novalagung Dec 25, 2023
c99634a
New translations c-singleflight.md (English)
novalagung Dec 25, 2023
6b5c563
New translations c-write-pdf-file.md (English)
novalagung Dec 25, 2023
a325732
New translations c-xml-parser.md (English)
novalagung Dec 25, 2023
f46ea25
New translations d-golang-web-socket-chatting-app.md (English)
novalagung Dec 25, 2023
c772bd3
New translations d-google-api-search.md (English)
novalagung Dec 25, 2023
f1ac9f8
New translations d-insert-1mil-csv-record-into-db-in-a-minute.md (Eng…
novalagung Dec 25, 2023
35b80b2
New translations a-setup-go-project-dengan-go-modules.md (English)
novalagung Mar 5, 2024
90980cf
New translations contributing.md (English)
novalagung Mar 5, 2024
549ac61
New translations a-tipe-data.md (English)
novalagung Mar 7, 2024
91caf2e
New translations a-buffered-channel.md (English)
novalagung Mar 29, 2024
7776822
New translations c-golang-sso-saml-sp.md (English)
novalagung Mar 29, 2024
42d13cf
New translations contributing.md (English)
novalagung Mar 29, 2024
287acde
New translations a-fungsi.md (English)
novalagung Mar 31, 2024
87ae7be
New translations 2-instalasi-golang.md (English)
novalagung Apr 3, 2024
8249d09
New translations a-perulangan.md (English)
novalagung Apr 22, 2024
6c2cbb4
New translations readme.md (English)
novalagung Apr 22, 2024
ffe9681
New translations 2-instalasi-golang.md (English)
novalagung Apr 25, 2024
2341e55
New translations a-array.md (English)
novalagung Apr 25, 2024
59b94ff
New translations a-buffered-channel.md (English)
novalagung Apr 25, 2024
7daddc0
New translations a-channel-range-close.md (English)
novalagung Apr 25, 2024
927a75e
New translations a-channel-select.md (English)
novalagung Apr 25, 2024
b8122be
New translations a-channel-timeout.md (English)
novalagung Apr 25, 2024
b29c66e
New translations a-channel.md (English)
novalagung Apr 25, 2024
8ba4bb8
New translations a-client-http-request-simple.md (English)
novalagung Apr 25, 2024
0d225a3
New translations a-command-line-args-flag.md (English)
novalagung Apr 25, 2024
5d16c46
New translations a-concurrency-pipeline.md (English)
novalagung Apr 25, 2024
81e54ea
New translations a-data-type-conversion.md (English)
novalagung Apr 25, 2024
5f8f18c
New translations a-defer-exit.md (English)
novalagung Apr 25, 2024
858df59
New translations a-encoding-base64.md (English)
novalagung Apr 25, 2024
aac5a66
New translations a-error-panic-recover.md (English)
novalagung Apr 25, 2024
1b28bac
New translations a-exec.md (English)
novalagung Apr 25, 2024
b94b3a3
New translations a-file.md (English)
novalagung Apr 25, 2024
b955b47
New translations a-fungsi-closure.md (English)
novalagung Apr 25, 2024
a43efb8
New translations a-fungsi-multiple-return.md (English)
novalagung Apr 25, 2024
6f6873a
New translations a-fungsi-sebagai-parameter.md (English)
novalagung Apr 25, 2024
8444710
New translations a-fungsi-variadic.md (English)
novalagung Apr 25, 2024
da24f1f
New translations a-fungsi.md (English)
novalagung Apr 25, 2024
2e94e5a
New translations a-go-command.md (English)
novalagung Apr 25, 2024
ef211bf
New translations a-go-vendoring.md (English)
novalagung Apr 25, 2024
62d810a
New translations a-golang-generics.md (English)
novalagung Apr 25, 2024
fca1480
New translations a-gopath-dan-workspace.md (English)
novalagung Apr 25, 2024
cde2ab4
New translations a-goroutine.md (English)
novalagung Apr 25, 2024
5d5fa7d
New translations a-hash-sha1.md (English)
novalagung Apr 25, 2024
44088e9
New translations a-hello-world.md (English)
novalagung Apr 25, 2024
e2b6273
New translations a-instalasi-editor.md (English)
novalagung Apr 25, 2024
8458222
New translations a-interface-kosong.md (English)
novalagung Apr 25, 2024
850af7d
New translations a-interface.md (English)
novalagung Apr 25, 2024
557209a
New translations a-json.md (English)
novalagung Apr 25, 2024
df16adc
New translations a-komentar.md (English)
novalagung Apr 25, 2024
3f73dfa
New translations a-konstanta.md (English)
novalagung Apr 25, 2024
7c19afe
New translations a-map.md (English)
novalagung Apr 25, 2024
df10b6e
New translations a-method.md (English)
novalagung Apr 25, 2024
f429b97
New translations a-pipeline-context-cancellation.md (English)
novalagung Apr 25, 2024
c37d2b4
New translations a-properti-public-dan-private.md (English)
novalagung Apr 25, 2024
766a21a
New translations a-random.md (English)
novalagung Apr 25, 2024
94c5c4a
New translations a-reflect.md (English)
novalagung Apr 25, 2024
fd0e349
New translations a-regex.md (English)
novalagung Apr 25, 2024
bc8d69e
New translations a-seleksi-kondisi.md (English)
novalagung Apr 25, 2024
22d7a97
New translations a-setup-go-project-dengan-go-modules.md (English)
novalagung Apr 25, 2024
2c90c5f
New translations a-simplified-fan-in-fan-out-pipeline.md (English)
novalagung Apr 25, 2024
db68ec2
New translations a-slice.md (English)
novalagung Apr 25, 2024
6f8af6f
New translations a-sql.md (English)
novalagung Apr 25, 2024
c45a4eb
New translations a-string-format.md (English)
novalagung Apr 25, 2024
e2f676c
New translations a-strings.md (English)
novalagung Apr 25, 2024
ca46461
New translations a-struct.md (English)
novalagung Apr 25, 2024
e2de320
New translations a-time-duration.md (English)
novalagung Apr 25, 2024
89b2018
New translations a-time-parsing-format.md (English)
novalagung Apr 25, 2024
9525fbf
New translations a-timer-ticker-scheduler.md (English)
novalagung Apr 25, 2024
7ab4d22
New translations a-tipe-data.md (English)
novalagung Apr 25, 2024
1744c01
New translations a-unit-test.md (English)
novalagung Apr 25, 2024
9db4dad
New translations a-url-parsing.md (English)
novalagung Apr 25, 2024
ed524e1
New translations a-variabel.md (English)
novalagung Apr 25, 2024
6c049f2
New translations a-waitgroup.md (English)
novalagung Apr 25, 2024
250074f
New translations a-web-server.md (English)
novalagung Apr 25, 2024
9fcd764
New translations a-web-service-api.md (English)
novalagung Apr 25, 2024
9990a71
New translations b-golang-web-hello-world.md (English)
novalagung Apr 25, 2024
1566090
New translations b-http-basic-auth.md (English)
novalagung Apr 25, 2024
7b98470
New translations b-simple-configuration.md (English)
novalagung Apr 25, 2024
87b9e2c
New translations b-template-functions.md (English)
novalagung Apr 25, 2024
f6e8daf
New translations c-best-practice-configuration-env-var.md (English)
novalagung Apr 25, 2024
631d2a0
New translations c-cors-preflight-request.md (English)
novalagung Apr 25, 2024
f3a22e7
New translations c-dockerize-golang.md (English)
novalagung Apr 25, 2024
d6dd345
New translations c-echo-routing.md (English)
novalagung Apr 25, 2024
c66a959
New translations c-golang-aws-s3.md (English)
novalagung Apr 25, 2024
ac997f3
New translations c-golang-grpc-protobuf.md (English)
novalagung Apr 25, 2024
fd592bd
New translations c-golang-jwt.md (English)
novalagung Apr 25, 2024
7a0b604
New translations c-golang-ldap-authentication.md (English)
novalagung Apr 25, 2024
9d9322a
New translations c-golang-protobuf-implementation.md (English)
novalagung Apr 25, 2024
2319c9e
New translations c-golang-sso-saml-sp.md (English)
novalagung Apr 25, 2024
4c7104a
New translations c-https-tls.md (English)
novalagung Apr 25, 2024
8898467
New translations c-parsing-http-request-payload-echo.md (English)
novalagung Apr 25, 2024
6d7af0c
New translations c-project-layout-structure.md (English)
novalagung Apr 25, 2024
8f92359
New translations c-secure-middleware.md (English)
novalagung Apr 25, 2024
a56c476
New translations c-write-pdf-file.md (English)
novalagung Apr 25, 2024
c026ea9
New translations contributing.md (English)
novalagung Apr 25, 2024
33b7d36
New translations d-insert-1mil-csv-record-into-db-in-a-minute.md (Eng…
novalagung Apr 25, 2024
487e280
New translations summary.md (English)
novalagung Apr 25, 2024
8e88259
New translations summary.md (English)
novalagung Apr 25, 2024
7fbfc62
New translations a-array.md (English)
novalagung Apr 27, 2024
57ba106
New translations a-buffered-channel.md (English)
novalagung Apr 27, 2024
e820743
New translations a-channel-range-close.md (English)
novalagung Apr 27, 2024
5e359e4
New translations a-channel-select.md (English)
novalagung Apr 27, 2024
2f95b74
New translations a-channel-timeout.md (English)
novalagung Apr 27, 2024
86b1e9f
New translations a-channel.md (English)
novalagung Apr 27, 2024
9dda7c4
New translations a-client-http-request-simple.md (English)
novalagung Apr 27, 2024
76ef5c3
New translations a-command-line-args-flag.md (English)
novalagung Apr 27, 2024
f411a9e
New translations a-concurrency-pipeline.md (English)
novalagung Apr 27, 2024
d27e82e
New translations a-data-type-conversion.md (English)
novalagung Apr 27, 2024
045f393
New translations a-defer-exit.md (English)
novalagung Apr 27, 2024
f492bc3
New translations a-encoding-base64.md (English)
novalagung Apr 27, 2024
7c0be70
New translations a-error-panic-recover.md (English)
novalagung Apr 27, 2024
434c0f4
New translations a-exec.md (English)
novalagung Apr 27, 2024
ff6405d
New translations a-file.md (English)
novalagung Apr 27, 2024
431c0e9
New translations a-fungsi-closure.md (English)
novalagung Apr 27, 2024
48d8875
New translations a-fungsi-multiple-return.md (English)
novalagung Apr 27, 2024
73f234d
New translations a-fungsi-sebagai-parameter.md (English)
novalagung Apr 27, 2024
f211023
New translations a-fungsi-variadic.md (English)
novalagung Apr 27, 2024
52421d6
New translations a-fungsi.md (English)
novalagung Apr 27, 2024
23e3e8d
New translations a-go-vendoring.md (English)
novalagung Apr 27, 2024
56a2040
New translations a-golang-generics.md (English)
novalagung Apr 27, 2024
8b00956
New translations a-goroutine.md (English)
novalagung Apr 27, 2024
d5d6a2d
New translations a-hash-sha1.md (English)
novalagung Apr 27, 2024
001f29a
New translations a-hello-world.md (English)
novalagung Apr 27, 2024
b851aca
New translations a-interface-kosong.md (English)
novalagung Apr 27, 2024
37cdba6
New translations a-interface.md (English)
novalagung Apr 27, 2024
0217598
New translations a-json.md (English)
novalagung Apr 27, 2024
12286c1
New translations a-perulangan.md (English)
novalagung Apr 27, 2024
9151796
New translations readme.md (English)
novalagung Apr 27, 2024
d2d4cd3
New translations a-komentar.md (English)
novalagung Apr 27, 2024
0d4e541
New translations a-konstanta.md (English)
novalagung Apr 27, 2024
a80a04d
New translations a-map.md (English)
novalagung Apr 27, 2024
de104c8
New translations a-method.md (English)
novalagung Apr 27, 2024
1abaec5
New translations a-pipeline-context-cancellation.md (English)
novalagung Apr 27, 2024
8d6cc8a
New translations a-properti-public-dan-private.md (English)
novalagung Apr 27, 2024
fe56b50
New translations a-random.md (English)
novalagung Apr 27, 2024
86a9a95
New translations a-reflect.md (English)
novalagung Apr 27, 2024
f96574a
New translations a-regex.md (English)
novalagung Apr 27, 2024
dde0eab
New translations a-seleksi-kondisi.md (English)
novalagung Apr 27, 2024
c7ed926
New translations a-simplified-fan-in-fan-out-pipeline.md (English)
novalagung Apr 27, 2024
958b467
New translations a-slice.md (English)
novalagung Apr 27, 2024
59b12c5
New translations a-sql.md (English)
novalagung Apr 27, 2024
770b74f
New translations a-string-format.md (English)
novalagung Apr 27, 2024
0ee5995
New translations a-strings.md (English)
novalagung Apr 27, 2024
5541974
New translations a-struct.md (English)
novalagung Apr 27, 2024
4d10a4e
New translations a-time-duration.md (English)
novalagung Apr 27, 2024
6f1d917
New translations a-time-parsing-format.md (English)
novalagung Apr 27, 2024
b8f1c7b
New translations a-timer-ticker-scheduler.md (English)
novalagung Apr 27, 2024
d3c1075
New translations a-tipe-data.md (English)
novalagung Apr 27, 2024
4afd4a6
New translations a-unit-test.md (English)
novalagung Apr 27, 2024
490067b
New translations a-url-parsing.md (English)
novalagung Apr 27, 2024
02c87c3
New translations a-variabel.md (English)
novalagung Apr 27, 2024
738bc1e
New translations a-waitgroup.md (English)
novalagung Apr 27, 2024
1cc2eb9
New translations a-web-server.md (English)
novalagung Apr 27, 2024
3a5ebd5
New translations a-web-service-api.md (English)
novalagung Apr 27, 2024
2dbaf0c
New translations b-golang-web-hello-world.md (English)
novalagung Apr 27, 2024
347721c
New translations b-http-basic-auth.md (English)
novalagung Apr 27, 2024
7d44fba
New translations b-simple-configuration.md (English)
novalagung Apr 27, 2024
27b879b
New translations b-template-functions.md (English)
novalagung Apr 27, 2024
6177c0d
New translations c-best-practice-configuration-env-var.md (English)
novalagung Apr 27, 2024
3487449
New translations c-cors-preflight-request.md (English)
novalagung Apr 27, 2024
bdb309c
New translations c-dockerize-golang.md (English)
novalagung Apr 27, 2024
7922081
New translations c-echo-routing.md (English)
novalagung Apr 27, 2024
35f1c13
New translations c-golang-aws-s3.md (English)
novalagung Apr 27, 2024
9bdc60b
New translations c-golang-grpc-protobuf.md (English)
novalagung Apr 27, 2024
3c69553
New translations c-golang-jwt.md (English)
novalagung Apr 27, 2024
a401df4
New translations c-golang-ldap-authentication.md (English)
novalagung Apr 27, 2024
3d53f32
New translations c-golang-protobuf-implementation.md (English)
novalagung Apr 27, 2024
a33368d
New translations c-golang-sso-saml-sp.md (English)
novalagung Apr 27, 2024
a420ec9
New translations c-https-tls.md (English)
novalagung Apr 27, 2024
e0b541c
New translations c-parsing-http-request-payload-echo.md (English)
novalagung Apr 27, 2024
8b6aa66
New translations c-secure-middleware.md (English)
novalagung Apr 27, 2024
192bd1e
New translations c-write-pdf-file.md (English)
novalagung Apr 27, 2024
9a6441a
New translations d-insert-1mil-csv-record-into-db-in-a-minute.md (Eng…
novalagung Apr 27, 2024
a7d6be6
New translations a-mongodb.md (English)
novalagung Apr 27, 2024
ccfbce2
New translations a-mutex.md (English)
novalagung Apr 27, 2024
b394c5f
New translations a-operator.md (English)
novalagung Apr 27, 2024
9aeb971
New translations a-pointer.md (English)
novalagung Apr 27, 2024
92b7b3f
New translations b-ajax-json-payload.md (English)
novalagung Apr 27, 2024
8e886fc
New translations b-ajax-json-response.md (English)
novalagung Apr 27, 2024
5a3abc4
New translations b-ajax-multi-upload.md (English)
novalagung Apr 27, 2024
9b97bae
New translations b-cookie.md (English)
novalagung Apr 27, 2024
cd9a04e
New translations b-custom-mux-multiplexer.md (English)
novalagung Apr 27, 2024
9e1c0b6
New translations b-download-file.md (English)
novalagung Apr 27, 2024
9fb4b13
New translations b-form-upload-file.md (English)
novalagung Apr 27, 2024
11da07c
New translations b-form-value.md (English)
novalagung Apr 27, 2024
ae83ac5
New translations b-http-method-basic.md (English)
novalagung Apr 27, 2024
9af759f
New translations b-middleware-using-http-handler.md (English)
novalagung Apr 27, 2024
3139c9f
New translations b-render-html-string.md (English)
novalagung Apr 27, 2024
9b42e52
New translations b-render-specific-html-template.md (English)
novalagung Apr 27, 2024
c65de68
New translations b-routing-http-handlefunc.md (English)
novalagung Apr 27, 2024
be90da2
New translations b-routing-static-assets.md (English)
novalagung Apr 27, 2024
65784e2
New translations b-server-handler-http-request-cancellation.md (English)
novalagung Apr 27, 2024
796c731
New translations b-template-actions-variables.md (English)
novalagung Apr 27, 2024
7da76c2
New translations b-template-custom-functions.md (English)
novalagung Apr 27, 2024
48b8118
New translations b-template-render-html.md (English)
novalagung Apr 27, 2024
83a851b
New translations b-template-render-partial-html.md (English)
novalagung Apr 27, 2024
72e81db
New translations c-advanced-configuration-viper.md (English)
novalagung Apr 27, 2024
2771381
New translations c-advanced-middleware-and-logging.md (English)
novalagung Apr 27, 2024
5ca39db
New translations c-client-http-request-advanced.md (English)
novalagung Apr 27, 2024
63c093e
New translations c-convert-html-to-pdf.md (English)
novalagung Apr 27, 2024
137358e
New translations c-csrf.md (English)
novalagung Apr 27, 2024
38f37b2
New translations c-echo-template-rendering.md (English)
novalagung Apr 27, 2024
527b558
New translations c-flag-parser.md (English)
novalagung Apr 27, 2024
957ee70
New translations c-golang-ftp.md (English)
novalagung Apr 27, 2024
8e2db50
New translations c-golang-redis.md (English)
novalagung Apr 27, 2024
2612ead
New translations c-golang-ssh-sftp.md (English)
novalagung Apr 27, 2024
bb17c80
New translations c-http-error-handling.md (English)
novalagung Apr 27, 2024
5fd3882
New translations c-http-gzip-compression.md (English)
novalagung Apr 27, 2024
0402027
New translations c-http-request-payload-validation.md (English)
novalagung Apr 27, 2024
f878903
New translations c-http2-server-push.md (English)
novalagung Apr 27, 2024
9ec9a13
New translations c-read-write-excel-xlsx-file.md (English)
novalagung Apr 27, 2024
2f76c37
New translations c-scraping-parsing-html.md (English)
novalagung Apr 27, 2024
f260092
New translations c-secure-insecure-client-http-request.md (English)
novalagung Apr 27, 2024
48e5263
New translations c-securecookie.md (English)
novalagung Apr 27, 2024
2a0b5e1
New translations c-send-email.md (English)
novalagung Apr 27, 2024
0b04ffd
New translations c-session.md (English)
novalagung Apr 27, 2024
717e9c1
New translations c-singleflight.md (English)
novalagung Apr 27, 2024
f1ea453
New translations c-xml-parser.md (English)
novalagung Apr 27, 2024
6dd042c
New translations d-golang-web-socket-chatting-app.md (English)
novalagung Apr 27, 2024
da5ff93
New translations d-google-api-search.md (English)
novalagung Apr 27, 2024
ea6b2cf
New translations readme.md (English)
novalagung May 25, 2024
ff23544
New translations readme.md (English)
novalagung May 30, 2024
c6efd14
New translations readme.md (English)
novalagung Jun 4, 2024
370f274
New translations a-time-duration.md (English)
novalagung Aug 25, 2024
85786de
New translations readme.md (English)
novalagung Aug 30, 2024
41099d1
New translations summary.md (English)
novalagung Aug 30, 2024
5bafd34
New translations changelog.md (English)
novalagung Aug 30, 2024
c717d61
New translations download-ebook.md (English)
novalagung Aug 30, 2024
321f2af
New translations changelog.md (English)
novalagung Aug 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions en/content-en/1-berkenalan-dengan-golang.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Belajar Golang (Gratis!)

**[Golang](https://golang.org/)** (atau biasa disebut dengan **Go**) adalah bahasa pemrograman yang dikembangkan di **Google** oleh **[Robert Griesemer](https://github.com/griesemer)**, **[Rob Pike](https://en.wikipedia.org/wiki/Rob_Pike)**, dan **[Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson)** pada tahun 2007 dan mulai diperkenalkan ke publik tahun 2009.

Penciptaan bahasa Go didasari bahasa **C** dan **C++**, oleh karena itu gaya sintaksnya mirip.

#### Kelebihan Go

Go memiliki kelebihan dibanding bahasa lainnya, beberapa di antaranya:

* Mendukung konkurensi di level bahasa dengan pengaplikasian cukup mudah
* Mendukung pemrosesan data dengan banyak prosesor dalam waktu yang bersamaan *(pararel processing)*
* Memiliki *garbage collector*
* Proses kompilasi sangat cepat
* Bukan bahasa pemrograman yang hirarkial dan bukan *strict* OOP, memberikan kebebasan ke developer perihal bagaimana cara penulisan kode.
* Dependensi dan *tooling* yang disediakan terbilang lengkap.
* Dukungan komunitas sangat bagus. Banyak tools yang tersedia secara gratis dan *open source* yang bisa langsung dimanfaatkan.

Sudah banyak industri dan perusahaan yg menggunakan Go sampai level production, termasuk di antaranya adalah Google sendiri, dan juga tempat di mana penulis bekerja 😁

---

Pada buku ini (terutama semua serial chapter A) kita akan belajar tentang dasar pemrograman Go, mulai dari 0, dan gratis.

![The Go Logo](images/A_introduction_1_logo.png)

---

<iframe src="partial/substack.html" width="100%" height="320px" frameborder="0" scrolling="no"></iframe>
<iframe src="partial/ebooks.html" width="100%" height="390px" frameborder="0" scrolling="no"></iframe>
106 changes: 106 additions & 0 deletions en/content-en/2-instalasi-golang.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# A.2. Instalasi Golang (Stable & Unstable)

Hal pertama yang perlu dilakukan sebelum bisa menggunakan Go adalah meng-*install*-nya terlebih dahulu. Panduan instalasi sebenarnya sudah disediakan di situs resmi Go [http://golang.org/doc/install#install](http://golang.org/doc/install#install).

Di sini penulis mencoba meringkas petunjuk instalasi pada *link* di atas, agar lebih mudah untuk diikuti terutama untuk pembaca yang baru belajar.

> Go yang digunakan adalah versi **1.22**, direkomendasikan menggunakan versi tersebut.

URL untuk mengunduh *installer* Go: https://golang.org/dl/. Silakan langsung unduh dari *link* tersebut lalu lakukan proses instalasi, atau bisa mengikuti petunjuk pada chapter ini.

## A.2.1. Instalasi Go *Stable*

#### ◉ Instalasi Go di Windows

1. Download terlebih dahulu *installer*-nya di [https://golang.org/dl/](https://golang.org/dl/). Pilih *installer* untuk sistem operasi Windows sesuai jenis bit yang digunakan.

2. Setelah ter-*download*, jalankan *installer*, klik *next* hingga proses instalasi selesai. *By default* jika anda tidak merubah path pada saat instalasi, Go akan ter-*install* di `C:\go`. *Path* tersebut secara otomatis akan didaftarkan dalam `PATH` *environment variable*.

3. Buka *Command Prompt* / *CMD*, eksekusi perintah berikut untuk mengecek versi Go.

```bash
go version
```

4. Jika output adalah sama dengan versi Go yang ter-*install*, menandakan proses instalasi berhasil.

> Sering terjadi, command `go version` tidak bisa dijalankan meskipun instalasi sukses. Solusinya bisa dengan restart CMD (tutup CMD, kemudian buka lagi). Setelah itu coba jalankan ulang command di atas.

#### ◉ Instalasi Go di MacOS

Cara termudah instalasi Go di MacOS adalah menggunakan [Homebrew](http://brew.sh/).

1. *Install* terlebih dahulu Homebrew (jika belum ada), caranya jalankan perintah berikut di **terminal**.

```bash
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

2. *Install* Go menggunakan command `brew`.

```bash
$ brew install go
```

3. Tambahkan path binary Go ke `PATH` *environment variable*.

```bash
$ echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bash_profile
$ source ~/.bash_profile
```

4. Jalankan perintah berikut mengecek versi Go.

```bash
go version
```

5. Jika output adalah sama dengan versi Go yang ter-*install*, menandakan proses instalasi berhasil.

#### ◉ Instalasi Go di Linux

1. Unduh arsip *installer* dari [https://golang.org/dl/](https://golang.org/dl/), pilih installer untuk Linux yang sesuai dengan jenis bit komputer anda. Proses download bisa dilakukan lewat CLI, menggunakan `wget` atau `curl`.

```bash
$ wget https://storage.googleapis.com/golang/go1...
```

2. Buka terminal, *extract* arsip tersebut ke `/usr/local`.

```bash
$ tar -C /usr/local -xzf go1...
```

3. Tambahkan path binary Go ke `PATH` *environment variable*.

```bash
$ echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
$ source ~/.bashrc
```

4. Selanjutnya, eksekusi perintah berikut untuk mengetes apakah Go sudah terinstal dengan benar.

```bash
go version
```

5. Jika output adalah sama dengan versi Go yang ter-*install*, menandakan proses instalasi berhasil.

## A.2.2. Variabel `GOROOT`

*By default*, setelah proses instalasi Go selesai, secara otomatis akan muncul *environment variable* `GOROOT`. Isi dari variabel ini adalah lokasi di mana Go ter-*install*.

Sebagai contoh di Windows, ketika Go di-*install* di `C:\go`, maka path tersebut akan menjadi isi dari `GOROOT`.

Silakan gunakan command `go env` untuk melihat informasi konfigurasi *environment* yang ada.

## A.2.3. Instalasi Go *Unstable*/*Development*

Jika pembaca tertarik untuk mencoba versi development Go, ingin mencoba fitur yang belum dirilis secara official, ada beberapa cara:

- Instalasi dengan *build from source* https://go.dev/doc/install/source
- Gunakan command `go install`, contohnya seperti `go install golang.org/dl/go1.18beta1@latest`. Untuk melihat versi unstable yang bisa di-install silakan merujuk ke https://go.dev/dl/#unstable

---

<iframe src="partial/ebooks.html" width="100%" height="390px" frameborder="0" scrolling="no"></iframe>
208 changes: 208 additions & 0 deletions en/content-en/A-array.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
# A.15. Array

Array adalah kumpulan data bertipe sama, yang disimpan dalam sebuah variabel. Array memiliki kapasitas yang nilainya ditentukan pada saat pembuatan, menjadikan elemen/data yang disimpan di array tersebut jumlahnya tidak boleh melebihi yang sudah dialokasikan.

Default nilai tiap elemen array pada awalnya tergantung dari tipe datanya. Jika `int` maka tiap element zero value-nya adalah `0`, jika `bool` maka `false`, dan seterusnya. Setiap elemen array memiliki indeks berupa angka yang merepresentasikan posisi urutan elemen tersebut. Indeks array dimulai dari 0.

Contoh penerapan array:

```go
var names [4]string
names[0] = "trafalgar"
names[1] = "d"
names[2] = "water"
names[3] = "law"

fmt.Println(names[0], names[1], names[2], names[3])
```

Variabel `names` dideklarasikan sebagai `array string` dengan alokasi kapasitas elemen adalah `4` slot. Cara mengisi slot elemen array bisa dilihat di kode di atas, yaitu dengan langsung mengakses elemen menggunakan indeks, lalu mengisinya.

![Menampilkan elemen array](images/A_array_0_array.png)

## A.15.1. Pengisian Elemen Array yang Melebihi Alokasi Awal

Pengisian elemen array pada indeks yang tidak sesuai dengan jumlah alokasi menghasilkan error. Contoh: jika array memiliki 4 slot, maka pengisian nilai slot 5 seterusnya adalah tidak valid.

```go
var names [4]string
names[0] = "trafalgar"
names[1] = "d"
names[2] = "water"
names[3] = "law"
names[4] = "ez" // baris kode ini menghasilkan error
```

Solusi dari masalah di atas adalah dengan menggunakan keyword `append`, yang pembahasannya ada pada chapter selanjutnya, ([A.16. Slice](/A-slice.html)).

## A.15.2. Inisialisasi Nilai Awal Array

Pengisian elemen array bisa dilakukan pada saat deklarasi variabel. Caranya dengan menuliskan data elemen dalam kurung kurawal setelah tipe data, dengan pembatas antar elemen adalah tanda koma (`,`).

```go
var fruits = [4]string{"apple", "grape", "banana", "melon"}

fmt.Println("Jumlah element \t\t", len(fruits))
fmt.Println("Isi semua element \t", fruits)
```

Penggunaan fungsi `fmt.Println()` pada data array tanpa mengakses indeks tertentu, menghasilkan output dalam bentuk string dari semua array yang ada. Teknik ini umum digunakan untuk keperluan *debugging* data array.

![Menghitung jumlah elemen dan menampilkan isi array](images/A_array_1_array_initialization_and_len.png)

Fungsi `len()` berfungsi untuk menghitung jumlah elemen sebuah array.

## A.15.3. Inisialisasi Nilai Array Dengan Gaya Vertikal

Elemen array bisa dituliskan dalam bentuk horizontal (seperti yang sudah dicontohkan di atas) ataupun dalam bentuk vertikal.

```go
var fruits [4]string

// cara horizontal
fruits = [4]string{"apple", "grape", "banana", "melon"}

// cara vertikal
fruits = [4]string{
"apple",
"grape",
"banana",
"melon",
}
```

Khusus untuk deklarasi array dengan cara vertikal, tanda koma wajib dituliskan setelah setiap elemen (termasuk elemen terakhir), agar tidak memunculkan syntax error.

## A.15.4. Inisialisasi Nilai Awal Array Tanpa Jumlah Elemen

Deklarasi array yang nilainya diset di awal, boleh tidak dituliskan jumlah lebar array-nya, cukup ganti dengan tanda 3 titik (`...`). Metode penulisan ini membuat kapasitas array otomatis dihitung dari jumlah elemen array yang ditulis.

```go
var numbers = [...]int{2, 3, 2, 4, 3}

fmt.Println("data array \t:", numbers)
fmt.Println("jumlah elemen \t:", len(numbers))
```

Variabel `numbers` secara otomatis kapasitas elemennya adalah `5`.

![Deklarasi array menggunakan tanda 3 titik](images/A_array_1_1_array_dots.png)

## A.15.5. Array Multidimensi

Array multidimensi adalah array yang tiap elemennya juga berupa array.

> Level kedalaman array multidimensi adalah tidak terbatas, bisa saja suatu array berisi elemen array yang setiap elemennya juga adalah nilai array, dst.

Cara deklarasi array multidimensi secara umum sama dengan array biasa, bedanya adalah pada array biasa, setiap elemen berisi satu nilai, sedangkan pada array multidimensi setiap elemen berisi array.

Khusus penulisan array yang merupakan subdimensi/elemen, boleh tidak dituliskan jumlah datanya. Contohnya bisa dilihat pada deklarasi variabel `numbers2` di kode berikut.

```go
var numbers1 = [2][3]int{[3]int{3, 2, 3}, [3]int{3, 4, 5}}
var numbers2 = [2][3]int{{3, 2, 3}, {3, 4, 5}}

fmt.Println("numbers1", numbers1)
fmt.Println("numbers2", numbers2)
```

Kedua array di atas memiliki jumlah dan isi elemen yang sama.

![Array multidimensi](images/A_array_2_array_multidimension.png)

## A.15.6. Perulangan Elemen Array Menggunakan Keyword `for`

Keyword `for` dan array memiliki hubungan yang sangat erat. Dengan memanfaatkan perulangan/looping menggunakan keyword ini, elemen-elemen dalam array bisa didapat.

Ada beberapa cara yang bisa digunakan untuk me-looping data array, yg pertama adalah dengan memanfaatkan variabel iterasi perulangan untuk mengakses elemen berdasarkan indeks-nya. Contoh:

```go
var fruits = [4]string{"apple", "grape", "banana", "melon"}

for i := 0; i < len(fruits); i++ {
fmt.Printf("elemen %d : %s\n", i, fruits[i])
}
```

Perulangan di atas dijalankan sebanyak jumlah elemen array `fruits` (bisa diketahui dari kondisi `i < len(fruits`). Di tiap perulangan, elemen array diakses lewat variabel iterasi `i`.

![Iterasi elemen array](images/A_array_3_for_range.png)

## A.15.7. Perulangan Elemen Array Menggunakan Keyword `for` - `range`

Ada cara lain yang lebih sederhana untuk operasi perulangan array, yaitu menggunakan kombinasi keyword `for` - `range`. Contoh pengaplikasiannya bisa dilihat di kode berikut.

```go
var fruits = [4]string{"apple", "grape", "banana", "melon"}

for i, fruit := range fruits {
fmt.Printf("elemen %d : %s\n", i, fruit)
}
```

Array `fruits` diambil elemen-nya secara berurutan. Nilai tiap elemen ditampung variabel oleh `fruit` (tanpa huruf s), sedangkan indeks nya ditampung variabel `i`.

Output program di atas, sama persis dengan output program sebelumnya, hanya saja cara yang diterapkan berbeda.

## A.15.8. Penggunaan Variabel Underscore `_` Dalam `for` - `range`

Terkadang, dalam penerapan *looping* menggunakan `for` - `range`, ada kebutuhan di mana yang dibutuhkan dari perulangan adlah adalah elemen-nya saja, sedangkan indeks-nya tidak, contoh:

```go
var fruits = [4]string{"apple", "grape", "banana", "melon"}

for i, fruit := range fruits {
fmt.Printf("nama buah : %s\n", fruit)
}
```

Hasil dari kode program di atas adalah error, karena Go tidak memperbolehkan adanya variabel yang menganggur atau tidak dipakai.

![Error karena ada variabel yang tidak digunakan](images/A_array_4_for_range_error.png)

Di sinilah salah satu kegunaan dari variabel pengangguran, atau underscore (`_`). Tampung saja nilai yang tidak ingin digunakan ke underscore.

```go
var fruits = [4]string{"apple", "grape", "banana", "melon"}

for _, fruit := range fruits {
fmt.Printf("nama buah : %s\n", fruit)
}
```

Pada kode di atas, yang sebelumnya adalah variabel `i` diganti dengan `_`, karena kebetulan variabel `i` tidak digunakan.

![For range tanpa indeks](images/A_array_5_for_range_underscore.png)

Bagaiamana jika sebaliknya? Misal, yang dibutuhkan hanya indeks-nya saja, nilainya tidak penting. Maka cukup tulis satu variabel saja setelah keyword `for`, yaitu variabel penampung nilai indeks.

```go
for i, _ := range fruits { }
// atau
for i := range fruits { }
```

## A.15.9. Alokasi Elemen Array Menggunakan Keyword `make`

Deklarasi sekaligus alokasi kapasitas array juga bisa dilakukan lewat keyword `make`.

```go
var fruits = make([]string, 2)
fruits[0] = "apple"
fruits[1] = "manggo"

fmt.Println(fruits) // [apple manggo]
```

Parameter pertama keyword `make` diisi dengan tipe data elemen array yang diinginkan, parameter kedua adalah jumlah elemennya. Pada kode di atas, variabel `fruits` tercetak sebagai array string dengan kapasitas alokasi 2 slot.

---

<div class="source-code-link">
<div class="source-code-link-message">Source code praktik chapter ini tersedia di Github</div>
<a href="https://github.com/novalagung/dasarpemrogramangolang-example/tree/master/chapter-A.15-array">https://github.com/novalagung/dasarpemrogramangolang-example/.../chapter-A.15...</a>
</div>

---

<iframe src="partial/ebooks.html" width="100%" height="390px" frameborder="0" scrolling="no"></iframe>
Loading
Loading