- 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.
- Keuntungan OOP
- 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. - Extensibility
Kemamouan untuk dapat diperluas. Setiap object dapat ditammbah kemampuannya (tentu kode-kode didalamnya) tampa menggangu object yang lainnya. - Reusability
Kemampuan untuk dapat digunakan kembali. Setiap object dapat dipakai dalam project yang lain jika diperlukan tanpa perlu penyesuaian yang berarti.
- Maintanability
- 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 .
- 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. - Istilah - istilah dalam Pemrograman Java
- Class
- Method :
- Atribut :
- Object :
- Contoh Program Java
Class adalah kumpulan data yang berisi fungsi-fungsi atau methodContoh Class MdlGlobal:
class MdlGlobal{
public int menuUtama()
{
........
}
static boolean handleUserInput(){
.......
}
static void LuasSegitiga()
{
........
}
}
Method adalah implementasi dari bagaimana bekerjanya suatu classContoh 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 adalah berbagai variable yang mengitari class dengan nilai datanya bisa ditentukan di object.
Contoh Atribut:Double luasSegitiga
String namaSiswa
String alamatSiswa
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 Mainpublic class main{
public static void main(String args[]){
// Membuat Object baru dari Class MdlGlobal
MdlGlobal mn=new MdlGlobal();
mn.menuUtama();
}
}
- Class Main.java
- Class MdlGlobal.java
- Class KeyIn.java
- Class Hitung.java
- Tampilan Program
import java.io.*; public class main{ public static void main(String args[]){ MdlGlobal mn=new MdlGlobal(); mn.menuUtama(); return; } }
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 {
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");
}
}
}
}
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;
}
}
Download Source
EmoticonEmoticon