Sunday, 31 May 2015

24.Class dan Object-Oriented Programming

Object-Oriented Progam (OOP)gambarannya adalah, memberikan objek didalam script, memanggil metode, dan lain-lain. Agar script memenuhi standar OOP maka, objek harus berpartisipasi dalam inheritance hieratchy (objek yang memiliki dua atau lebih turunan, dengan kata lain misalnya suatu metode memiliki dua atau lebih fungsi, atau didalam metode memiliki metode-metode lain, dimana dalam metode lain itu terdapat fungsi yang memanggil metode lain.)

Dan Class adalah alat OOP python yang utama. OOP memberikan dan berefek sangat effektif pada program, yang meminimalkan sesuatu yang tidak perlu, sehingga bila kita telah mempunyai sebuah program, dan ingin menambahkan sesuatu didalamnya, kita tidak perlu mengubah program yang ada, tetapi kita bisa menambahkan program yang kita inginkan (gambarannya seperti itu)

Pada python class dibuat dengan statement baru 'class'. Dengan demikian objek class dibuat. Class dirancang untuk membuat dan mengatur objek-objek baru.


OOP Terminology

  • Class: Sebuah program yang merupakan objek, dimana objek tersebut merupakan satu set atribut objek dari class, atribut adalah data member (variabel, instance variable) dan metode.
  • Class variable: sebuah variable yang dapat digunakan pada seluruh class.
  • Data member: sebuah class variable atau instance variable yang memiliki data yang digunakan oleh class dan objek-objeknya
  • Function overloading: Melakukan lebih dari satu perilaku untuk fungsi tertentu. Operasi dilakukan bervariasi dengan objek-objek atau argumen yang terlibat.
  • Instance variable: Sebuah variable yang didefinisikan dalam metode dan hanya untuk class saja.
  • Inheritance: Memindahkan karakter-karakter dari suatu class ke class yang lain.
  • Instance: Sebuah objek individu dari class tertentu. Sebuah.
  • Instantiation: Pembuatan oleh suatu class Instance.
  • Method : Fungsi khusus dari sebuah class.

Kira-kira begini cara pengertian objek, misalkan ada roda sepeda dan roda motor, saat ini kita memiliki dua buah objek, roda sepeda dan roda motor. Lalu kita pasang roda sepeda ke sepeda dan roda motor ke motor, nah sekarang kita mempunyai empat objek. Dalam hal OOP, kita bisa memiliki empat buah objek class. 

Pada contoh diatas kita, setiap class hanya memiliki satu buah objek saja, satu objek (misalnya roda sepeda) tersebut bisa kita pecah menjadi banyak objek lainnya pada class tersebut, misalkan lingkaran luar roda, lingkar dalam roda, tebal roda, lebar roda, profil roda, bahan roda, dan lain-lain, yang berhubungan dengan objek tersebut. Sehingga class seperti blueprint dari satu objek. Kita bisa mengganti atau membuat lingkaran luar, lingkaran dalam dan lain-lain dengan class.



Membuat class baru dengan menggunakan statement class:

class namaClass:
     perintah

Kita coba buat di IDLE, contohnya:

  1. >>> class mobil:
  2. pass
  3.                                  # tekan enter lagi disini
  4. >>> mob1=mobil()
  5. >>> mob2=mobil()
  6. >>> mob1.merk='toyota'
  7. >>> mob2.merk='honda'
  8. >>> mob1.type='avanza'
  9. >>> print(mob1.merk,mob1.type)
  10. toyota avanza
  11. >>> mob2.type='jazz'
  12. >>> print (mob2.merk, mob2.type)
  13. honda jazz
  14. >>> 
Atau bila kita menuliskannya dengan file .py, kita buat file baru dengan menekan ctrl+N (File > New File), lalu window baru muncul, ketikan berikut ini pada window baru tersebut:


class mobil:
     pass
mob1=mobil()
mob2=mobil()
mob1.merk='toyota'
mob2.merk='honda'
mob1.type='avanza'
mob2.type='jazz'
print(mob1.merk,mob1.type)
print(mob2.merk,mob2.type)

Lalu kita save di folder mana saja yang mudah dijangkau, dan beri nama yang menunjukan file tersebut, kemudian tekan F5 (Run > Run Module).

