# Aplikasi praktis metode string dalam berbagai skenario# 1. Validasi dan format nomor telepondef format_phone_number(phone): # Hapus semua karakter non-digit digits_only = "" for char in phone: if char.isdigit(): digits_only += char # Format sesuai standar Indonesia if len(digits_only) == 13 and digits_only.startswith("62"): return f"+{digits_only[:2]}-{digits_only[2:5]}-{digits_only[5:9]}-{digits_only[9:]}" elif len(digits_only) == 12 and digits_only.startswith("08"): return f"{digits_only[:4]}-{digits_only[4:8]}-{digits_only[8:]}" else: return "Format nomor tidak valid"phone_numbers = ["081234567890", "+6281234567890", "0812-3456-7890"]for phone in phone_numbers: formatted = format_phone_number(phone) print(f"'{phone}' -> '{formatted}'")# 2. Ekstrak informasi dari nama filedef analyze_filename(filename): # Pisahkan nama dan ekstensi if "." in filename: name, ext = filename.rsplit(".", 1) ext = ext.lower() else: name, ext = filename, "" # Analisis jenis file image_exts = ["jpg", "jpeg", "png", "gif", "bmp"] doc_exts = ["pdf", "doc", "docx", "txt"] code_exts = ["py", "js", "html", "css", "java"] if ext in image_exts: file_type = "Image" elif ext in doc_exts: file_type = "Document" elif ext in code_exts: file_type = "Code" else: file_type = "Unknown" return { "name": name, "extension": ext, "type": file_type, "length": len(filename) }files = ["photo.jpg", "report.pdf", "script.py", "data", "image.PNG"]for file in files: info = analyze_filename(file) print(f"{file}: {info}")# 3. Parser sederhana untuk log filedef parse_log_entry(log_line): # Format: [TIMESTAMP] LEVEL: MESSAGE if not log_line.strip(): return None # Ekstrak timestamp if log_line.startswith("[") and "]" in log_line: end_bracket = log_line.index("]") timestamp = log_line[1:end_bracket] rest = log_line[end_bracket + 1:].strip() else: timestamp = "Unknown" rest = log_line.strip() # Ekstrak level if ":" in rest: level, message = rest.split(":", 1) level = level.strip() message = message.strip() else: level = "INFO" message = rest return { "timestamp": timestamp, "level": level, "message": message }log_entries = [ "[2023-09-17 10:30:15] ERROR: Database connection failed", "[2023-09-17 10:30:16] INFO: Retrying connection", "WARNING: Low disk space", ""]print("\nLog parsing results:")for entry in log_entries: parsed = parse_log_entry(entry) if parsed: print(f"Time: {parsed['timestamp']}, Level: {parsed['level']}, Message: {parsed['message']}")# 4. Pembuat slug URL dari juduldef create_slug(title): # Konversi ke lowercase dan ganti spasi dengan dash slug = title.lower() # Ganti karakter non-alphanumeric dengan dash clean_slug = "" for char in slug: if char.isalnum(): clean_slug += char elif char == " " or not char.isalnum(): if clean_slug and clean_slug[-1] != "-": clean_slug += "-" # Hapus dash di awal dan akhir return clean_slug.strip("-")titles = [ "Belajar Python untuk Pemula", "Tips & Trik Programming", "Data Science: Panduan Lengkap", "Machine Learning 101"]print("\nSlug generation:")for title in titles: slug = create_slug(title) print(f"'{title}' -> '{slug}'")