#OPERASILOGIKA
Explore tagged Tumblr posts
vikaping-blog · 2 years ago
Text
PEMBELAJARAN PEMROGRAMAN BERORIENTASI OBJEK
Halo teman - teman! Pernahkah kalian mendengar istilah OOP? Nah jika kalian merupakan orang yang bergelut di bidang programming, istilah OOP mungkin terdengar tidak asing. Bagi kalian yang sudah dengar tapi belum terlalu paham seperti apa OOP itu ya. Sebagai calon programmer, kamu wajib tahu loh konsep dasar OOP🤭
Kenapa sih kita harus tahu konsep dasar OOP? Karena zaman now, programmer harus mampu meminimalisir program dan membuatnya tertata rapi. Selain itu juga untuk mempercepat pembuatan aplikasi, serta meminimalisir timbulnya bug.
Yuk langsung saja penjelasan mengenai apa sih OOP itu.. 
PENGERTIAN OOP 
Apa kamu sudah tahu kepanjangan dari OOP? OOP merupakan kepanjangan dari Object Oriented Programming. OOP adalah metode pemrograman yang berbasis objek, atau dalam bahasa Indonesia dikenal dengan Pemrograman Berbasis Objek (PBO). 
Lalu apa fungsinya? Fungsi utama dari adanya OOP adalah mempermudah pengembangan program kedepannya. Program yang sudah jadi memerlukan fitur tambahan sesuai dengan kebutuhan pengguna, jika tidak menggunakan OOP dokumentasi program akan sulit dipahami bahkan oleh pembuat program.
Kenapa Harus OOP? OOP membungkus fungsi dan variabel dalam objek atau class, sehingga bisa saling berinteraksi untuk membuat sebuah program. Dengan menggunakan OOP kita bisa meminimalisir bug program dan membuat script coding bisa tertata lebih rapi. Selain itu OOP dipilih karena bisa memangkas waktu pembuatan program yang lebih cepat daripada menggunakan cara lama. Untuk urusan maintenance dan pengembangan, OOP lebih mudah karena programnya tertata lebih rapi. 
Lalu, bukannya kamu bisa bikin program dengan prosedural saja? Iya, tentu bisa. Masalahnya, kalau programnya semakin besar maupun kompleks maka dari itu semua akan membuat kodemu sulit  di-maintenance. Sebab teknik prosedural identik dengan menggabungkan seluruh kode. Bayangkan jika kamu membuat program sebesar GRAB dengan teknik prosedural, kamu akan kesulitan untuk memodifikasi kode program tersebut. Malah akan dibuat pusing jika seluruh program disatukan tanpa mengorganisasikan kode program. Nah, itulah alasan mengapa kamu harus menggunakan teknik OOP. 
Berikut merupakan komponen OOP yang penting untuk kamu pelajari.
Adapun empat prinsip yang menjadi konsep OOP. Berikut pembahasan konsep OOP:
Encapsulation pada OOP adalah konsep tentang pengikatan data atau metode berbeda yang disatukan atau “dikapsulkan” menjadi satu unit data. Encapsulation dapat memudahkan dalam pembacaan kode karena informasi yang disajikan tidak perlu dibaca secara rinci dan sudah merupakan satu kesatuan. Encapsulation juga sering digunakan karena terdapat fitur information-hiding mechanism. Mekanisme ini menghilangkan akses publik ke atribut-atribut yang terdapat di dalam “kapsul” tersebut. Metode ini dapat memudahkan kamu dalam mendefinisikan atribut apa saja yang dapat dibaca dan diperbarui.
Abstraction (abstraksi) pada OOP, bisa disebut perpanjangan dari enkapsulasi. Dalam proses pembuatan sistem berorientasi objek, seringkali sistem yang dibuat sangat besar. Objek saling terpisah dan berkomunikasi dengan menggunakan fungsi, jika mempertahankan seperti ini dalam jangka waktu lama akan sulit dilakukan. Untuk itu abstraksi adalah konsep yang dibuat untuk meringankan masalah ini. Jadi seorang developer bisa melakukan satu fungsi tanpa harus mengetahui bagaimana fungsi tersebut berjalan.
Inheritance pada OOP adalah di mana kita dapat membentuk class baru yang “mewarisi” atau memiliki bagian-bagian dari class yang sudah ada sebelumnya. Konsep ini menggunakan sistem hirarki atau bertingkat. Seperti sebuah Drop-Down Menu yang ada di kebanyakan website, di mana semakin spesifik submenunya, semakin spesifik pula kontennya. Demikian juga dengan Inheritance OOP di mana semakin spesifik subclassnya, semakin sedikit pula komponen yang dapat diwarisi class tersebut.
Polymorphism Konsep OOP yang keempat adalah polymorphism yang artinya memiliki banyak bentuk. Jadi Polymorphism adalah konsep di mana suatu objek berbeda-beda dapat diakses melalui satu interface. Sebuah objek polymorphic dapat beradaptasi dengan metode apapun yang diimplementasikan pada objek tersebut, dan setiap class memiliki interpretasinya tersendiri terhadap interfacenya.
Bahasa Pemrograman yang Mendukung OOP 
Perlu diketahui bahwa tidak semua bahasa pemrograman mendukung OOP, nah berikut ini kami berikan bahasa pemrograman yang mendukung OOP:
Java 
Pascal
C++
Python
Ruby
PHP
C#
Delphi
Visual Foxpro
Perl
SIMULA
Eiffel
Smalltalk
Adobe Flash AS 3.0
Kelebihan Object Oriented Programming
Selain mendukung banyak bahasa pemrograman, berikut kelebihan dari OOP adalah sebagai berikut:
Maintenance program lebih mudah , Kelebihan OOP pertama adalah masalah maintenance program yang lebih mudah. Programer bisa lebih mudah dalam membaca dan memahami script program yang ditulis dengan melihat dokumentasi program.
Update program lebih mudah, Update fitur pada program menjadi salah satu hal yang wajar kita ditemui. Dengan program yang dibangun dengan konsep OOP, programmer bisa dengan mudah menambahkan fitur-fitur baru yang ada pada program dengan mudah. Jadi programmer tidak perlu mempelajari script dari awal sampai akhir seperti program yang dibuat dengan prosedural.
Proses development lebih cepat, OOP memiliki banyak support library object yang bisa digunakan kembali, sehingga proses development bisa berjalan lebih cepat.
Cost lebih rendah, Proses development yang cepat tentu akan membuat cost menjadi lebih hemat.
Script program lebih rapi dan dapat digunakan berulang, Kelebihan terakhir script program yang dibuat bisa lebih rapi dan lebih pendek. Script yang ada pun bisa digunakan berulang hanya dengan memanggil module yang sudah ada.
Kekurangan Object Oriented Programming
Disamping banyaknya kelebihan yang dimiliki, ada beberapa kekurangan dari OOP yang perlu Anda ketahui, berikut pembahasannya:
Kompleks untuk dipelajari, Walaupun secara fungsi OOP ini bagus, tetapi bagi para programmer OOP ini memerlukan waktu untuk bisa memahaminya. Program OOP memiliki beberapa konsep yang perlu diketahui seperti encapsulation, abstraction, inheritance, polymorphism. Tetapi untuk Anda yang ingin berkarir menjadi seorang programmer wajib hukumnya memahami konsep dari OOP.
Ukuran program OOP lebih besar, Ukuran program yang dihasilkan oleh OOP lebih besar dibandingkan program yang dikerjakan menggunakan POP (Pemrograman Berbasis Prosedur) atau dikenal dengan prosedural.
Runtime program OOP lebih lambat, Karena ukurannya yang lebih besar, program OOP memiliki runtime yang lebih lambat dibandingkan dengan program prosedural.
Tidak semua masalah bisa diatasi dengan OOP, Tidak semua program bisa dikerjakan dengan OOP, ada beberapa program yang memang lebih cocok menggunakan prosedural atau programming style lainnya.
CONTOH PROGRAM OOP PADA BAHASA JAVA
PROGRAM KALKULATOR SEDERHANA
import javax.swing.JOptionPane;
public class kalkulator extends javax.swing.JFrame {
    public kalkulator() {
        initComponents();
    }
    @SuppressWarnings("unchecked")
    
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jButton5 = new javax.swing.JButton();
        jButton6 = new javax.swing.JButton();
        jButton7 = new javax.swing.JButton();
        jButton8 = new javax.swing.JButton();
        jLabel3 = new javax.swing.JLabel();
        jButton9 = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();
        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setBackground(new java.awt.Color(51, 153, 255));
        getContentPane().setLayout(null);
        jLabel1.setFont(new java.awt.Font("Comic Sans MS", 1, 18)); // NOI18N
        jLabel1.setText("-+ Program Kalkulator Sederhana +-");
        getContentPane().add(jLabel1);
        jLabel1.setBounds(40, 10, 330, 29);
        jButton1.setBackground(new java.awt.Color(204, 204, 255));
        jButton1.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        jButton1.setText("Penjumlahan ( + )");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton1);
        jButton1.setBounds(0, 80, 140, 25);
        jButton2.setBackground(new java.awt.Color(204, 204, 255));
        jButton2.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        jButton2.setText("Operasi Dasar Logika");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton2);
        jButton2.setBounds(90, 230, 240, 25);
        jButton3.setBackground(new java.awt.Color(204, 204, 255));
        jButton3.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        jButton3.setText("Program Nilai Ujian");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton3);
        jButton3.setBounds(90, 260, 240, 25);
        jButton4.setBackground(new java.awt.Color(204, 204, 255));
        jButton4.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        jButton4.setText("Pengurangan ( - )");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton4);
        jButton4.setBounds(140, 110, 140, 25);
        jButton5.setBackground(new java.awt.Color(204, 204, 255));
        jButton5.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        jButton5.setText("Perkalian ( x )");
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton5);
        jButton5.setBounds(280, 80, 120, 25);
        jButton6.setBackground(new java.awt.Color(204, 204, 255));
        jButton6.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        jButton6.setText("Pembagian ( / )");
        jButton6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton6ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton6);
        jButton6.setBounds(2, 140, 140, 25);
        jButton7.setBackground(new java.awt.Color(204, 204, 255));
        jButton7.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        jButton7.setText("Modulus ( % )");
        jButton7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton7ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton7);
        jButton7.setBounds(280, 140, 120, 25);
        jButton8.setBackground(new java.awt.Color(204, 204, 255));
        jButton8.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        jButton8.setText("Operasi Perbandingan");
        jButton8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton8ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton8);
        jButton8.setBounds(90, 200, 240, 25);
        jLabel3.setFont(new java.awt.Font("Comic Sans MS", 1, 14)); // NOI18N
        jLabel3.setText("* BY Kelompok 2 *");
        getContentPane().add(jLabel3);
        jLabel3.setBounds(140, 40, 130, 30);
        jButton9.setBackground(new java.awt.Color(204, 204, 255));
        jButton9.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        jButton9.setText("Exit");
        jButton9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton9ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton9);
        jButton9.setBounds(10, 270, 60, 25);
        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/WhatsApp Image 2022-11-09 at 14.00.12.jpg"))); // NOI18N
        jLabel2.setText("jLabel2");
        getContentPane().add(jLabel2);
        jLabel2.setBounds(0, 0, 410, 300);
        pack();
    }// </editor-fold>                        
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String dataa,datab;
        int nilai1;
        int nilai2;
        
        dataa = JOptionPane.showInputDialog(" Masukan Nilai Pertama = ");
        datab = JOptionPane.showInputDialog( " Masukan Nilai Kedua = " );
        
        nilai1 = Integer.parseInt(dataa);
        nilai2 = Integer.parseInt(datab);
        
        int tambah = nilai1 + nilai2;
        JOptionPane.showMessageDialog(null, " Hasil dari "+nilai1+" + "+nilai2+" adalah "+tambah);
    }                                        
    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String dataa,datab;
        int nilai1;
        int nilai2;
        
        dataa = JOptionPane.showInputDialog(" Masukan Nilai Pertama = ");
        datab = JOptionPane.showInputDialog( " Masukan Nilai Kedua = " );
        
        nilai1 = Integer.parseInt(dataa);
        nilai2 = Integer.parseInt(datab);
        
        int kurang = nilai1 - nilai2;
        JOptionPane.showMessageDialog(null, " Hasil dari "+nilai1+" - "+nilai2+" adalah "+kurang);
    }                                        
    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String dataa,datab;
        int nilai1;
        int nilai2;
        
        dataa = JOptionPane.showInputDialog(" Masukan Nilai Pertama = ");
        datab = JOptionPane.showInputDialog( " Masukan Nilai Kedua = " );
        
        nilai1 = Integer.parseInt(dataa);
        nilai2 = Integer.parseInt(datab);
        
        int kali = nilai1 * nilai2;
        JOptionPane.showMessageDialog(null, " Hasil dari "+nilai1+" x "+nilai2+" adalah "+kali);
    }                                        
    private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String dataa,datab;
        int nilai1;
        int nilai2;
        
        dataa = JOptionPane.showInputDialog(" Masukan Nilai Pertama = ");
        datab = JOptionPane.showInputDialog( " Masukan Nilai Kedua = " );
        
        nilai1 = Integer.parseInt(dataa);
        nilai2 = Integer.parseInt(datab);
        
        float bagi = (float)nilai1 / nilai2;
        JOptionPane.showMessageDialog(null, " Hasil dari "+nilai1+" : "+nilai2+" adalah "+bagi);
    }                                        
    private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String dataa,datab;
        int nilai1;
        int nilai2;
        
        dataa = JOptionPane.showInputDialog(" Masukan Nilai Pertama = ");
        datab = JOptionPane.showInputDialog( " Masukan Nilai Kedua = " );
        
        nilai1 = Integer.parseInt(dataa);
        nilai2 = Integer.parseInt(datab);
        
        int modulus = nilai1 % nilai2;
        JOptionPane.showMessageDialog(null, " Hasil dari "+nilai1+" mod "+nilai2+" adalah "+modulus);
    }                                        
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String dataa, datab;
        dataa = JOptionPane.showInputDialog(" Masukan data 1( true/false ) = ");
        datab = JOptionPane.showInputDialog( " Masukan data 2( true/false ) = " );
        
        boolean bool1 = Boolean.parseBoolean(dataa);
        boolean bool2 = Boolean.parseBoolean(datab);
        boolean o_and  = bool1 && bool2;
        boolean o_or   = bool1 || bool2;
        boolean o_notA = !bool1;
        boolean o_notB = !bool2;
        
        JOptionPane.showMessageDialog(null, "       -  Hasil Relasi  - \n"+bool1+" AND "+bool2+"     = "+o_and+"\n"+bool1+" OR "+bool2+"       = "+o_or+"\nNOT "+bool1+"              = "+o_notA+"\nNOT "+bool2+"             = "+o_notB);
    }                                        
    private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String dataa, datab;
        String hasil1,hasil2,hasil3,hasil4,hasil5,hasil6;
        int nilai1, nilai2;
        
        dataa = JOptionPane.showInputDialog(" Masukan Nilai Pertama = ");
        datab = JOptionPane.showInputDialog( " Masukan Nilai Kedua = " );
    ��   
        nilai1 = Integer.parseInt(dataa);
        nilai2 = Integer.parseInt(datab);
        
        if(nilai1 > nilai2){
            hasil1 = "True";
        }else{
            hasil1 = "False";
        }
        
        if(nilai1 < nilai2){
            hasil2 = "True";
        }else{
            hasil2 = "False";
        }
        
        if(nilai1 >= nilai2){
            hasil3 = "True";
        }else{
            hasil3 = "False";
        }
        
        if(nilai1 <= nilai2){
            hasil4 = "True";
        }else{
            hasil4 = "False";
        }
        
        if(nilai1 == nilai2){
            hasil5 = "True";
        }else{
            hasil5 = "False";
        }
        
        if(nilai1 != nilai2){
            hasil6 = "True";
        }else{
            hasil6 = "False";
        }
        
        JOptionPane.showMessageDialog(null, "     -  Hasil Perbandingan  - \n"+dataa+" > "+datab+"         = "+hasil1+"\n"+dataa+" < "+datab+"         = "+hasil2+"\n"+dataa+" >= "+datab+"       = "+hasil3+"\n"+dataa+" <= "+datab+"       = "+hasil4+"\n"+dataa+" == "+datab+"       = "+hasil5+"\n"+dataa+" != "+datab+"        = "+hasil6);
    }                                        
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String datatugas, datauts, datauas , nilai;
        Float nilaitugas, nilaiuts, nilaiuas;
        Float hasil;
        datatugas = JOptionPane.showInputDialog(" Masukan Nilai Tugas ( 1 - 100 ) = ");
        datauts = JOptionPane.showInputDialog( " Masukan Nilai UTS ( 1 - 100 ) = " );
        datauas = JOptionPane.showInputDialog( " Masukan Nilai UAS ( 1 - 100 ) = " );
        
        nilaitugas = Float.parseFloat(datatugas);
        nilaiuts = Float.parseFloat(datauts);
        nilaiuas = Float.parseFloat(datauas);
        
        hasil = (nilaitugas + nilaiuts + nilaiuas) / 3;
        
        if ( hasil < 30.0f){
            nilai = " Kamu mendapat nilai E ";
        }else if ( hasil < 55.0f){
            nilai = " Kamu mendapat nilai D ";
        }else if ( hasil < 70.0f){
            nilai = " Kamu mendapat nilai C ";
        }else if ( hasil < 80.0f){
            nilai = " Kamu mendapat nilai B ";
        }else {
            nilai = " Kamu mendapat nilai A ";
        }
        
        JOptionPane.showMessageDialog(null, " Hasil kamu adalah = "+hasil+"\ndan"+nilai);
    }                                        
    private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        int pilihan = JOptionPane.showConfirmDialog(null,
 "Apakah kamu ingin menutup Program?", "Tutup Program", JOptionPane.YES_NO_OPTION);
 if (pilihan == JOptionPane.YES_OPTION) {
 System.exit(0);
 }
    }                                        
    public static void main(String args[]) {
       
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new kalkulator().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JButton jButton7;
    private javax.swing.JButton jButton8;
    private javax.swing.JButton jButton9;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    // End of variables declaration                   
}
HASILNYA AKAN SEPERTI INI :
Tumblr media Tumblr media Tumblr media
Sampai di sini kamu tentu sudah tahu apa itu OOP mulai dari pengertian, prinsip, hingga kelebihan dan kekurangannya. Object oriented programming atau OOP adalah konsep pemrograman yang berorientasi pada objek atau data untuk mengatur sebuah desain program. Secara garis besar, cara kerja OOP yaitu membangun program dari gabungan objek-objek yang saling berhubungan dan disusun menjadi satu kesatuan.
Nah, itulah informasi yang dapat kami sampaikan seputar OOP. Semoga tulisan ini bermanfaat dan menambah wawasanmu! Semoga sukses ya!!
¬ KELOMPOK 2 ¬
4 notes · View notes