Hari 4: Pemrograman Berorientasi Objek (OOP)
Pada hari keempat ini, kita akan mempelajari konsep dasar pemrograman berorientasi objek (OOP) dalam Python: kelas, objek, atribut, metode, inheritance (pewarisan), dan polymorphism.
Konsep Dasar OOP
Kelas dan Objek:
- Kelas adalah cetak biru untuk membuat objek. Kelas mendefinisikan atribut dan metode yang akan dimiliki oleh objek.
- Objek adalah instance dari kelas.
Atribut dan Metode:
- Atribut adalah variabel yang disimpan dalam objek.
- Metode adalah fungsi yang didefinisikan dalam kelas dan dapat dipanggil oleh objek.
Membuat Kelas dan Objek
Membuat Kelas:
pythonclass Person: def __init__(self, name, age): self.name = name self.age = age def greet(self): print(f"Hello, my name is {self.name} and I am {self.age} years old.")
Membuat Objek:
person1 = Person("Alice", 30)person2 = Person("Bob", 25) person1.greet() # Output: Hello, my name is Alice and I am 30 years old. person2.greet() # Output: Hello, my name is Bob and I am 25 years old.
Inheritance (Pewarisan)
Inheritance adalah mekanisme di mana sebuah kelas dapat mewarisi atribut dan metode dari kelas lain. Kelas yang mewarisi disebut subclass, dan kelas yang diwarisi disebut superclass.
Membuat Superclass:
class Animal:def __init__(self, name): self.name = name def speak(self): raise NotImplementedError("Subclass must implement abstract method")
Membuat Subclass:
class Dog(Animal):def speak(self): return f"{self.name} says Woof!" class Cat(Animal): def speak(self): return f"{self.name} says Meow!" dog = Dog("Buddy") cat = Cat("Whiskers") print(dog.speak()) # Output: Buddy says Woof! print(cat.speak()) # Output: Whiskers says Meow!
Polymorphism
Polymorphism memungkinkan metode yang sama untuk dipanggil pada objek yang berbeda, dan setiap objek dapat merespon dengan cara yang berbeda.
- Contoh Polymorphism:animals = [Dog("Buddy"), Cat("Whiskers")]
for animal in animals: print(animal.speak()) # Output: # Buddy says Woof! # Whiskers says Meow!
Latihan
Latihan Kelas dan Objek:
- Buat kelas
Car
dengan atributmake
,model
, danyear
, serta metodeget_info
yang mencetak informasi mobil.class Car: def __init__(self, make, model, year): self.make = make self.model = model self.year = year def get_info(self): print(f"{self.year} {self.make} {self.model}") car1 = Car("Toyota", "Camry", 2020) car2 = Car("Honda", "Accord", 2019) car1.get_info() # Output: 2020 Toyota Camry car2.get_info() # Output: 2019 Honda Accord
- Buat kelas
Latihan Inheritance:
- Buat superclass
Shape
dengan metodearea
danperimeter
(metode ini tidak diimplementasikan diShape
), lalu buat subclassRectangle
danCircle
yang mengimplementasikan metode tersebut.import math class Shape: def area(self): raise NotImplementedError("Subclass must implement abstract method") def perimeter(self): raise NotImplementedError("Subclass must implement abstract method") class Rectangle(Shape): def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height def perimeter(self): return 2 * (self.width + self.height) class Circle(Shape): def __init__(self, radius): self.radius = radius def area(self): return math.pi * self.radius ** 2 def perimeter(self): return 2 * math.pi * self.radius rect = Rectangle(3, 4) circ = Circle(5) print(f"Rectangle area: {rect.area()}") # Output: Rectangle area: 12 print(f"Rectangle perimeter: {rect.perimeter()}") # Output: Rectangle perimeter: 14 print(f"Circle area: {circ.area()}") # Output: Circle area: 78.53981633974483 print(f"Circle perimeter: {circ.perimeter()}") # Output: Circle perimeter: 31.41592653589793
- Buat superclass
Latihan Polymorphism:
- Buat daftar yang berisi beberapa objek
Rectangle
danCircle
, lalu iterasikan melalui daftar tersebut dan cetak area dan perimeter setiap objek menggunakan metode yang sama.shapes = [Rectangle(3, 4), Circle(5), Rectangle(2, 6), Circle(3)] for shape in shapes: print(f"Area: {shape.area()}, Perimeter: {shape.perimeter()}") # Output: # Area: 12, Perimeter: 14 # Area: 78.53981633974483, Perimeter: 31.41592653589793 # Area: 12, Perimeter: 16 # Area: 28.274333882308138, Perimeter: 18.84955592153876
- Buat daftar yang berisi beberapa objek
Itulah ringkasan untuk hari keempat belajar Python, yang mencakup konsep dasar OOP, kelas, objek, inheritance, dan polymorphism. Latihan yang disertakan akan membantu Anda memahami dan menerapkan konsep-konsep ini.
Posting Komentar
Posting Komentar