Menu
CoddyTech
Jalur belajar

Struktur Data dan Algoritma dengan Go

Go memberimu slice dan map dan menyerahkan sisanya kepadamu: tidak ada tipe stack, queue, atau set, dan heap di container/heap tidak melakukan apa pun sampai kamu mengimplementasikan heap.Interface. Jalur ini memintamu membangun setiap struktur dalam Go dengan struct dan pointer, lalu melakukan sorting, rekursi, dan penelusuran graf dengannya, dan menyelesaikan soal wawancara yang dinilai. Gratis, di browser, dengan sertifikat di sebagian besar kursus.

377 pelajaran284 tantangan702 soal kuis

DSA dengan Go, langkah demi langkah

38 kursus377 pelajaran284 tantangan702 soal kuis

Setiap langkah adalah sekumpulan kursus Coddy yang sudah ada, dan setiap tombol Mulai membukanya dalam Go. Tiga kursus yang belum diajarkan dalam Go dicantumkan setelah langkah-langkahnya.

  1. 1
    Mulai langkah iniMulaiStack, queue, binary tree, hash table, dan linked list, masing-masing dibangun dari nol dalam Go lalu dipakai untuk menyelesaikan soal. Setelahnya, slice yang dipakai sebagai stack dan map yang dipakai sebagai set adalah pilihan yang bisa kamu pertahankan, dan tipe queue yang tidak dimiliki Go adalah sesuatu yang pernah kamu tulis.Mulai
  2. 2
    Mulai langkah iniMulaiDoubly linked list, heap dan priority queue, trie, graf, dan AVL tree yang menyeimbangkan dirinya sendiri. container/list adalah yang pertama di antaranya, siap pakai; setelah langkah ini, lima method heap.Interface jadi masuk akal karena kamu pernah membangun heap sendiri, dan balanced tree yang tidak pernah disediakan Go adalah sesuatu yang bisa kamu bangun.Mulai
  3. 3
    Mulai langkah iniMulaiBubble, selection, insertion, merge, quick, heap, counting, dan radix sort, ditulis dalam Go dan dilihat di visualizer. sort.Slice memakai pattern-defeating quicksort sejak Go 1.19, slices.Sort juga memakainya, dan keduanya tidak stabil, itulah kenapa ada sort.SliceStable; setelah langkah ini kamu tahu arti setiap kata itu.Mulai
  4. 4
    Mulai langkah iniMulaiTantangan rekursi dalam Go, di mana stack goroutine dimulai kecil dan tumbuh sesuai kebutuhan, jadi rekursi sedalam ribuan pemanggilan jarang mengalami overflow. Base case yang terlewat tetap akan mencapai batasnya, secara default 1 GB stack di sistem 64-bit, dan berakhir dengan fatal error, bukan program yang lambat. Dynamic programming dan bit manipulation dicantumkan setelah langkah-langkahnya, karena diajarkan dalam Python dan C++.MulaiHalaman khusus
  5. 5
    Mulai langkah iniMulaiBreadth-first search dan depth-first search, Dijkstra, Bellman-Ford, topological sort, Kruskal, dan Prim dalam Go, pada graf yang kamu bangun di langkah dua. Priority queue untuk Dijkstra di Go adalah container/heap di atas slice dengan tipe milikmu sendiri: heap dari langkah dua, di balik sebuah interface.Mulai
  6. 6
Yang kamu dapatkan
Semua yang kamu pakai untuk belajar coding

Belajar sambil praktik

Tulis kode sungguhan, query database, buat website, dan kuasai prompt AI. Pelajaran interaktif kami mencakup setiap keterampilan yang dibutuhkan developer modern.

playground.js
Editor kode
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
Tes #1test Case Success icon
Tes #2test Case Success icon
Tes #3test Case Failure icon
Input
"Alex"
Output
"Hello, Coddy! Alex"

Bangun streakmu

Tetap konsisten dan lihat progresmu bertumbuh! Pantau kebiasaan coding harianmu, lindungi streakmu dengan hari beku, dan raih hadiah karena hadir setiap hari.

12 hari streak

