Belajar Python : Mengenal Modul Pada Python

Modul pada python merupakan berkas yang berisi baris perintah pemrograman python. Misalnya ada sebuah file bernama hitung.py, maka hitung.py adalah sebuah modul dengan nama modulnya adalah hitung.

Mengapa perlu ada modul???

Sebelumnya kita telah belajar tentang fungsi pada python dan kita sudah bisa memecah kode program yang besar menjadi bagian-bagian yang lebih kecil.

Hal tersebut tentu membantu kita ketika melakukan maintenance terhadap program kita nantinya.

Pertanyaannya adalah apakah dengan menggunakan fungsi saja sudah cukup efektif???

Tentu saja belum…

Kita hanya memecah program menjadi bagian-bagian yang lebih kecil tetapi semuanya masih berada dalam satu file/berkas. Hal ini belum efektif karena berkas masih berisi baris program yang sangat banyak.

Maka dari itu kita perlu memecah program yang besar tersebut menjadi bagian-bagian yang lebih kecil atau disebut modul.

Mengapa harus dibuat menjadi modul???

Tentu saja karena hal tersebut membuat program lebih sederhana mudah untuk dimaintenace. Modul membuat kode bersifat reusable, ketika kita memecah program menjadi modul, maka kita dapat menggunakannya dimana saja ketika kita perlukan.

Oke mari kita lanjut mengenal modul…

Membuat Modul Pada Python

Kita akan membuat struktur file seperti berikut:

📦modul-python/
 ┣ 📜main.py
 ┗ 📜lingkaran.py
  1. Berkas main.py adalah file yang berisi program utama kita / main program yang dijalankan.
  2. Berkas lingkaran.py adalah file yang akan kita buat sebagai modul untuk melakukan kalkulasi pada lingkaran.

Oke, mari kita tulis baris perintah seperti berikut pada file lingkaran.py:

# Mendefinisikan nilai Pi
_pi = 22 / 7

# Fungsi untuk menghitung keliling lingkaran
def keliling_lingkaran(radius):
    return 2 * _pi * radius

# Fungsi untuk menghitung luas lingkaran
def luas_lingkaran(radius):
    return _pi * radius * radius

Kita telah membuat sebuah modul dengan nama lingkaran, selanjutnya kita akan menggunakan modul tersebut di program kita.

Menggunakan Modul

Agar semua variabel dan fungsi yang telah kita buat pada modul lingkaran dapat kita gunakan maka kita harus mengimpor modul tersebut di dalam berkasi main.py.

Kita dapat mengimpor modul pada python dengan perintah import.

Pada python ada beberapa cara untuk mengimpor modul:

  1. Import standar
  2. Import dengan rename
  3. Import secara eksplisit
  4. Import semua isi modul

Mari kita lihat satu persatu cara import di atas:

1. Import Standar

Dengan cara import ini maka seluruh isi modul yang telah kita buat akan dapat kita gunakan di dalam program kita. Perintah untuk mengimpor modulnya adalah seperti berikut:

import lingkaran

Kita dapat mengakses fungsi atau variabel global yang ada di dalam modul lingkaran dengan menggunakan operator . (titik).

Mari kita gunakan di dalam file main.py, silakan buka file main.py dan ketikkan baris perintah seperti berikut:

import lingkaran

keliling_lingkaran = lingkaran.keliling_lingkaran(radius=21)
luas_lingkaran = lingkaran.luas_lingkaran(radius=7)

print "Keliling Lingkaran: ",keliling_lingkaran
print "Luas Lingkaran: ",luas_lingkaran
print "PI: ", lingkaran._pi

Setelah file main.py dijalankan maka hasilnya seperti berikut:

Keliling Lingkaran: 132.0
Luas Lingkaran: 154.0
PI:  3.142857142857143
2. Import Dengan Rename

Jika kita merasa nama modul yang kita buat terlalu panjang maka ketika menggunakan modul tersebut kita bisa memperpendek atau merubah namanya sesuai yang kita inginkan.

Untuk mengubah nama modul ketika dipanggil kita menggunakan keyword as, seperti berikut:

import lingkaran as lkr

Maka di file main.py kita tidak lagi memanggil variabel atau fungsinya dengan lingkaran.nama_fungsi, melainkan lkr.nama_fungsi, seperti contoh di bawah:

