Menu
CoddyTech

Rangkuman: Pemroses list

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

challenge icon

Tantangan

Mudah

Buat sistem pemrosesan data yang fleksibel untuk mendemonstrasikan fungsi orde tinggi dengan membangun pemroses list yang dapat disesuaikan. Programmu akan membuat berbagai fungsi pemrosesan dan menggunakan fungsi pemroses utama yang dapat menerapkan operasi apa pun pada list data.

  1. Baca input string yang berisi angka-angka yang dipisahkan koma (misalnya, "10,20,30,40")
  2. Baca input string yang menunjukkan jenis operasi pertama ("multiply", "add", atau "subtract")
  3. Baca input string yang menunjukkan nilai untuk digunakan dengan operasi pertama (misalnya, "3")
  4. Baca input string yang menunjukkan jenis operasi kedua ("multiply", "add", atau "subtract")
  5. Baca input string yang menunjukkan nilai untuk digunakan dengan operasi kedua (misalnya, "5")
  6. Pisahkan input pertama menjadi angka-angka terpisah dan ubah setiap angka menjadi bilangan bulat
  7. Buat tiga fungsi operasi:
    • multiplyBy - menerima dua bilangan bulat dan mengembalikan hasil perkalian bilangan pertama dengan bilangan kedua
    • addTo - menerima dua bilangan bulat dan mengembalikan hasil penjumlahan bilangan pertama dan bilangan kedua
    • subtractFrom - menerima dua bilangan bulat dan mengembalikan hasil pengurangan bilangan pertama dengan bilangan kedua
  8. Buat fungsi utama bernama processListWithOperation yang menerima tiga parameter:
    • List bilangan bulat
    • Fungsi yang menerima dua bilangan bulat dan mengembalikan bilangan bulat
    • Nilai bilangan bulat untuk digunakan dalam operasi
  9. Fungsi processListWithOperation harus menerapkan fungsi yang diberikan pada setiap angka dalam list dengan menggunakan nilai yang diberikan, lalu mengembalikan list baru yang berisi hasilnya
  10. Terapkan operasi pertama pada list asli, lalu terapkan operasi kedua pada hasil operasi pertama
  11. Tampilkan hasil dalam format persis seperti yang ditunjukkan di bawah

Misalnya, jika inputnya adalah "2,4,6", "multiply", "3", "add", dan "10", programmu harus menghasilkan:

Advanced List Processor
=======================
Original list: [2, 4, 6]
First operation: multiply by 3
After first operation: [6, 12, 18]
Second operation: add 10
Final result: [16, 22, 28]
Processing completed successfully

Jika inputnya adalah "15,25,35", "subtract", "5", "multiply", dan "2", programmu harus menghasilkan:

Advanced List Processor
=======================
Original list: [15, 25, 35]
First operation: subtract 5
After first operation: [10, 20, 30]
Second operation: multiply by 2
Final result: [20, 40, 60]
Processing completed successfully

Programmu harus mendemonstrasikan fungsi orde tinggi dengan meneruskan fungsi operasi yang sesuai ke processListWithOperation berdasarkan input jenis operasi. Gunakan pernyataan percabangan untuk menentukan fungsi yang akan diteruskan untuk setiap operasi. Fungsi processListWithOperation harus melakukan iterasi pada list input, menerapkan fungsi yang diberikan dengan nilai yang ditentukan pada setiap elemen, lalu mengumpulkan hasilnya dalam list baru. Terapkan operasi secara berurutan, dengan menggunakan hasil operasi pertama sebagai input untuk operasi kedua.

Coba sendiri

import 'dart:io';

void main() {
  // Baca input
  String? numbersInput = stdin.readLineSync();
  String? firstOperation = stdin.readLineSync();
  String? firstValue = stdin.readLineSync();
  String? secondOperation = stdin.readLineSync();
  String? secondValue = stdin.readLineSync();
  
  // Ubah input string menjadi list bilangan bulat
  List<int> originalList = numbersInput!.split(',').map((e) => int.parse(e.trim())).toList();
  int firstOpValue = int.parse(firstValue!);
  int secondOpValue = int.parse(secondValue!);
  
  // TODO: Tulis kodemu di bawah ini
  // Buat tiga fungsi operasi: multiplyBy, addTo, subtractFrom
  // Buat fungsi processListWithOperation
  // Terapkan operasi secara berurutan dan simpan hasilnya
  
  // Tampilkan hasil dalam format yang diminta
  print('Advanced List Processor');
  print('=======================');
  print('Original list: $originalList');
  // Cetak operasi pertama dan hasilnya
  // Cetak operasi kedua dan hasil akhirnya
  print('Processing completed successfully');
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Dart online