Menu
CoddyTech

Melakukan Perulangan dengan loop Bersarang

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

Saat bekerja dengan array 2D, kamu sering perlu memproses setiap elemen, yang mengharuskan kamu mengunjungi setiap baris lalu setiap kolom di dalam baris tersebut. Di sinilah perulangan bersarang menjadi penting. Kamu menggunakan satu perulangan di dalam perulangan lain untuk menelusuri seluruh struktur grid secara sistematis.

Perulangan luar mengiterasi setiap baris array 2D, sedangkan perulangan dalam memproses setiap elemen di dalam baris saat ini. Berikut cara kerjanya dengan perulangan foreach:

<?php
$schedule = [
    ["Meeting", "Lunch", "Presentation"],
    ["Training", "Review", "Planning"],
    ["Workshop", "Break", "Demo"]
];

foreach ($schedule as $day) {
    foreach ($day as $appointment) {
        echo $appointment . "\n";
    }
}
?>

Kamu juga bisa menggunakan perulangan for tradisional saat membutuhkan kontrol lebih besar atas indeks. Pendekatan ini memberimu akses ke posisi baris dan kolom:

<?php
for ($row = 0; $row < count($schedule); $row++) {
    for ($col = 0; $col < count($schedule[$row]); $col++) {
        echo "Day " . ($row + 1) . ", Time " . ($col + 1) . ": " . $schedule[$row][$col] . "\n";
    }
}
?>

Pola perulangan bersarang ini sangat penting untuk memproses array 2D secara menyeluruh, baik saat kamu menampilkan data, melakukan perhitungan, maupun mencari nilai tertentu di seluruh struktur grid.

challenge icon

Tantangan

Mudah

Kamu akan menerima satu input: sebuah array 2D yang merepresentasikan susunan tempat duduk di ruang kelas dalam format JSON. Setiap array bagian dalam merepresentasikan satu baris tempat duduk, dan setiap elemennya berisi nama siswa atau string kosong untuk tempat duduk yang tidak terisi. Baca input, ubah string JSON menjadi array 2D, gunakan perulangan bersarang untuk menelusuri seluruh susunan tempat duduk, lalu cetak nama setiap siswa beserta posisinya dalam format: Row X, Seat Y: Name

Lewati tempat duduk yang tidak terisi (string kosong) dan cetak informasi hanya untuk tempat duduk yang terisi. Nomor baris dan tempat duduk dimulai dari 1 (bukan 0).

Format input: Satu baris yang berisi array JSON yang merepresentasikan susunan tempat duduk (contoh: [["Alice","Bob",""],["","Charlie","Diana"],["Eve","","Frank"]])

Output yang diharapkan: Setiap tempat duduk yang terisi dicetak pada baris terpisah dalam format Row X, Seat Y: Name, dengan X sebagai nomor baris dan Y sebagai nomor tempat duduk (keduanya dimulai dari 1)

Coba sendiri

<?php
// Baca input JSON
$input = trim(fgets(STDIN));

// Ubah string JSON menjadi array 2D
$seating = (array)json_decode($input, true);

// TODO: Tulis kodemu di bawah ini
// Gunakan perulangan bersarang untuk menelusuri baris dan kursi
// Ingat, lewati kursi kosong dan beri nomor pada baris serta kursi mulai dari 1


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