Menu
CoddyTech
Jalur belajar

Struktur Data dan Algoritma dengan Dart

Library inti Dart lebih lengkap daripada kebanyakan bahasa, dengan Queue, LinkedList, dan splay tree di dart:collection, tapi SDK intinya tidak punya heap atau priority queue. Jalur ini memintamu membangun setiap struktur dalam Dart, di mana sound null safety membuat setiap sambungan yang hilang menjadi Node? yang harus kamu periksa, 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 Dart, langkah demi langkah

38 kursus377 pelajaran284 tantangan702 soal kuis

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

  1. 1
    Mulai langkah iniMulaiStack, queue, binary tree, hash table, dan linked list, masing-masing dibangun dari nol dalam Dart lalu dipakai untuk menyelesaikan soal. Setelahnya, kamu tahu apa yang dilakukan List, Queue, dan Map untukmu, dan kenapa literal Map mengingat urutan kamu menyisipkan key-nya.Mulai
  2. 2
    Mulai langkah iniMulaiDoubly linked list, heap dan priority queue, trie, graf, dan AVL tree yang menyeimbangkan dirinya sendiri. Setelahnya, DoubleLinkedQueue adalah struktur yang pernah kamu tulis, heap yang tidak ada di SDK inti adalah sesuatu yang bisa kamu tulis, dan SplayTreeMap adalah tree terurut yang kamu pahami: menyesuaikan dirinya sendiri sementara milikmu seimbang tingginya.Mulai
  3. 3
    Mulai langkah iniMulaiBubble, selection, insertion, merge, quick, heap, counting, dan radix sort, ditulis dalam Dart dan dilihat di visualizer. List.sort menerima pembanding seperti (a, b) => a.compareTo(b); setelah langkah ini kamu bisa menulis algoritma di balik pemanggilan itu.Mulai
  4. 4
    Mulai langkah iniMulaiTantangan rekursi dalam Dart, di mana null safety membuat base case menjadi eksplisit: fungsi yang menerima Node? harus menangani null sebelum bisa melakukan rekursi, dan type promotion membuatnya bebas memakai node itu setelah pemeriksaan tersebut. Rekursi yang tidak terkendali berakhir dengan StackOverflowError. 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 Dart, pada graf yang kamu bangun di langkah dua. SDK intinya tidak punya priority queue, jadi heap dari langkah dua adalah yang dibutuhkan Dijkstra.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 Dart di Coddy

  • Null safety, di tempat yang paling penting. Linked list atau tree adalah kumpulan reference yang bisa saja tidak ada, dan sound null safety di Dart membuat setiap reference itu menjadi Node? yang harus kamu periksa sebelum kamu ikuti. Crash null pointer yang di bahasa lain baru ketahuan saat runtime, dilaporkan compiler Dart saat kamu masih menulis strukturnya.
  • Persiapan wawancara untuk developer Flutter. Dart adalah bahasa yang kamu pakai untuk berpikir di Flutter, dan wawancara mobile di banyak perusahaan punya babak algoritma. Widget tree di Flutter juga sebuah tree, jadi traversal yang kamu pelajari di sini punya bentuk yang sama dengan framework yang kamu pakai setiap hari.
  • Hampir seluruh jalur dalam Dart. Setiap struktur data, sorting, algoritma graf, tantangan rekursi, dan paket wawancara diajarkan dalam Dart. 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 mudah dibaca dari Dart, yang punya &, |, ^, ~, <<, dan >> milik C++.
  • Dinilai seperti wawancara. Setiap pelajaran diakhiri tantangan Dart 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 Dart

Apakah Dart bagus untuk struktur data dan algoritma?

Ya. Dart bertipe dan berbasis class, bentuknya mirip Java atau C#, jadi class Node<T> dengan next yang nullable persis seperti kelihatannya, dan dart:collection mencakup lebih banyak daripada kebanyakan standard library. Ada dua hal yang perlu diketahui: SDK intinya tidak punya priority queue, dan literal Map atau Set adalah LinkedHashMap atau LinkedHashSet, yang mengingat urutan penyisipan: praktis untuk output, tapi bukan janji yang sama dengan sorted map.

Class Dart mana yang cocok dengan struktur data mana?

List adalah dynamic array sekaligus stack-mu; Map dan Set adalah hash table, terurut berdasarkan penyisipan secara default; dart:collection menambahkan Queue (sebuah ListQueue, yaitu ring buffer, kecuali kamu memilih DoubleLinkedQueue), LinkedList untuk entri turunan LinkedListEntry, serta SplayTreeMap dan SplayTreeSet, tree terurut yang menyesuaikan dirinya sendiri. Untuk heap, package:collection dari tim Dart menyediakan PriorityQueue. Trie dan graf kamu tulis sendiri.

Apakah Dart punya priority queue?

Tidak di SDK intinya. dart:collection berhenti di queue, linked list, dan splay tree, dan PriorityQueue ada di package:collection, package yang dirawat tim Dart tapi harus kamu tambahkan sendiri. Karena itu, heap adalah hal yang wajar diminta untuk ditulis dalam wawancara Dart, dan langkah dua adalah tempat kamu menulisnya.

Apa itu splay tree, dan kapan sebaiknya memakai SplayTreeMap?

Splay tree adalah binary search tree yang menyesuaikan dirinya sendiri: setiap akses memindahkan node yang disentuhnya ke root, jadi key yang baru dipakai cepat dijangkau lagi, dan operasinya berbiaya O(log n) secara amortisasi, tidak dijamin di setiap pemanggilan. Pakai SplayTreeMap saat kamu butuh key dalam urutan terurut, key terkecil atau terbesar, atau key terdekat di kedua sisi sebuah nilai, lewat firstKeyAfter dan lastKeyBefore. AVL tree yang kamu bangun di langkah dua mengambil pendekatan lain, menyeimbangkan ulang di setiap perubahan supaya tingginya tetap terbatas dengan ketat.

Kursus mana di jalur ini yang tidak diajarkan dalam Dart?

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 Dart adalah List atau Map, dan toRadixString(2) mencetak int dalam bentuk biner, cara tercepat untuk memeriksa isi sebuah mask yang sebenarnya.

Apakah aku perlu bisa Dart sebelum memulai jalur ini?

Setidaknya class, generics, list, map, dan null safety. Kalau semua itu masih baru, kursus Dart 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