Mengecek Urutan File dengan Python (bagian 1)


Jika kamu pernah memiliki file-file dengan urutan tertentu, ada kalanya kamu perlu mengecek apakah file-file tersebut sudah lengkap atau tidak. Kamu bisa saja mengandalkan ketajaman mata untuk melakukan pengecekan. Tapi jika jumlah file yang harus dicek makin besar tentu terlalu melelahkan jika harus mengandalkan mata. Kamu bisa menyuruh komputer untuk melakukan hal itu, melalui perintah dalam sebuah script python sederhana. :)

Agar bisa dicek kelengkapannya, file berurutan tersebut tentunya harus memiliki suatu pola. Sebagai contoh, aku memiliki file seperti ini:

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

Pola nama file-file di atas:

SDOC | DOCNUM | EDOC | SPAGE | PAGENUM | EPAGE

Misalnya, nama suatu file “doc=M1&page=2.swf”. Nama file tersebut bisa dipecah menjadi

“doc=” | “M1” | “&” | “page=” | “2” | “.swf ”

Penjelasan:

SDOC                = “doc=”

DOCNUM          = “M1”

EDOC                = “&”

SPAGE              = “page=”

PAGENUM        = “2”

EPAGE              = “.swf”

 

Separator

Dalam pola ini, kamu bisa lihat bahwa SDOC, EDOC, SPAGE, EPAGE tidak berubah dari file satu ke file berikutnya. SDOC dan EDOC merupakan teks yang membatasi awal dan akhir DOCNUM (S = start, E = end). Begitu pula dengan SPAGE dan EPAGE terhadap PAGENUM. Karena mereka menjadi pemisah, selanjutnya mereka akan aku sebut SEPARATOR.

SEPARATOR hanyalah pembatas untuk mengidentifikasi urutan file. Yang sebenarnya perlu diperiksa adalah teks yang dipisah oleh SEPARATOR. Teks ini adalah DOCNUM dan PAGENUM.

 

Dokumen dan Halaman

DOCNUM adalah nama dokumen. DOCNUM bisa berurutan atau bisa tidak berurutan. Tiap satu DOCNUM memiliki halaman-halaman. Tiap halaman ini ditandai dengan PAGENUM. PAGENUM pasti berurutan mulai dari 1. Misalnya dalam contoh di atas, DOCNUM dan PAGENUM-nya adalah sebagai berikut:

 

Nama File DOCNUM PAGENUM
doc=TOC&page=1.swf TOC 1
doc=TOC&page=2.swf TOC 2
doc=M1&page=1.swf M1 1
doc=M1&page=2.swf M1 2
doc=M1&page=3.swf M1 3
doc=M2&page=1.swf M2 1
doc=M2&page=2.swf M2 2
doc=M3&page=1.swf M3 1
doc=M3&page=2.swf M3 2
doc=M3&page=3.swf M3 3
doc=M3&page=4.swf M3 4

 

Contoh di atas adalah jika file lengkap. Bagaimana jika ada yang hilang? Misalnya seperti ini:

Nama File DOCNUM PAGENUM
doc=TOC&page=1.swf TOC 1
doc=TOC&page=2.swf TOC 2
doc=M1&page=1.swf M1 1
doc=M1&page=3.swf M1 3
doc=M3&page=1.swf M3 1
doc=M3&page=2.swf M3 2
doc=M3&page=3.swf M3 3
doc=M3&page=4.swf M3 4

Kalau yang kita suruh adalah manusia, kita bisa memerintahkan langsung dengan kata-kata “Carikan file apa yang hilang!” Tapi memerintahkan komputer tentunya tidak bisa seperti itu. Aku memecah perintah itu menjadi seperti ini:

1. Buatkan tabel DOCNUM dan PAGENUM dari nama file-file dalam direktori DIR
2. Buatkan tabel DOCNUM dan PAGENUM file yang hilang menggunakan tabel dari nomor 1, kemudian tampilkan
3. Buatkan daftar DOCNUM yang hilang menggunakan tabel dari nomor 1, kemudian tampilkan

Perintah ini tentu belum cukup jelas untuk dipahami. Sebelum diuraikan fungsi-fungsinya, perlu diuraikan dahulu variabel dan konstanta yang penting. Ini akan diuraikan lebih lanjut di artikel mendatang.

 

(BERSAMBUNG)

Komentar Pemirsa