Jurusan Informatika - Fakultas Teknologi Industri - Universitas Islam Indonesia
  • PROFIL
    • Visi dan Misi
    • Sambutan Ketua Jurusan
    • Struktur Organisasi
    • Dosen
    • Staf
    • Kontak
  • PROGRAM STUDI
    • Program Sarjana
      • Sambutan Kaprodi S1
      • Profil Lulusan
      • Kurikulum 2020
      • Capstone
      • Jalur Tahun Keempat
      • Informatics Expo
      • Informasi & Layanan
      • Prospektus S1
      • Mahasiswa
        • Informasi Akademik
        • Mahasiswa Baru S1 – 2022
        • New IP Students – 2022
        • S1 2021 – Reguler
        • S1 – 2021 – International Program
        • S1 – 2020
    • Program Magister
    • Program Doktor
    • International Program
    • Informatika PJJ
  • UNIT PENDUKUNG
    • Laboratorium
    • Pusat Studi
      • Pusat Studi Forensika Digital
      • Pusat Studi Informatika Medis
        • Visi-Misi
        • Struktur Organisasi
        • Mitra Kerjasama
        • Kegiatan
      • Pusat Studi Sistem Informasi Enterprise
      • Pusat Studi Sains Data
    • ITCentrum
    • Student Staff
    • Komunitas Mahasiswa
    • Lembaga Mahasiswa
  • KEMITRAAN
  • ARTIKEL
    • Pojok Dakwah
    • Pojok Informatika
  • Click to open the search input field Click to open the search input field Search
  • Menu Menu
  • Link to Instagram
  • Link to Facebook
  • Link to Youtube
Pojok Informatika

Single Responsibility Principle (SRP) dalam Paradigma Pemrograman Berorientasi Objek

informatika wajib coding - freepik
Serial Prinsip SOLID Dalam Paradigma Pemrograman Berorientasi Objek
Oleh Andhik Budi Cahyono

SOLID adalah prinsip-prinsip yang dapat membantu para pengembang perangkat lunak dalam merancang dan membangun program yang berkualitas tinggi dan mudah untuk dipelihara. Pemeliharaan yang mudah dan kualitas perangkat lunak yang baik bisa membuat umur perangkat lunak jadi lebih lama dan tentu saja menguntungkan bagi pengembang maupun penggunanya. Selain itu, dengan prinsip SOLID, perubahan kebutuhan di masa yang akan datang jadi lebih mudah untuk diakomodasi. SOLID sendiri merupakan akronim dari lima prinsip dasar dalam pemrograman berorientasi objek, yaitu: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, dan Dependency Inversion. 

Definisi dan Tujuan SRP

Prinsip Single Responsibility (SRP) merupakan prinsip pertama dari SOLID. Prinsip ini menyatakan bahwa: 

“Sebuah kelas seharusnya hanya memiliki satu tanggung jawab, tugas, atau fokus pada satu tujuan tertentu dan hanya memiliki satu alasan untuk berubah” 

SRP sangat penting dalam pengembangan perangkat lunak karena dapat membantu mengurangi kompleksitas, meningkatkan keterbacaan, dan mempermudah perawatan kode program. Dengan menerapkan prinsip SRP, setiap bagian dari program memiliki satu tujuan yang jelas dan terpisah dari tugas lain, sehingga perubahan atau penambahan fitur pada satu bagian tidak akan memengaruhi bagian lain.

Implementasi dan Contoh SRP

SRP tidak berarti dalam satu kelas hanya boleh memiliki satu buah method (fungsi/prosedur) saja. Sebuah kelas bisa saja memiliki lebih dari satu fungsi, tetapi fungsi-fungsi yang dimilikinya masih relevan dan terkait dengan tugas utama dari kelas tersebut. Sebagai contoh, sebuah kelas untuk mengelola basis data tidak seharusnya juga bertanggung jawab untuk mengirim email atau menghasilkan laporan karena tugas-tugas tersebut memiliki tanggung jawab yang berbeda. Fungsi-fungsi yang berkaitan dengan pengiriman email dan generate laporan bisa dibuatkan pada kelas tersendiri. 

Berikut contoh kode program yang belum menerapkan SRP: 

