Menu
CoddyTech

Pengelola Kontak Cerdas

Termasuk bagian Logika dan Alur dalam perjalanan Python di Coddy. Pelajaran 76 dari 78.

challenge icon

Tantangan

Sedang

Buat fungsi bernama organize_contacts yang memproses list dictionary kontak untuk membuat database kontak yang bersih.

Setiap dictionary kontak dalam list input memiliki kunci berikut:

  • name: Nama orang
  • email: Alamat email orang tersebut
  • phone: Nomor telepon orang tersebut

Fungsimu harus:

  1. Menghapus kontak duplikat, yaitu kontak dengan email atau nomor telepon yang sama, dan mempertahankan kemunculan pertama
  2. Menstandarkan semua email menjadi huruf kecil
  3. Menyaring kontak dengan alamat email yang tidak valid
  4. Menyaring kontak dengan nomor telepon yang tidak valid
  5. Mengembalikan list dictionary kontak yang sudah dibersihkan

Aturan validasi:

  • Email valid: Harus berisi '@' dan '.', serta tidak boleh memiliki spasi
  • Telepon valid: Harus berisi tepat 10 digit, abaikan karakter nondigit seperti tanda hubung atau tanda kurung

Untuk membersihkan nomor telepon, gunakan method str.isdigit() dari Python untuk mengekstrak hanya digit numerik dari nomor telepon. Method ini mengembalikan True jika sebuah karakter adalah digit (0-9), dan False jika tidak, sehingga sangat cocok untuk menyaring karakter nondigit.

Contoh Input:

contacts = [
    {"name": "John Doe", "email": "john@email.com", "phone": "123-456-7890"}
]

Output yang Diharapkan:

[
    {"name": "John Doe", "email": "john@email.com", "phone": "1234567890"}
]

Coba sendiri

def organize_contacts(contact_list):
    # Tulis solusimu di sini
    
    # 1. Buat fungsi bantuan untuk validasi
    # - Fungsi untuk memvalidasi format email
    # - Fungsi untuk membersihkan dan memvalidasi nomor telepon
    
    # 2. Proses setiap kontak
    # - Bersihkan email (jadikan huruf kecil) dan nomor telepon (hanya angka)
    # - Periksa apakah email dan nomor telepon valid
    # - Periksa apakah ada duplikat
    
    # 3. Kembalikan list kontak yang sudah dibersihkan
    pass

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Python online