Menu
CoddyTech

Rekap: Pengatur list

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

challenge icon

Tantangan

Mudah

Buat program yang mengelola pipeline pemrosesan data dengan melakukan beberapa operasi secara berurutan pada list angka. Programmu harus:

  1. Membaca input string yang mewakili nama dataset
  2. Membaca beberapa input integer yang mewakili nilai data asli (input akan berakhir saat kamu menerima -999)
  3. Menyisipkan nilai 100 di awal list (posisi 0)
  4. Menghapus semua angka negatif dari list menggunakan removeWhere()
  5. Mengurutkan angka yang tersisa dalam urutan menaik menggunakan sort()
  6. Memeriksa apakah list akhir kosong menggunakan isEmpty
  7. Mencetak hasil pemrosesan data dengan format persis seperti yang ditunjukkan di bawah

Misalnya, jika nama dataset adalah "Sales Data" dan nilainya adalah 45, -12, 78, -5, 23, programmu harus menghasilkan output:

Dataset: Sales Data
Original data: [45, -12, 78, -5, 23]
Step 1: Inserted 100 at beginning
After insertion: [100, 45, -12, 78, -5, 23]
Step 2: Removed negative numbers
After removal: [100, 45, 78, 23]
Step 3: Sorted in ascending order
After sorting: [23, 45, 78, 100]
Final result: List is not empty
Processing complete: 4 values remaining

Jika nama dataset adalah "Temperature Readings" dan nilainya adalah -10, -5, -20, programmu harus menghasilkan output:

Dataset: Temperature Readings
Original data: [-10, -5, -20]
Step 1: Inserted 100 at beginning
After insertion: [100, -10, -5, -20]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remaining

Jika nama dataset adalah "Error Values" dan satu-satunya nilainya adalah -50, programmu harus menghasilkan output:

Dataset: Error Values
Original data: [-50]
Step 1: Inserted 100 at beginning
After insertion: [100, -50]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remaining

Programmu harus melakukan semua operasi dalam urutan persis seperti yang ditentukan: pertama insert() nilai 100 di posisi 0, lalu gunakan removeWhere() untuk menghapus angka negatif, kemudian sort() list, dan terakhir periksa apakah list isEmpty. Tampilkan "List is empty" jika list akhir tidak memiliki elemen, atau "List is not empty" jika list berisi elemen.

Coba sendiri

import 'dart:io';

void main() {
  // Baca nama dataset
  String? datasetName = stdin.readLineSync();
  
  // Baca angka hingga menemukan -999
  List<int> originalData = [];
  while (true) {
    int? number = int.parse(stdin.readLineSync()!);
    if (number == -999) {
      break;
    }
    originalData.add(number);
  }
  
  // Tampilkan informasi awal
  print('Dataset: $datasetName');
  print('Original data: $originalData');
  
  // TODO: Tulis kodemu di bawah ini
  // 1. Sisipkan 100 di awal (posisi 0)
  // 2. Hapus semua angka negatif menggunakan removeWhere()
  // 3. Urutkan list secara menaik menggunakan sort()
  // 4. Periksa apakah list kosong menggunakan isEmpty
  // 5. Tampilkan hasil dalam format yang diminta
  
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Dart online