Skip to main content

Python Modules

Mengapa Membutuhkan Modul?​

Seiring berkembangnya sebuah proyek Python, jumlah kode yang ditulis juga akan semakin banyak. Jika seluruh function, class, dan variable ditempatkan dalam satu file .py, kode dapat menjadi sulit dibaca, dipelihara, dan dikembangkan.

Python menyediakan konsep module untuk membantu mengorganisasi kode menjadi beberapa file yang memiliki tanggung jawab tertentu.

Dengan module, kode dapat dipisahkan berdasarkan fungsi atau kegunaannya sehingga struktur proyek menjadi lebih teratur dan kode dapat digunakan kembali.

Apa Itu Module?​

Module adalah sebuah file Python dengan ekstensi .py yang digunakan untuk mengorganisasi kode seperti:

  • Function.
  • Class.
  • Variable.
  • Konstanta.
  • Kode Python lainnya.

Sebagai contoh, sebuah proyek dapat memiliki struktur:

project/
├── main.py
├── utility.py
└── database.py

Masing-masing file tersebut dapat digunakan sebagai module.

Konsep sederhananya:

Satu proyek
↓
Beberapa module
↓
Setiap module memiliki tanggung jawab tertentu

Dengan pendekatan ini, kode tidak harus ditempatkan seluruhnya dalam satu file.

Keuntungan Menggunakan Module​

Penggunaan module memberikan beberapa keuntungan dalam pengembangan program.

Organisasi Kode​

Kode dapat dikelompokkan berdasarkan tanggung jawabnya.

Misalnya:

utility.py
↓
Function utilitas

database.py
↓
Function database

authentication.py
↓
Function autentikasi

Struktur seperti ini membuat kode lebih mudah ditemukan dan dipahami.

Reusability​

Kode yang berada dalam sebuah module dapat digunakan kembali oleh file Python lainnya.

Dengan demikian, kita tidak perlu menulis function yang sama berulang kali pada beberapa file.

Maintainability​

Ketika proyek semakin besar, pemisahan kode ke dalam beberapa module membuat perubahan dan pemeliharaan kode menjadi lebih mudah.

Kolaborasi​

Dalam proyek yang dikerjakan oleh beberapa developer, pembagian kode berdasarkan module juga dapat membantu setiap bagian proyek dikembangkan secara lebih terorganisir.

Aturan Penamaan Module​

Module pada Python umumnya menggunakan nama file dengan format yang sederhana.

Konvensi yang umum digunakan adalah snake_case, yaitu menggunakan huruf kecil dan _ sebagai pemisah kata.

Contoh nama module yang baik:

utility.py
database_connector.py
user_service.py
data_processing.py

Sebaiknya hindari nama module yang membingungkan atau memiliki nama yang sama dengan module standar Python yang ingin digunakan.

Membuat Module​

Misalnya kita membuat file:

utility.py

Kemudian kita memasukkan beberapa function ke dalamnya:

def multiply(num1, num2):
return num1 * num2


def divide(num1, num2):
return num1 / num2

File tersebut sekarang dapat digunakan sebagai module.

Mengimpor Module​

Untuk menggunakan kode dari module lain, Python menyediakan keyword import.

Misalnya terdapat dua file:

project/
├── main.py
└── utility.py

Pada utility.py:

def multiply(num1, num2):
return num1 * num2


def divide(num1, num2):
return num1 / num2

Kemudian pada main.py:

import utility

Setelah module diimpor, function di dalamnya dapat digunakan melalui nama module.

print(utility.multiply(2, 3))
print(utility.divide(10, 2))

Output:

6
5.0

Pola dasarnya:

import utility
↓
utility.multiply()
↓
menjalankan function multiply()

Mengapa Tidak Menggunakan .py?​

Ketika melakukan import module, ekstensi .py tidak dituliskan.

Gunakan:

import utility

bukan:

import utility.py

Python akan mencari module berdasarkan nama yang diberikan.

Mengakses Isi Module​

Setelah module diimpor, kita dapat mengakses object yang berada di dalamnya menggunakan operator titik ..

