Menu
CoddyTech

'array_map' dengan Fungsi Kustom

Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 40 dari 68.

Meskipun fungsi bawaan seperti strtoupper bekerja dengan baik bersama array_map(), kekuatan sebenarnya muncul saat kamu menggunakan fungsi kustom buatanmu sendiri. Dengan begitu, kamu dapat membuat transformasi khusus yang disesuaikan dengan kebutuhanmu.

Untuk menggunakan fungsi kustom dengan array_map(), cukup berikan nama fungsi sebagai string untuk parameter pertama. Fungsi kustommu harus menerima satu parameter (elemen array saat ini) dan mengembalikan nilai yang telah diubah.

<?php
function doubleNumber($num) {
    return $num * 2;
}

$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// Hasil: [2, 4, 6, 8, 10]
?>

Pendekatan ini memberimu kendali penuh atas cara setiap elemen diproses. Kamu dapat melakukan perhitungan yang rumit, manipulasi string, atau logika lain di dalam fungsi kustommu, sehingga array_map() sangat serbaguna untuk tugas transformasi data.

challenge icon

Tantangan

Mudah

Kamu akan menerima dua input: daftar suhu Celsius yang dipisahkan dengan koma dan satuan tujuan konversi, yaitu F untuk Fahrenheit atau K untuk Kelvin. Input pertama berisi suhu sebagai string dengan format 0,10,20,30,100, dan input kedua adalah satu karakter yang menunjukkan jenis konversi.

Baca kedua input, ubah suhu yang dipisahkan dengan koma menjadi array angka, buat fungsi khusus untuk mengonversi suhu Celsius ke satuan tujuan, gunakan array_map() dengan fungsi khususmu untuk mengubah semua suhu, lalu cetak setiap suhu hasil konversi pada baris terpisah, dibulatkan hingga 2 angka desimal.

Rumus konversi:

  • Celsius ke Fahrenheit: (C × 9/5) + 32
  • Celsius ke Kelvin: C + 273.15

Format input:

  • Baris pertama: Suhu Celsius yang dipisahkan dengan koma (contoh: 0,10,20,30,100)
  • Baris kedua: Satuan tujuan konversi, yaitu F atau K (contoh: F)

Output yang diharapkan: Setiap suhu hasil konversi dicetak pada baris terpisah, dibulatkan hingga 2 angka desimal

Coba sendiri

<?php
// Baca suhu yang dipisahkan dengan koma
$temperatures = fgets(STDIN);

// Baca satuan tujuan (F atau K)
$unit = trim(fgets(STDIN));

// Ubah string yang dipisahkan dengan koma menjadi array angka
$tempArray = explode(',', trim($temperatures));

// TODO: Tulis kodemu di bawah ini
// Buat fungsi khusus untuk mengubah Celsius ke satuan tujuan
// Gunakan array_map() untuk mengonversi semua suhu
// Cetak setiap suhu yang telah dikonversi pada baris terpisah, dibulatkan hingga 2 angka di belakang koma

?>
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 PHP online