makalah kelompok 3 pbo

51
KATA PENGANTAR Puji syukur kami panjatkan atas kehadirat Tuhan Yang Maha Esa, yang atas rahmat Nya lah kami dapat menyelesaikan tugas mata kuliah Pemrograman Berorientasi Objek. Dalam penyusunan makalah ini, tidak sedikit hambatan yang kami hadapi. Namun kami menyadari bahwa kelancaran dalam penyusunan makalah ini tidak lain berkat bantuan, dorongan dan bimbingan orang tua, sehingga kendala-kendala yang kami hadapi teratasi. Dalam penulisan makalah ini kami menyampaikan ucapan terima kasih yang tak terhingga kepada pihak-pihak yang membantu dalam menyelesaikan makalah ini, khususnya kepada : 1. Orang tua yang telah turut membantu, membimbing, dan mengatasi berbagai kesulitan sehingga tugas ini selesai. 2. Dosen Nahot Frastian, M.Kom, selaku Dosen Mata Kuliah Pemrograman Berorientasi Objek yang telah meluangkan waktu, tenaga dan pikiran dalam pelaksanaan bimbingan, pengarahan, dorongan dalam rangka penyelesaian penyusunan makalah ini. 3. Rekan-rekan semua di Kelas R5M Universitas Indraprasta Jurusan Teknik Informatika. 4. Semua pihak yang tidak dapat disebutkan satu persatu, yang telah memberikan bantuan dalam penulisan makalah ini. 1

Upload: jimmy-sembiring

Post on 17-Dec-2015

213 views

Category:

Documents


41 download

DESCRIPTION

mv,h

TRANSCRIPT

KATA PENGANTARPuji syukur kami panjatkan atas kehadirat Tuhan Yang Maha Esa, yang atas rahmat Nya lah kami dapat menyelesaikan tugas mata kuliah Pemrograman Berorientasi Objek.Dalam penyusunan makalah ini, tidak sedikit hambatan yang kami hadapi. Namun kami menyadari bahwa kelancaran dalam penyusunan makalah ini tidak lain berkat bantuan, dorongan dan bimbingan orang tua, sehingga kendala-kendala yang kami hadapi teratasi.

Dalam penulisan makalah ini kami menyampaikan ucapan terima kasih yang tak terhingga kepada pihak-pihak yang membantu dalam menyelesaikan makalah ini, khususnya kepada :

1. Orang tua yang telah turut membantu, membimbing, dan mengatasi berbagai kesulitan sehingga tugas ini selesai.

2. Dosen Nahot Frastian, M.Kom, selaku Dosen Mata Kuliah Pemrograman Berorientasi Objek yang telah meluangkan waktu, tenaga dan pikiran dalam pelaksanaan bimbingan, pengarahan, dorongan dalam rangka penyelesaian penyusunan makalah ini.

3. Rekan-rekan semua di Kelas R5M Universitas Indraprasta Jurusan Teknik Informatika.

4. Semua pihak yang tidak dapat disebutkan satu persatu, yang telah memberikan bantuan dalam penulisan makalah ini.

Akhirnya, kami berharap semoga Allah memberikan imbalan yang setimpal pada mereka yang telah memberikan bantuan dan dapat menjadikan semua bantuan ini sebagai ibadah, Amiin Yaa Robbal Alamiin.

Semoga materi ini dapat bermanfaat dan menjadi sumbangan pemikiran bagi pihak yang membutuhkan, khususnya bagi kami sehingga tujuan yang diharapkan dapat tercapai, Amiin.DAFTAR ISIKATA PENGANTAR1DAFTAR ISI

2BAB 1Pendahuluan51.1Latar Belakang51.2Rumusan Masalah51.3Tujuan

5BAB 2Struktur,Typedef,Union, Enumerasi, Bitfiels62.1Struktur62.1.1Deklarasi Struktur62.2Typedef72.3Uinon72.4Enumerasi82.4.1Deklarasi Emunerasi82.5Bitfiels82.6Implementasi Struct92.6.1Bentuk Umum92.6.2Implementasi92.7Member Operator132.7.1Operator Pada Java131. Operator Aritmatika132. Operator Penugasan133. Operator Pembandingan144. Operator Logika142.8Konsep Dasar Pointer

