Tutorial Python
Bagian : 2Tingkat : Dasar
Abstrak : membuat dan memakai fungsi, scope variabel, dan macam-macam jenis argumen.
Pendahuluan
untuk menyelesaikan masalah yang kompleks menggunakan perangkat lunak, kasus utama harus dipecah-pecah menjadi kasus yang lebih kecil. Kemudian kita berkonsentrasi untuk mencari pemecahan yang terbaik dari masing-masing bagian diselesaikan dengan menggunakan algoritma sebaik mungkin. bagian-bagian kecil ini pada akhirnya bisa kita gabungkan untuk memberikan jawaban yang optimal terhadap masalah yang kita hadapi.
Fungsi dipakai untuk mengumpulkan bebeapa perintah yang sering dipakai dalam sebuah program. dengan memakai fungsi, program yang kita buat menjadi lebih terstruktur. Lebih muda diikuti oleh orang lain yang membaca program kita dan yang paling penting adalah mempersingkat waktu yang kita perlukan untuk mengembangkan suatu perangkat lunak. Karena perangkat lunak yang kita buat, bisa jadi memakai komponen-komponen yang sama.
Seperti layaknya sebuah bahasa pemrograman, Python juga memberikan fasilitas pembuatan fungsi yang sangat bagus. Konsep fungsi Python sama dengan bahasa pemograman C/C++. Python menganggap fungsi dan prosedur adalah suatu yang sama, dalam artian cara mendeklarasikan fungsi dan prosedur adalah sama. Hanya bedanya kalau fungsi mengembalikan suatu nilai setelah proses sedangkan prosedur tidak.
Mendeklarasikan dan Memakai Fungsi
Pernyataan def dipakai untuk mendeklarasikan fungsi. Sedangkan
pernyataan return dipakai untuk
mengembalikan suatu nilai kepada bagian program yang memanggil fungsi. Bentuk
dasar untuk mendeklarasikan fungsi adalah sebagai berikut:
Contoh implementasi yang mudah, misalnya kita ingin membuat fungsi perkalian dua bilangan bulat:def nama_fungsi(arg1, arg2, arg3,...,argN): perintah-perintah return nilai_balik
def perkalian(x, y): z = x * y return z
Pernyataan def mendefinisikan sebuah fungsi dengan nama perkalian. Paramater-parameter yang akan dilewatkan ke dalam fungsi didaftarkan dalam tanda
kurung. Masing-masing paramater dipisahkan oleh koma (,). Baris
deklarasi fungsi ini diakhiri dengan titik dua (:). Tanda ini memberitahukan pada
interpreter Python bahwa baris ini masih berlanjut pada baris-baris berikutnya.
Perhatikan dua baris pernyataan
terindentasi yang mengikutinya. Dalam Python semua
pernyataan yang diindentasi dalam satu tingkatan indentasi adalah
pernyataan-pernyataan yang satu derajat. Artinya semua pernyataan
tersebut akan dieksekusi sesuai dengan urutan
penulisannya. Dalam kasus contoh kita, pernyataan z = x + y dan return z
adalah satu tingkatan. Kedua pernyataan ini adalah anggota
dari deklarasi fungsi perkalian.
Keduanya akan dijalankan saat fungsi dipanggil.
Untuk memanggil fungsi yang telah dibuat adalah dengan cara menyebutkan nama fungsi yang bersangkutan beserta
daftar parameter yang sebenarnya:
print perkalian(10,8) print perkalian(15,5)
Dalam deklarasi fungsi, Anda juga bisa
menambahkan komentar-komentar yang memberi penjelasan mengenai fungsi yang
dibuat. Secara umum kita memang bisa menambahkan
komentar-komentar di sembarang tempat dalam program yang kita buat. Baris-baris komentar diawali dengan karakter pagar (#). Semua karakter yang mengikuti
tanda ini sampai akhir baris dianggap sebagai komentar dan tidak akan mempengaruhi jalannya progam.
Akan tetapi terdapat satu gaya pemberian komentar dalam
Python yang disebut dengan docstring. Biasanya dipakai
untuk memberi penjelasan mengenai fungsi atau objek. Docstring
diapit dengan tanda petik ganda. Komentar jenis ini
hanya boleh diberikan tepat satu baris dibawah deklarasi fungsi atau objek,
seperti ditunjukkan pada di bawah ini.
def perkalian(x, y): "Mengalikan dua bilangan" z = x * y return z # program utama mulai di sini print perkalian(10,8) print perkalian(15,5)
Docstring
sangat bermanfaat ketika kita ingin mendokumentasikan semua fungsi dan kelas
yang telah kita buat. Karena ada beberapa
perangkat lunak yang mampu membuat dokumentasi berdasarkan docstring yang ada
dalam source code.
Scope Variabel dalam Fungsi
Untuk
menjelaskan konsep scope variabel dalam fungsi, lihatlah skrip di bawah ini dan
Gambar 1.
# fungsi mulai di sini def swap(x, y): print "Dalam fungsi:" print "\tSebelum proses:" print "\t\tNilai x", x print "\t\tNilai y", y z = x x = y y = z print "\tSetelah proses:" print "\t\tNilai x", x print "\t\tNilai y", y # program utama mulai di sini x = 12 y = 3 print "Sebelum memanggil fungsi, x bernilai", x print "Sebelum memanggil fungsi, y bernilai", y swap(x,y) print "Setelah memanggil fungsi, x bernilai", x print "Setelah memanggil fungsi, y bernilai", y
Dalam lingkungan program utama variabel x dan y
diisi dengan nilai 12 dan 3, secara berurutan. Ketika program utama
memanggil fungsi swap nilai
variabel ini disalin kedalam variabel x
dan y dalam lingkungan fungsi,
yang kebetulan sama namanya dengan nama variabel dalam
progam utama. Python akan membuat alokasi memori
tersendiri untuk fungsi. Karena alokasi memorinya berbeda, maka perubahan yang
terjadi pada variabel dalam fungsi, katakanlah x,
tidak akan mengubah variabel x yang terdapat dalam program utama. Jadi
bisa dikatakan variabel x dalam
fungsi swap hanya mempunyai
scope dalam fungsi itu sendiri. Pernyataan ini bisa
dibuktikan dengan menjalankan skrip tersebut. Hasilnya
sebagai berikut. Variabel program utama tetap
nilainya, meskipun variabel dalam fungsi swap
berubah nilainya.
Sebelum memanggil fungsi, x bernilai 12 Sebelum memanggil fungsi, y bernilai 3 Dalam fungsi: Sebelum proses: Nilai x 12 Nilai y 3 Setelah proses: Nilai x 3 Nilai y 12 Setelah memanggil fungsi, x bernilai 12 Setelah memanggil fungsi, y bernilai 3
Melewatkan Argumen dengan Kata Kunci
Kalau kita perhatikan kembali fungsi perkalian sebelumnya, proses penyalinan ke
variabel lokal sesuai dengan urutan deklarasi fungsi yang kita panggil.
Jika fungsi perkalian kita
panggil dengan memberi pernyataan perkalian(10,8),
maka nilai 10 akan disalin ke variabel x
dan nilai 8 ke variabel y.
Kadang-kadang ini agak menyulitkan jika kita membuat fungsi dengan jumlah
variabel yang cukup banyak, sementara urutannya harus tepat. Solusinya
adalah dengan menyebutkan kata-kunci (keyword) yang kita pakai pada saat
mendefinisikan fungsi.
Kita ubah sedikit program perkalian kita agar
pembahasan di bagian ini lebih jelas. Perhatikan program
di bawah.
Hasilnya:def perkalian(x, y): "Mengalikan dua bilangan" z = x * y print "Nilai x =",x print "Nilai y =",y print "x * y =",z # program utama mulai di sini perkalian(10,2) print perkalian(y=15,x=5)
Nilai x = 10 Nilai y = 2 x * y = 20 Nilai x = 5 Nilai y = 15 x * y = 75
Dengan menyebutkan kata kunci yang kita
buat saat mendeklarasikan program kita dapat mengubah urutan penyalinan
argumen. Akan tetapi Anda harus berhati-hati ketika
menyebutkan kata-kunci, karena tidak boleh ada duplikasi. Panggil fungsi
perkalian dengan pernyataan perkalian(15,x=5), maka Anda akan mendapatkan pesan
kesalahan sbb.:
Traceback (innermost last): File "./listing8.py", line 13, in ? perkalian(15,x=5) TypeError: keyword parameter redefined
Hasil ini menunjukkan pada kita bahwa nama
x sudah dipakai. Dengan melihat
pada definisi fungsi yang telah dibuat, parameter pertama adalah x dan kedua adalah y. Jadi ketika kita panggil dengan
menyebutkan parameter kedua sebagai x
juga akan terjadi kesalahan.
Nilai Awal Argumen
Dalam proses interaksi dengan pengguna program kadangkala
program memberikan pilihan tertentu, yang sering disebut dengan nilai bawaan (default).
Nilai awal argumen ini bisa kita berikan saat kita membuat
definisi fungsi. Lihat cara mendeklarasikan
nilai awal argumen ini:
def login(username="guest", password="salmanas@programmer.net"): print "Your username ",username print "Your password ",password print login() login("tamu") login("tamu", "katakunci")
Sekarang proses pemanggilan fungsi tidak perlu menyebutkan
argumennya secara lengkap, jika kita tidak perlu mengubah nilai default yang
telah diberikan.
Your username guest Your password salmanas@programmer.net Your username tamu Your password salmanas@programmer.net Your username tamu Your password katakunci
Dengan membandingkan antara isi program dan
hasilnya di atas, dapat kita simpulkan bahwa penyalinan argumen tetap mengikuti
kaidah urutan pada saat dideklarasikan.
Anda tidak diperbolehkan mendefinisikan fungsi seperti ini:
Akan tetapi Anda bisa mendeklarasikan fungsi seperti potongan program berikut.def login(username="guest", password): print "Your username ",username print "Your password ",password print
def login(username, password="salmanas@programmer.net"): print "Your username ",username print "Your password ",password print
Jadi nilai default hanya boleh diberikan
kepada deretan akhir parameter. Setelah pemberian
nilai default, semua parameter di belakangnya juga harus diberi nilai default.
Satu catatan, nilai awal argumen akan dievaluasi pada
saat dideklarasikan. Perhatikan contoh berikut.
Hasilnya:usernm="guest" passwd="salmanas@programmer.net" def login(username=usernm, password=passwd): print "Your username ",username print "Your password ",password print usernm="tamu" passwd="oranglain@mailserver.dev" login()
Your username guest Your password salmanas@programmer.net
Jumlah Argumen yang Berubah
Terdapat dua lambang khusus dalam
Python untuk menerima argumen dengan jumlah yang berubah-ubah. Lambang pertama adalah *nama_argumen.
Dengan memakai lambang ini pada deklarasi fungsi, Python akan
mengenali argumen selain argumen formal sebagai tuple. Lihat kode berikut ini:
Hasilnya:def guest(name, password, *hobby): print "Your name :",name print "Your password:",password print "Hobby Anda :",hobby guest("tamu", "katakunci", "memancing", "membaca", "olahraga")
Your name : tamu Your password: katakunci Hobby Anda : ('memancing', 'membaca', 'olahraga')
Untuk memanggil fungsi yang mempunyai
deklarasi seperti ini, kita cukup memberikan daftar argumen seperti argumen
biasa.
Lambang kedua adalah **nama_argumen. Dengan lambang ini
argumen yang diterima oleh fungsi akan dikenali
sebagai dictionary. Lihat contoh berikut:
def guest(name, password, **other): print "Your name :",name print "Your password:",password print "Lain-lain :",other guest("tamu", "katakunci", sex="laki-laki", umur=18, hobby="membaca")
Untuk memanggil fungsi dengan deklarasi
seperti ini, kita harus menyebutkan daftar argumen beserta kata-kuncinya.
Jika Anda ingin menggunakan dua lambang
ini secara bersamaan Anda harus mendahulukan *nama_argumen
daripada **nama_argumen.
Hasil eksekusi program:def guest(name, password, *hobby, **other): print "Your name :",name print "Your password:",password print "Hobby Anda :",hobby print "Lain-lain :",other guest("tamu", "katakunci", "single", "membaca", sex="laki-laki", umur=18)
Your name : tamu Your password: katakunci Hobby Anda : ('single', 'membaca') Lain-lain : {'sex': 'laki-laki', 'umur': 18}
Sampai di sini bagian kedua telah selesai.
Untuk mempelajari lebih jauh lagi tunggu bagian tutorial
berikutnya.
Salman
AS tinggal di Depok dan bekerja di Nurulfikri Cipta Solusi, Jakarta. Juga mengajar HTML, PHP,
MySQL, dan Linux di Nurulfikri Computer & Statistics. Meski
menggunakan PHP dan MySQL untuk pemrograman Web, namun memakai Python untuk
skripting umum. Dapat dihubungi di salmanas@programmer.net atau salmanas@telkom.net.
Thank for visit this blogg, semoga bermanfaat !!!
Download Python 2.7
Reviewed by Unknown
on
Monday, March 21, 2016
Rating:
No comments: