Membuat Module
Ketika membuat suatu program yang kompleks tidak mungkin hanya satu file saja. Bayangkan, jika ada beribu baris dalam satu file pasti bikin mual bin pusing. :D
Untuk memudahkan dalam merawat dan mengelola kode program kita harus membagi dalam beberapa file atau biasa disebut module.
Module berisi sebuah fungsi-fungsi dan instruksi-instruksi di Python.
Cara memanggil module dengan fungsi import.
Saya asumsikan kita berada dalam folder belajar (direktori root atau awal) dan didalam folder tersebut ada file mtk.py dan program.py.
Jadi direktorinya seperti ini,
belajar
├── mtk.py
└── program.py
Silakan disamakan dahulu biar paham alurnya.
Kita buat sebuah fungsi di file mtk.py. Berisi fungsi penjumlahan dan pengurangan.
# mtk.py
def penjumlahan(bil1, bil2):
'Fungsi penjumlahan.'
return int(bil1) + int(bil2)
def pengurangan(bil1, bil2):
'Fungsi pengurangan.'
return int(bil1) - int(bil2)
Setelah itu kita panggil di file program.py menggunakan fungsi import.
# program.py
# Memanggil module mtk
import mtk
# memakai fungsi pengurangan dari module mtk
hasil = mtk.pengurangan(10, 3)
print(hasil)
Jalankan program.py, dengan membuka cmd atau terminal, kemudian pindah ke lokasi program berada (dicontoh atas dalam folder belajar).
lalu jalankan dengan perintah,
python program.py lalu enter.
Diatas akan menghasilkan output 7.
Harap diteliti jika salah mengetikan nama module atau fungsi, interpreter akan mengembalikan pesan kesalahan.
Selamat kita telah membuat module pertama serta memanggil module tersebut. :)
Pyc
Setiap kita memanggil suatu module. Python selalu membuat folder __pycache__ dalam folder module yg kita panggil.
Folder tersebut berisi cache module yang dipanggil.
<nama_module>.cpython-<versi_python>.pyc
Itu berarti iterpreter Python cukup memanggil sekali, kemudian selanjutnya akan memakai cache tersebut. Tetapi jika kode program diulang, Python secara otomatis akan membuat file cache baru dengan menimpa cache yang lama.
Memanggil Module
Ada beberapa cara untuk memanggil sebuah module. Kita pahami dibawah ini.
import
Yang pertama memakai import
Syntax :
import <module> [as <module>]
Diawali dengan import.
<module> file module python berada (tanpa ekstensi .py), untuk pemisah dir memakai tanda titik (.).
[as <module>] opsional, sebagai pengganti nama yang di import.
Dalam direktori sama
Jika berada di direktori sama, cukup memanggil nama file module saja. Sebagai contoh kita diatas tadi telah membuat Module mtk.
Silakan buat file baru dengan nama import.py. Jadi direktori sekarang menjadi,
belajar
├── import.py
├── mtk.py
└── program.py
kemudian ketik kode dibawah ini,
# import.py
# Memanggil module mtk
import mtk
# Memanggil fungsi penjumlahan dalam mtk
hasil = mtk.penjumlahan(7, 2)
print(hasil)
Jalankan import.py diatas
Direktori berbeda
Bagaimana jika yang di import berada dalam sub folder? Dengan memasukan juga nama foldernya dengan pemisah dir diganti tanda titik.
Buat file bintang.py dalam direktori pungsi.
Kemudian buat file di folder belajar dengan nama import2.py.
Direktori kita saat ini menjadi
belajar
├── pungsi
│ └── bintang.py
├── import.py
├── import2.py
├── mtk.py
└── program.py
Ketikan fungsi-fungsi didalm file bintang.py seperti contoh dibawah.
# pungsi/bintang.py
def perkalian(bil1, bil2):
'Fungsi perkalian.'
return int(bil1) * int(bil2)
def pembagian(bil1, bil2):
'Fungsi pembagian.'
return int(bil1) / int(bil2)
Diatas kita membuat dua fungsi dalam file bintang.py.
Kemudian ketikan kode dibawah dalam file import2.py untuk memanggil module diatas.
# import2.py
# memanggil module dalam dir
import pungsi.bintang
# memanggil fungsi perkalian
hasil = pungsi.bintang.perkalian(2, 3)
print(hasil)
Diatas kita memanggil module bintang dalam folder pungsi.
Jalankan import2.py diatas. Akan menghasilkan output 6.
Kita bisa memendekan cara diatas dengan memakai as setelah pemanggilan module. Ganti dengan kode dibawah ini.
# import2.py
# memanggil module dalam dir
import pungsi.bintang as bin
# memanggil fungsi perkalian
hasil = bin.perkalian(2, 3)
print(hasil)
Kemudian jalankan, program berjalan sama hanya saja dengan memakai as kita bisa memperpendek dalam pemanggilan fungsi.
from import
Memakai from sama saja dengan cara yang lalu, hanya saja disini bisa lebih spesifik (misal, bisa mengimport semua fungsi atau pun hanya beberapa fungsi saja).
Syntax :
from <module> import fungsi_1, fungsi_2, fungsi_n
<module> file module python berada (tanpa ekstensi .py), untuk pemisah dir memakai tanda titik (.).
fungsi_1, fungsi_2, fungsi_n fungsi di module yang ingin dipanggil, jika ingin memanggil semua fungsi dengan hanya memakai tanda *.
Buat file dengan nama from.py kemudian ketikan kode dibawah
# from.py
# memanggil module bintang
from pungsi.bintang import perkalian as kali, pembagian
# Penggunaan
print(kali(10, 3))
Lihat contoh diatas, memanggil module bintang dalam folder pungsi.
Jalankan from.py.
Jika kita mau mengimport semua fungsi dengan menggunakan tanda * (artinya, semua fungsi dalam module akan di import),
from pungsi.bintang import *
Sampai saat ini kita telah membuat beberapa file,
belajar
├── pungsi
│ └── bintang.py
├── from.py
├── import.py
├── import2.py
├── mtk.py
└── program.py
Module built-in
Module built-in adalah module yang sudah disediakan Python secara default. Jadi untuk penggunaan kita tinggal mengimport saja kemudian memakainya.
Ada banyak module yang telah disediakan Python, tetapi kita hanya mempelajari cara memanggilnya saja, untuk penggunaan module yang lain kita sambung dihalaman yang berbeda.
Kita akan mengimport module math dan menjalankan beberapa fungsi di module tersebut.
Contoh :
# Import module math
from math import *
# Fungsi factorial di module math
print(factorial(5))
# Mencari nilai sin
print(sin(10))
Output :
120
-0.5440211108893698
Diatas contoh pemanggilan dan penggunaan module built-in, sama seperti kita membuat module sendiri, bedanya disini kita tinggal pakai saja.
Module External atau Packages Python Pypi
Mungkin suatu ketika, kita harus memakai module yang telah dibuat oleh org lain.
Misal, karena waktu terbatas, lebih mudah, simple, tinggal pakai, dll.
Kita bisa menambahkan module dengan package manager Python yaitu pip.
Pip menangani packages manager (mengintsall, menghapus, freeze, dll. Silakan merujuk ke https://pypi.org/ untuk info pip yang lengkap.
Sebagai contoh, kita pake string-color. Kegunaan string color untuk memberikan warna pada Output di terminal. Untuk penggunaan lengkap string-color silakan merujuk ke https://pypi.org/project/string-color/
Pertama kita buka dulu terminal kemudian ketikan perintah berikut di terminal untuk linux atau cmd untuk pengguna windows. Di sharing ini kita pakai Python versi 3 dan pastikan terkoneksi dengan internet.
python3 -m pip install string-color
Lalu enter, pip packages manager akan mendownload packages string-color.
Kemudian cek apakah sudah terinstall atau belum dengan perintah dibawah.
python3 -m pip list
Akan menampilkan semua packages yang terinstall dan cek apakah ada string-color atau tidak.
Package Version
------------ -------
pip 20.1.1
setuptools 41.2.0
string-color 1.2.1
Jika belum ada silakan install lagi dengan cara diatas tadi.
Penggunaan sama dengan import module seperti biasanya.
Contoh :
# mengimport module string-color dan mengganti nama module (as color)
import stringcolor as color
print('Nama saya Miung')
# Mengganti dengan warna merah atau red
teks = color.cs('Nama saya Miung dengan warna merah', 'red')
print(teks)
teks2 = color.cs('Nama saya Miung dengan warna biru', 'blue')
print(teks2)
Jalankan kode diatas dan di terminal akan menghasilkan output dengan warna yg telah di tentukan.
Penggunaan module eksternal atau packages, harus sesuai dengan aturan si pembuat, biasanya telah disediakan halaman dokumentasi yang bersangkutan untuk memudahkan penggunaannya.
Updated : 2020-06-08