Anda di halaman 1dari 15

LAPORAN PRAKTIKUM

TUGAS BESAR
PEMROGRAMAN BERORIENTASI OBJECT

DISUSUN OLEH :
Nama / NPM : 1. Atikah Suci / 1062205
2. Devinka Lawagita Alfajri Putri / 1062207
3. Insyirah Hulul Aini / 1062212
4. Mutyarsih Aghata Erviansah / 1062220
5. Putri Nabilah / 1062222
Kelas/ Semester : 2 TRPL A / 3 (Tiga)
Program Studi : D4 Teknologi Rekayasa Perangkat Lunak
Dosen Pengampu : Riki Afriansyah, M.Tr.T

POLITEKNIK MANUFAKTUR NEGERI BANGKA BELITUNG


Tahun Akademik 2023/2024
Kata Pengantar

Assalamualaikum Warahmahtullah Wabarakatuh


Alhamdulillah, puji syukur kepada Allah Swt. atas Rahmat dan karunia-Nya penulis
dapat menyelesaikan laporan praktikum ini. Laporan praktikum ini disusun untuk memenuhi
tugas besar mata kuliah Pemmrograman Berorientasi Object yang diampu oleh Bapak Riki
Afriansyah M.T. Penulis mengucapkan terima kasih kepada semua pihak yang telah
mendukung penyusunan laporan praktikum ini sehingga dapat dikerjakan dan diselesaikan
tepat waktu. Dalam penyusunan laporan ini, penulis menyadari bahwa hasil laporan praktikum
masih jauh dari kata sempurna. Oleh karena itu, penulis mengharapkan kritik dan saran yang
membangun dari pembaca. Semoga laporan praktikum ini bermanfaat untuk pembaca,
khususnya penulis.
Wassalamualaikum Warahmahtullah Wabarakatuh

Sungailiat, 22 Desember 2023

Penyusun

2
Daftar Isi

Kata Pengantar ........................................................................................................................... 2


Daftar Isi .................................................................................................................................... 3
Bab I ........................................................................................................................................... 4
A. Latar Belakang ................................................................................................................ 4
B. Tujuan ............................................................................................................................. 5
C. Manfaat ........................................................................................................................... 5
Bab II ......................................................................................................................................... 6
A. Teori-teori ....................................................................................................................... 6
B. Studi Kasus ................................................................................................................... 13
Bab III ...................................................................................................................................... 14
A. Kesimpulan ................................................................................................................... 14
Daftar Pustaka .......................................................................................................................... 15

