Download Python 2.7

Tutorial Python

Bagian  : 2
Tingkat : 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:
def nama_fungsi(arg1, arg2, arg3,...,argN):
    perintah-perintah
    return nilai_balik
Contoh implementasi yang mudah, misalnya kita ingin membuat fungsi perkalian dua bilangan bulat:
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.
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)
 Hasilnya:

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:
def login(username="guest", password):
    print "Your username ",username
    print "Your password ",password
    print
Akan tetapi Anda bisa mendeklarasikan fungsi seperti potongan program berikut.
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.
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()
Hasilnya:
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:
def guest(name, password, *hobby):
    print "Your name    :",name
    print "Your password:",password
    print "Hobby Anda   :",hobby

guest("tamu", "katakunci", "memancing", "membaca", "olahraga")
Hasilnya:

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.
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)
Hasil eksekusi program:
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 Download Python 2.7 Reviewed by Unknown on Monday, March 21, 2016 Rating: 5

No comments:

Powered by Blogger.