142.8.1Deklarsi Pointer152.8.2Pointer di dalam BahasaJava152.9Struktur Pointer Operator182.9.1Operator &182.9.2Operator *182.10Macam-macam Pointer191. Pointer Bertipe Void 192.Pointer Aritmetika 193.Pointer NULL 19BAB 3Konsep Pemrograman Berorintasi Objek213.1Pengertian (PBO)213.1.1Konsep Dasar213.2Enkapsulasi253.2.1Modularitas253.2.2Information Hiding253.3Inheritansi263.3.1Keuntungan dari inheritance263.4Polimorfisme273.5Overriding283.6Bahasa pemrograman29BAB 4 Program PrintOut30

4.1 Enkapsulasi30

4.2 Polimorfisme314.3 Inheritansi (Inheritance)35BAB 5Penutup375.1 Kesimpilan37DAFTER PUSTAKA38BAB 1PENDAHULUAN1.1 Latar belakang

Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Dalam paradigma ini, sesuai dengan model kehidupan nyata, segala bagian (entiti) dari suatu permasalahan adalah objek. Objek-objek ini kemudian dapat berupa gabungan dari beberapa objek yang lebih kecil.Begitu juga dengan sebuah program. Objek besar dapat dibentuk dengan menggabungkan beberapa objek-objek dalam bahasa pemrograman. Objek-objek tersebut berkomunikasi dengan saling mengirim pesan kepada objek lain.

1.2 Rumusan Masalah1. Apa pengertian, dari Pemrograman Berorientasi Objek?2. Apa konsep dasar dari PBO tersebut?3. Terbagi menjadi berapa Member Operator pada java?

4. Apa pengertian dari Struktur dan deklarasinya?

5. Apa pengertian dari Typedef dan deklarasinya?

6. Apa pengertian dari Enumerasi dan deklarasinya?

7. Apa pengertian dari Union dan deklarasinya?

8. Apa pengertian dari Bitfiels dan deklarasinya?

9. Apa pengertian dari Enkapsulasi, Inheritansi, Polimorfisme, dan Overriding?1.3 Tujuan1. Untuk mengetahui pengertian, Pemrograman Berorientasi Objek tesebut, Strukturnya,dan konsep serta deklarasinya2. Untuk mengetahui bagaimana cara mengimplementasikan konsep PBO tersebut!

3. Untuk mengetahui perbedaan dari konsep-konsep yang ada di Pemrograman Berorientasi Objek!BAB 2STRUKTUR, TYPEDEF, UNION, ENUMERASI, DAN BIT FIELDS2.1STRUKTUR

Struktur adalah sekumpulan variable yang masing-masing dapat berbeda tipe, dan dikelompokkan ke dalam satu nama. Struktur ini sering digunakan untuk mendefinisikansuatu record data yang disimpan didalam file.

Struktur termasuk ke dalam tipe data yang dibangkitkan (derived data type) yang disusun dengan menggunakan obyek tipe lain.2.1.1 Deklarasi StrukturStruct Nama_Struktur { elemen/tipe data struktrur ; } ;Contoh: struct mhs{

char*nama;

char*npm;

int uts, uas;

float akhir;

char mutu;

}Contoh : struct Data {

int tinggi ;

char alamat[30];

};

variable struktur dideklarasikan dengan : struct Nama_struktur Nama_variable;

Contoh : struct Data Dian, Andi;

// Dian dan Adi variable dari struct Data

Cara lain mendeklarasikan variable struktur adalah digabung dengan deklarasi struct dengan bentuk sebagai berikut :

struct Data { int tinggi;

char Alamat[30];

} Dian, Adi; 2.2TYPEDEF

Digunakan untuk mendefinisikan kembali suatu nama tipe data yang baru berdasarkan dengan tipe data yang lama. Contoh :

Typedef float Pecahan;

Pecahan Nilai;Akan membuat tipe data yang baru yaitu Pecahan yang ekivalen dengan tipe data float. Maka variabel Nilai bertipe pecahan sama dengan float Nilai ;

2.3UNION

