Menu
CoddyTech
Jalur belajar

Struktur Data dan Algoritma dengan Lua

Lua hanya punya satu struktur data, yaitu table, jadi setiap struktur di jalur ini adalah sesuatu yang kamu buat darinya: stack dari bagian array-nya, queue dengan dua indeks, tree dari table yang menunjuk ke table lain. Jalur ini memintamu membangun masing-masing dalam Lua, 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 Lua, langkah demi langkah

38 kursus377 pelajaran284 tantangan702 soal kuis

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

  1. 1
    Mulai langkah iniMulaiStack, queue, binary tree, hash table, dan linked list, masing-masing dibangun dari nol dalam Lua lalu dipakai untuk menyelesaikan soal. Table di Lua sudah merupakan hash table, jadi langkah ini menunjukkan apa yang dilakukannya untukmu, dan cara membentuknya menjadi empat struktur lainnya.Mulai
  2. 2
    Mulai langkah iniMulaiDoubly linked list, heap dan priority queue, trie, graf, dan AVL tree yang menyeimbangkan dirinya sendiri. Di Lua, node trie hanyalah table dengan key karakter berikutnya, dan graf adalah table berisi daftar tetangga, jadi setiap struktur hanya serumit idenya.Mulai
  3. 3
    Mulai langkah iniMulaiBubble, selection, insertion, merge, quick, heap, counting, dan radix sort, ditulis dalam Lua dan dilihat di visualizer. table.sort tidak stabil, seperti yang dinyatakan manual referensi Lua; setelah langkah ini kamu tahu kenapa sebuah sorting melepaskan stabilitas, dan bagaimana indeks pemecah seri mengembalikannya.Mulai
  4. 4
    Mulai langkah iniMulaiTantangan rekursi dalam Lua, yang punya proper tail call: pada pemanggilan di posisi ekor, return f(x), fungsi yang dipanggil memakai ulang entri stack milik pemanggilnya, jadi loop tail-recursive tidak pernah menambah stack. Rekursi dalam biasa tetap berakhir dengan stack overflow. 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 Lua, pada graf yang kamu bangun di langkah dua. Lua tidak punya priority queue, jadi heap dari langkah dua adalah yang dibutuhkan Dijkstra, dan breadth-first search butuh queue yang tidak pernah memanggil table.remove(t, 1).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 Lua di Coddy

  • Satu struktur, semua struktur. Table di Lua adalah bagian array dan bagian hash sekaligus, dan tidak ada yang lain yang tersedia bawaan: tidak ada tipe list, set, queue, atau heap. Di Lua, setiap struktur adalah table yang menunjuk ke table lain, gambaran paling jelas yang bisa kamu dapatkan tentang apa sebenarnya linked list atau tree itu.
  • Untuk Roblox, game, dan plugin. Lua menjalankan Roblox (sebagai Luau), scripting game, konfigurasi Neovim, dan script Redis, dan kode game adalah kode struktur data: inventaris adalah hash table, urutan giliran adalah queue, pathfinding adalah penelusuran graf. Mempelajari struktur data dengan Lua berarti mempelajarinya dalam bahasa yang sudah kamu pakai untuk scripting.
  • Hampir seluruh jalur dalam Lua. Setiap struktur data, sorting, algoritma graf, tantangan rekursi, dan paket wawancara diajarkan dalam Lua. 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++. Semua yang tetap dalam Lua dibuat dari table, dari stack pertama sampai soal wawancara terakhir.
  • Dinilai seperti wawancara. Setiap pelajaran diakhiri tantangan Lua 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 Lua

Apakah Lua bagus untuk struktur data dan algoritma?

Untuk mempelajarinya, ternyata bagus: karena hanya ada table sebagai bahan, setiap struktur menjadi eksplisit, dan kodenya tetap pendek. Masalahnya, table memaafkan kesalahan diam-diam: array dimulai dari 1 menurut konvensi, key yang tidak ada mengembalikan nil alih-alih error, dan operator panjang #t hanya bisa diandalkan pada sequence tanpa lubang nil. Hanya sedikit wawancara yang diadakan dengan Lua, jadi kalau itu tujuanmu, paket wawancara juga tersedia dalam bahasa yang akan kamu pakai di sana.

Bagaimana cara membangun stack dan queue dari table Lua?

Stack adalah bagian array yang dipakai dari satu ujung: table.insert(t, x) untuk push dan table.remove(t) untuk pop. Queue butuh perhatian lebih, karena table.remove(t, 1) menggeser setiap elemen yang tersisa turun satu tempat, jadi setiap dequeue berbiaya O(n). Simpan dua indeks sebagai gantinya, first dan last: tambahkan di last + 1, baca di first, isi slot itu dengan nil lalu maju, dan dequeue menjadi berwaktu konstan. Langkah satu memintamu membangun keduanya.

Kenapa #t kadang memberi panjang yang salah di Lua?

Karena # mengembalikan sebuah batas (border) table: indeks n di mana t[n] bukan nil, tapi t[n + 1] kosong. Sequence yang benar punya tepat satu batas, yaitu panjangnya; taruh nil di tengahnya dan batasnya bisa lebih dari satu, dan # bisa mengembalikan yang mana saja. Jadi jangan pernah menyimpan nil di array yang panjangnya kamu ukur dengan #, dan di struktur yang punya celah, seperti queue dengan dua indeks, catat ukurannya sendiri.

Apakah struktur data penting untuk scripting Roblox?

Ya, begitu sebuah game berkembang melebihi segelintir objek. Inventaris adalah hash table, urutan spawn atau giliran adalah queue, daftar cooldown bisa berupa priority queue, dan mencari jalan melintasi peta adalah penelusuran graf. Luau, bahasa yang dipakai untuk menulis script Roblox, diturunkan dari Lua 5.1 dan mempertahankan table, array berbasis 1, dan operator #-nya, jadi apa yang kamu bangun di sini langsung terbawa ke sana.

Kursus mana di jalur ini yang tidak diajarkan dalam Lua?

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. Memo di Lua adalah table; operator bitwise baru hadir di Lua 5.3, yang punya &, |, <<, dan >> milik C++ dan menulis XOR maupun NOT sebagai ~.

Apakah aku perlu bisa Lua sebelum memulai jalur ini?

Setidaknya table, fungsi, perulangan, dan variabel lokal; metatable membantu kalau kamu ingin struktur yang berperilaku seperti objek. Kalau semua itu masih baru, kursus Lua Coddy membahasnya 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