import lingkaran as lkr

keliling_lingkaran = lkr.keliling_lingkaran(radius=21)
luas_lingkaran = lkr.luas_lingkaran(radius=7)

print "Keliling Lingkaran: ",keliling_lingkaran
print "Luas Lingkaran: ",luas_lingkaran
print "PI: ", lkr._pi

# Outputnya adalah :
# Keliling Lingkaran: 132.0
# Luas Lingkaran: 154.0
# PI:  3.142857142857143
3. Import Secara Eksplisit

Terkadang tidak semua yang ada di dalam modul diperlukan pada file tertentu. Jika kita ingin menggunakan hanya beberapa komponen yang ada di dalam modul, maka kita dapat hanya mengimpor komponen tersebut secara eksplisit dan mengabaikan komponen lainnya yang tidak diperlukan.

Misalnya kita hanya ingin menggunakan fungsi luas_lingkaran dari modul lingkaran, maka kita hanya perlu mengimpor luas_lingkaran saja.

Untuk mengimport secara eksplisit kita dapat menggunakan sintaks seperti berikut:

from nama_modul import nama_komponen

Jika kita ingin mengimpor luas_lingkaran dari modul lingkaran, maka sintaksnya seperti berikut:

from lingkaran import luas_lingkaran

Untuk menggunakannya kita tidak perlu operator . lagi, cukup panggil nama yang telah diimport:

from lingkaran import luas_lingkaran

print "Luas Lingkaran: ",luas_lingkaran(radius=7)

# Outputnya:
# Luas Lingkaran: 154.0

Ketika kita hanya mengimpor komponen tertentu saja, maka komponen yang lainnya tidak dapat kita gunakan. Bagaimana jika kita ingin mengimpor lebih dari satu komponen dari modul yang sama????

Kita dapat mengimpor lebih dari satu komponen dari modul yang sama dengan memisahkan setiap namanya dengan koma ,.

from lingkaran import luas_lingkaran, keliling_lingkaran
4. Import Semua Isi Modul

Kita dapat mengimpor semua isi dari sebuah modul dengan tanda bintang (*).

from nama_modul import *

Mengapa harus menggunakan * jika bisa mengimpor semua isi modul dengan import nama_modul ???

Kedua cara tersebut memang hampir sama, namun sebenarnya berbeda. Apabila kita menggunakan import standar maka untuk mengakses isi di dalam modul tersebut kita menggunakan operator . (titik).

Sedangkan dengan cara import * kita dapat mengakses semua isi modul tanpa harus menggunakan operator titik (.), selain itu python juga akan mengimport semua isi modul tersebut Kecuali komponen yang namanya diawali dengan underscore (_).

Mari kita lihat contohnya:

from lingkaran import *

print "Keliling Lingkaran: ",keliling_lingkaran(radius=21)
print "Luas Lingkaran: ",luas_lingkaran(radius=7)

Outputnya adalah:

Keliling Lingkaran: 132.0
Keliling Lingkaran: 154.0

Semua isi modul lingkaran yang telah kita buat berhasil akan diimport kecuali variabel _pi, karena namanya diawali dengan underscore (_).

Apabila kita mencoba menggunakan variabel _pi di file main.py, print "PI: ", _pi, maka akan terjadi error seperti berikut:

Traceback (most recent call last):
  File "main.py", line 5, in <module>
    print("PI: ", _pi)
NameError: name '_pi' is not defined

Karena variabel _pi tidak diimport maka variabel _pi yang dipanggil pada file main.py menjadi not defined.

Perhatian: menggunakan import * bukan cara yang baik, karena cara ini dapat menimbulkan duplikasi nama variabel atau fungsi dalam program yang bisa memicu terjadinya error.

Langkah Selanjutnya

Kita sudah belajar bagaimana cara membuat dan menggunakan modul, yang sangat membantu kita ketika program yang kita buat atau kembangkan sudah besar dan memiliki banyak sekali baris program.

Selain membuat modul sendiri, kita juga dapat menggunakan modul-modul bawaan yang telah disediakan oleh python. Seperti modul math, os, sys dan ribuan modul siap pakai lainnya yang dapat kalian lihat di situs pypi.org.

Selanjutnya kita akan belajar mengenai input-output serta operasi file pada python.

Semangat belajar… Sampai Jumpa 😄