Praktikum Modul Pengenalan dan Konsep OOP pada Pemrograman Dasar Lanjutan

 👋 Halo teman-teman pejuang kode!

Di pembahasan Pemrograman Dasar Lanjutan kali ini, kita akan berkenalan dengan konsep yang jadi fondasi penting dalam dunia pemrograman modern, yaitu Object-Oriented Programming (OOP). Mungkin kamu sudah sering dengar istilah class dan object, tapi di tahap ini kita akan mulai benar-benar memahami bagaimana OOP bekerja dan kenapa konsep ini banyak digunakan dalam pengembangan aplikasi nyata.

Dalam materi ini, kamu akan diajak mengenal cara berpikir OOP yang memandang program sebagai kumpulan objek dengan atribut dan perilaku masing-masing. Kita akan membahas konsep dasar seperti class, object, encapsulation, inheritance, dan polymorphism secara bertahap dan dengan contoh yang mudah dipahami. Semua disusun supaya kamu nggak cuma paham teorinya, tapi juga bisa langsung menerapkannya dalam kode.

Jadi, siap naik level dari pemrograman prosedural ke pemrograman yang lebih rapi, terstruktur, dan profesional? Yuk, kita mulai eksplorasi dunia OOP dan bangun program yang lebih keren bareng-bareng! 🚀💻


1. PRAKTIKUM PARADIGMA PROSEDURAL


Pada praktikum ini, perhitungan luas segitiga dilakukan dalam satu fungsi tanpa mengembalikan nilai, melainkan langsung menampilkan hasil menggunakan print().

def hitung_luas(): alas = float(input("Masukan alas: ")) tinggi = float(input("Masukan tinggi: ")) print("Luas =", 0.5 * alas * tinggi)

Fungsi dipanggil dua kali:

hitung_luas() hitung_luas()


2. PRAKTIKUM PARADIGMA FUNGSIONAL 


Pada praktikum kedua, program dibuat menggunakan fungsi biasa (tanpa OOP) dan melibatkan input dari pengguna. Fungsi ini digunakan untuk mengambil input alas dan tinggi dari pengguna, lalu dikembalikan ke program utama.

Penjelasan:

  • input() digunakan untuk menerima nilai dari pengguna.

  • float() digunakan untuk memastikan data bertipe numerik.

  • Nilai dikembalikan menggunakan return.



3. PRAKTIKUM PARADIGMA BERORIENTASI OBJEK (OOP)


Pada praktikum ini, kamu menerapkan konsep Object Oriented Programming (OOP) dengan membuat sebuah class Segitiga. Class ini memiliki atribut berupa alas dan tinggi, serta method untuk menghitung luas segitiga.

Penjelasan:

  • __init__() adalah constructor yang digunakan untuk menginisialisasi nilai alas dan tinggi.

  • self merepresentasikan objek yang sedang digunakan.

  • get_luas() merupakan method untuk menghitung luas segitiga.

Kemudian dibuat dua objek:

segitiga1 = Segitiga(5, 10) segitiga2 = Segitiga(10, 10)

Hasil:

  • Luas segitiga pertama = 25.0

  • Luas segitiga kedua = 50.0



4. PRAKTIKUM MEMBUAT DAN MENGANALISIS OBJEK


✔️ 1. Membuat Class Mobil

class Mobil:
  • class Mobil digunakan untuk mendefinisikan sebuah class bernama Mobil.

  • Class ini menjadi cetakan (blueprint) untuk membuat object mobil.


✔️ 2. Membuat Constructor (__init__)

def __init__(self, merk, model): self.merk = merk self.model = model

Penjelasan:

  • __init__ adalah constructor, yaitu fungsi yang otomatis dipanggil saat object dibuat.

  • self.merk dan self.model adalah atribut instance.

  • Nilainya diisi sesuai data saat object dibuat.


✔️ 3. Membuat Method deskripsi()