Union merupakan tipe data yang dibangkitkan dimana anggota-anggotanya menggunakan secara bersama-sama ruang penyimpanan yang sama, berbeda dengan struktur yang masing-masing variable menempati lokasi memori yang berbeda. Jumlah byte yang digunakan untuk menyimpan union adalah sedikitnya cukup untuk menyimpan data terbesar yang ditangani. Oleh karena itu, tipe union ini digunakan untuk menangani satu, dua, atau tiga variable dengan tipe yang mirip. Sebagai contoh:

union nilaiujian {

int uts, uas;

float akhir;

}

2.4ENUMERASI

Enumerasi suatu tipe data yang mempunyai elemen-elemen bernilai konstatnta dengan urutan yang sudah tertentu.Nilai-nilai tersebut berupa nilai integer. Nama enumerasi boleh tidak ditulis jika tidak digunakan untuk enumerasi lain.

2.4.1 Deklarasi Enumerasienum Nama_tipe { elemen1,elemen2,};

Contoh :enum {Minggu, senin,selasa, rabu, kamis,jumat,sabtu}; printf(%d%d%d%d%d%d,minggu,senin,selasa,rabu,kamis,jumat,sabtu);

Output : 0123456

2.5BIT FIELDS

Operasi bit dengan bahasa C didasarkan pada suatu struktu yang mempunyai elemen-elemen berupa medan digit binary (bit field). Tiap bit field dapat ditentukan banyaknya bit yang akan diwakilinya, Pendeklasian bit filed sama seperti struktur. Bit filed hanya dapat didiklarasikan dengan tipe int, signed atau unsigned.

Contoh ;

struct tanggal { unsigned hari : 5;

unsigned bulan : 4;

unsigned tahun : 78; } ;

keterangan : elemen hari diberi nilai 5 bit berarti dapat mewakili 5 nilai 0 s/d 1 cukup untuk mewakili nilai hari dalam 1 bulan.2.6IMPLEMENTASI STRUCT

Setelah kita membahas tentangADT dan struct, sekarang akan dibahas beberapa contoh implementasi struct,Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain. Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri. Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct.

2.6.1 Bentuk umum:typedef struct{tipe_data;tipe_data;.... }

2.6.2 implementasitypedef struct Mahasiswa {char NIM[8];char nama[50];float ipk;};

untuk menggunakan structMahasiswadengan membuat variabelmhsdanmhs2seperti berikut:

Mahasiswa mhs,mhs2;

untuk menggunakan structMahasiswadengan membuat variabelarray m;

Mahasiswa m[100];

contoh lain:struct {char NIM[8];char nama[50];float ipk;} mhs;

Berarti kita sudah mempunyai variabelmhsyang bertipe data struct seperti diatas. Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data struct tersebut.Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.) misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut:

#include#include//Pendeklarasian tipe data baru struct Mahasiswatypedef struct Mahasiswa{ char NIM[9]; char nama[30]; float ipk; };int main(){

//Buat variabel mhs bertipe data Mahasiswa Mahasiswa mhs; printf("NIM = ");scanf("%s",mhs.NIM); printf("Nama = ");scanf("%s",mhs.nama); printf("IPK = ");scanf("%f",&mhs.ipk); printf("Data Anda : \n"); printf("NIM : %s\n",mhs.NIM); printf("Nama : %s\n",mhs.nama); printf("IPK : %f\n",mhs.ipk); getch();}contoh lain:#include#include#define phi 3.14//langsung dianggap variabel 'lingkaran'struct { float jari2; float keliling; float luas;} lingkaran;

void luasLingkaran()

{lingkaran.luas = lingkaran.jari2 * lingkaran.jari2 * phi;printf("\nLuas lingkaran = %f",lingkaran.luas);}

float kelLingkaran(float j){ return 2*phi*lingkaran.jari2;}

int main(){ printf("Jari-jari = ");scanf("%f",&lingkaran.jari2); luasLingkaran(); lingkaran.keliling = kelLingkaran(lingkaran.jari2); printf("\nKeliling lingkaran = %f",lingkaran.keliling); getch();}contoh struct yang berisi struct yang lain:#include#includetypedef struct Date{ int dd; int mm; int yyyy; }; typedef struct Time{ int h; int m; int s; }; typedef struct Login{ int ID; Date tglLogin; Time waktuLogin; };

