Minggu, 31 Agustus 2014

OBJECT ORIENTED PROGRAMMING

java_oop


  1. Pengertian OOP

    OOP (object-oriented programming atau pemrograman berorientasi objek) adalah metode pemrograman dimana kode-kode program dibuat dalam bentuk object-object atau kelas-kelas sehingga mempermudah dan mempercepat developer atau pengembang dalam membuat aplikasi. Jika dibandingkan dengan pemrograman prosedural pemrograman yang berorientasi pada object lebih flexsible karena pada pemrograman prosedural pengembang harus memperhatikan urutan-urutan dan cara penulisan program. Sedangkan pemrograman yang berorintasi pada obeject semua atribut, prosedur dan fungsi dibungkus dalam objek. Interaksi tiap data, prosedur dan fungsi dilakukan melalui objek. Pembrograman prosedural biasanya digunakan untuk mengembangkan aplikasi yang berskala kecil sedangkan pemrograman berorientasi pada object digunakan untuk mengembangkan aplikasi yang besar dan rumit.


  2. Keuntungan OOP

    1. Maintanability

      Mudah di kelola karena kita dengan mudah menemukan sumber kesalah untuk kemudian diperbaiki. Misalnya  yang rusak adalah penglihatan, tentu yang diperbaiki adalah mata bukan object yang lain (di analofikan dengan tubuh manusia,dimana disetiap bagian tubuh adalah object). Hal ini karena setiap object memiliki fungsi dan kegunaan yang berbeda degan object lainnya.

    2. Extensibility

      Kemamouan untuk dapat diperluas. Setiap object dapat ditammbah kemampuannya (tentu kode-kode  didalamnya) tampa menggangu object yang lainnya.

    3. Reusability

      Kemampuan untuk dapat digunakan kembali. Setiap object dapat dipakai  dalam project yang lain jika diperlukan tanpa perlu penyesuaian yang berarti.

  3. Karakteristik OOP

    • Encapsulation (pembungkusan): Encapsulation adalah mekanisme pemrograman yang membungkus kode dan data yang dimanipulasi dan menjaganya supaya terhindar dari interferensi dan penggunaan yang tidak perlu. Salah satu caranya dengan membentuk objek.

    • Inheritance (pewarisan) : Suatu class dapat mewariskan atribut dan method kepada class lain (subclass) serta membentuk kelas hierarchy 

    • Polymorphism (polimorfisme –perbedaan bentuk) : Suatu obect dapat memiliki berbagai bentuk, sebagai object dari classnya sendiri atau object dari superclassnya. Ada dua Polymorphism yaitu Overloading dan Overriding.
      • Overloading adalah penggunan satu nama untuk beberapa method yang berbeda (beda parameter).
      • Overriding terjadi ketika deklarasi method subclass dengan nama parameter yang sama dengan method dari superclassnya .
     
  4. Contoh bahasa pemrograman yang mendukung OOP
    Java adalah salah satu bahasa pemrograman yang mendukung Object Oriented Programmming selain itu ada bahasa lain yang juga mendukung OOP yaitu C++, Visual Basic.NET, Ruby, Python, PHP, C#, Delphi dll.

  5.  Istilah - istilah dalam Pemrograman Java
    • Class

    • Class adalah kumpulan data yang berisi fungsi-fungsi atau method
      Contoh  Class MdlGlobal:
      class MdlGlobal{

          public int menuUtama()
          {
             ........
          }

           static boolean handleUserInput(){
              
              .......
          }

          static void LuasSegitiga()
          {
              ........
          }
      }


    • Method :

    • Method adalah implementasi dari bagaimana bekerjanya suatu class
      Contoh Pemanggilan Method
      public class Hitung{
          // Method Lus Lingkaran
          public static double luas_lingkaran(int jari){

          //  double luas   contoh atribut
              double luas=3.14*jari*jari;

              return luas;

          }

          public static void main(String[]args){

              int jari_jari=10;

              double hasil_luas

          //  Contoh Pemanggilan Method
              hasil_luas=luas_lingkaran(jari_jari);

              System.out.println("LUAS LINGKARAN="+hasil_luas);

          }
      }


    • Atribut :

    • Atribut adalah berbagai variable yang mengitari class dengan nilai datanya bisa ditentukan di object.
      Contoh Atribut:
      Double luasSegitiga

      String namaSiswa

      String alamatSiswa

    •  Object :

    • Object adalah Instance representasi nyata dari class
      Contoh membuat Object:
      Misalnya ada Class MdlGlobal

      class MdlGlobal{
        public int menuUtama()
        {
           ........
        }

         static boolean handleUserInput(){
           
            .......
        }

        static void LuasSegitiga()
        {
            ........
        }
    }

      Class Main

    public class main{
       public static void main(String args[]){

            // Membuat Object baru dari Class MdlGlobal

            MdlGlobal mn=new MdlGlobal();
            mn.menuUtama();
          
      }
    }

  6. Contoh Program Java
  • Class Main.java

  • import java.io.*; public class main{ public static void main(String args[]){ MdlGlobal mn=new MdlGlobal(); mn.menuUtama(); return; } }
  • Class MdlGlobal.java

  • class MdlGlobal{

        public int menuUtama()
        {
           boolean tr=true;
            while (tr){
                    //Pemanggilan method handleUserInput atau method untuk MAIN MENU
                tr=handleUserInput();
            }
            return 0;
        }

         static boolean handleUserInput(){
              int swValue;
              System.out.println("");
              System.out.println("");
              System.out.println("==================================");
              System.out.println("|           MAIN MENU            |");
              System.out.println("==================================");
              System.out.println("|                                 |");
              System.out.println("|    1. Menghitung Luas Persegi   |");
              System.out.println("|    2. Menghitung Luas Segitiga  |");
              System.out.println("|                                 |");
              System.out.println("|    0. Keluar                    |");
              System.out.println("|                                 |");
              System.out.println("===================================");
              swValue = KeyIn.inInt(" Select option: ");

              // Switch construct
              switch (swValue) {
                  case 1:
                      LuasPersegi();
                      break;
                  case 2:
                        LuasSegitiga();
                      break;
                  case 0:
                      System.out.println("Keluar dari program!");
                      return false;
                  default:
                      System.out.println("Angka yang di input salah!");
                      break;
              }

              return true;
        }

        static void LuasSegitiga()
        {

            int A=0;
            int T=0;
            boolean SG=true;
            int ilop=0;
            while (SG)
            {
                System.out.println("");
                System.out.println("");
                System.out.println("==================================");
                System.out.println("|    HITUNG LUAS SEGITIGA (CM)    |");
                System.out.println("==================================");
                A = KeyIn.inInt(" Masukkan Alas Segitiga: ");
                T = KeyIn.inInt(" Masukkan Tinggi Segitiga : ");

                hitung luasSGA=new hitung();
                System.out.println("");
                                                        //Pemanggilan method
                System.out.println("Luas Segitiga = "+luasSGA.LuasSegitiga(A,T)+ " CM KUADRAT");
                System.out.println("=============================================");
                System.out.println("");
                ilop=1;
                while (ilop>0)
                {
                    ilop=KeyIn.inInt(" Ulangi lagi..? (0:Tidak / 1:Iya) : ");
                    if (ilop==1){
                        SG=true;
                        ilop=0;
                    }else if (ilop<=0){
                        SG=false;
                        ilop=0;
                    }else{
                        System.out.println("Angka yang di input salah!");
                        ilop=1;
                    }
                }
            }
        }


            static void LuasPersegi()
            {

                int P=0;
                int L=0;
                boolean SG=true;
                int ilop=0;
                while (SG)
                {
                    System.out.println("");
                    System.out.println("");
                    System.out.println("==================================");
                    System.out.println("|HITUNG LUAS PERSEGI PANJANG  (CM)|");
                    System.out.println("==================================");
                    P = KeyIn.inInt(" Masukkan Panjang : ");
                    L = KeyIn.inInt(" Masukkan Lebar  : ");

                    hitung luasSGA=new hitung();
                    System.out.println("");
                    System.out.println("Luas Persegi Panjang = "+luasSGA.LuasPersegi(P,L)+ " CM KUADRAT");
                    System.out.println("=============================================");
                    System.out.println("");
                    ilop=1;
                    while (ilop>0)
                    {
                        ilop=KeyIn.inInt(" Ulangi lagi..? (0:Tidak / 1:Iya) : ");
                        if (ilop==1){
                            SG=true;
                            ilop=0;
                        }else if (ilop<=0){
                            SG=false;
                            ilop=0;
                        }else{
                            System.out.println("Angka yang di input salah!");
                            ilop=1;
                        }
                    }
                }
        }
    }
  • Class KeyIn.java


  • class KeyIn {
        public static void printPrompt(String prompt) {
            System.out.print(prompt + " ");
            System.out.flush();
        }

        public static void inputFlush() {
            int dummy;
            int bAvail;

            try {
                while ((System.in.available()) != 0)
                    dummy = System.in.read();
            } catch (java.io.IOException e) {
                System.out.println("Input error");
            }
        }

        public static String inString(String prompt) {
            inputFlush();
            printPrompt(prompt);
            return inString();
        }

        public static String inString() {
            int aChar;
            String s = "";
            boolean finished = false;

            while (!finished) {
                try {
                    aChar = System.in.read();
                    if (aChar < 0 || (char) aChar == '\n')
                        finished = true;
                    else if ((char) aChar != '\r')
                        s = s + (char) aChar; // Enter into string
                }

                catch (java.io.IOException e) {
                    System.out.println("Input error");
                    finished = true;
                }
            }
            return s;
        }

        public static int inInt(String prompt) {
            while (true) {
                inputFlush();
                printPrompt(prompt);
                try {
                    return Integer.valueOf(inString().trim()).intValue();
                }

                catch (NumberFormatException e) {
                    System.out.println("Invalid input. Not an integer");
                }
            }
        }

        public static char inChar(String prompt) {
            int aChar = 0;

            inputFlush();
            printPrompt(prompt);

            try {
                aChar = System.in.read();
            }

            catch (java.io.IOException e) {
                System.out.println("Input error");
            }
            inputFlush();
            return (char) aChar;
        }

        public static double inDouble(String prompt) {
            while (true) {
                inputFlush();
                printPrompt(prompt);
                try {
                    return Double.valueOf(inString().trim()).doubleValue();
                }

                catch (NumberFormatException e) {
                    System.out
                            .println("Invalid input. Not a floating point number");
                }
            }
        }
    }

  • Class Hitung.java

  • public class hitung{

        //declarasi variable
        int mulaihitung=0;

        public int LuasPersegiPanjang(int intPanjang, int intLebar){ ////method
               mulaihitung= intPanjang * intLebar;
            return mulaihitung;
        }

        public int LuasSegitiga(int intA, int intT){ //method
                   mulaihitung= (intA * intT)/2;
                return mulaihitung;
        }

        public int LuasPersegi(int intA, int intT){
                       mulaihitung= (intA * intT);
                    return mulaihitung;
        }
    }
  • Tampilan Program

  • java_oop

Download Source

Artikel Terkait


EmoticonEmoticon