public class Payment {

    private double amount;

    private String paymentMethod;

    public Payment(double amount, String paymentMethod) {

        this.amount = amount;

        this.paymentMethod = paymentMethod;

    }

    public double getAmount() {

        return amount;

    }

    public void setAmount(double amount) {

        this.amount = amount;

    }

    public String getPaymentMethod() {

        return paymentMethod;

    }

    public void setPaymentMethod(String paymentMethod) {

        this.paymentMethod = paymentMethod;

    }

 

// kode ini belum optimal dan bisa dioptimalkan dengan prinsip SOLID yang lain

    public void processPayment() {

        if (paymentMethod.equals(“credit card”)) {

            // Process credit card payment

        } else if (paymentMethod.equals(“debit card”)) {

            // Process debit card payment

        } else if (paymentMethod.equals(“paypal”)) {

            // Process PayPal payment

        } else {

            // Invalid payment method

        }

    }

 // fungsi yang memiliki tugas berbeda atau tidak relevan

    public void sendPaymentConfirmationEmail() {

        // Send payment confirmation email

    }

}

Sekilas mungkin terlihat tidak ada masalah pada kelas Payment tersebut baik secara semantik maupun sintaksis. Namun, kelas tersebut melanggar prinsip SRP karena memiliki dua tugas yaitu: memproses pembayaran dan mengirimkan email konfirmasi pembayaran. Fungsi sendPaymentConfirmationEmail() sebaiknya dipisahkan dari kelas Payment dan diletakkan pada kelas baru, misalnya kelas PaymentConfirmationSender. Kode program di atas bisa diperbaiki menjadi: 

Payment.java

public class Payment {

    private double amount;

    private String paymentMethod;

    public Payment(double amount, String paymentMethod) {

        this.amount = amount;

        this.paymentMethod = paymentMethod;

    }

    public double getAmount() {

        return amount;

    }

    public void setAmount(double amount) {

        this.amount = amount;

    }

    public String getPaymentMethod() {

        return paymentMethod;

    }

    public void setPaymentMethod(String paymentMethod) {

        this.paymentMethod = paymentMethod;

    }

 

// kode ini belum optimal dan bisa dioptimalkan dengan prinsip   SOLID yang lain

    public void processPayment() {

        if (paymentMethod.equals(“credit card”)) {

            // Process credit card payment

        } else if (paymentMethod.equals(“debit card”)) {

            // Process debit card payment

        } else if (paymentMethod.equals(“paypal”)) {

            // Process PayPal payment

        } else {

            // Invalid payment method

        }

    }

}

PaymentConfirmationSender.java

public class PaymentConfirmationSender {

    public void sendPaymentConfirmationEmail() {

        // Send payment confirmation via email

    }

    public void sendPaymentConfirmationWhatsapp() {

        // Send payment confirmation via whatsapp    

    }

}

Kedua kelas bisa dihubungkan ketika proses checkout dilakukan, misalnya seperti contoh kode berikut: 

public void checkout() {

    Payment payment = new Payment(100000, “paypal”);

    payment.processPayment();

    PaymentConfirmationSender emailSender = new PaymentConfirmationSender();

    emailSender.sendPaymentConfirmationEmail();

}

Dalam fungsi checkout() di atas, setelah proses pembayaran selesai diproses, objek PaymentConfirmationSender digunakan untuk mengirim email konfirmasi pembayaran. Dengan cara ini, tanggung jawab pengiriman email telah dipisahkan dari kelas Payment dan kelas Payment hanya bertanggung jawab untuk menyimpan informasi pembayaran dan memproses pembayaran. Fungsi checkout() bisa ditaruh pada kelas tersendiri, kelas Checkout misalnya, yang memiliki tugas menyelesaikan rangkaian proses checkout seperti menerima input dari pengguna, melakukan validasi, memproses pembayaran, dan mengirim email konfirmasi pembayaran.

Demikian penjelasan dan pembahasan mengenai salah satu prinsip SOLID yaitu Single Responsibility Principle (SRP). Pada kesempatan berikutnya, kita akan membahas prinsip kedua yaitu Open-Closed Principle. 

*masukan untuk tulisan ini bisa disampaikan langsung ke email: [email protected]

