Menu
CoddyTech

Lambda dengan Parameter

Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 43 dari 56.

Sekarang setelah kamu memahami sintaks lambda dasar, mari kita buat lambda lebih berguna dengan menambahkan parameter. Sama seperti fungsi biasa, lambda dapat menerima nilai input untuk digunakan.

Untuk menambahkan parameter ke lambda, letakkan parameter tersebut di dalam tanda kurung setelah klausa capture:

auto addNumbers = [](int a, int b) {
    std::cout << "Sum: " << (a + b) << std::endl;
};

addNumbers(5, 3);  // Mencetak: Sum: 8

Sintaks parameter berfungsi persis seperti parameter fungsi biasa: kamu menuliskan tipe data, lalu nama parameter. Kamu bisa memiliki beberapa parameter yang dipisahkan dengan koma, seperti yang ditunjukkan di atas.

Kamu juga bisa langsung memanggil lambda dengan parameter tanpa menyimpannya:

[](int x, int y) {
    std::cout << "Product: " << (x * y) << std::endl;
}(4, 7);  // Mencetak: Product: 28

Kemampuan menerima parameter ini membuat lambda jauh lebih fleksibel dan dapat digunakan kembali, sehingga kamu dapat membuat fungsi kecil yang memproses nilai input yang berbeda setiap kali dipanggil.

challenge icon

Tantangan

Mudah

Buat program yang menunjukkan ekspresi lambda dengan parameter dengan membangun kalkulator sederhana yang melakukan berbagai operasi matematika. Tantangan ini akan menguji pemahamanmu tentang cara mendefinisikan ekspresi lambda yang menerima nilai input dan mengolahnya.

Input berikut akan diberikan:

  • Dua bilangan bulat num1 dan num2 yang mewakili angka untuk perhitungan
  • Sebuah karakter operation yang mewakili operasi matematika yang harus dilakukan

Programmu harus:

  1. Membuat ekspresi lambda bernama add yang menerima dua parameter bilangan bulat dan mencetak jumlahnya dalam format Sum: [result]
  2. Membuat ekspresi lambda bernama subtract yang menerima dua parameter bilangan bulat dan mencetak selisihnya dalam format Difference: [result]
  3. Membuat ekspresi lambda bernama multiply yang menerima dua parameter bilangan bulat dan mencetak hasil perkaliannya dalam format Product: [result]
  4. Membaca kedua angka dan karakter operasi dari input
  5. Berdasarkan karakter operasi, memanggil lambda yang sesuai dengan kedua angka tersebut

Karakter operasi akan berupa salah satu dari:

  • + untuk penjumlahan (panggil lambda add)
  • - untuk pengurangan (panggil lambda subtract)
  • * untuk perkalian (panggil lambda multiply)

Gunakan format output persis berikut berdasarkan operasinya:

Untuk penjumlahan:

Sum: [result]

Untuk pengurangan:

Difference: [result]

Untuk perkalian:

Product: [result]

Ingat, parameter lambda didefinisikan di dalam tanda kurung setelah klausa capture, menggunakan sintaks yang sama dengan parameter fungsi biasa. Simpan setiap lambda dalam variabel menggunakan kata kunci auto, lalu panggil lambda yang sesuai berdasarkan karakter operasi input menggunakan pernyataan if-else atau pernyataan switch.

Coba sendiri

#include <iostream>
using namespace std;

int main() {
    // Baca input
    int num1, num2;
    char operation;
    cin >> num1 >> num2 >> operation;
    
    // TODO: Buat ekspresi lambda untuk operasi penjumlahan, pengurangan, dan perkalian
    // TODO: Gunakan pernyataan if-else atau switch untuk memanggil lambda yang sesuai berdasarkan operasi
    
    return 0;
}
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 C++ online