Contohnya:

utility.multiply(2, 3)

Strukturnya:

nama_module.nama_object

Misalnya:

utility.multiply()
utility.divide()

Dengan cara ini, kita dapat mengetahui dengan jelas bahwa function tersebut berasal dari module utility.

Module sebagai Pemisah Tanggung Jawab​

Module akan menjadi semakin bermanfaat ketika proyek memiliki banyak bagian.

Misalnya sebuah aplikasi memiliki fitur:

Aplikasi
├── User
├── Authentication
├── Database
├── Reporting
└── Utility

Kode tersebut dapat dipisahkan:

project/
├── main.py
├── user.py
├── authentication.py
├── database.py
├── reporting.py
└── utility.py

Setiap module memiliki tanggung jawab masing-masing.

Hal ini dikenal sebagai pemisahan tanggung jawab atau separation of concerns.

Module dan Reusability​

Salah satu manfaat utama module adalah memungkinkan kode digunakan kembali.

Misalnya utility.py memiliki:

def multiply(num1, num2):
return num1 * num2

Function tersebut dapat digunakan oleh beberapa file yang membutuhkan operasi tersebut.

main.py
↓
import utility
↓
utility.multiply()

report.py
↓
import utility
↓
utility.multiply()

Dengan demikian, function tidak perlu ditulis ulang di setiap file.

Folder __pycache__​

Ketika Python menjalankan program yang melakukan import terhadap module, kita mungkin menemukan folder:

__pycache__

Folder tersebut dibuat secara otomatis oleh Python.

Contoh struktur proyek:

project/
├── main.py
├── utility.py
└── __pycache__/

Apa Itu __pycache__?​

__pycache__ merupakan folder yang digunakan Python untuk menyimpan hasil kompilasi bytecode dari module tertentu.

File di dalamnya biasanya memiliki ekstensi:

.pyc

Bytecode tersebut digunakan oleh Python sebagai bagian dari proses eksekusi program.

Secara sederhana:

utility.py
↓
Python memproses module
↓
bytecode
↓
__pycache__/

Mengapa __pycache__ Dibuat?​

Python dapat menyimpan bytecode module sehingga proses berikutnya dapat menggunakan hasil kompilasi tersebut ketika sesuai.

Tujuannya adalah membantu proses loading dan eksekusi module menjadi lebih efisien.

Developer biasanya tidak perlu mengubah isi __pycache__ secara manual.

Folder tersebut dikelola oleh Python.

Apakah __pycache__ Harus Dibuat Sendiri?​

Tidak.

Ketika diperlukan, Python akan membuat folder tersebut secara otomatis.

Kita cukup fokus pada source code seperti:

main.py
utility.py

Python akan mengelola:

__pycache__/

secara otomatis.

Struktur Sederhana Module​

Contoh sederhana sebuah proyek:

project/
│
├── main.py
│
├── utility.py
│
└── __pycache__/

Alur penggunaannya:

main.py
↓
import utility
↓
utility.py
↓
Menggunakan function

Python kemudian dapat menghasilkan:

__pycache__/

untuk kebutuhan internalnya.

Kesimpulan​

Module merupakan salah satu cara Python untuk mengorganisasi kode dengan memisahkannya ke dalam file-file .py.

Dengan module, sebuah proyek dapat memiliki struktur yang lebih teratur dan setiap bagian kode dapat memiliki tanggung jawab yang lebih jelas.

Konsep utamanya:

Module
↓
File .py
↓
Berisi function, class, variable, dan kode lainnya
↓
Dapat digunakan oleh module lain

Untuk menggunakan module, kita dapat menggunakan:

import nama_module

Kemudian mengakses object di dalamnya menggunakan:

nama_module.nama_object

Selain itu, Python dapat membuat folder __pycache__ untuk menyimpan bytecode hasil pemrosesan module.

Pada materi berikutnya, pembahasan dapat dilanjutkan dengan berbagai cara melakukan import, termasuk mengimpor object tertentu dari module dan penggunaan alias untuk membuat kode lebih praktis.