int main(){ Login user1 printf("USER 1\n"); printf("ID : ");scanf("%d",&user1.ID); printf("Tanggal Login\n"); printf("Hari : ");scanf("%d",&user1.tglLogin.dd); printf("Bulan : ");scanf("%d",&user1.tglLogin.mm); printf("Tahun : ");scanf("%d",&user1.tglLogin.yyyy); printf("Waktu Login\n"); printf("Jam : ");scanf("%d",&user1.waktuLogin.h); printf("Menit : ");scanf("%d",&user1.waktuLogin.m); printf("Detik : ");scanf("%d",&user1.waktuLogin.s); printf("Terimakasih\n"); printf("Data Anda :\n"); printf("ID : %d\n",user1.ID); printf("Date : %d - %d - %d\n",user1.tglLogin.dd, user1.tglLogin.mm, user1.tglLogin.yyyy); printf("ID : %d:%d:%d\n",user1.waktuLogin.h, user1.waktuLogin.m, user1.waktuLogin.s); getch();}2.7MEMBER OPERATOR2.7.1Operator pada Java

Operator adalah sebuah karakter yang digunakan untuk menghasilkan suatu nilai dari operator.di java ada beberapa tipe operator, antara lain :

1. Operator Aritmatika

2. Operator Penugasan

3. Operator Pembanding

4. Operator Logika1. Operator Aritmatika

Operator aritmatika yang sering digunakan untuk menghitung sebuah pekerjaan matematika seperti jumlah, bagi, kali, pangkat, dll.

OperatorKeterangan

+Penjumlahan

-Pengurangan

*Pengurangan

/Pembagian

%SisaPembagian

2. Operator Penugasan

Operator penugasan adalah operator yang digunakan untuk menugaskan suatu fariabel untuk melakukan sebuah proses. Operator ini biasa digunakan pada perulangan sebagai increment atau decrement.

OperatorKeterangan

=PemberianNilai

+=PenambahanBilangan

-=PenguranganBilangan

/=PembagianBilangan

%PerolehanSisaPembagian

3. Operator Pembanding

Operator pembanding adalah operasi yang digunakan untuk membandingkan antara dua nilai atau operand yang menghasilkan tipe data Boolean yaitu true / false.biasa digunakan pada perulangan dan kondisional.

OperatorKeterangan

==SamaDengan

!=TidakSamaDengan

>Lebihdari

=Lebihdarisamadengan

data2)? data1 : data2;}}Constructor : sebuah tipe khusus dari method yang digunakan untuk membuat dan menginisialisasi sebuah object baru. Ingat bahwa constructor bukan member (yaitu atribut, method atau inner class dari sebuah object).

