Presentasi Python
Presentasi 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
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
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,...}
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
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']