Kita masih memerlukan sebuah program untuk dieksekusi yang akan mengakses file modul mod1.py.
- Pada IDLE python shell kita buka file baru (Ctrl+N) dan simpan (Ctrl+S) difolder yang sama dengan nama eksekusiFile.py.
- Sekarang pada folder tersebut ada tiga buah file yaitu, '_init_.py', 'mod1.py', dan 'eksekusiFile.py'.
- Pada 'eksekusi.py' python window kita tulis:
- import mod1
a=mod1.simplify('helllo selamat , : pagi ', delete=',:')
print(a)
Sekarang kita mempunyai semua yang diperlukan,
Lalu pada python window 'eksekusi.py' kita tekan F5 (Run > Run Module)
Berikut adalah semua file dan hasil eksekusi nya:
Kita bahas eksekusi.py dahulu
Pada baris pertama (import mod1), karena file mod1.py ada pada satu folder yang sama dengan eksekusi.py, dan mod1.py bukanlah nama yang digunakan standard python untuk modul, kita bisa langsung tuliskan begitu, bila tidak dalam satu folder yang sama kita harus memberikan alamatnya.
Pada baris berikutnya (yang pada kenyataannya kosong) boleh diabaikan, baris kosong ini kita buat untuk mempermudah pembacaan script-nya saja.
Pada baris ketiga ( a=mod1.simplify('helllo selamat , : pagi ',delete=',:' ), kita membuat sebuah variable string yang bernama a, dan variable tersebut harus diproses terlebih dahulu oleh modul (mod1, yang bernama simplify) yang isinya
'helllo selamat , : pagi '
kemudian ada variable delete yang isinya ',:'
dengan maksud bila ada karakter tersebut harap dihapus juga. semua ini diproses oleh modul mod1.py.
lalu baris terakhir mencetak variable a pada monitor.
Sekarang kita masuk ke modul mod1.py
Pada baris pertama kita mengimpor modul string yang ada pada modul standard python. Karena ada fungsi 'whitespace' yang kita perlukan.
Fungsi whitespace ini adalah untuk mendeteksi karakter ASCII yang berupa spaci, tabulasi, return, linefeed, formfeed dan vertikal tab.
Dan dengan perintah 'import string' kita memasukan semua fungsi yang ada pada modul string python pada memory, sangat tidak efisien sebetulnya.
Kemudian baris kedua
def simplify(text, whitespace=string.whitespace, delete=''):
def adalah untuk memberitahukan pyhon ini adalah fungsi, dan diikuti dengan nama fungsinya (simplify).
Didalam fungsi ini, ada variable yang bernama text, whitespace, dan delete, (pada file eksekusi.py kita tuliskan: mod1.simplify('helllo selamat , : pagi ',delete=',:' )
Dengan kata lain, pada fungsi simplify, variable text akan diisi dengan 'helllo selamat , : pagi ' ,
untuk variable whitespace kita tidak mengisinya pada file eksekusi.py, karena kita akan gunakan variable whitespace dengan default (variable whitespace default yang kita buat adalah 'string.whitespace', sehingga pada eksekusi.py kita tidak perlu lagi menulikan variable untuk whitespace, kecuali bila kita ingin mengganti variable default whitespace dengan yang lain kita bisa menuliskannya dengan:
a=mod1.simplify('helllo selamat , : pagi ', whitespace ='xyz', delete=',:'
Contoh diatas, kita mengganti variable whitespace default dengan karakter 'x','y', dan 'z'.
Default variable delete adalah ''(dua buah single quote) yang merupakan sebuah variable string kosong, sehingga pada defaut untuk variable delete adalah tidak ada.
Dan pada eksekusi.py kita membuatnya menjadi delete=',:', dengan maksud kita juga ingin menghapus karakter koma (,) dan titik dua (:) dihapuskan.
Baris ketiga (r''' komen dengan 3 buah tanda kutip yang biasanya keterangan programer dan copy right ''')
Ini hanya komentar, tidak dibaca oleh python
Baris keempat (result=[])
Kita membuat variable list dengan nama result. ini tempat mengumpulkan kata.
Baris kelima (word='')
Kita membuat variable string kosong.
Baris keenam (a=1)
Baris ini sebetulnya tidak perlu, ini karena saya lupa menghapus baris ini dan baris yang ke 16 (a+=1) yang dimaksudkan untuk menguji program sebelum program ini bekerja dengan baik, maaf.
Baris ketujuh (for char in text: )(awal loop blok disini)
Merupakan blok loop, yang akan menanalisa semua karakter.
Baris ini kita mengambil string variable text menjadi karakter satu per satu, yang akan diuji. Bila dalam variable text merupakan karakter ASCII maka harus diuji diblok ini. Bila bukan sebuah karakter ASCII maka kemungkinan program kita akan menghasilkan hasil yang tidak kita harapkan (saya belum mengujinya), karena kita tidak membuat blok loop yang mengatur karakter selain ASCII.
Baris kedelapan (if char in delete: )
Disini kita mencari karakter yang ada pada variable 'delete' (yang pada default adalah ''(string kosong), dan kita mengisinya pada file eksekusi dengan koma (,) dan titik dua (:), disini bila karakter merupakan koma atau titik dua maka masuk ke blok ini.
Baris kesembilan (continue)
Bila karakter yang diuji merupakan karakter dari variable delete maka, Loop akan kembali ke awal loop, yaitu ke baris ketujuh.
Baris kesepuluh (elif char in whitespace : )
Bila karakter yang diuji bukan merupakan karakter yang ada pada variable delete, maka uji karakter akan masuk kesini. Dan disini karakter diuji bila merupakan karakter string.whitespace (berupa spaci, tabulasi, return, linefeed, formfeed dan vertikal tab).
Baris kesebelas (if word:)
Bila variable word=True maka masuk ke blok ini.
Baris ketigabelas (result.append(word) )
Variable result mendapat tambahan anggota baru dengan string yang ada pada variable word.
Baris keempatbelas (word='')
Variable word menjadi string kosong.
Baris kelimabelas (else:)
Bila karakter tidak masuk ke blok yang if (baris 8) atau elif (baris 10), maka akan masuk ke blok ini.
Baris keenambelas (word+=char)
Variable word mendapat sebuah karakter dari char
Baris ketujuhbelas (a+=1)
Baris ini tidak perlu digubris.
Baris kedelapanbelas (return " ".join(result))
Hasil dikembalikan ke program yang memangil dengan format semua variable list result digabung dan diberi pemisah karakter spasi ' '.