Anda di halaman 1dari 21

LAPORAN PRAKTIKUM 4

“Menghitung Luas Bangun Datar dengan


Implementasi Pemrograman Berorientasi Objek
(PBO)”

Nama
Muhammad Putra Pratama
NIM
(200204622034)
Prodi
D4 – Teknik Elektro GCS

FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
KONS. SOFTWARE ENGINEERING
UNIVERSITAS NEGERI MAKASSAR
A. Judul Praktikum

Judul Praktikum : “Menghitung Luas Bangun Datar dengan


Implementasi Pemrograman Berorientasi
Objek (PBO)”

B. Landasan Teori

Pemrograman berorientasi objek (Inggris: object-oriented


programming disingkat OOP) merupakan paradigma pemrograman
berdasarkan konsep "objek", yang dapat berisi data, dalam bentuk
field atau dikenal juga sebagai atribut; serta kode, dalam bentuk
fungsi/prosedur atau dikenal juga sebagai method. Semua data dan
fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau
objek-objek. Bandingkan dengan logika pemrograman terstruktur.
Setiap objek dapat menerima pesan, memproses data, dan mengirim
pesan ke objek lainnya,

Model data berorientasi objek dikatakan dapat memberi


fleksibilitas yang lebih, kemudahan mengubah program, dan
digunakan luas dalam teknik peranti lunak skala besar. Lebih jauh
lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari
bagi pemula dibanding dengan pendekatan sebelumnya, dan
pendekatan OOP lebih mudah dikembangkan dan dirawat.

Terdapat beberapa konsep dasar pada OOP ini, yaitu;


1. Kelas — kumpulan atas definisi data dan fungsi-fungsi dalam
suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of
dog' adalah suatu unit yang terdiri atas definisi-definisi data dan
fungsi-fungsi yang menunjuk pada berbagai macam
perilaku/turunan dari anjing. Sebuah class adalah dasar dari
modularitas dan struktur dalam pemrograman berorientasi
object. Sebuah class secara tipikal sebaiknya dapat dikenali
oleh seorang non-programmer sekalipun terkait dengan domain
permasalahan yang ada, dan kode yang terdapat dalam
sebuah class sebaiknya (relatif) bersifat mandiri dan
independen (sebagaimana kode tersebut digunakan jika tidak
menggunakan OOP). Dengan modularitas, struktur dari sebuah
program akan terkait dengan aspek-aspek dalam masalah yang
akan diselesaikan melalui program tersebut. Cara seperti ini
akan menyederhanakan pemetaan dari masalah ke sebuah
program ataupun sebaliknya.
2. Objek - membungkus data dan fungsi bersama menjadi suatu
unit dalam sebuah program komputer; objek merupakan dasar
dari modularitas dan struktur dalam sebuah program komputer
berorientasi objek.
3. Abstraksi - Kemampuan sebuah program untuk melewati
aspek informasi yang diproses olehnya, yaitu kemampuan
untuk memfokus pada inti. Setiap objek dalam sistem melayani
sebagai model dari "pelaku" abstrak yang dapat melakukan
kerja, laporan dan perubahan keadaannya, dan berkomunikasi
dengan objek lainnya dalam sistem, tanpa mengungkapkan
bagaimana kelebihan ini diterapkan. Proses, fungsi atau
metode dapat juga dibuat abstrak, dan beberapa teknik
digunakan untuk mengembangkan sebuah pengabstrakan.
4. Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat
mengganti keadaan dalam dari sebuah objek dengan cara yang
tidak layak; hanya metode dalam objek tersebut yang diberi izin
untuk mengakses keadaannya. Setiap objek mengakses
interface yang menyebutkan bagaimana objek lainnya dapat
berinteraksi dengannya. Objek lainnya tidak akan mengetahui
dan tergantung kepada representasi dalam objek tersebut.
5. Polimorfisme melalui pengiriman pesan. Tidak bergantung
kepada pemanggilan subrutin, bahasa orientasi objek dapat
mengirim pesan; metode tertentu yang berhubungan dengan
sebuah pengiriman pesan tergantung kepada objek tertentu di
mana pesa tersebut dikirim. Contohnya, bila sebuah burung
menerima pesan "gerak cepat", dia akan menggerakan
sayapnya dan terbang. Bila seekor singa menerima pesan yang
sama, dia akan menggerakkan kakinya dan berlari. Keduanya
menjawab sebuah pesan yang sama, namun yang sesuai
dengan kemampuan hewan tersebut. Ini disebut polimorfisme
karena sebuah variabel tungal dalam program dapat
memegang berbagai jenis objek yang berbeda selagi program
berjalan, dan teks program yang sama dapat memanggil
beberapa metode yang berbeda di saat yang berbeda dalam
pemanggilan yang sama. Hal ini berlawanan dengan bahasa
fungsional yang mencapai polimorfisme melalui penggunaan
fungsi kelas-pertama.
6. Dengan menggunakan OOP maka dalam melakukan
pemecahan suatu masalah kita tidak melihat bagaimana cara
menyelesaikan suatu masalah tersebut (terstruktur) tetapi
objek-objek apa yang dapat melakukan pemecahan masalah
tersebut. Sebagai contoh anggap kita memiliki sebuah
departemen yang memiliki manager, sekretaris, petugas
administrasi data dan lainnya. Misal manager tersebut ingin
memperoleh data dari bag administrasi maka manager tersebut
tidak harus mengambilnya langsung tetapi dapat menyuruh
petugas bag administrasi untuk mengambilnya. Pada kasus
tersebut seorang manager tidak harus mengetahui bagaimana
cara mengambil data tersebut tetapi manager bisa
mendapatkan data tersebut melalui objek petugas adminiistrasi.
Jadi untuk menyelesaikan suatu masalah dengan kolaborasi
antar objek-objek yang ada karena setiap objek memiliki
deskripsi tugasnya sendiri.
C. Praktikum

