Menu
CoddyTech

Menambahkan ke list: insert

Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 4 dari 65.

Saat kamu perlu menambahkan elemen ke posisi tertentu dalam list, method insert() memberimu kendali yang tepat atas letak elemen baru. Berbeda dengan method add(), yang selalu menambahkan elemen ke akhir list, insert() memungkinkanmu menempatkan elemen di posisi mana pun yang kamu pilih.

method insert() menerima dua parameter: posisi indeks tempat kamu ingin menyisipkan elemen, dan elemen itu sendiri. Saat kamu menyisipkan elemen, semua elemen yang sudah ada di posisi tersebut dan seterusnya bergeser satu posisi ke kanan.

List<String> tasks = ['Buy groceries', 'Walk the dog', 'Read a book'];

// Sisipkan tugas baru di awal (indeks 0)
tasks.insert(0, 'Check emails');

print(tasks);  // ['Check emails', 'Buy groceries', 'Walk the dog', 'Read a book']

method ini sangat berguna saat urutan elemen penting, seperti daftar prioritas, jadwal, atau situasi apa pun yang mengharuskan kamu mempertahankan urutan tertentu. Kemampuan untuk menyisipkan elemen di posisi mana pun menjadikan insert() alat yang ampuh untuk mengelola koleksi yang berurutan.

challenge icon

Tantangan

Mudah

Buat program yang mengelola sistem tugas prioritas dengan menyisipkan tugas mendesak pada posisi tertentu dalam daftar tugas yang sudah ada. Programmu harus:

  1. Membaca input string yang mewakili nama daftar tugas
  2. Membaca beberapa input string yang mewakili tugas yang sudah ada (input akan berakhir saat kamu menerima string kosong)
  3. Membaca input string yang mewakili tugas mendesak yang akan disisipkan
  4. Membaca input integer yang mewakili posisi tempat tugas mendesak harus disisipkan
  5. Menggunakan method insert() untuk menambahkan tugas mendesak pada posisi yang ditentukan
  6. Mencetak daftar tugas yang diperbarui dengan format persis seperti yang ditunjukkan di bawah

Misalnya, jika nama daftar tugas adalah "Work Schedule", tugas yang sudah ada adalah "Review documents", "Team meeting", "Submit report", tugas mendesak adalah "Client call", dan posisinya adalah 1, programmu harus menghasilkan:

Task List: Work Schedule
Original tasks: [Review documents, Team meeting, Submit report]
Inserted: Client call at position 1
Updated tasks: [Review documents, Client call, Team meeting, Submit report]
Total tasks: 4

Jika nama daftar tugas adalah "Daily Goals", tugas yang sudah ada adalah "Exercise", "Read book", tugas mendesak adalah "Buy groceries", dan posisinya adalah 0, programmu harus menghasilkan:

Task List: Daily Goals
Original tasks: [Exercise, Read book]
Inserted: Buy groceries at position 0
Updated tasks: [Buy groceries, Exercise, Read book]
Total tasks: 3

Programmu harus menggunakan method insert() untuk menambahkan tugas mendesak pada posisi yang ditentukan. Input posisi akan selalu berupa indeks yang valid (antara 0 dan panjang daftar tugas yang sudah ada).

Coba sendiri

import 'dart:io';

void main() {
  // Baca nama list tugas
  String? taskListName = stdin.readLineSync();
  
  // Baca tugas yang sudah ada hingga menemukan string kosong
  List<String> tasks = [];
  while (true) {
    String? task = stdin.readLineSync();
    if (task == null || task.isEmpty) {
      break;
    }
    tasks.add(task);
  }
  
  // Baca tugas mendesak dan posisinya
  String? urgentTask = stdin.readLineSync();
  int position = int.parse(stdin.readLineSync()!);
  
  // TODO: Tulis kodemu di bawah ini
  // Gunakan method insert() untuk menambahkan tugas mendesak pada posisi yang ditentukan
  
  // Tampilkan hasil dalam format yang diminta
  print('Task List: $taskListName');
  print('Original tasks: $tasks');
  print('Inserted: $urgentTask at position $position');
  // Tampilkan tugas yang sudah diperbarui dan jumlah totalnya
}
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 Dart online