3
Bab I
Pendahuluan
A. Latar Belakang
Pemrograman Berorientasi Objek (PBO) merupakan paradigma pemrograman
yang memandang dunia perangkat lunak sebagai kumpulan objek yang berinteraksi satu
sama lain. Konsep ini menekankan pada pengorganisasian kode sumber dalam bentuk
objek yang memiliki data dan metode yang dapat memanipulasi data tersebut.
Pemrograman Berorientasi Objek bertujuan untuk meningkatkan keterbacaan,
reusabilitas, dan skalabilitas kode sumber. Melalui PBO, pengembang dapat merancang
solusi perangkat lunak yang lebih modular, mempermudah pemeliharaan, dan
memungkinkan pengembangan kolaboratif yang efisien. Penerapan Pemrograman
Berorientasi Objek sangat penting dalam pengembangan perangkat lunak modern.
Dalam lingkup pengembangan aplikasi, PBO memungkinkan pemisahan tugas dan
tanggung jawab antar objek, yang pada gilirannya meningkatkan modularitas dan
memudahkan pengembangan iteratif.
Kotlin, yang merupakan bahasa pemrograman yang kita gunakan dalam mata
kuliah ini, adalah bahasa open-source dari JetBrains. Bahasa ini termasuk dalam
kategori bahasa yang diatur secara statis, artinya setiap variabel harus dikenalkan
dengan jenisnya terlebih dahulu. Dalam konteks pengembangan aplikasi bergerak, kita
menggunakan Kotlin dengan bantuan Intellij IDEA sebagai software pengembangan.
Kotlin juga dapat digunakan dalam Android Studio, yang sangat direkomendasikan
untuk mempermudah pembuatan aplikasi Android.
Tugas besar ini melibatkan pembuatan sistem pendataan pasien di Klinik Padim
Care yang terhubung dengan database MySQL dan menerapkan konsep CRUD (Create,
Read, Update, Delete). CRUD adalah operasi dasar yang umum digunakan dalam
mengelola data pada perangkat lunak. Dalam Pemrograman Berorientasi Objek,
implementasi CRUD dapat dimodelkan sebagai metode-metode pada objek yang
merepresentasikan data. Contohnya, pada tugas ini mengenai Klinik Padim Care,
sistem dapat memiliki metode untuk menambahkan data pasien baru (Create),
membaca data pasien dan dokter yang sudah ada (Read), mengubah informasi pasien
jika ada perubahan (Update), dan menghapus data pasien yang telah selesai berobat
(Delete).
Implementasi CRUD dalam PBO menggunakan konsep enkapsulasi dan
abstraksi. Setiap operasi CRUD tersembunyi dalam metode-metode objek yang terkait,
menjaga integritas data dan menyediakan antarmuka yang jelas untuk berinteraksi
dengan objek tersebut. Dengan demikian, pemeliharaan dan pengembangan sistem
menjadi lebih efisien karena setiap objek memiliki tugas dan tanggung jawab yang
terdefinisi dengan baik. Dalam prakteknya, pemrogram dapat membuat model objek
yang mencerminkan entitas bisnis dan menerapkan operasi CRUD pada objek-objek
tersebut untuk menciptakan sistem perangkat lunak yang mudah diatur dan dipelihara.

4
B. Tujuan
Tujuan pembuatan sistem layanan dalam studi kasus yaitu pembuatan sistem
layanan pendataan pasien pada klinik PADIMCare Dimana layanan pendataan ini dapat
meningkatkat efisiensi dalam pencatatan dan juga untuk memanajemen data seperti
mempercepat proses pencatatan informasi pada pasien dan meminimalisir resiko
kesalahan data. Selain itu, bertujuan untuk dapat mempermudah proses pelaporan
medis pasien pasa pada klinik, serta dapat memberikan dukungan dalam hal
menganalisis data kesehatan secara strategi melalui data yang telah terkumpulkan

C. Manfaat
Pembuatan sistem layanan ini juga bermanfaat untuk mengurangi waktu
pelayanandengan informasi pasien yang lengkap, akurat, dan mudah diakses, efektifitas
dalammemanajemen data pasien, mempercepat penyusunan laporan medis secara cepat
denganmenggunakan data yang akurat, data pribadi yang diinputkan oleh pasien terjaga
keamanandan privasinya, meminimalisir risiko kesalahan penginputan data, dan
memberikan pelayananyang lebih cepat dan terfokus pada pasien.

