Tugas OOP / PBO

Rina Marliana
2 view / 2263 show
3 years ago
Education

Pengertian OOP

Pemrograman Berorientasi Obyek (Object Oriented Programming – OOP) adalah programming paradigm yang menggunakan obyek dan interaksinya untuk merancang aplikasi dan program komputer. Sebelum membahas apa itu OOP kita bahas terlebih dahulu apa itu Objek ? Objek adalah sesuatu yang ada dimuka bumi ini, tapi objek yang dimaksud dalam OOP adalah sesuatu yang memiliki atribut (karakteristik) dan method (cara). Dalam OOP kita juga mengenal istilah yang disebut dengan Class. Class adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu dimana didalamnya terdapat atribut dan method. Tujuan dari OOP itu sendiri yaitu untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dikehidupan sehari-hari.

Ada beberapa konsep pemrogramman berorientasi objek diantaranya :

 

  1. Abstraksi

Abstraction atau disebut juga composition merupakan prinsip penyederhanaan dari sesuatu yang kompleks dengan cara memodelkan kelas sesuai dengan masalahnya.

 

  1. Polymorphism

Polymorphism mungkin merupakan konsep pemrograman beroerientasi obyek yang paling sulit dimengerti. Arti dari polymorphism adalah kemampuan dari suatu obyek untuk mempunyai lebih dari satu bentuk. Atau dalam pengertian lain adalah kita dapat menerapkan sesuatu hal yang berbeda melalui suatu cara yang sama. Sebagai contoh manusia untuk bergerak ketempat tujuannya menggunakan kaki dengan berjalan sedangkan burung menggunakan sayapnya untuk terbang.

 

  1. Inheritance

Inheritance atau pewarisan adalah prinsip pewarisan sifat dari orang tua ke anak atau turunannya yang diterapkan pada kelas. Orang tua memiliki atribut dan method yang lebih umum dibandingkan dengan anak atau turunannya.

 

  1. Enkapsulasi

Prinsip Encapsulation adalah prinsip penyembunyian detil dari sebuah kelas terhadap obyek yang berinteraksi terhadapnya.

 

 

 

Manfaat OOP

  • Hemat dalam penulisanDalam pemrograman prosedural, penggunaan kode2 untuk operasi yang sama bisa sangat melelahkan (bikin tangan capek euy :) ), tetapi jika dengan oop, operasi-operasi yang sama tersebut bisa dikurangi dengan menggunakan fungsi-fungsi. Jadi, dengan membuat satu fungsi, kita kemudian bisa menggunakannya berkali-kali. Jauh lebih nyaman kan?
  •  Deteksi Error.  Tidak ada yang sempurna di dunia ini, apalagi itu program buatan manusia.  Pasti ada errornya.  Kalau di prosedural, kita harus mendeteksi error ini berdasarkan error line tetapi yang menjadi adalah error terjadi mungkin bisa karena konflik antar operasi, alur yang salah, dll..Nah di prosedural, hal ini berarti kita harus menceknya satu persatu. Jika line errornya di line 40 bisa saja kita harus mencek line 30-39 atau mungkin lebih.  Dengan oop, dimana operasi-operasi dibedakan berdasarkan class dan fungsi, kita hanya mencari fungsi-fungsi yang saling berkaitan, dan tentunya hal ini akan jauh lebih menghemat waktu.
  • Update.  Mungkin suatu saat kita ingin mengupdate aplikasi kita, dengan prosedural caranya gmn? Yah ganti aja semua kode selesai masalah :) . Dengan oop, kita bisa melakukannya dengan mengganti beberapa class atau mungkin bisa hanya dengan mengganti satu class. Bagaimana bisa? Jika kita menggunakan sistem pemrograman dengan menggunakan inheritance (pewarisan), kita hanya perlu mengganti class induk, contoh: class b,c,d semuanya merupakan turunan dari class a, jadi jika kita ingin mengupdate program kita, kita hanya perlu merubah class a ini, sedangkan class b,c,d pasti akan langsung mengikuti perubahan tersebut.
  •  Loading.inkan kita untuk mendefinisikan sebuah system besar dan kompleks menggunakan set yang lebih kecil dari objek yang saling terkait.
  • Dengan merancang aplikasi menggunakan objek, berarti kita telah menerapkan permodelan yang mendekati kehidupan nyata. Hal ini memungkinkan desain program kita menjadi lebih alamiah, yang memungkinkan kita untuk bekerja lebih intuitif.
  • Konsep ini member kita sebuah kosa kata/ vocalbulary, sehingga kita dapat lebih efektif mendiskusikan system atau aplikasi dengan rekan kerja kita(jauh lebih mudah untuk membahas fungsi yang berada dalam modul kode umum).
  • Class memiliki sifat mereka sendiri (property), method, dan event terintegrasi atau dikenal dengan istilah di-encapsulation, sehingga mereka umumnya mendiri. Ini membuat kode kita lebih teratur dan lebih mudah di-maintain.
  • Adanya encapsulasi berarti penggunaan kembali kode menjadi mudah, karena kita cukup menyalin kelas template dan perubahan akan secara otomatis tercermin dalam setiap kelas yang mewarisi dari kelas dasar yang tellah kita ubah. Hal ini bermanfaat ketika berbagi/ sharing kode dengan orang lain, atau ketika menggunakan kembali kode dari proyek-proyek lama, sehingga berimplikasi padda penghematan biaya dan waktu.

 