1. Soal 1

Analisis

Pada gambar bangun datar diatas, kita bisa menarik


beberapa kesimpulan;
 Terdapat sebuah bangun datar segitiga
 Terdapat sebuah bangun datar lingkaran 1
 Terdapat sebuah bangun datar lingkaran 2
Dan kita akan menentukan algoritma program untuk
bangun datar tersebut

Analisis Algoritma Program

I. Algoritma dasar pada gambar dibawah yaitu;


 Luas Segitiga – Luas Setengah Lingkaran 1 +
Luas Lingkaran 2.

II. Membuat class BangunDatar dengan subclass


Segitiga, Lingkaran 1, Lingkaran 2.
III. Membuat class Layout (optional) untuk mengatur
tata letak nantinya pada output dan ini juga
berguna agar lebih efisien dan cepat dibanding
mengulang code yang sama. Bisa juga dikatakan
kelas ini adalah template konsol program.
IV. Membuat class Hasil untuk men-generate atau
untuk return value dan berguna juga sebagai kode
untuk melakukan operasi matematika.
V. class Segitiga
di dalam class ini kita melakukan inisialisasi
beberapa variable seperti alas, tinggi, dan hasil.

alas : tipe data double, value 6.74


tinggi : tipe data double, value 6.74
hasil : tipe data double, kita tidak menentukan
valuenya, kita hanya perlu varible ini
untuk menyimpan value yang akan
dieksekusi pada method selanjutnya.
Dan kita akan membuat beberapa method sebagai
objek yang akan kita gunakan nantinya pada class
lain. Method yang akan kita buat yaitu;

LSegitiga()
tipe data double, digunakan nantinya untuk return
value dan berguna juga sebagai kode untuk
melakukan operasi matematika.

DisplaySegitiga()
tipe data void, digunakan untuk menampilkan ke
konsol. Kita juga akan memanggil method
sebelumnya yang telah kita buat.
VI. class Lingkaran 1
di dalam class ini kita melakukan inisialisasi
beberapa variable seperti phi, jari-jari, num, dan
hasil.

phi : tipe data double, value 3.14


jari-jari : tipe data double, value 4.0
num : tipe data double, value 1
hasil : tipe data double, kita tidak menentukan
valuenya, kita hanya perlu varible ini
untuk menyimpan value yang akan
dieksekusi pada method selanjutnya.

Dan kita akan membuat beberapa method sebagai


objek yang akan kita gunakan nantinya pada class
lain. Method yang akan kita buat yaitu;

LLingkaran()
tipe data double, digunakan nantinya untuk return
value dan berguna juga sebagai kode untuk
melakukan operasi matematika.
DisplayLingkaran()
tipe data void, digunakan untuk menampilkan ke
konsol. Kita juga akan memanggil method
sebelumnya yang telah kita buat.

VII. class Lingkaran 2


di dalam class ini kita melakukan inisialisasi
beberapa variable seperti phi, jari-jari, num, dan
hasil.

phi : tipe data double, value 3.14


jari-jari : tipe data double, value 4.0
num : tipe data double, value 2
hasil : tipe data double, kita tidak menentukan
valuenya, kita hanya perlu varible ini
untuk menyimpan value yang akan
dieksekusi pada method selanjutnya.

Dan kita akan membuat beberapa method sebagai


objek yang akan kita gunakan nantinya pada class
lain. Method yang akan kita buat yaitu;

LLingkaran()
tipe data double, digunakan nantinya untuk return
value dan berguna juga sebagai kode untuk
melakukan operasi matematika.

DisplayLingkaran()
tipe data void, digunakan untuk menampilkan ke
konsol. Kita juga akan memanggil method
sebelumnya yang telah kita buat.

VIII. class Hasil


di dalam class ini kita menginisialisasi varible s, l,
dan l2 agar kita dapat memanggil class lain diluar
class ini. Terdapat juga beberapa method yang
kita akan buat yaitu;

