Membuat Rapor
Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 38 dari 68.
Tantangan
MudahKamu akan menerima satu input: sebuah object JSON yang merepresentasikan buku nilai siswa. Buku nilai menggunakan nama siswa sebagai key, dengan setiap siswa memiliki "id" dan array "grades" yang berisi nilai ujian mereka.
Baca input, ubah string JSON menjadi array buku nilai, lalu buat rapor berformat untuk semua siswa. Untuk setiap siswa, tampilkan nama, ID siswa, semua nilai satu per satu, dan nilai rata-rata yang dibulatkan hingga 2 angka desimal.
Format output persis seperti berikut:
- Cetak
===== REPORT CARD =====sebagai header - Untuk setiap siswa, cetak:
Student: [name]ID: [student_id]Grades: [grade1], [grade2], [grade3], ...(semua nilai dipisahkan dengan koma dan spasi)Average: [average](dibulatkan hingga 2 angka desimal)- Satu baris kosong setelah setiap siswa (kecuali siswa terakhir)
Format input: Satu baris yang berisi object JSON yang merepresentasikan buku nilai (contoh: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
Output yang diharapkan: Rapor berformat yang menampilkan informasi setiap siswa, termasuk nama, ID, semua nilai, dan nilai rata-rata yang dihitung
Coba sendiri
<?php
// Baca input JSON
$input = trim(fgets(STDIN));
// Ubah JSON menjadi array
$gradebook = (array)json_decode($input, true);
// Cetak judul
echo "===== REPORT CARD =====\n";
// TODO: Tulis kodemu di bawah ini
// Lakukan perulangan untuk setiap siswa di gradebook
// Untuk setiap siswa:
// - Cetak nama siswa
// - Cetak ID siswa
// - Cetak semua nilai siswa
// - Hitung dan cetak rata-rata nilai siswa (dibulatkan ke 2 angka desimal)
// - Tambahkan baris kosong di antara siswa (kecuali setelah siswa terakhir)
?>Semua pelajaran di Logika dan Alur
1Fungsi Lanjutan
Fungsi AnonimClosure dan 'use'Fungsi PanahFungsi CallbackMenggunakan 'call_user_func'Fungsi VariabelMengirim dengan ReferensiFungsi RekursifUlasan: Ragam Fungsi4Array Multidimensi
Membuat array 2DMengakses Elemen array 2DMengubah Elemen array 2DMelakukan Perulangan dengan loop Bersarangarray Asosiatif 2DRekap: Latihan Kisi Sederhana2Manipulasi array Lanjutan
Menambahkan dengan 'array_push'Menghapus dengan 'array_pop'Menambahkan dengan 'array_unshift'Menghapus dengan 'array_shift'Menggabungkan array berindeksMenggabungkan array asosiatifMengambil bagian dengan 'array_slice'Nilai dengan 'in_array'Kunci dengan 'array_search'Rekap: Latihan playlist3Mengurutkan array
Urutkan array berindeks secara menaikUrutkan array berindeks secara menurunUrutkan assoc array berdasarkan nilaiUrutkan assoc array berdasarkan kunciPengurutan urutan alamiPengurutan khusus dengan 'usort'Rangkuman: Pengurutan papan peringkatLatihan sendiri: Compiler PHP online