5
Bab II
Pembahasan
A. Teori-teori
1. Kelas
Kelas adalah sebuah blueprint atau cetakan yang mendefinisikan perilaku dan
karakteristik dari sebuah objek. Dalam pemrograman, kelas biasanya digunakan
untuk memodelkan objek atau entitas dalam dunia nyata yang memiliki atribut dan
perilaku tertentu. Atribut pada kelas dapat berupa variabel yang menampung nilai,
sedangkan perilaku pada kelas dapat diimplementasikan dalam bentuk metode atau
fungsi.
Dalam Kotlin, kelas didefinisikan dengan menggunakan kata kunci “class”
diikuti dengan nama kelas, blok kode antara tanda kurung kurawal “{}” yang berisi
anggota kelas seperti properti dan metode. Dalam sebuah kelas, properti dapat
didefinisikan sebagai variabel atau konstanta yang merepresentasikan atribut atau
karakteristik dari objek yang dibuat dari kelas tersebut.
Contoh :
class Peserta {
var nama: String = "Tanpa Nama"
var skor: Int = 0
var nilai : Int = 0

2. Method
Metode atau fungsi adalah blok kode yang menentukan perilaku objek. Metode
dapat berisi satu atau lebih pernyataan yang menjelaskan tindakan atau prosedur
tertentu yang dilakukan oleh objek. Selain properti dan metode, kelas juga dapat
memiliki konstruktor yang berfungsi untuk menginisialisasi objek yang dibuat dari
kelas. Dalam Kotlin, konstruktor dapat didefinisikan menggunakan kata kunci
“constructor” diikuti dengan argumen atau parameter yang diperlukan untuk
menginisialisasi objek.
Contoh :
fun display() {
println("Nama Peserta: ${nama} dengan skor ${nilai}")
}

6
3. Objek
Objek adalah adalah sebuah instance (perwujudan) dari sebuah class. Objek
terbentuk dari sebuah kelas yang sudah didefinisikan sebelumnya. Ketika sebuah
objek dibuat, ia akan memiliki semua sifat dan perilaku yang dimiliki oleh kelas
tersebut, dan dapat diakses dan dimanipulasi melalui objek tersebut. Setiap objek
memiliki identitas yang unik, yang membedakannya dari objek lainnya yang dibuat
dari kelas yang sama.
Contoh :
val P1 = Peserta("Padim", 90)

4. Setter dan Getter


Setter adalah member function atau method yang dipakai untuk memberikan
nilai ke dalam sebuah data member. Sedangkan Getter adalah member function
yang dipakai untuk menampilkan nilai data member.
Dalam OOP kita sering mendengar istilah encapsulation (pembungkusan), di
mana data dibungkus dengan modifier private agar tidak bisa diakses secara
langsung dari luar class.
Method setter dan getter ini akan membantu kita mengakses data tersebut.
Perbedaan method setter dengan getter terletak pada nilai kembalian, parameter,
dan isi method-nya. Method setter tidak memiliki nilai kembalian void (kosong).
Karena tugasnya hanya untuk mengisi data ke dalam atribut. Sedangkan method
getter memiliki nilai kembalian sesuai dengan tipe data yang akan diambil.
Nama method setter dan getter harus diawali dengan set untuk setter dan get
untuk getter.
Untuk penulisan get terdapat 2 versi :
• get() = field

• get() {
return field
}

kode setter
set(value){
field=value
}

Pada method setter biasanya memiliki parameter, dan tipe data pada parameter
tersebut sama dengan tipe variabelnya. Sedangkan pada method getter tidak
memiliki parameter dan hanya digunakan untuk pengambilan nilai varibel tersebut.

7
Contoh :
class Mahasiswa {
var nama:String="No Name"
//Setter
set(value){
field=value
}
//Getter
get() = field
}

5. Konstruktor
Konstruktor dalam pemrograman adalah sebuah method khusus yang digunakan
untuk menginisialisasi objek dari sebuah kelas. Konstruktor akan dijalankan saat
objek baru dibuat dari kelas tersebut. Tujuan utama dari konstruktor adalah untuk
memberikan nilai awal pada objek sehingga objek tersebut siap untuk digunakan.
Contoh :
constructor(enama: String, enilai : Int) {
nama = enama
nilai = enilai

6. Acces Modifier
Dalam pemrograman, access modifier adalah suatu mekanisme yang digunakan
untuk mengontrol akses ke data atau method dalam suatu class. Ada beberapa tipe
akses modifier pada Kotlin, yaitu:
• Public
Access modifier public memungkinkan untuk mengakses data atau method
dari suatu class dari manapun, baik itu dari dalam maupun luar class
tersebut.
• Private
Access modifier private memungkinkan untuk mengakses data atau method
dari suatu class hanya dari dalam class tersebut. Artinya, data atau method
yang bersifat private tidak bisa diakses dari luar class tersebut.
• Protected
Access modifier protected memungkinkan untuk mengakses data atau
method dari suatu class hanya dari dalam class tersebut dan dari subclass-
nya.

8
Contoh :
class Persegi {
private var sisi:Int = 5

private fun luas():Int{


return sisi*sisi
}
}
fun main(){
val P = Persegi()
P.luas()
}

7. Mutablelistof
MutableList adalah salah satu tipe data dalam pemrograman berorientasi objek
yang digunakan untuk menyimpan sejumlah objek dalam urutan yang dapat diubah.
Dalam Kotlin, metode mutableListOf() digunakan untuk menginstansiasi
antarmuka MutableList. Kelas MutableList digunakan untuk membuat daftar yang
bisa diubah-ubah di mana elemen-elemennya bisa ditambahkan atau dihapus.
Metode mutableListOf() mengembalikan sebuah instance dari MutableList
Interface dan mengambil array dengan tipe tertentu atau campuran (tergantung pada
tipe instance MutableList) atau bisa juga null.
Contoh :
class Mahasiswa ( val ls: List<String>, val lisnil : List<Int>) {
var tot = lisnil.count()

val n = in1.nextInt()
val inputlist = mutableListOf<String>()
val inputlisnil = mutableListOf<Int>()

9
8. Pewarisan (Inheritance)
Pewarisan adalah salah satu konsep dasar dalam Pemrograman Berorientasi
Objek yang memungkinkan sebuah class untuk memperoleh properti dan method
dari class lain. Pewarisan juga memungkinkan untuk membuat class baru dengan
memperluas atau memodifikasi class yang sudah ada, sehingga tidak perlu lagi
membuat class baru dari awal. Class yang diwarisi disebut subclass atau kelas
turunan, sedangkan class yang mewarisi disebut superclass atau kelas induk.
Analoginya, superclass itu adalah orang tua yang terdapat properti hidung mancung,
mata sipit, dan kekar. Sedangkan subclass merupakan anak dari orang tua yang
memiliki properti tersebut dan memungkinkan si anak untuk menggunakan atau
mewarisi properti yang ada pada orang tuanya. Dengan pewarisan, pengembang
bisa membuat program yang lebih rapi dan teratur, dan mempermudah
pemeliharaan dan pengembangan program. Namun, pengembang harus berhati-hati
dalam menggunakan pewarisan, karena dapat menimbulkan masalah yang tidak
terduga jika tidak digunakan dengan benar.
Perbedaan parent dan child terletak pada inisialisasi objek nya. Ketika yang
diinisialisasikan adalah objek parent, maka hanya dapat menampilkan method yang
terdapat pada class parent. Sementara itu, jika yang diinisialisasikan adalah class
child, maka dapat menampilkan method yang ada pada kelas child saja, parent saja
dan bisa kedua-duanya.
Contoh :
open class Super_class {
open var num = 20

//display method of superclass


open fun display(){
println("Ths is the display
method of superclass")
}
}

class Sub_class : Super_class () {


override var num = 10

//display method of sub class


override fun display() {
println("This is the display
method of subclass")
}
}

fun main(args: Array<String>) {


val obj = Sub_class()
obj.my_method()
}

10
9. Overloading dan Overriding
Overloading merupakan sebuah konsep dalam Pemrograman Beorientasi Objek
yang memungkinkan pengembang untuk membuat beberapa method dengan nama
yang sama dalam satu kelas, tetapi dengan jumlah dan tipe parameter yang berbeda.
Pada overloading, class dianalogikan sebagai anak (child) yang memiliki beberapa
kotak pensil dengan label yang sama tetapi ukurannya berbeda. Begitupula dengan
method, pengembang bisa memilih method yang sesuai dengan jumlah dan tipe
parameter yang dibutuhkan.
Overriding merupakan proses menulis ulang sebuah method pada kelas turunan
yang memiliki nama, tipe dan jumlah parameter yang sama seperti method pada
kelas induk. Method baru pada kelas turunan akan menimpa method pada kelas
induk, sehingga ketika method tersebut dipanggil, implementasi yang digunakan
adalah implementasi dari kelas turunan, bukan kelas kelas induk.
Contoh :
Overloading Overriding
class Persegipanjang { open class Persegipanjang {
var p:Int
fun hitung(panjang:Int, var l:Int
lebar:Int):Int{
return panjang*lebar constructor(panjang:Int, lebar:Int){
} p=panjang
l=lebar
fun hitung(panjang: Double, }
lebar: Double):Double{
return panjang*lebar open fun display(){
} println("Panjang : $p, Lebar : $l")
} }
}

class Balok : Persegipanjang {


var t : Int

constructor(panjang:Int,lebar:Int,
tinggi:Int):super(panjang,lebar){
t=tinggi
}

override fun display(){


println("Panjang : $p, Lebar : $l,
Tinggi : $t")
}

11
10. Koneksi Database MySql dengan Kotlin
MySQL adalah sebuah database management Database management system
(DBMS) MySQL multi pengguna dan multi alur menggunakan perintah dasar SQL
(Structured Query Language). MySQL adalah DBMS yang open source dengan
dua bentuk lisensi, yaitu Free Software (perangkat lunak bebas) dan Shareware
(perangkat lunak berpemilik yang penggunaannya terbatas). Penggunaan Database
MySql pada sistem akan menyimpan data yag diinput pada database dan juga dapat
menghapus ataupun mengubahnya.

Dalam pengembangan aplikasi berbasis database, OOP memungkinkan


pengembang untuk membuat objek yang merepresentasikan entitas dalam database,
seperti tabel dan kolom, dan mengelola interaksi antara objek-objek tersebut dengan
database. Objek-objek ini kemudian dapat digunakan untuk membuat
fungsionalitas aplikasi yang berbeda, seperti operasi CRUD (Create, Read, Update,
Delete) atau fitur pencarian. Pada materi ini, contoh yang akan digunakan adalah
dengan MySQL Database dengan bantuan class library JDBC Driver (Java
Database Connectivity).
Contoh :
const val JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"
const val DB_URL = "jdbc:mysql://localhost/db_padim"
const val USER = "root"
const val PASS = ""

lateinit var conn: Connection


lateinit var stmt: java.sql.Statement
lateinit var stmt1: java.sql.Statement
lateinit var rs: ResultSet
lateinit var rs1: ResultSet
val input = Scanner(System.`in`)

var currentNIK: String = ""

fun main() {
Class.forName(JDBC_DRIVER)
conn = DriverManager.getConnection(DB_URL, USER,
PASS)
stmt = conn.createStatement()
stmt1 = conn.createStatement()
showMenu()
}

12
B. Studi Kasus
Pembuatan program pada studi kasus pendataan pasien pada klinik Padim Care dengan
menerapkan CRUD yang terkoneksi dengan database.
1. Pada saat program pertama dijalankan atau dibuka, akan menampilkan pilihan
login sebagai admin atau pasien untuk mengarahkan ke menu pasien dan menu
untuk admin.
2. Jika login sebagai admin, maka akan menampilkan 7 menu. Yaitu sebagai berikut,
• Cek data dokter : menu ini akan menampilkan data dokter pada klinik
tersebut, seperti nama dokter dan kode dokter.
• Cek data pasien : menu ini akan menampilkan seluruh data pasien yang ada,
seperti nama pasien, tanggal lahir, nik, umur, jenis kelamin, dan alamat.
• Hapus data pasien : menu ini akan menampilkan pesan data siapa yang
ingin dihapus, selanjutnya jika admin memasukkan nik pasien maka
program akan menghapus data pasien berdasarkan nik yang dimasukkan.
• Ubah data pasien : menu ini akan menampilkan pesan data siapa yang ingin
diubah, selanjutnya jika admin memasukkan nik pasien maka admin dapat
mengubah data pasien seperti nama, tanggal lahir, jenis kelamin, dan
alamat.
• Cek daftar penyakit : menu ini akan menampilkan daftar penyakit yang bisa
diperiksa oleh dokter.
• Cek daftar rekam medis pasien : menu ini akan menampilkan daftar rekam
medis seluruh pasien.
• Cek daftar rekam medis pasien berdasarkan tanggal : menu ini akan
menampilkan daftar rekam medis pasien yang ada atau berobat pada
tanggal yang dimasukkan oleh admin.
• Keluar
3. Jika login sebagai pasien, maka pasien akan diminta login menggunakan nik. Jika
pasien belum pernah berobat dan mendaftarkan nik di klinik, maka pasien akan
diminta untuk membuat akun dan memasukkan data pasien terlebih dahulu. Tetapi
jika pasien sebelumnya sudah pernah berobat dan sudah pernah mendaftarkan
akun, maka pasien hanya perlu login menggunakan nik yang sebelumnya sudah
didaftarkan.
4. Selanjutnya setelah pasien login, maka akan menampilkan 3 menu. Yaitu sebagai
berikut :
• Cek info : menu ini akan menampilkan daftar informasi mengenai data
pasien, seperti nama, tanggal lahir, umur, nik, jenis kelamin, dan alamat.
• Berobat : menu ini digunakan jika pasien hendak mendaftar untuk berobat.
Pasien akan diminta memasukkan data, penyakit yang ingin diobati,
keluhan pasien, dll.
• Riwayat : menu ini akan menampilkan riwayat atau rekam medis pasien
beserta dengan biaya kwitansi pasien setiap berobat.
• Keluar
5. Jika admin atau pasien memilih keluar, maka admin ataupun pasien akan keluar
dari menu dan login serta akan kembali ke halaman pilihan login sebagai admin
atau pasien.

13
Bab III
Penutup
A. Kesimpulan
Pemrograman Berorientasi Objek atau Object Oriented Programming (OOP)
merupakan sebuah program dibangun dari objek-objek yang saling berinteraksi. Setiap
objek memiliki data (properti) dan perilaku (metode) yang unik.
Secara keseluruhan, pembuatan sistem layanan pendataan pasien pada klinik
PADIMCare memiliki tujuan yang jelas dalam meningkatkan efisiensi dan akurasi
pencatatan informasi pasien. Tujuan tersebut melibatkan upaya untuk mempercepat
proses pencatatan, meminimalkan risiko kesalahan data, serta mempermudah pelaporan
medis dan analisis data kesehatan.
Selain itu, manfaat yang dihasilkan dari implementasi sistem ini mencakup
pengurangan waktu pelayanan dengan informasi pasien yang lengkap, efektivitas dalam
manajemen data pasien, serta penyusunan laporan medis yang cepat dan akurat.
Keamanan dan privasi data pribadi pasien juga dijaga, sementara risiko kesalahan
penginputan data diminimalisir. Pelayanan yang lebih cepat dan terfokus pada pasien
menjadi dampak positif lainnya. Dengan demikian, pembuatan sistem layanan ini tidak
hanya meningkatkan efisiensi administratif klinik, tetapi juga memberikan manfaat
signifikan dalam penyediaan pelayanan kesehatan yang lebih baik dan responsif
terhadap kebutuhan pasien.

14
Daftar Pustaka

http://rizkimuliono.blog.uma.ac.id/pemrograman-berorientasi-objek/
https://www.geeksforgeeks.org/kotlin-mutablelistof/?ref=ml_lbp
https://www.kmtech.id/post/pemrograman-berorientasi-objek-konsep-dasar-dan-
implementasinya-dalam-bahasa-pemrograman
https://www.niagahoster.co.id/blog/mysql-adalah/
press polmanbabel-pemrograman berorientasi object

15

Anda mungkin juga menyukai