ZDIRY-TUFWT-EBONM-EYJ00-IDBLANTER.COM
ZDIRY-TUFWT-EBONM-EYJ00
BLANTERWISDOM105

Cara Cepat Mengambil Nomor Ijazah Secara Keseluruhan Dengan Python Di Google Collab

Selasa, 20 Mei 2025

Apakah kamu memiliki banyak file ijazah dalam format PDF dan ingin mengambil Nomor Ijazah, Nama Siswa, Tempat Tanggal Lahir (TTL), NISN, serta Kompetensi Keahlian secara otomatis?

Jangan khawatir! Artikel ini akan membimbing kamu langkah demi langkah bagaimana mengekstrak data dari PDF secara otomatis dan cepat menggunakan Python di Google Colab.

1. Siapkan File PDF

Pastikan file ijazah dalam format PDF berisi teks (bukan gambar hasil scan), lalu beri nama ijazah.pdf dan upload ke Google Colab melalui sidebar kiri.

2. Install Library yang Dibutuhkan

!pip install PyPDF2 pandas openpyxl

3. Script Lengkap Ekstraksi Data Ijazah

Salin dan jalankan script berikut di Google Colab:

import PyPDF2 import pandas as pd import re # Ganti dengan nama file PDF Anda jika berbeda pdf_file_path = 'ijazah.pdf' extracted_data = [] try: with open(pdf_file_path, 'rb') as file: reader = PyPDF2.PdfReader(file) num_pages = len(reader.pages) print(f"Mulai mengekstrak data dari {num_pages} halaman...") for i in range(num_pages): page = reader.pages[i] text = page.extract_text() no_ijazah = None nama_siswa = None ttl = None nisn = None bidang_program_kompetensi_keahlian = None # Nomor Ijazah ijazah_match = re.search(r'No\.\s*Ijazah:\s*(\d{15})', text, re.IGNORECASE) if ijazah_match: no_ijazah = ijazah_match.group(1).strip() else: ijazah_match_alt = re.search(r'No\.\s*Ijazah:\s*(\d+\s*\d+)', text, re.IGNORECASE) if ijazah_match_alt: no_ijazah = ijazah_match_alt.group(1).replace(" ", "").strip() # Nama Siswa nama_match = re.search(r'Dengan ini menyatakan bahwa:\s*\n\s*(.*?)\n', text, re.IGNORECASE | re.DOTALL) if nama_match: nama_siswa = nama_match.group(1).strip() if "tempat, tanggal lahir" in nama_siswa: nama_siswa = nama_siswa.split("tempat, tanggal lahir")[0].strip() if "Nomor Induk Siswa Nasional" in nama_siswa: nama_siswa = nama_siswa.split("Nomor Induk Siswa Nasional")[0].strip() # TTL ttl_match = re.search(r'tempat,\s*tanggal\s*lahir:\s*(.*?)\n', text, re.IGNORECASE) if ttl_match: ttl = ttl_match.group(1).strip() # NISN nisn_match = re.search(r'Nomor Induk Siswa Nasional:\s*(\d{9,10})', text, re.IGNORECASE) if nisn_match: nisn = nisn_match.group(1).strip() # Kompetensi Keahlian / Program / Konsentrasi kompetensi_keahlian_match = re.search(r'Kompetensi Keahlian\s*:\s*(.*?)\n', text, re.IGNORECASE) if kompetensi_keahlian_match: bidang_program_kompetensi_keahlian = kompetensi_keahlian_match.group(1).strip() else: konsentrasi_keahlian_match = re.search(r'Konsentrasi Keahlian\s*:\s*(.*?)\n', text, re.IGNORECASE) if konsentrasi_keahlian_match: bidang_program_kompetensi_keahlian = konsentrasi_keahlian_match.group(1).strip() else: program_keahlian_match = re.search(r'Program Keahlian\s*:\s*(.*?)\n', text, re.IGNORECASE) if program_keahlian_match: bidang_program_kompetensi_keahlian = program_keahlian_match.group(1).strip() else: bidang_keahlian_match = re.search(r'Bidang Keahlian\s*:\s*(.*?)\n', text, re.IGNORECASE) if bidang_keahlian_match: bidang_program_kompetensi_keahlian = bidang_keahlian_match.group(1).strip() if no_ijazah or nama_siswa or nisn or ttl or bidang_program_kompetensi_keahlian: extracted_data.append({ 'Halaman': i + 1, 'No. Ijazah': no_ijazah, 'Nama Siswa': nama_siswa, 'Tempat, tanggal lahir': ttl, 'Nomor Induk Siswa Nasional': nisn, 'Bidang/Program/Kompetensi Keahlian': bidang_program_kompetensi_keahlian }) print(f"Total {len(extracted_data)} data berhasil diekstraksi.") df = pd.DataFrame(extracted_data) df.to_excel('data_ijazah_SMK.xlsx', index=False) print("Data lengkap berhasil disimpan ke 'data_ijazah_SMK.xlsx'.") except FileNotFoundError: print(f"Error: File '{pdf_file_path}' tidak ditemukan.") except Exception as e: print(f"Terjadi kesalahan: {e}")

4. Hasil Akhir

  • File output akan bernama data_ijazah.xlsx
  • Berisi kolom:
    • Halaman PDF ke-
    • Nomor Ijazah
    • Nama Siswa
    • Tempat, Tanggal Lahir
    • NISN
    • Kompetensi/Program Keahlian

Tips Tambahan

  • Pastikan PDF bukan hasil scan, tapi teks asli.
  • Jika muncul error look-behind requires fixed-width pattern, hindari penggunaan regex dengan (?<=...) yang panjangnya tidak pasti.
  • Gunakan tombol upload di sidebar Google Colab untuk mengunggah file PDF.
Share This :

0 komentar