Menu
CoddyTech

Pengurutan Kustom dengan Fungsi

Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 8 dari 54.

Meskipun table.sort() berfungsi dengan baik untuk list sederhana yang berisi angka atau string, data di dunia nyata sering kali lebih kompleks. Kamu mungkin memiliki tabel berisi catatan pemain, item inventaris, atau skor game, dengan setiap entri berupa tabel yang memiliki beberapa field.

Untuk mengurutkan struktur kompleks ini, kamu perlu memberi tahu table.sort() dengan tepat cara membandingkan dua entri. Di sinilah fungsi perbandingan khusus menjadi penting. Fungsi perbandingan menerima dua elemen dan mengembalikan true jika elemen pertama harus ditempatkan sebelum elemen kedua dalam urutan yang sudah diurutkan.

Berikut contoh tabel catatan pemain:

local players = {
    {name = "Alice", score = 150},
    {name = "Bob", score = 200},
    {name = "Charlie", score = 175}
}

table.sort(players, function(a, b)
    return a.score > b.score
end)

Setelah diurutkan, tabel pemain akan diurutkan berdasarkan skor secara menurun, dengan Bob di urutan pertama (200), Charlie di urutan kedua (175), dan Alice di urutan ketiga (150). Fungsi perbandingan mengakses field score pada setiap tabel pemain untuk menentukan urutannya.

Kamu bisa mengurutkan berdasarkan field apa pun yang kamu inginkan: nama secara alfabetis, level secara numerik, atau bahkan menggabungkan beberapa kriteria.

Coba sendiri

Pelajaran ini tidak memiliki tantangan kode.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Lua online