Menu
CoddyTech

Ringkasan: Validasi input

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

challenge icon

Tantangan

Mudah

Kamu akan menerima empat input: string alamat email, string nomor telepon, angka usia minimum, dan angka usia sebenarnya.

Buat dua class exception kustom:

  • InvalidEmailException yang memperluas class dasar Exception
  • InvalidAgeException yang memperluas class dasar Exception

Buat fungsi bernama validateUserData yang menerima empat parameter: email, telepon, usia minimum, dan usia sebenarnya. Di dalam fungsi ini:

  • Periksa apakah email berisi simbol @. Jika tidak, lempar InvalidEmailException dengan pesan "Email must contain @ symbol"
  • Periksa apakah panjang nomor telepon tepat 10 karakter. Jika tidak, lempar Exception umum dengan pesan "Phone number must be 10 digits"
  • Periksa apakah usia sebenarnya kurang dari usia minimum. Jika ya, lempar InvalidAgeException dengan pesan "User must be at least X years old" (dengan X sebagai nilai usia minimum)
  • Jika semua validasi berhasil, cetak "User data is valid"

Gunakan blok try...catch...finally untuk memanggil fungsi dengan input yang diberikan. Buat dua blok catch terpisah:

  • Blok catch pertama harus menangkap InvalidEmailException dan mencetak "Email error: " diikuti pesan exception
  • Blok catch kedua harus menangkap InvalidAgeException dan mencetak "Age error: " diikuti pesan exception
  • Tambahkan blok catch ketiga yang menangkap Exception lainnya dan mencetak "Validation error: " diikuti pesan exception

Di dalam blok finally, cetak "Validation process completed".

Format input:

  • Baris pertama: String yang mewakili alamat email (contoh: user@example.com atau invalidemail.com)
  • Baris kedua: String yang mewakili nomor telepon (contoh: 1234567890 atau 12345)
  • Baris ketiga: Integer yang mewakili persyaratan usia minimum (contoh: 18)
  • Baris keempat: Integer yang mewakili usia sebenarnya (contoh: 25 atau 16)

Output yang diharapkan:

  • Jika semua data valid: User data is valid diikuti Validation process completed pada baris baru
  • Jika email tidak valid: Email error: Email must contain @ symbol diikuti Validation process completed pada baris baru
  • Jika nomor telepon tidak valid: Validation error: Phone number must be 10 digits diikuti Validation process completed pada baris baru
  • Jika usia di bawah minimum: Age error: User must be at least X years old (dengan X sebagai usia minimum) diikuti Validation process completed pada baris baru

Coba sendiri

<?php
// Baca input
$email = trim(fgets(STDIN));
$phone = trim(fgets(STDIN));
$minAge = intval(fgets(STDIN));
$actualAge = intval(fgets(STDIN));

// TODO: Buat class exception khusus di sini
// Buat class InvalidEmailException
// Buat class InvalidAgeException

// TODO: Buat fungsi validateUserData di sini
// Fungsi ini harus menerima empat parameter: email, phone, minAge, actualAge
// Terapkan logika validasi di dalam fungsi

// TODO: Gunakan blok try...catch...finally untuk memanggil fungsi
// Panggil validateUserData dengan nilai input
// Tambahkan blok catch untuk InvalidEmailException, InvalidAgeException, dan Exception umum
// Tambahkan blok finally

?>

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler PHP online