Pada contoh diatas kita membuat class kosong saja, tidak ada data ataupun behaviors (Behaviors adalah sebuah tindakan yang dapat mengubah atau memproses sebuah atau lebih objek.).
Dan kemudian kita membuat dua instance:merk dan type, sehingga bila kita panggil mob1 atau mob2 dengan perintah print(), data yang kita buat, dicetak ke monitor. 
Jadi rumusannya kurang lebih seperti ini: 'objek.attribute=data' Jangan lupa dot(.)nya.

Sekarang kita buat class untuk berbuat sesuatu:
     1.Pada IDLE buat file baru bernama lingkaran.py
     2.Tuliskan:

                           class lingkaran:
                                     def reset(self):
                                              self.jari=0
                               ling=lingkaran()
                                 ling.reset()
                                   print(ling.jari)
               
          Lalu kita run script tersebut

          Hasilnya adalah 0.
          Self adalah suatu variable yang membuat objek tersebut, bila kita membuat ling=lingkaran(), maka self adalah ling, dan bila ling2=lingkaran(), maka self adalah ling2.
          Sekarang kita coba yang lebih komplek lagi.
          Kita tambahkan pada block class:

          1. import math
          2. class lingkaran:    
          3.      def reset(self):
          4.           self.jari=0

          5.      def defa(self):
          6.           self.jari=1

          7.      def setjari(self,jari):
          8.           self.jari=jari

          9.      def luasling(self):
          10.           self.luas=math.pi*math.pow(self.jari,2)

          11.      def kelilingling(self):
          12.           self.keliling=2*math.pi*self.jari


          1. pada baris 1 kita mengimport math, sehingga kita bisa mempergunakan fungsi-fungsi yang ada pada math, seperti math.pi, dan math.pow(x,y).
          2. pada baris 2 kita membuat class yang bernama lingkaran.
          3. pada baris 3 dan 4 kita membuat fungsi yang bernama reset, sehingga bila fungsi ini kita jalankan, maka variable self.jari akan diset menjadi nol dengan fungsi reset.
          4. pada baris ke 6 dan 7 kita menset self.jari ,menjadi 1 dengan menggunakan fungsi defa.
          5. pada baris ke 9 dan 10 kita menset self.jari dengan angka yang kita inginkan dengan fungsi setjari.
          6. baris 12 dan 13, dengan fungsi luasling kita menhitung luas lingkaran
          7. baris 15 dan 16, kita menghitung keliling lingkaran
          dan tambahkan pada script yang akan dieksekusi:

          1. ling=lingkaran()
          2. ling.reset()
          3. print(ling.jari)
          4. ling2=lingkaran()

          5. print('jari-jari menggunakan default')
          6. ling.defa()
          7. print(ling.jari)
          8. print('input jari-jari 1')
          9. ling.setjari(3)
          10. print('jari-jari 1=',ling.jari)
          11. print('cari luas ling1' )
          12. ling.luasling()
          13. print('luas lingkaran1=',ling.luas)
          14. print('cari keliling1')
          15. ling.kelilingling()
          16. print('keliling lingkaran1 =',ling.keliling)
          17. print('---')
          18. print ('input jari-jari 2')
          19. ling2.setjari(4)
          20. print('jari-jari2=',ling2.jari)

          21. print('cari luas ling2')
          22. ling2.luasling()
          23. print('luas lingkaran2=',ling2.luas)
          24. print('cari keliling2')
          25. ling2.kelilingling()

          26. print('kelilinglingkaran2=',ling2.keliling)

          Pada script diatas yang perlu diperhatikan adalah pada baris 10 (ling.setjari(3)dan baris 20 (ling2.setjari(4)), pada baris-baris tersebut berhubungan dengan class baris 9 (def setjari(self,jari):). Pada script baris 10 dan 20, kita menset variable jari dengan angkanya (3 untuk ling, dan 4 untuk ling2), sehingga pada class baris 9 (def setjari(self,jari):) nilai-nilai (ling.jari=3 dan ling2.jari4), masuk dalam jari di class baris 9, variable jari (variable jari pada class baris 9 tersebut boleh menggunakan nama variable lain).



          Dan bila kita jalankan dengan run (F5):


          No comments:

          Post a Comment