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 posisi elemen baru. Berbeda dengan method add(), yang selalu menambahkan elemen di 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 setelahnya 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']

Metode ini sangat berguna saat urutan elemen penting, seperti pada 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 kumpulan yang berurutan.

challenge icon

Tantangan

Mudah

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

  1. Membaca input string yang menunjukkan nama list tugas
  2. Membaca beberapa input string yang menunjukkan tugas yang sudah ada (input akan berakhir saat kamu menerima string kosong)
  3. Membaca input string yang menunjukkan tugas mendesak untuk disisipkan
  4. Membaca input bilangan bulat yang menunjukkan posisi untuk menyisipkan tugas mendesak
  5. Menggunakan method insert() untuk menambahkan tugas mendesak pada posisi yang ditentukan
  6. Mencetak list tugas yang sudah diperbarui dalam format persis seperti yang ditunjukkan di bawah ini

Misalnya, jika nama list 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 list 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 list tugas yang sudah ada).

Coba sendiri

import 'dart:io';

void main() {
  // Baca nama list tugas
  String? taskListName = stdin.readLineSync();
  
  // Baca tugas yang 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()!);
  
  // Simpan tugas awal sebelum menyisipkan tugas baru
  String originalTasks = tasks.toString();
  
  // TODO: Tulis kodemu di bawah ini
  // Gunakan method insert() untuk menambahkan tugas mendesak pada posisi yang ditentukan
  
  // Cetak hasilnya dalam format yang diminta
  print('Task List: $taskListName');
  print('Original tasks: $originalTasks');
  print('Inserted: $urgentTask at position $position');
  // Cetak list tugas yang 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