Menu
CoddyTech

Mengiris list dengan SubList

Termasuk bagian Dasar-Dasar dalam perjalanan Kotlin di Coddy. Pelajaran 79 dari 93.

Terkadang kamu perlu mengambil sebagian dari sebuah list, bukan bekerja dengan seluruh koleksi. Method subList() memungkinkan kamu membuat tampilan rentang elemen tertentu dari list yang sudah ada.

method subList() menerima dua parameter: indeks awal (inklusif) dan indeks akhir (eksklusif). Artinya, elemen pada indeks awal disertakan, tetapi elemen pada indeks akhir tidak disertakan:

val numbers = listOf(10, 20, 30, 40, 50)
val slice = numbers.subList(1, 4)
println(slice)  // [20, 30, 40]

Dalam contoh ini, subList(1, 4) mengambil elemen dari indeks 1 hingga (tetapi tidak termasuk) indeks 4. Hasilnya adalah elemen kedua, ketiga, dan keempat.

sublist yang dihasilkan adalah tampilan dari list asli, bukan salinan. Hal ini penting untuk dipahami saat bekerja dengan list yang dapat diubah, karena perubahan pada list asli dapat memengaruhi sublist.

Untuk sebagian besar penggunaan dengan list hanya-baca, kamu cukup menggunakannya untuk mengakses rentang elemen:

val days = listOf("Mon", "Tue", "Wed", "Thu", "Fri")
val midWeek = days.subList(1, 4)
println(midWeek)  // [Tue, Wed, Thu]
challenge icon

Tantangan

Sedang

Kamu akan menerima list bilangan bulat dan dua indeks yang menunjukkan suatu rentang. Ambil sublist menggunakan subList() dan cetak jumlah elemen yang diambil.

Format input:

  • Baris pertama: bilangan bulat n yang menunjukkan jumlah elemen
  • n baris berikutnya: bilangan bulat yang akan ditambahkan ke list
  • Baris berikutnya: indeks awal (inklusif)
  • Baris terakhir: indeks akhir (eksklusif)

Format output:

Cetak jumlah elemen dalam sublist yang diambil.

Contoh:

Jika list-nya adalah [5, 10, 15, 20, 25] dengan indeks awal 1 dan indeks akhir 4, sublist-nya adalah [10, 15, 20] dan output-nya harus 45.

Coba sendiri

fun main() {
    val n = readLine()!!.toInt()
    val list = mutableListOf<Int>()
    
    repeat(n) {
        list.add(readLine()!!.toInt())
    }
    
    val startIndex = readLine()!!.toInt()
    val endIndex = readLine()!!.toInt()
    
    // TODO: Tulis kodemu di bawah ini
    // Gunakan subList() untuk mengambil elemen dari startIndex hingga endIndex
    // Hitung dan cetak jumlah elemen yang diambil
    
}
quiz iconUji dirimu

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

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground Kotlin