def deskripsi(self): return f"Mobil {self.merk} model {self.model}"

Penjelasan:

  • Method adalah fungsi di dalam class.

  • Method ini digunakan untuk menampilkan informasi mobil.

  • self digunakan untuk mengakses atribut milik object.


✔️ 4. Membuat Object dari Class

mobil1 = Mobil("Toyota", "Camry") mobil2 = Mobil("Honda", "Civic")

Penjelasan:

  • mobil1 dan mobil2 adalah object dari class Mobil.

  • Masing-masing object memiliki data berbeda.


✔️ 5. Menampilkan Hasil Method

print(mobil1.deskripsi()) print(mobil2.deskripsi())

Output:

Mobil Toyota model Camry Mobil Honda model Civic

Penjelasan:

  • Method deskripsi() dipanggil melalui object.

  • Output menampilkan data sesuai atribut masing-masing object.


5. PRAKTIKUM ATRIBUT INSTANCE VS ATRIBUT KELAS 



✔️ 1. Menambahkan Atribut Class

class Mobil: jumlah_roda = 4

Penjelasan:

  • jumlah_roda adalah atribut class.

  • Berlaku untuk semua object dari class Mobil.

  • Tidak bergantung pada data object.


✔️ 2. Constructor Tetap Digunakan

def __init__(self, merk, model): self.merk = merk self.model = model
  • Constructor tetap digunakan untuk atribut instance (merk, model).


✔️ 3. Membuat Object

mobil1 = Mobil("Toyota", "Camry") mobil2 = Mobil("Honda", "Civic")
  • Object dibuat seperti biasa.


✔️ 4. Mengakses Atribut Class melalui Object

print(mobil1.jumlah_roda) print(mobil2.jumlah_roda)

Output:

4 4

Penjelasan:

  • Walaupun dipanggil lewat object, jumlah_roda berasal dari class.



6. PRAKTIKUM STUDI KASUS 


1️⃣ Deklarasi Class Karyawan

class Karyawan: bonus_tahunan = 1000000 # Atribut kelas

Penjelasan:

  • Karyawan adalah class (cetak biru objek karyawan).

  • bonus_tahunan adalah atribut kelas → nilainya sama untuk semua karyawan.

  • Bonus ini akan digunakan saat karyawan memiliki performa yang baik.


2️⃣ Method __init__ (Constructor)

def __init__(self, nama, jabatan, gaji): self.nama = nama # Atribut instance self.jabatan = jabatan self.gaji = gaji

Penjelasan:

  • __init__ adalah constructor, otomatis dipanggil saat objek dibuat.

  • self.nama, self.jabatan, dan self.gaji adalah atribut instance (milik tiap objek).

  • Setiap karyawan bisa punya data yang berbeda.

📌 Contoh:

Karyawan("Nur Afifah", "Manajer", 10000000)

3️⃣ Method total_gaji()

def total_gaji(self, performa_baik): if performa_baik: return self.gaji + Karyawan.bonus_tahunan else: return self.gaji

Penjelasan:

  • Method ini menghitung total gaji karyawan.

  • Parameter performa_baik menentukan apakah karyawan mendapat bonus.

  • Jika True → gaji + bonus

  • Jika False → hanya gaji pokok

📌 Karyawan.bonus_tahunan diambil dari atribut kelas.


4️⃣ Fungsi buat_karyawan()

def buat_karyawan(): nama = input("Masukkan nama karyawan: ") jabatan = input("Masukkan jabatan karyawan: ") gaji = int(input("Masukkan gaji karyawan: ")) return Karyawan(nama, jabatan, gaji)

Penjelasan:

  • Fungsi ini mengambil input dari pengguna.

  • Data yang dimasukkan digunakan untuk membuat objek Karyawan.

  • int() dipakai agar gaji bertipe integer.

  • return mengembalikan objek karyawan.

📌 Fungsi ini membuat program lebih rapi dan reusable.


5️⃣ Membuat Objek Karyawan

