Mengecek Urutan File dengan Python (bagian 3 – selesai)


Melanjutkan artikel sebelumnya. Sebelumnya kita telah mengetahui bagaimana pola dari nama file. Dari sana kita bisa kembangkan perintah untuk komputer agar mengecek kelengkapan file. Sebelum masuk ke pengembangan perintah juga sudah diuraikan konstanta dan variabel penting. Kali ini, akan diuraikan cara memanfaatkan kode yang lalu untuk 2 fase pengecekan. Sekaligus juga diuraikan fungsi lain yang mirip dengan getMissingPageTable().

Dua Fase Pengecekan

Jika sebelumnya yang dicek hanya satu direktori, kali ini yang dicek adalah 2 direktori. Direktori pertama mengandung file-file asal yang sudah lengkap. Sedangkan direktori kedua mengandung file-file hasil konversi dari file-file direktori pertama.

Misalkan, direktori pertama berisi:

doc=TOC&page=1.swf
doc=TOC&page=2.swf
doc=M1&page=1.swf
doc=M1&page=2.swf
doc=M1&page=3.swf
doc=M2&page=1.swf
doc=M2&page=2.swf
doc=M3&page=1.swf
doc=M3&page=2.swf
doc=M3&page=3.swf
doc=M3&page=4.swf

Maka direktori kedua seharusnya berisi:

doc=TOC&page=1.swf.pdf
doc=TOC&page=2.swf.pdf
doc=M1&page=1.swf.pdf
doc=M1&page=2.swf.pdf
doc=M1&page=3.swf.pdf
doc=M2&page=1.swf.pdf
doc=M2&page=2.swf.pdf
doc=M3&page=1.swf.pdf
doc=M3&page=2.swf.pdf
doc=M3&page=3.swf.pdf
doc=M3&page=4.swf.pdf

Terkadang di tengah proses konversi ada beberapa file yang mengalami kegagalan. Sehingga ada beberapa halaman yang di direktori 1 (asal) ada tapi di direktori 2 (hasil konversi) tidak ada.

Jika hal itu terjadi tentu kita perlu mengecek kelengkapan file di direktori 2. Hal ini bisa kita lakukan dengan fungsi getMissingPageTable() sebelumnya. Tapi bisa juga dengan metode lainnya.

Metode lain itu yakni membandingkan isi direktori 2 dengan isi direktori 1 sebagai patokan. Metode ini hanya bisa dilakukan dengan syarat: (1) direktori 2 yang ingin dicek punya direktori lain untuk dijadikan patokan, yakni direktori 1, (2) direktori 1 isinya sudah lengkap. Metode ini kutulis dalam fungsi getMissingPageTableByDir().

Jadi, fase yang diperlukan adalah:

1. Cek kelengkapan direktori 1, dilihat dari urutannya, dengan getMissingPageTable()
2. Konversikan semua file dalam direktori 1, direktori tujuannya direktori 2
3. Cek kelengkapan direktori 2, dilihat dari direktori 1 sebagai patokan, dengan getMissingPageTableByDir()

 

Variabel dan Konstanta

Kali ini, variabel dan konstanta yang digunakan sama saja dengan metode sebelumnya, kecuali sebagian dibuat jadi 2 variabel. Ada juga konstanta dan variabel yang tidak diperlukan karena fungsinya juga tidak lagi diperlukan

getMissingPageTable () getMissingPageTableByDir()
DIR DIR1, DIR2
SEPARATOR SEPARATOR1, SEPARATOR2
SEPDOCNUM tidak perlu
UODOC tidak perlu
docPageTable docPageTable1, docPageTable2
missingPageTable missingPageTable
missingDocList tidak perlu

 

Penjabaran perintahnya juga sama dengan sebelumnya, kecuali sedikit perbedaan:

I. Buatkan 2 tabel nama dokumen dan halaman dari nama file-file dalam direktori DIR1 dan DIR2, secara terpisah

I.A. getDocPageTable() hasilkan tabel
I.A.1. getDocPage() ambil data doc-page yang sudah dipisahkan dan catat data dalam tabel
I.A.1.a. isLastNameMatch() pisahkan nama file berekstensi “.swf” dengan nama file berekstensi lainnya

II. Buatkan tabel halaman yang hilang dengan membandingkan 2 tabel dari nomor I

II.A. getMissingPageTableByDir() hasilkan tabel

III. tidak perlu

IV. Tampilkan semua hasil

IV.A. displayMissingPageTable() tampilkan tabel dari nomor II
IV.B. tidak perlu
IV.C. displayGeneralStatistics() tampilkan informasi umum

Kali ini dibutuhkan 2 docPageTable dari masing-masing direktori. Kemudian, getDocList() sudah tidak diperlukan. Ini karena getMissingPageTableByDir() sudah mengecek seluruh file di direktori 1 yang sudah lengkap tanpa luput.

 

getMissingPageTableByDir()

Untuk setiap dokumen pada direktori 1 (semua key docPageTable1 kecuali ‘OTHER’), bandingkan dengan direktori 2. Apabila di direktori 2 belum ada dokumen tersebut, catat semua halaman dalam dokumen tersebut dalam missingPageTable.

Apabila di direktori 2 sudah ada dokumen tersebut, bandingkan setiap halaman dalam dokumen (dalam direktori 1) dengan direktori 2. Apabila ada yang terlewatkan, catat halaman dalam missingPageTable.

missingPageTable yang dihasilkan bisa dilanjutkan dengan diolah dan dibuka dengan menggunakan python. Google Chrome bisa dibuka dengan command prompt. Kebetulan python juga bisa mengirim perintah ke command prompt. Ini akan dibahas dalam artikel berikutnya.

 

Kode sumber bisa ditemukan pada github. Untuk memanfaatkan kode ini, sesuaikan konstanta dengan kebutuhan. Pindahkan tanda # ini untuk menentukan fase satu atau dua. Yang di belakang tanda # berarti tidak dijalankan.

Demikianlah kira-kira gambaran pengecekan urutan file dengan python. Semoga bermanfaat.

 

(SELESAI)

Komentar Pemirsa