Kembali besok untuk menjaga streakmu!

fire Filled icon
left icon

January 2026

right icon

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

21

22

23

24

25

26

27

28

29

30

product Double Or Nothing icon

Gandakan atau hangus

Hari ke-5 dari 7

fire Freeze icon

Pembeku Streak

2 left

Coding di mana saja

Bawa perjalanan coding-mu ke mana saja! Tanpa setup, tanpa unduhan: cukup buka dan mulai coding. Tersedia di iOS, Android, dan Web dengan rating bintang 4,9.

Python
7Streak
250Skor
5Energi
Variabel
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
Lanjutkan
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
Perjalanan
Target
Papan peringkat
Profil
4.9
BintangBintangBintangBintangBintang
Rating

Kamu tidak sendirian

Bersaing di papan peringkat global, ajak teman untuk mendapat hadiah, dan rayakan kemenangan satu sama lain. Coding lebih seru bersama teman!

Liga Challenger
Liga Challenger7 teratas naik
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up iconZona promosileaderboard Arrow Up icon

Semua cara belajar

Baca, dengarkan, uji dirimu, tanya AI, atau cari lagi apa pun yang sudah kamu pelajari. Setiap pelajaran menyesuaikan diri denganmu.

Pengenalan variabel
Audio

Variabel adalah wadah bernama yang menyimpan nilai yang bisa kamu pakai lagi nanti di programmu.

Di Python, kamu membuatnya dengan menulis nama, tanda sama dengan, lalu nilai yang ingin kamu simpan.

Nilainya bisa berubah seiring waktu. Menetapkan ulang nama itu cukup membuatnya menunjuk ke nilai baru.

1xSarah

Dapatkan sertifikat

Dapatkan sertifikat untuk setiap kursus yang kamu selesaikan. Tambahkan ke profil LinkedIn dan CV-mu untuk menunjukkan keahlian coding-mu kepada pemberi kerja.

CoddySertifikat Penyelesaian
Dengan ini menyatakan bahwaBudi Santosotelah berhasil menyelesaikan
python iconDasar Python
Terverifikasi
TanggalJan 2026
LinkedInTambahkan ke LinkedIn

Kenapa belajar DSA dengan Go di Coddy

  • Struktur yang diserahkan Go kepadamu. Go hanya menyediakan slice dan map lalu berhenti di situ: stack adalah slice yang kamu append dan reslice, set adalah map[T]struct{}, dan sama sekali tidak ada tipe queue atau tree. Tahu cara menulis yang tidak tersedia, dan berapa biaya setiap operasi slice, adalah bagian dari menguasai Go.
  • Struct dan pointer, tanpa ada yang disembunyikan. Go tidak punya class: node adalah struct dengan pointer ke node berikutnya, dan method menempel pada tipenya. Linked list atau tree terlihat persis seperti apa adanya, generics (sejak Go 1.18) membuatnya bisa dipakai ulang untuk tipe elemen apa pun, dan garbage collector membuatmu tidak perlu mengurus malloc atau free.
  • Hampir seluruh jalur dalam Go. Setiap struktur data, sorting, algoritma graf, tantangan rekursi, dan paket wawancara diajarkan dalam Go. Tiga diajarkan dalam bahasa lain dan dicantumkan setelah langkah-langkahnya dengan link ke masing-masing: dynamic programming dan seri wawancara Python dalam Python, serta bit manipulation dalam C++. Bit manipulation terbaca alami dari Go, yang punya &, |, ^, <<, dan >> milik C++ dan menulis NOT sebagai ^x.
  • Dinilai seperti wawancara. Setiap pelajaran diakhiri tantangan Go yang diperiksa dengan kasus uji, dan saat satu gagal, Bugsy membaca kodemu dan mengarahkanmu ke perbaikannya tanpa memberikan jawabannya. Sertifikat gratis di sebagian besar kursus, masing-masing bisa diverifikasi di URL-nya sendiri.

Pertanyaan umum tentang DSA dengan Go

Apakah Go bagus untuk struktur data dan algoritma?