Cara membuat Class dan Method

  • Contoh penggunaan Class

{

class Bangunan

{

public int lantai, pintu, tangga, p, l;

public int luas()

{

return p * l;

}

}

}

 

  • Contoh Method

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Calculator
{
    class Program
    {
        static void Main(string[] args)
        {
            string c;
            double a, b, d;
            Console.Read();
            Console.WriteLine("Ini adalah Contoh Aplikasi Perhitungan");
            Console.Read();
            Console.WriteLine("Masukan angka pertama");
             a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Nilai pertama yang telah dimasukan adalah " + a);
            Console.ReadLine();
            Console.WriteLine("Masukan angka kedua");
            b = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Nilai b yang telah dimasukan adalah " + b);
            Console.ReadLine();
            Console.WriteLine("Masukan operator perhitungan +,-,*,/");
            c = Console.ReadLine();
            //Pemilihan operator
            switch (c)
            {
                case "+":
                    d = a+b;
                    break;

                case "-":
                    d = a - b;
                    break;

                case "*":
                    d=a*b;
                    break;

                case "/":
                    d=a/b;
                    break;

                default:
                    d = 0;
                    break;
            };

            Console.WriteLine("{0} {1} {2} = {3}", a, c, b, d);
            
           
            
            //stop
            Console.ReadLine();

        }
    }
}

  • Contoh Class dan Method dalam Kalkulator

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace kalkulator
{
    class rumus
    {
        //rumus tambah
        public int tambah(int a,int b)
        {
            return a + b;
        }
        //rumus kurang
        public int kurang(int a, int b)
        {
            return a - b;
        }
        //rumus kali
        public int kali(int a, int b)
        {
            return a * b;
        }
        //rumus bagi
        public int bagi(int a, int b)
        {
            return a / b;
        }
        //rumus mod
        public int mod(int a, int b)
        {
            return a % b;
        }
        //rumus persen
        public int persen(int a, int b)
        {
            return a / b * 100;
        }
       
    }
    class Program
    {
        static void Main(string[] args)
        {


            double Hasil;
            float a, b;
            string c;
            
            rumus tambah = new rumus();
            Console.WriteLine("|| Aplikasi Kalkulator Sederhana ||");
            Console.ReadLine();
            Console.WriteLine("\nMasukan Angka pertama :");
            a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("\nMasukan Angka kedua :");
            b = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("\nPilih Operator +,-,/,*,Mod,%");
            c = Console.ReadLine();
            Console.WriteLine("\nPerhitungannya  :");
            switch (c)
            {
                case "+":
                    Hasil =tambah.tambah();
                    break;
                case "-":
                    Hasil =tambah.kurang();
                    break;
                case "/":
                    Hasil =tambah.bagi();
                    break;
                case "*":
                    Hasil = tambah.kali();
                    break;
                case "Mod":
                    Hasil = tambah.mod();
                    break;
                case "%":
                    Hasil = tambah.persen();
                    break;

                default: Hasil = 0;
                    break;
            }
            Console.WriteLine("\n{0} {1} {2} = {3}", a, c, b, Hasil);
            Console.ReadLine();

        }
    }
}

Share On :