karyawan1 = buat_karyawan() karyawan2 = buat_karyawan()

Penjelasan:

  • Membuat dua objek karyawan.

  • Setiap pemanggilan fungsi akan meminta input baru.

  • karyawan1 dan karyawan2 menyimpan objek berbeda.


6️⃣ Input Performa Karyawan

performa1 = input(f"Apakah {karyawan1.nama} memiliki performa baik? (yes/no): ") performa2 = input(f"Apakah {karyawan2.nama} memiliki performa baik? (yes/no): ")

Penjelasan:

  • Program menanyakan performa masing-masing karyawan.

  • Menggunakan f-string agar nama karyawan tampil dinamis.

  • Jawaban disimpan dalam variabel performa1 dan performa2.


7️⃣ Menampilkan Total Gaji

print(f"{karyawan1.nama} - Total Gaji: {karyawan1.total_gaji(performa1)}") print(f"{karyawan2.nama} - Total Gaji: {karyawan2.total_gaji(performa2)}")

Penjelasan:

  • Memanggil method total_gaji().

  • Jika performa "yes" → dianggap True → dapat bonus.

  • Jika "no"False → tanpa bonus.

  • Hasil ditampilkan ke layar.



LATIHAN DAN TUGAS 
1. Buat sebuah program sederhana dengan tema yang mudah di pahami oleh kalian (tidak boleh sama dengan teman yang lain) untuk belajar konsep paradigma pemrogrman, dengan menggunakan fungsi input dalam bahasa python, buat 1 program dengan Paradigma prosedural, 1 dengan Paradigma fungsional dan 1 Paradigma PBO (Pemrograman Berorientasi Objek) jelaskan alur dan proses dari setiap program yang kalian buat

Tema: Perhitungan Total Belanja di Toko Online

a. PARADIGMA PROSEDURAL




Penjelasan Alur dan Proses

  1. Program dimulai dari baris atas dan dieksekusi berurutan.

  2. User memasukkan harga dan jumlah barang.

  3. Program langsung menghitung total belanja.

  4. Hasil ditampilkan ke layar.

  5. Semua proses berada dalam satu alur tanpa fungsi terpisah.


b. PARADIGMA FUNGSIONAL



Penjelasan Alur dan Proses

  1. Fungsi hitung_total() dibuat untuk menghitung total belanja.

  2. User memasukkan harga dan jumlah barang.

  3. Data dikirim ke fungsi.

  4. Fungsi mengembalikan hasil perhitungan.

  5. Program menampilkan hasil.


c. PARADIGMA PBO



Penjelasan Alur dan Proses

  1. Class Belanja dibuat sebagai cetakan objek.

  2. Atribut harga dan jumlah disimpan dalam object.

  3. Method total_belanja() menghitung total.

  4. Object dibuat dari class.

  5. Method dipanggil untuk menampilkan hasil.


2. Buat sebuah program sederhana dengan tema bebas untuk mempelajari konsep Kelas dan Objek dalam OOP, seperti biasa jelaskan konsep alur dan proses dari program yang kalian buat

Tema : Data Mahasiswa




















Penjelasan Konsep, Alur, dan Proses

🔹 Class

  • Mahasiswa adalah class yang menjadi cetakan object.

🔹 Atribut

  • nama dan nim adalah data milik object mahasiswa.

🔹 Method

  • tampilkan_data() berfungsi menampilkan informasi mahasiswa.

🔹 Object

  • mhs1 adalah object dari class Mahasiswa.

🔹 Alur Program

  1. User memasukkan nama dan NIM.

  2. Object mahasiswa dibuat.

  3. Method dipanggil untuk menampilkan data.

  4. Program selesai.

Komentar

Postingan populer dari blog ini

Praktikum Modul Tipe Data Casting pada Pemrograman Dasar Lanjutan

Praktikum Mengelola File di Python pada Pemrograman Dasar Lanjutan