Ya. Go di-compile menjadi kode native yang cepat, sintaksnya cukup kecil sehingga sebagian besar yang kamu baca adalah algoritmanya, dan generics (sejak Go 1.18) membuat stack atau heap bertipe bisa dipakai ulang. Kekurangannya adalah standard library yang ramping: di luar slice, map, container/list, dan container/heap, kamu menulis strukturnya sendiri, dan di jalur belajar itulah intinya. Go juga menjalankan sebagian besar infrastruktur cloud saat ini, termasuk Docker dan Kubernetes, yang menjadikannya bahasa wawancara yang wajar untuk posisi backend.

Tipe dan package Go mana yang cocok dengan struktur data mana?

Slice adalah dynamic array, dan dengan append serta reslicing ia juga menjadi stack-mu; map adalah hash table, dan map[T]struct{} adalah set yang idiomatis; container/list adalah doubly linked list; dan container/heap menjalankan binary heap di atas tipe apa pun yang mengimplementasikan heap.Interface. Tidak ada tipe queue, tree, trie, atau graf, jadi semua itu kamu bangun sendiri, di langkah satu dan dua.

Bagaimana cara kerja container/heap di Go?

Kamu mengimplementasikan heap.Interface pada tipe slice milikmu sendiri: Len, Less, dan Swap dari sort.Interface, ditambah Push dan Pop, yang hanya menambah ke dan menghapus dari ujung slice. Lalu kamu memanggil fungsi package heap.Push dan heap.Pop, bukan method milikmu sendiri, dan fungsi-fungsi itu yang melakukan sift up dan sift down untuk menjaga urutannya. Kelihatannya aneh sampai kamu pernah menulis heap sendiri, dan itulah yang kamu lakukan di langkah dua.

Kenapa iterasi map di Go dengan range menghasilkan urutan yang berbeda setiap kali?

Karena Go sengaja mengacak urutan iterasi map, supaya tidak ada program yang bergantung padanya. Hash table tidak punya urutan yang bermakna di bahasa mana pun; Go hanya memastikan kamu menyadarinya. Saat urutan penting, misalnya output yang dibandingkan oleh tes, kumpulkan key-nya ke dalam slice lalu urutkan, atau simpan slice di samping map-nya.

Kursus mana di jalur ini yang tidak diajarkan dalam Go?

Tiga: dynamic programming dan seri wawancara Python, yang diajarkan dalam Python, serta bit manipulation, yang diajarkan dalam C++. Ketiganya dicantumkan setelah langkah-langkahnya, masing-masing dengan link yang membukanya dalam bahasanya sendiri. Tabel memo di Go adalah slice atau map, dan Go menambahkan satu operator bit yang tidak ada di C++: &^, AND NOT, yang menghapus dari operand kirinya setiap bit yang aktif di operand kanannya.

Apakah aku perlu bisa Go sebelum memulai jalur ini?

Setidaknya struct, pointer, slice, map, dan method; generics membantu, dan bisa kamu pelajari di sepanjang jalan. Kalau semua itu masih baru, kursus Go Coddy membawamu ke sana lebih dulu, gratis, dan jalur ini melanjutkan dari tempat kursus itu berakhir.

Apakah aku mendapat sertifikat untuk jalur Struktur Data & Algoritma?

Ya. Selesaikan setiap langkah dan kamu akan mendapat satu sertifikat gratis untuk seluruh jalur Struktur Data & Algoritma. Sertifikat ini mencantumkan setiap kursus yang kamu selesaikan di sepanjang jalan, dan menautkan sertifikat masing-masing kursus, sehingga siapa pun bisa memeriksa setiap keterampilan yang disebutkannya. Kamu bisa menambahkannya ke profil LinkedIn-mu. Ini adalah sertifikat penyelesaian dari Coddy, bukan kualifikasi terakreditasi.

Jalur belajar lainnya

Kursus yang sama, disusun untuk peran yang berbeda. Progres terbawa: kursus yang selesai di satu jalur dihitung di setiap jalur yang memuatnya.

Semua jalur belajar
Ilustrasi bahasa pemrograman di Coddy

Mulai jalur Struktur Data & Algoritma secara gratis

Mulai belajar