[/FA]

Related posts:

Pemrograman Lebih Mudah: Kenali Dunia No-Code Platform

Robot Learning: Penerapan Machine Learning Pada Pembelajaran Robot

Pro Kontra Aturan PSE

Pemrograman dan Sabar: Pelajaran Kehidupan dari Dunia Coding

Brain Rot di Era Digital: Dampak Konsumsi Konten Berkualitas Rendah

March 2, 2023/by informatika
Share this entry
  • Share on Facebook
  • Share on X
  • Share on WhatsApp
  • Share on LinkedIn
  • Share by Mail
https://informatics.uii.ac.id/wp-content/uploads/2021/06/programmer-scaled.jpg 1707 2560 informatika https://informatics.uii.ac.id/wp-content/uploads/2020/03/Logo-webTF-UII-1030x420.png informatika2023-03-02 12:10:012023-03-02 12:10:01Single Responsibility Principle (SRP) dalam Paradigma Pemrograman Berorientasi Objek
  • Oracle Academy Sambangi Informatika UII, Paparkan Pemutakhiran Program bagi Institusi AnggotaSeptember 4, 2026 - 17:55
  • From Graph Engineering to Model Routing : Bagaimana Bisnis Menggunakan AI Lebih Cepat, Lebih Hemat, dan Tetap AndalSeptember 3, 2026 - 17:06
  • Satu Pola Perancangan Sistem Informasi untuk para UMKM: Riset Mahasiswa S-1 Informatika UII Dipresentasikan di ICOLISAT 2026September 3, 2026 - 16:47
  • Terlihat Belum Berarti Siap: Studi Ekosistem Wellbeing Tourism Yogyakarta Dipresentasikan di ICOLISAT 2026September 3, 2026 - 15:33
  • Fakultas Ilmu Komputer UPI “YPTK” Padang Studi Banding ke PJJ Informatika UIIAugust 31, 2026 - 12:22
  • PANDUAN KEY IN PSI-PS-PROGRAM PENDIDIKAN JARAK JAUH GANJIL 2026/2027August 31, 2026 - 10:16
  • BUKU PANDUAN AKADEMIK PSI-PS-PROGRAM PENDIDIKAN JARAK JAUH 2025/2026August 31, 2026 - 08:45
  • Kuliah Informatika Itu Belajar Apa Sih? Webinar PJJ Informatika UII Jawab Kebingungan Calon MahasiswaAugust 29, 2026 - 17:30
  • PANDUAN KEY-IN PRAKTIS SEMESTER GANJIL 2026/2027August 28, 2026 - 18:04
  • Mahasiswa PJJ Informatika UII Berbagi Semangat Berani MencobaAugust 21, 2026 - 17:53

Categories

JURUSAN INFORMATIKA

Gedung KH. Mas Mansyur  Lantai 2
Universitas Islam Indonesia
Jl. Kaliurang KM. 14,5 Sleman Yogyakarta 55584

Telepon: +62 274 895287 ext. 122
Faks: +62 274 895007
Email:
Jurusan: [email protected]
Prodi Informatika Program Sarjana: [email protected]
Prodi Informatika Program Magister : [email protected]
Prodi Informatika PJJ : [email protected]
Instagram: @informatics.uii

TAUTAN CEPAT

Universitas

Fakultas

UII Gateway

Admisi

© Hak Cipta 2022 - Jurusan Informatika UII - Yogyakarta
  • Link to Instagram
  • Link to Facebook
  • Link to Youtube
Link to: Sobat, Sadarkah Kita Bahwa Semuanya Akan Bersaksi? Link to: Sobat, Sadarkah Kita Bahwa Semuanya Akan Bersaksi? Sobat, Sadarkah Kita Bahwa Semuanya Akan Bersaksi?Al-Quran Link to: Dosen Pembimbing Tugas Akhir S-1 Jalur Penelitian Semester Genap 22/23 Link to: Dosen Pembimbing Tugas Akhir S-1 Jalur Penelitian Semester Genap 22/23 Dosen Pembimbing Tugas Akhir S-1 Jalur Penelitian Semester Genap 22/23
Scroll to top Scroll to top Scroll to top