Laporkan Penyalahgunaan

7 Hari Belajar Python [ Bagian 2]

Posting Komentar

 


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

  1. 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.
  2. 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

  1. Membuat Kelas:

    python
    class 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.")
  2. 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.

  1. Membuat Superclass:

    class Animal:
    def __init__(self, name): self.name = name def speak(self): raise NotImplementedError("Subclass must implement abstract method")
  2. 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.

  1. Contoh Polymorphism:
    animals = [Dog("Buddy"), Cat("Whiskers")]
    for animal in animals: print(animal.speak()) # Output: # Buddy says Woof! # Whiskers says Meow!

Latihan

  1. Latihan Kelas dan Objek:

    • Buat kelas Car dengan atribut make, model, dan year, serta metode get_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
  2. Latihan Inheritance:

    • Buat superclass Shape dengan metode area dan perimeter (metode ini tidak diimplementasikan di Shape), lalu buat subclass Rectangle dan Circle 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
  3. Latihan Polymorphism:

    • Buat daftar yang berisi beberapa objek Rectangle dan Circle, 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

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.

Related Posts

There is no other posts in this category.

Posting Komentar