0% menganggap dokumen ini bermanfaat (0 suara)
208 tayangan

Presentasi Python

Kelas dan objek merupakan dua komponen penting dalam pemrograman berbasis objek. Kelas digunakan untuk mendefinisikan objek yang dapat menyimpan data dan perilaku. Objek merupakan instansiasi dari kelas. Kelas memiliki atribut dan method yang mendefinisikan karakteristik dan perilaku objek. Konsep penting lainnya adalah inheritance yang memungkinkan kelas turunan mewarisi sifat kelas induk, serta method overriding dan operator overloading. [/ringkasan

Diunggah oleh

Akbarz Maulana
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
208 tayangan

Presentasi Python

Kelas dan objek merupakan dua komponen penting dalam pemrograman berbasis objek. Kelas digunakan untuk mendefinisikan objek yang dapat menyimpan data dan perilaku. Objek merupakan instansiasi dari kelas. Kelas memiliki atribut dan method yang mendefinisikan karakteristik dan perilaku objek. Konsep penting lainnya adalah inheritance yang memungkinkan kelas turunan mewarisi sifat kelas induk, serta method overriding dan operator overloading. [/ringkasan

Diunggah oleh

Akbarz Maulana
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 11

Kelas Dan Objek Pada Python

Kelompok 8

Anggota: 1. Anugerah Bintang Pratama (50411994) 2. Bastian Ganda T (57411946) 3. Eka Yunita (52411366) 4. Iqbal Bahri (58411803) 5. Radiansah E. Sopanji (55411735)

UNIVEERSITAS GUNADARMA

Pemrograman Berbasis Objek (OOP) Kelas dan Objek


Evolusi pemrograman telah beralih dari pengeksekusian instruksi langkah-demilangkah menuju kepada pendekatan blok program yang lebih terorganisir, di mana blok kode tersebut dapat dibungkus menjadi subrutin dan fungsi yang telah ditetapkan. Pemrograman terstruktur atau prosedural memungkinkan kita mengatur program ke dalam blok logis, dapat diulang-ulang atau digunakan kembali. Pemrograman berorientasi objek mengambil langkah evolusi ini dengan meningkatkan program terstruktur untuk memungkinkan data / perilaku hubungan: Data dan logika sekarang digambarkan oleh satu abstraksi yang digunakan untuk menciptakan objekobjek tersebut. Kelas menyediakan pendefinisian dari setiap objek, dan objek merupakan perwujudan dari pendefinisian tersebut. Keduanya (kelas dan objek) adalah dua komponen yang vital dalam Object-Oriented Perogramming.

Kelas
Kelas adalah struktur data yang bisa kita gunakan untuk mendefinisikan objek yang menyimpan data bersama-sama nilai-nilai dan perilaku (behavior). Kelas adalah suatu entitas yang merupakan bentuk program dari suatu abstraksi untuk permasalahan dunia nyata, dan instans dari class merupkan realisasi dari beberapa objek. Jika dianalogikan, kelas itu merupakan blueprint ( cetak biru ) dari sebuah objek (instans). Dalam Python, pendeklarasian class punya kesamaan seperti mendeklarasikan sebuah fungsi. Berikut adalah bentuk umum pendeklarasian sebuah kelas,
class <nama_kelas> : <statemen> <statemen>

Pendeklarasian kelas di awali dengan kata kunci class kemudian diikuti dengan nama kelasnya. Statemen-statemen dalam tubuh kelas dapat berupa atribut kelas dan method. Kelas umumnya di definisikan pada level teratas dari sebuah modul, dengan begitu objek dari kelas dapat di dibuat dimanapun dalam source code dimana kelas tersebut didefinisikan.

Atribut Kelas
Atribut merupakan data atau bisa juga berupa fungsi-fungsi yang dimiliki oleh kelas tersebut. Atribut diakses melalui notasi bertitik. Atribut-atribut kelas terikat hanya untuk kelas-kelas dimana atribut tersebut didefinisikan. Atribut-atribut data merupakan veriabelvariabel yang kita deklarasikan. Variabel-variabel tersebut dapat digunakan seperti variabel lainnya dan dapat di ubah-ubah nilainya oleh method didalam kelas ataupun di dalam program utama. Contoh penggunaan Atribut Kelas,
>>> ... ... >>> 100 >>> >>> 110 class X: bil = 100 print X.bil X.bil = X.bil + 10 print X.bil

Method Method merupakan fungsi yang melekat pada sebuah objek atau instan kelas. Contoh berikut menunjukkan penggunaan method dalam kelas.
#Badan Class class TestMethod: def perkalian(self,a,b): c = a * b return c #program Utama objek = TestMethod() #instansiasi objek print(objek.perkalian(50,2))

Method Constructor Method constructor merupakan sebuah method yang akan otomatis dipanggil ketika objek di instantiasi. Constructor umumnya digunakan untuk melakukan inisialisasi terhadap suatu variabel atau method. Bentuk umum Method constructor adalah sebagai berikut,
class <nama_kelas>: def __init__(self, <argumen-argumen>): <statemen> <statemen>

Contoh Program : class Konstruktor: def __init__(self): print 'Kalimat ini akan langsung di cetak\n Ketika objek dibuat' # program utama objekKonst = Konstruktor()

Method Destructor Method destructor dalam python merupakan method yang menyediakan proses khusus sebelum objek di hancurkan/dealokasi. Method constructor disebut __del__(). Method ini tidak akan dilaksanakan sampai semua referensi ke semua objek telah dihapus.
Contoh : >>> class C: ... def __init__(self): ... print "inisialisasi" ... def __del__(self): ... print "Objek Telah dihapus" ... >>> c1 = C() inisialisasi >>> c2 = c1

>>> c3 = c1 >>> id(c1), id(c2), id(c3) (11789856, 11789856, 11789856) >>> del c1 >>> del c2 >>> del c3 Objek Telah dihapus

Overloading terhadap Operator


Overloading terhadap operator merupakan suatu mekanisme yang memungkinkan operator tertentu dapat dikenal pada objek. Dengan menggunakan overloading, maka dapat dimungkinkan untuk membuat operasi seperti dibawah ini : Posisi1 + posisi2 Dengan posisi1 maupun posisi2 adalah variabel yang merujuk ke instan kelas. Beberapa metode untuk melakukan overloading terhadap operator: 1. __add__(self,lain) Metode yang akan dipanggil kalau terdapat operasi penjumlahan (+) terhadap objek. 2. __sub__(self,lain) Metode yang akan dipanggil kalau terdapat operasi pengurangan (-) terhadap objek. 3. __mul__(self,lain) Metode yang akan dipanggil kalau terdapat operasi perkalian (*) terhadap objek. 4. __div__(self,lain) Metode yang akan dipanggil kalau terdapat operasi pembagian ( / ) terhadap objek. 5. __mod__(self,lain) Metode yang akan dipanggil kalau terdapat operasi sisa pembagian (%) terhadap objek. 6. __neg__(self,lain) Metode yang akan dipanggil kalau terdapat operasi negasi (-objek) terhadap objek. 7. __cmp__(self,lain) Metode yang akan dipanggil kalau terdapat operasi perbandingan (<,>) terhadap objek. 8. __getitem__(self,lain) Metode yang akan dipanggil kalau terdapat pemanggilan item pada indeks. 9. __setitem)__ (self,indeks) Metode yang akan dipanggil kalau terdapat pengubahan item pada indeks. 10. __getslice__(self,indeks,nilai) Metode yang akan dipanggil kalau terdapat pemanggilan irisan item pada indeks.

11. __setslice__(self,awal,akhir) Metode yang akan dipanggil kalau terdapat pemanggilan untuk merubah irisan item pada indeks. Beberapa metode untuk melakukan overloading terhadap fungsi : 1. __len__(self) 2. __str__(self) 3. __repr__(self) 4. __abs__(self)

Inheritance (Pewarisan)
Pewarisan merupakan konsep dalam pemrograman berbasis objek yang memungkinkan untuk membuat suatu kelas dengan didasarkan pada kelas yang sudah ada sehingga mewarisi semua method dan atributnya. Pewarisan merupakan suatu mekanisme yang memungkinkan seorang pemrogram menciptakan suatu kelas baru berdasarkan kelas yang sudah tersedia tetapi tidak perlu menuliskan kode dari nol. Dengan cara seperti ini, semua method dan atribut yang terdapat pada kelas induk diturunkan ke kelas turunannya. Namun kelas turunannya dapat menambah method baru atau atribut baru tersendiri.
Kelas A Atribut 1 Atribut 2 Atribut-n Method X( ) Method Y( )

Kelas B

Method Z( )

Pada contoh diatas, Kelas A merupakan Kelas Induk dan Kelas B disebut Kelas Anak. Ketika Kelas B dideklarasikan sebagai subkelas dari Kelas A, maka Dengan sendirinya Kelas B mewariskan semua atribut atau method yang dimiliki oleh Kelas A. Namun, Kelas B juga dapat membuat method sendiri. Bentuk Umum pembuatan Kelas turunan,
class <nama_kelas_turunan>(<nama_kelas_induk>): <atribut-atribut> <method-method>

Contoh program :
class Ayah: def methodAyah(self): print "Ini adalah Method Ayah" class Anak(Ayah): def methodAnak(self): print "Ini adalah Method Anak" #deklarasi objek kelas Ayah p = Ayah() p.methodAyah() #deklarasi objek kelas anak c = Anak() c.methodAnak() c.methodAyah() Output : Ini adalah Method Ayah Ini adalah Method Anak Ini adalah Method Ayah

Method Overriding
Sebuah method dikatakan Method overriding jika method dengan nama yang sama terdapat pada kelas induk dan kelas anaknya. Contoh program ;
class induk: def cobaOverride(self): print "Hi... saya method override di kelas induk" class turunan(induk): def cobaOverride(self): print "Hi... saya method override di kelas anak" # Deklarasi objek Kelas Induk objekInduk = induk() objekInduk.cobaOverride() # Deklarasi objek kelas anak objekAnak = turunan() induk.cobaOverride(objekAnak)

TANYA JAWAB
1. Kelompok 1 (Lina Rosdiana) Apakah metode penjumlahan __add__ dengan metode pengurangan __sub__ dapat dibuat dalam satu kelas ? Jawab : Overloading terhadap Metode penjumlahan __add__ dan metode pengurangan __sub__ dapat kita gunakan dalam satu kelas. Karena masing-masing metode ini akan secara langsung mendeteksi operator yang kita gunakan, misalkan kita buat def__add__ dan def__sub__ pada kelas koordinat, maka dengan adanya operator + atau akan terjadi overloading sehingga otomatis dieksekusi oleh masing-masing metode. Contoh Program :
class Koordinat: def __init__(self,x,y): self.x=x self.y=y def __add__ (self,lain): return Koordinat (self.x + lain.x,self.y + lain.y) def __sub__ (self,lain): return Koordinat (self.x - lain.x,self.y - lain.y) posisi1=Koordinat (5,7) posisi2=Koordinat(8,4) posisi3=posisi1+posisi2 posisi4=posisi1-posisi2 print print print print Output : 13 11 -3 3 posisi3.x posisi3.y posisi4.x posisi4.y

2. Kelompok 2 (Edi Kurniawan) Bisakah kita membuka suatu kelas tetapi letak kelas tersebut di file yang berbeda ? Jawab :

3. Kelompok 3 (Juliandi Kasugara) Bisa buatkan contoh program luas, apabila kita buat tiga kelas. Kelas Segitiga, kelas persegi dan kelas lingkaran dalam satu program. Misalkan setelah kita memanggil kelas segitiga, kemudian bisa kita panggil lagi kelas berikutnya atau yang sama? Jawab : class lingkaran: def tal(self,j): l=3.14*j*j print "hasil: ",l class persegi: def til(self,s): l=s*s print "hasil: ",l class segitiga: def tul(self,a,t): l=(a*t)/2 print "hasil: ",l ling=lingkaran() per=persegi() seg=segitiga() pil=0 while pil!=4: print (" PROGRAM LUAS ") print ("================= ") print ("1. Lingkaran ") print ("2. Persegi ") print ("3. Segitiga ") print ("4. Exit ") pil=int(input("Masukkan Pilihan : ")) if pil ==1: j=float(input("Masukkan jari-jari : ")) ling.tal(j) if pil ==2: s=float(input("Masukkan sisi : ")) per.til(s) if pil ==3: a=float(input("Masukkan alas : ")) t=float(input("Masukkan tinggi : ")) seg.tul(a,t)

4. Kelompok 4 (Muhammad Iqbal ) Perbedaan Fungsi dir() dengan Dic itu apa ? Jawab : Fungsi dir() gunanya untuk mengetahui lebih jelasnya tentang metode-metode yang dapat digunakan pada suatu objek. Contoh penggunaannya seperti ini :
>>> dir(f) f adalah nama objek [__init__, write, dst]

Sedangkan Dic berfungsi seperti kamus, dimana didalamnya terdapat kunci dan nilai. Secara umum format dic sebagai berikut :
Variabel={kunci : nilai, kunci : nilai,...}

Contoh Program pembentukkan Dic :


>>> saya={arab:ana , jawa:kulo} {arab:ana ,jawa:kulo}

5. Kelompok 5 ( Wahyu Mella) a. Jelaskan apa itu pass, dan apabila tidak digunakan akan bagaimana? Jawab: Pass adalah suatu pernyataan, dimana dalam Python yang berarti tidak melakukan apa-apa. Pass digunakan saat terdapat suatu fungsi yang secara koding kita serta kan namun tidak kita gunakan, maka gunakan pernyataan pass. Bila tidak, maka error yang akan terjadi, karena program tidak menemukan suatu penjelasan dari aktivitas fungsi itu. b. Apakah string merupakan tipe data? Bisakah digunakan dalam metode __add_ ? Jawab: Ya, string merupakan tipe data dan hanya dapat kita pakai dalam metode penjumlahan sehingga setiap kata dapat ditambah dan membentuk suatu kalimat. Tetapi tidak pada pengurangan dan operasi lainnya. Contoh Program:
class Koordinat: def __init__(self,x,y): self.x=x self.y=y def __add__ (self,lain): return Koordinat (self.x + lain.x,self.y + lain.y) posisi1=Koordinat (Saya ,Anak ) posisi2=Koordinat(Mahasiswa ,Gunadarma ) posisi3=posisi1+posisi2 print posisi3.x print posisi3.y

Output: Saya Mahasiswa Anak Gunadarma

c. Apabila kita gunakan tipe data float pada metode __add__ dan __sub__ bisa atau tidak, kalau bisa bagaimana programnya? Jawab: Bisa, kita buat pendeklarasiannya terlebihdahulu, dimana kita buat suatu variabel yang nilainya adalah float, seperti pada contoh program. Contoh Program :
class Koordinat: def __init__(self,x,y): self.x=x self.y=y def __add__ (self,lain): return Koordinat (self.x + lain.x,self.y + lain.y) def __sub__ (self,lain): return Koordinat (self.x - lain.x,self.y - lain.y) t=float(input("kordinat t x :"))Pendeklarasian suatu variabel ke tipe data float y=float(input("kordinat y y :")) j=float(input("kordinat j x :"))Pendeklarasian suatu variabel ke tipe data float k=float(input("kordinat k y :")) posisi1=Koordinat (t,y) posisi2=Koordinat(j,k) posisi3=posisi1+posisi2 posisi4=posisi1-posisi2 print print print print posisi3.x posisi3.y posisi4.x posisi4.y

6. Kelompok 6 (Okie Febrie) Apa yang dimaksud dengan Self pada fungsi def() ? Jawab: Self pada fungsi def() maksudnya adalah fungsi def() itu sendiri, dimana bentuk umum def() adalah:
Def objek (arg1,arg2,...)

Dengan arg1 sebagai objek dari fungsi itu sendiri, dan pada arg2 dan seterusnya adalah pernyataan untuk suatu variabel yang terdapat didalam fungsi tersebut.

7. Kelompok 7 ( Sandy Mulyawan) Kalo metode __add__ kan menggunakan penjumlahan, tetapi bila kita menggunakan operator kurang hasilnya bagaimana ? Jawab:

Metode __add__ tidak bisa kita gunakan bila menggunakan operator kurang (-), hasilnya adalah error, karena unsupport dengan operator (-) tersebut. Kecuali, kita masukkan operator kurang(-) tersebut kedalam fungsi, itu tidak masalah. Contoh :
class Koordinat: def __init__(self,x,y): self.x=x self.y=y def __add__ (self,lain): return Koordinat (self.x + lain.x,self.y + lain.y) posisi1=Koordinat (2,4) posisi2=Koordinat(3,6) posisi3=posisi1 + posisi2 print posisi3.x print posisi3.y Output : 5 10 class Koordinat: def __init__(self,x,y): self.x=x self.y=y def __add__ (self,lain): return Koordinat (self.x + lain.x,self.y + lain.y) posisi1=Koordinat (2,4) posisi2=Koordinat(3,6) posisi3=posisi1 - posisi2 print posisi3.x print posisi3.y Output : Error... unsupport operator -

8. Kelompok 9 (Budi Bahari) Butkan contoh program dengan menggunakan fungsi split ? Jawab :
>>> kata = "aku seorang kapiten".split(" ") >>> kata.append("mempunyai") >>> kata.append("pedang") >>> kata.append("panjang") >>> kata ['aku', 'seorang', 'kapiten', 'mempunyai', 'pedang', 'panjang'] >>> kata.sort() >>> kata ['aku', 'kapiten', 'mempunyai', 'panjang', 'pedang', 'seorang']

Anda mungkin juga menyukai