Wednesday 20 May 2015

21.Modules

Module adalah sebuah program yang berisi satu atau lebih fungsi dan dapat digunakan oleh program lainnya. Bila kumpulan fungsi diberi nama module, maka kumpulan module diberi nama packages. Biasanya kumpulan modul ini dimasukan kedalam satu group, karena modul-modul tersebut berhubungan atau saling tergantung satu sama lain.

Module juga bisa di save dengan extension *.py. Module berisi apa saja yang bisa digunakan oleh kode python. Dengan kata lain, module juga sebuah program juga. Yang membedakannya adalah, program didesign untuk menjalankan sesuatu, sedangkan module didesign agar diimport oleh pengguna menggunakan program.

Tidak semua module dibuat menggunakan extension *.py, ada juga extension *.sys yang dibuat untuk python menggunakan bahasa program yang lain (biasanya sih C).

Agar program mendapakan akses dari module kita harus import dahulu file modulenya. Syntax biasanya digunakan adalah:
import namaModule
import namaModule1, namaModule2, namaModule3,...
import namaModule as namaModuleYangDiinginkan

Biasanya kita mengimport module diawal program, dan import module standartd library terlebih dahulu, kemudian baru import module yang kita buat atau pihak ke 3.

Dan bila kita ingin import beberapa fungsi, objek, variable, data type yang ada didalam sebuah module, kita gunakan syntax:
from namaModule import objek as namaYangDikehedaki
from namaModule import objek1,objek2,objek3,...
from namaModule import (objek1, objek2, objek3,...)
from namaModule import *
Dengan cara ini, ada kelemahan yang dapat menyebabkan konfik dengan nama objeknya.

Misalnya kita ingin mengimpor satu objek yang bernama 'aaa', di modul 'bbb', kita tinggal tulis from bbb import aaa. Kemudian setelah kita membuat suatu program yang panjang, kita membuat sebuah variable yang bernama aaa juga, sehingga objek 'aaa' yang kita import akan tergantikan oleh aaa yang baru.

Dengan syntax yang terakhir (from namaModule import *) berarti kita mengimport semua yang tidak diprivate (yang ditandai dengan 'garis bawah'( _ )).

No comments:

Post a Comment