Jumlah()
tipe data double, method ini berfungsi sebagai
operasi matematika dan akan direturn untuk
mengembalikan value dari method ini. Yang akan
kita return dalam method ini adalah algoritma yang
sudah kita jelaskan pada nomor I.

Result()
tipe data void, method ini akan berguna untuk
menampilkan/print ke konsol. Kita juga akan
memanggil method sebelumnya yang telah kita
buat.

IX. class Program


class ini adalah class utama dari sebuah program.
Methodnya main() dengan parameter string[] args
yang telah dijelaskan di laporan sebelumnya.

Pada class ini kita menginisialisasi s, l, dan l2


sebagai variable yang akan kita gunakan untuk
variable pemanggil class beserta method
didalamnya. Dan kita inisialisasi inp (tipe data
string) dan convertInput (tipe data int) yang akan
berguna nantinya sebagai varible input user.

Kita mau program ini akan berjalan ketika user


menginput nilai, tidak langsung mengeksekusi
langsung. Maka kita akan membuat input user.

Selanjutnya kita akan melakukan pengodisian,


ketika user menginput valuenya ‘1’, maka kita
akan melanjutkan programnya, jika diluar dari
satu, maka kita tidak akan mengeksekusi
program.

KODE PROGRAM
using System;

namespace lesson1_muhammadputrapratama
{
class Layout
{
public void underline()
{
Console.WriteLine("-------------------------------------
------------------------------------");
}

public void InputUser()


{
Console.WriteLine("\n\tPilihan");
Console.WriteLine("\t1. Lanjutkan");
Console.WriteLine("\t2. Keluar\n");
underline();

}
public void Header()
{
Console.WriteLine("Selamat Datang Pada
Program studi kasus: 'Menghitung Luas Bangun
Datar'");
underline();
Console.WriteLine("\n\n");
}

public void Body()


{
Console.WriteLine("Silahkan masukkan input
dibawah.");
}

public void Footer()


{
Console.WriteLine("\n\nTerima kasih telah
mencoba program sederhana ini.");
}
public void Display()
{
Header();
Body();
InputUser();
}
}
class BangunDatar
{
class Segitiga
{
public double alas = 6.74;
public double tinggi = 6.74;
public double hasil;

public double LSegitiga()


{
return hasil = (alas * tinggi) / 2;
}

public void DisplaySegitiga()


{
Console.WriteLine("\n\nMenghitung Luas
Segitiga\n");
Console.WriteLine("Alas : " + alas + " cm");
Console.WriteLine("Tinggi : " + tinggi + "
cm");
Console.WriteLine("Hasil : " + LSegitiga() +
" cm");
}
}

class Lingkaran1
{
public double phi = 3.14;
public double jarijari = 4.0;
public int num = 1;
public double hasil;

public double LLingkaran()


{
return hasil = ((jarijari * jarijari) * phi) / 2;
}

public void DisplayLingkaran()


{
Console.WriteLine("\n\nMenghitung Luas
Lingkaran " + num + "\n");
Console.WriteLine("Jari-jari : " + jarijari + "
cm");
Console.WriteLine("Phi : " + phi + "
cm");
Console.WriteLine("Hasil : " +
LLingkaran() + " cm");
}
}

class Lingkaran2
{
public double phi = 3.14;
public double jarijari = 2.0;
public int num = 2;
public double hasil;

public double LLingkaran()


{
return hasil = (jarijari * jarijari) * phi;
}
public void DisplayLingkaran()
{
Console.WriteLine("\n\nMenghitung Luas
Lingkaran " + num + "\n");
Console.WriteLine("Jari-jari : " + jarijari + "
cm");
Console.WriteLine("Phi : " + phi + "
cm");
Console.WriteLine("Hasil : " +
LLingkaran() + " cm");
}
}

class Hasil
{
Segitiga s = new Segitiga();
Lingkaran1 l = new Lingkaran1();
Lingkaran2 l2 = new Lingkaran2();

public double Jumlah()


{
return s.LSegitiga() - l.LLingkaran() +
l2.LLingkaran();
}
public void Result()
{
Console.WriteLine("\nTotal Luas yang
diperoleh dari gambar");
Console.WriteLine("Luas Segitiga - Luas
Lingkaran 1 - Luas Lingkaran 2");
Console.WriteLine("Hasil = " + Jumlah() + "
cm");
}
}

class Program
{
public static void Main(string[] args)
{

Layout l = new Layout();


Segitiga s = new Segitiga();
Lingkaran1 l1 = new Lingkaran1();
Lingkaran2 l2 = new Lingkaran2();
Hasil h = new Hasil();

l.Display();

string inp;
int convertInput;
Console.Write("|| Input : ");
inp = Console.ReadLine();
convertInput = Convert.ToInt32(inp);

if (convertInput == 1)
{
s.DisplaySegitiga();
l1.DisplayLingkaran();
l2.DisplayLingkaran();
h.Result();
} else
{
l.Footer();
}
}
}
}
}

SCREENSHOT HASIL
ketika user menginput ‘1’

jika user input ‘2’

Anda mungkin juga menyukai