Contohnya :class DeklarasiKonstruktor{private int data;public DeklarasiKonstruktor(){data = 100;}DeklarasiKonstruktor (int data){this.data = data;}Package : menunjuk pada pengelompokkan class dan/atau subpackages. Strukturnya dapat disamakan dengan direktorinya.Contohnya :package registrasi.reports;import registration.processing.*;import java.util.List;import java.lang.*;class Kelasku{3.2ENKAPSULASI

Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.Manfaat dari proses enkapsulasi adalah :

3.2.1Modularitas

Kode sumber dari sebuah objek dapat dikelola secara independen dari kode sumber objek yang lain.

3.2.2Information Hiding

Karena kita dapat menentukan hak akses sebuah variabel/method dari objek, dengan demikian kita bisa menyembunyikan informasi yang tidak perlu diketahui objek lain.Contoh programBelajar.java

class belajar{public String x =Pintar;private String y = Java;}Pintar.Javapublic class Pintar{public static void main(String[]args){Coba panggil = new Belajar();System.out.println(Panggil X : +panggil.x);System.out.println(Panggil Y : +panggil.y);}}Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.

3.3INHERITANSI

Merupakan proses mencipatakan kelas baru dengan mewarisi karakteristik kelas yang telah ada, atau pewarisan dari satu kelas ke kelas lain. Pewarisan adalah mekanisme ampuh yang memungkinkan kelas mewarisi fungsionalitas kelas yang telah ada.Untuk menciptakan kelas baru, hanya perlu menspesifikasikan cara kelas baru itu berbeda dari kelas yang telah ada.3.3.1Keuntungan dari inheritance :1. Tidak perlu mendefinisikan Variabel Bila membutuhkan , Cukup menurunkan dari class induk2. Memudahkan dan Mempercepat pemprogramman , mengurangi Code

public class A

{

public A() { }

}

public class B : A

{

public B() { }

}3.4POLIMORFISME

Kata polimorfisme yang berarti satu objek dengan banyak bentuk yang berbeda, adalah konsep sederhana dalam bahasa pemrograman berorientasi objek yang berarti kemampuan dari suatu variabel referensi objek untuk memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe objeknya. Kondisi yang harus dipenuhi supaya

polimorfisme dapat diimplementasikan adalah :

1. Method yang dipanggil harus melalui variabel dari basis class atau superclass.

2. Method yang dipanggil harus juga menjadi method dari basis class.

3. Signature method harus sama baik pada superclass maupun subclass.

4. Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.

public class BaseClass

{

public void DoWork() { }

public int WorkField;

public int WorkProperty

{

get { return 0; }

}

}

public class DerivedClass : BaseClass

{

public new void DoWork() { }

public new int WorkField;

public new int WorkProperty

{

get { return 0; }

}

}3.5OVERRIDING

Overriding menyatakan keadaan dimana method pada subclass menolak method pada parent classnya. Overriding dipakai saat kita menggunakan method yang sama tapi berbeda implementasinya. Jadi overriding method mempunyai nama method yang sama,Contoh:

class Kendaraan{

public String getJenis(){

System.out.println(Harga BBM turun);

}

}

class Motor extends Kendaraan{

public String getJenis(){

System.out.println(Harga BBM premium 4000 rupiah);

}

}3.6Bahasa pemrograman

Bahasa pemrograman yang mendukung OOP antara lain:

1. Visual Foxpro2. Java3. C++4. Pascal

5. PHP6. Delphi7. DLLBAB 4

PROGRAM PRINT OUT4.1Enkapsulasi

4.2Polimorfisme

4.3Inheritansi (Inheritance)

BAB 5PENUTUP

5.1Kesimpulan

Struktur adalah pengelompokan variabel-variabel yang bernaung dalam satu nama yang sama, namun tipe datanya tidak harus sama. Variabel-variabel yang membentuk suatu struktur, selanjutnya disebut sebagai elemen dari struktur atau field. Suatu struktur didefinisikan dengan menggunakan kata kunci struct. Elemen dari suatu variabel struktur dapat diakses dengan menyebutkan nama variable struktur diikuti dengan operator titik (.) dan nama dari elemen strukturnya.

Sebuah struktur juga bisa diinisialisasi pada saat dideklarasikan. Hal ini serupa dengan inisialisasi array, yaitu elemen-elemennya dituliskan di dalam sepasang kurung kurawal ({ }) dengan masing-masing dipisahkan dengan koma. Elemen-elemen dari suatu array juga dapat berbentuk sebuah struktur (array of struct). Melewatkan sebuah struktur untuk menjadi parameter sebuah fungsi dapat dilakukan sama dengan pengiriman parameter berupa variabel biasa. Fungsi yang mendapat kiriman parameter tersebut juga bisa mengirimkan hasil baliknya yang juga berupa sebuah struktur (pass by reference).

Jika sebuah struktur mengandung banyak field dan diputuskan bahwa keseluruhan field-nya akan diubah oleh fungsi, maka cara yang efisien adalah dengan melewatkan (passing) alamat dari struktur. Dengan demikian pada pendefinisian fungsi, parameter formalnya berupa pointer yang menunjuk ke struktur (pointer to struct).

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. DAFTAR PUSTAKA

Read more: http://jintoples.blogspot.com/2012/12/tipe-tipe-operator-pada-java.html#ixzz2fIRaxFEmhttp://www.google.comhttp://www.ilmukomputer.com/pemrograman-berorientasi-objek/4