Pemrograman Berorientasi
Objek
Menggunakan C#-Java
Matakuliah Inti Prodi
Puji syukur kepada Allah atas limpahan rahmatNya kepada punulis, hingga
akhirnya penulis dapat merampungkan bahan ajar mahasiswa dalam bentuk
modul ajar atau diktat. Modul ini dirancang untuk membantu mahasiswa
dalam memahami konsep dan praktis algoritma pemrograman komputer
secara umum, dan secara khusus Pemrograman Berorientasi Objek.
Modul ini disusun dari dasar hingga akhir sesuai dengan silabus yang
dirancang untuk memperkaya referensi mahasiswa dalam memahami konsep
dan praktis pemrograman berorientasi objek. Tentu saja keberadaan modul
akan menjadi sangat bermanfaat jika mahasiswa membaca dan
menerapkannya secara mandiri diluar perkuliahan.
Harapan penulis dengan dirancangkannya modul ini adalah tercapainya
kompetensi pengetahuan dan praktis pemrograman berorientasi objek oleh
mahasiswa, karenanya praktek mandiri harus lebih diperbanyak untuk
memenuhi capaian pembelajaran.
Penulis juga berterimakasih kepada Dekan Fakultas Ilmu Komputer UPP,
secara khusus ketua Program Studi Sistem Informasi atas dukungan dan
bimbingannya, serta rekan dosen yang tidak disebutkan satu-persatu,
sehingga penulis bersemangat dalam melakukan tugas penulisan modul ini.
Rancangan modul ini mungkin terlalu sederhana dan banyak kekurangan
baik dari sisi konten, struktur penulisan hingga modelnya. Pengembangan
dan revisi akan terus diupayakan untuk meningkatkan kualitas dan mutunya
dimasa mendatang. Akhirnya kepada pembaca penulis mohon maaf atas
segala kekurangan, dan kepada Allah penulis mohon ampun. Demikian
pengantar ini, penulis sampaikan alhamdulillahirabbil’alamiin.
Wassalamu’alaikum warahmatullahi wabarakaatuh.
1
BAB I
PENDAHULUAN
Objek adalah benda, baik yang berwujud nyata seperti yang dijumpai
dalam kehidupan kita, maupun yang tidak nyata seperti halnya berupa sistem atau
konsep. Dalam OOP (Object Oriented Programming). Object adalah unit terkecil
pemrograman yang memiliki data (sifat karakteristik) dan fungsi.
Contoh: Pena yang kita pegang untuk menulis, mobil/motor yang kita
kendarai saat bepergian, kue yang kita makan, kucing yang kita pelihara,
telefon yang kita gunakan untuk berkomunikasi, kesemuanya adalah benda
nyata dan merupakan objek. Pembayaran tagihan melalui internet, sistem antrian
tiket di bioskop, penyimpanan uang di bank, atau pengendalian komunikasi data
pada port I/O komputer, meskipun bukan benda nyata, namun kesemuanya juga
merupakan objek.
Bagi anda yang pernah mempelajari bahasa pemrograman lain seperti
Delphi, Visual Basic atau Visual C, pada saat mendesain layout grafis user
interface tentulah tidak asing lagi dengan komponen CommandButton, EditText,
Label, MessageBox, ProgressBar dan lain sebagainya. Ini semua juga merupakan
objek. Masing-masing komponen memiliki data atau yang biasa dikenal sebagai
properties, dan juga fungsi (method).
1.1.Tujuan Pembelajaran
a. Memahami konsep Pemrograman Berbasis Obyek atau Object Oriented
Programming (OOP)
b. Memahami perbedaan antara pemrograman OOP dengan pemrograman
prosedural
b. Pemrograman OOP
Fungsi dan data menjadi satu kesatuan yang disebut obyek
Obyek-obyek dalam OOP bersifat aktif
1
Cara pandang : program bukan urut-urutan instruksi tapi diselesaikan
oleh obyek-obyek yang bekerjasama untuk menyelesaikan masalah
Sehingga dapat ditarik kesimpulan perbedaan antara prosedural dan OOP, yaitu :
a. Prosedural
Fokus pada bagaimana cara komputer menangani masalah.
b. OOP
Fokus pada masalah yang ditangani dengan menggunakan komputer
1.3.Tentang Obyek
a. Apa yang dimaksud Obyek
Semua hal yang ada dalam dunia nyata, baik konkrit maupun abstrak
Contoh obyek konkrit : rumah, sekolah, dosen, mahasiswa, dll.
Contoh obyek abstrak : mata kuliah, penjadwalan, dll.
1.4.Tentang Class
Kelas adalah wadah yang berisi abstraksi (pemodelan) dari suatu objek
(benda), yang mendeskripsikan data (sifat karakteristik) dan fungsi yang dimiliki
oleh objek tersebut. Karena kelas merupakan wadah yang akan digunakan untuk
menciptakan objek, jelaslah bahwa kita harus membuat kelas terlebih dahulu
sebelum membuat objek.
Hubungan antara kelas dan objek dapat diilustrasikan sebagai resep kue
dengan kue-nya, di mana resep kue adalah kelas dan kue adalah objeknya.
Sebelum membuat kue, kita harus membaca dan mempelajari resep kue tersebut
terlebih dahulu. Di dalam resep disebutkan data mengenai kue, yaitu bahan-
bahan yang diperlukan serta fungsi-fungsi yaitu bagaimana cara mengolah
bahan tersebut hingga menjadi kue yang siap disajikan. Pada OOP, kita tidak
hanya
menggunakan resep kue yang sudah ada untuk membuat kue, namun juga
menciptakan resep-resep kue yang baru sesuai selera kita. Oleh sebab itu, yang
menjadi fokus dalam OOP adalah bagaimana menciptakan dan mendefinisikan
kelas yang kelak menjadi wadah untuk membuat objek-objek.
Suatu kelas dapat dibuat sebagai kelas yang benar-benar baru, atau dapat
juga dibentuk dari kelas yang sudah ada. Baru di sini dalam pengertian, semua
data dan method yang dimiliki oleh kelas tersebut kita deskripsikan dan buat
2
sendiri. Sedangkan bila membentuk dari kelas yang sudah ada, bermakna kita
menggunakan data dan method yang telah dideskripsikan dalam
suatu kelas acuan (fundamen). Proses pembentukan kelas baru dari kelas yang
sudah ada disebut sebagai pewarisan (inheritance). Kelas yang menjadi basis bagi
pembentukan kelas lainnya disebut sebagai Kelas Super, sedangkan kelas yang
terbentuk dinamakan Kelas Sub.
Proses pewarisan ini akan menghasilkan suatu hierarki kelas. Kelas yang
terletak pada puncak hierarki disebut sebagai Kelas Abstrak. Sifat dari kelas
abstrak adalah, ia hanya berisi deskripsi data dan method yang sangat umum,
sehingga tidak mungkin diimplementasikan secara terperinci. Oleh sebab itu, kelas
abstrak ini tidak dapat langsung diinstansiasi menjadi objek.
Sebagai ilustrasi, tinjaulah hierarki kelas dari Kelas Hewan Darat Berkaki
Empat yang memiliki objek (instans) berupa sapi, anjing, harimau, kuda, dan
kucing. Kelas tersebut dihasilkan dari pewarisan kelas Hewan Darat, yang
merupakan kelas sub dari Kelas Hewan, dan seterusnya sampai ke puncak kelas,
yakni Kelas Mahluk Hidup. Dalam ilustrasi ini, Kelas Mahluk Hidup adalah
kelas abstrak. Kita tidak mungkin menginstans objek-objek tersebut langsung
dari Kelas Mahluk Hidup, karena ia hanya mengandung deskripsi data dan
method yang sangat umum. Data bisa berupa organ-organ tubuh, sedangkan
method berupa bernafas, makan, menghasilkan keturunan, dan sebagainya.
3
Di dalam class dideklarasikan variabel dan method yang dimiliki oleh
obyek
Proses pembuatan obyek dari sebuah class disebut dengan instantiation
Jadi obyek merupakan hasil instansiasi dari class
Obyek disebut juga dengan instance
1.5.Tentang Atribut
a. Apa itu Atribut?
Atribut adalah data yang dapat membedakan antara satu obyek dengan
obyek yang lain.
Contoh untuk class mahasiswa terdapat obyek mahasiswa si A, dan obyek
mahasiswa si B. Yang membedakan antara obyek si A dan obyek si B
adalah NRP-nya yang merupakan atribut dari obyek tersebut.
2. Class Variable
Atribut yang dimiliki oleh semua obyek yang berasal dari class yang
sama
Semua obyek memiliki nilai class variable yang sama
Jadi semua obyek yang berasal dari class yang sama, nilai class
variable-nya harus sama
4
– Ekor : ada
Obyek pusi memiliki instance variable :
– Suara : meong
Obyek heli memiliki instance variable :
– Suara : guggug
Contoh :
class Mobil {String aktifitas, warna;
int kecepatan;
void cekKecepatan() {
if (kecepatan==0)
aktifitas=“parkir”;}
void cetakAtribut() {
System.out.println(“Aktifitas = “+aktifitas);
System.out.println(“Warna = “+warna);
System.out.println(“Kecepatan=“+kecepatan);
}}
5
1.6.Tentang OOP
a. Karakteristik OOP
Suatu program disebut dengan pemrograman berbasis obyek(OOP) karena
terdapat :
– Encapsulation (pembungkusan)
– Inheritance (pewarisan)
– Polymorphism (polimorfisme –perbedaan bentuk)
b. Encapsulation (Pembungkusan)
Variabel dan method dalam suatu obyek dibungkus agar terlindungi
Untuk mengakses, variabel dan method yang sudah dibungkus tadi
perlu interface
Setelah variabel dan method dibungkus, hak akses terhadapnya bisa
ditentukan.
Konsep pembungkusan ini pada dasarnya merupakan perluasan dari
tipe data struktur
d. Inheritance (Pewarisan)
Sebuah class bisa mewariskan atribut dan method-nya ke class yang
lain
Class yang mewarisi disebut superclass
Class yang diberi warisan disebut subclass
Sebuah subclass bisa mewariskan atau berlaku sebagai superclass bagi
class yang lain => disebut multilevel inheritance
e. Contoh Pewarisan
Class Nenek adalah superclass dari class Ibu
Class Ibu adalah superclass dari class Anak
Sebuah subclass memiliki beberapa kesamaan dengan superclass-nya,
dalam hal atribut/variabel dan method
yang dimilikinya
6
Contoh pewarisan yang lain : class kendaraan merupakan superclass
bagi class mobil, truk dan bis
h. Polimorphism (Polimorfisme)
Polimorfisme artinya penyamaran dimana suatu bentuk dapat memiliki
lebih dari satu bentuk
7
BABII PENGENALAN
JAVA
2.1 Tujuan
Pada BAB ini akan dibahas secara singkat tentang sejarah Javadan definisi
teknologiJava. BAB ini juga akan sedikit menyinggung tentang fase–fase dalam
programJava.
Pada akhir pembahasan, diharapkan pembaca dapat :
1. Menjelaskan fitur–fitur teknologi dari Java meliputi Java Virtual
Machine(JVM), garbage collection, dan code security.
2. Menjelaskan perbedaan fase pada pemrograman Java
8
konsumercerdas maka proyek Green harus menemukan pasar lain dari teknologi
yangdiciptakan. Pada saat yang sama, implementasi WWW dan Internet
sedangmengalami perkembangan pesat. Di lain pihak, anggota dari proyek Green
jugamenyadari bahwa Java dapat digunakan pada pemrograman internet,
sehinggapenerapan selanjutnya mengarah menjadi teknologi yang berperan di
web.Java telah mengakomodasi hampir seluruh fitur penting bahasa–
bahasapemrograman yang ada semenjak perkembangan komputasi modern
manusia :
1. Dari SIMULA, bahasa pada tahun 65-an, bahasa yang paling
mempengaruhiJava sekaligus C++. Dari bahasa ini diadopsi bentukan–
bentukan dasar daripemrograman berorientasi objek.
2. Dari LISP – bahasa tahun 55-an. Diadopsi fasilitas garbage collection,
sertakemampuan untuk meniru generic list processing, meski fasilitas ini
jarangyang memanfaatkannya.
3. Dari Algol – bahasa pada tahun 60-an, diambil struktur kendali
yangdimilikinya.
4. Dari C++, diadopsi sintaks, sebagian semantiks dan exception handling
5. Dari bahasa Ada, diambil strongly type, dan exception handling.
6. Dari Objective C, diambil fasilitas interface.
7. Dari bahasa SmallTalk, diambil pendekatan single-root class
hiérarchie,dimana object adalah satu kesatuan hirarki pewarisan
8. Dari bahasa Eiffel, fasilitas assertion yang mulai diterapkan di sebagian JDK
9
Terdapat dua komponen utama dari Deployment Environment. Yang
pertama adalahJRE, yang terdapat pada paket J2SDK, mengandung kelas–kelas
untuk semua paketteknologi Java yang meliputi kelas dasar dari Java, komponen
GUI dan sebagainya.Komponen yang lain terdapat pada Web Browser. Hampir
seluruh Web Browserkomersial menyediakan interpreter dan runtime
environment dari teknologi Java.
10
10
8. Portabel
Source code maupun program Java dapat dengan mudah dibawa ke
platformyang berbeda-beda tanpa harus dikompilasi ulang.
9. Performance
Performance pada Java sering dikatakan kurang tinggi. Namun
performanceJava dapat ditingkatkan menggunakan kompilasi Java lain seperti
buatanInprise, Microsoft ataupun Symantec yang menggunakan Just In
TimeCompilers (JIT).
10. Multithreaded
Java mempunyai kemampuan untuk membuat suatu program yang
dapatmelakukan beberapa pekerjaan secara sekaligus dan simultan.
11. Dinamis
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis.
Perubahanpada suatu class dengan menambahkan properties ataupun method
dapatdilakukan tanpa menggangu program yang menggunakan class tersebut.
11
11
programmer dan mengurangi atau mengeliminasisumber kesalahan terbesar yang
terdapat pada bahasa yang memungkinkan alokasidinamis.
12
12
Gambar 2.1: Fase dari sebuah Program Java
13
13
BAB III
MEMBUAT DANMENGAKSES CLASS
Pada bagian ini, kita akan membuat program berbasis obyek menggunakan bahasa
Java. Sebelum itu, hal yang pertama dilakukan adalah mempelajari terlebih dahulu
tentang pembuatan class.
14
14
Ketik nama project pada Project Name
Kemudian tentukan tempat penyimpanan pada tombol Browse…
Selanjutnya Klik Tombol Finish.
15
15
Gambar 3.4. Tampilan Windows New Java Class
Selanjutnya Ketik perintah pembuatan class pada Editor Gel pada Java.
Pembuatan class dilakukan pada baris setelah public class
16
16
argumen])
{ }
17
17
Atau obyek diletakkan di class lain dan dalam file yang berbeda
(ingat) : nama file sama dengan namaclass, dan hanya satu nama class
yangmemiliki modifier public
18
18
Gambar 3.9. Tampilan Hasil Kompilasi
19
Latihan 1
Listing Program
20
20
Hasil
Latihan 2
1. Pada percobaan 2 ini dibuat program yang hasilnya sama dengan Latihan 1
sebelumnya
2. Akan tetapi dibuat dari dua file terpisah, dengan nama Tulis.java dan
TesTulis.java
3. Pada TesTulis.java diciptakan obyek baru yang akan memanggil method
yang ada pada Tulis.java
Menjalankan program
Untuk menjalankan program, pertama Tulis.java dicompile saja tanpa di-run,
inidikarenakan Tulis.java merupakan class yang tidak berisi program utama
(public static void main)
Berikutnya, TesTulis.java dicompile lalu dijalankan.
Hasil running program :
21
21
Latihan 3
Program berikut mengimplementasikan class Mobil
Class Mobil memiliki atribut : aktifitas (parkir atau jalan-jalan), warna,
kecepatan
Class Mobil memiliki method :
– cekKecepatan jika kecepatan=0, maka aktifitas=parkir
– cetakAtribut mencetak semua nilai atribut
Listing program
class Mobil {
String aktifitas;
String warna;
intkecepatan;
void cekKecepatan() {
if (kecepatan==0)
aktifitas="parkir";
}
void cetakAtribut() {
System.out.println("Aktifitas = "+aktifitas);
System.out.println("warna = "+warna);
System.out.println("Kecepatan = "+kecepatan);
}
public static void main(String [] args) {
Mobil mobilku = new Mobil();
mobilku.kecepatan=0;
mobilku.warna="merah";
mobilku.cekKecepatan();
mobilku.cetakAtribut();
}
}
22
22
BAB IV
DASAR PEMROGRAMAN JAVA
Latihan 1
• Memberi komentar pada program
• Berikan komentar pada Class Mobil yang dibuat pada BAB sebelumnya
Listing Program
class Mobil {
// atribut
String aktifitas;
String warna;
int kecepatan;
// method untuk memeriksa kecepatan
void cekKecepatan() {
if (kecepatan==0)
aktifitas="parkir";
}
23
23
// method untuk mencetak atribut void
cetakAtribut() { System.out.println("Aktifitas =
"+aktifitas); System.out.println("warna =
"+warna); System.out.println("Kecepatan =
"+kecepatan);
}
public static void main(String [] args) {
// membuat obyek baru bernama mobilku
Mobil mobilku = new Mobil();
// memberi nilai awal pada atribut
mobilku.kecepatan=0;
mobilku.warna="merah";
// memeriksa kecepatan
mobilku.cekKecepatan();
// mencetak atribut
mobilku.cetakAtribut();
}
}
24
24
4.4 Identifier
Identifier digunakan untuk memberi nama variabel, class dan method
Identifier dimulai dengan sembarang huruf, underscore(_) atau dollar ($)
Contoh penamaan :
namaku
_var1
$harga
Adapun keyword yang dimiliki Java, antara lain :
25
25
o Nilai karakter diapit dengan tanda petik tunggal
o Contoh :
– ‘a’ huruf a
– ‘\t’ tab
– ‘\u0063’ unicode karakter untuk huruf c
Bilangan bulat – byte (3), short (4), int (5) dan long (6)
o Menggunakan tiga bentuk => desimal, oktal, hexadesimal
o Contoh :
– 2, Bentuk desimal untuk integer 2
– 077, Diawali dengan angka 0, menandakan bilangan oktal
– 0xBAAC, Diawali dengan 0x menandakan bilangan hexadesimal
o Defaultnya adalah int
o Untuk mendefinisikan tipe data long digunakan L atau I di belakang
nilai
26
26
Tabel 4.2. Range tipe data
Listing Program :
Hasil :
27
27
Listing Program :
Hasil :
4.6 Konversi
Konversi tipe data terjadi pada saat :
– Suatu nilai diberikan pada variabel yang berbeda tipe datanya
Aturan pada konversi :
– Tipe data boolean tidak bisa dikonversi ke tipe data lain
– Selain boolean bisa dikonversi dengan prinsip :
widening => tipe data variabel di sebelah kiri harus memiliki range
(jangkauan) yang lebih luas daripada tipe data variabel di sebelah
kanannya => jika syarat ini tidak bisa dipenuhi maka konversi tidak
bisa dilakukan dan harus dilakukan casting.
Casting
Jadi casting adalah perubahan data yang dilakukan oleh user karena
tidak bisa dilakukan konversi.
Contoh penulisan :
Contoh Casting
28
28
short s = 5;
int i = 100;
s = (short) i;
=> dilakukan casting karena tipe data sebelah kiri lebih kecil jangkauan-
nya (short) dibandingkan tipe data sebelah kanan (int) atau dengan kata
lain prinsip widening tidak bisa dipenuhi
Contoh Program :
Pembetulan :
29
29
Short s dipromosikan ke int, kemudian dikalikan negatif hasilnya dikalikan
dengan int i kemudian hasilnya (hasil pertama) disimpan. Float f
dipromosikan jadi double selanjutnya dibagi dengan double d hasilnya
disimpan (hasil kedua) menjadi double. Hasil pertama (int) dipromosikan
menjadi double selanjutnya dikalikan dengan hasil kedua, hasil terakhir
disimpan dalam variabel hasil dalam bentuk double.
Listing Program :
Hasil :
30
30
4.9 Menginisialisasi Obyek dengan Constructor
Suatu obyek dapat diberi nilai awal atau diinisialisasi dengan
menggunakan constructor.
Jadi constructor dijalankan hanya sekali yaitu saat suatu obyek diciptakan.
Contoh : memberi nilai awal 1-Mei-2007 pada obyek yang diciptakan dari
classTanggal
Contoh : Listing Program
Hasilnya :
31
31
Modifikasi class Tanggal sebelumnya :
Listing Program
Listing Program
Hasil :
32
32
Penandaan variable dibuat untuk me-refer ke obyek
int x = 7;
int y = x;
Tanggal s = new
Tanggal(1,3,2007);
Tanggal t = s;
t = new Tanggal(4,6,2007)
4.12Pass By Value
Pada pemrograman Java, pada argumen hanya dilewatkan suatu nilai
bukan alamat (pass by value)
Jika argumen berupa obyek, maka nilai dariargumen tersebut adalah
referensi ke obyekyang dilewatkan
Isi dari obyek bisa berubah karena pemanggilansebuah method, tapi
pemanggilan suatu methoddengan argumen referensi ke obyek tidak
akanmerubah nilai obyek pada bagian program yangmemanggil
Contoh :
Listing Program 1
33
33
Listing Program 2
34
34
– Untuk merefer ke atribut dan method lokal
– Keyword this tidak membedakan antara method lokal atau variabel
constructor dengan variabel instance
– Keyword this digunakan untuk melewatkan current object sebagai
parameter ke method atau constructor yang lain
Contoh :
35
35
4.15Bentuk Operator
Operator dapat digolongkan ke dalam dua bentuk yaitu : unary operator
dan binary operator
Unary operator adalah operator yang hanya melibatkan 1 operan
Binary operator adalah operator yang melibatkan dua operan
Sedangkan jenis operator dalam Java ada banyak macamnya, yaitu
operator aritmatika operator logika, operator bitwise, dll.
36
36
Operator Aritmatika
– Operator aritmatika adalah operator yang berfungsi untuk operasi
aritmatika
– Yang termasuk dalam operator aritmatika adalah : +, - , *, /, %
(modulus – sisa bagi)
Operator Bitwise
Contoh penggunaan
37
37
Listing Program Bitwise
public class Complement {
public static void main(String args[] ) {
int i; i=~7;
System.out.println(i);
}
}
Operator Boolean
- Operator boolean adalah operator yang menghasilkan nilai true (benar)
atau false (salah).
- Contoh Penggunaan
38
38
Operator Logika
o Operator logika adalah operator yang dipakai untuk operasi
perbandingan dan selalu menghasilkan tipe boolean
o Yang termasuk operator logika : ==, !=, >, >=, <, <=
Operator Shift
o Operator shift adalah operator yang berfungsi untuk menggeser
susunan bit pada suatu nilai, yaitu >> (right shift), << (left shift)
o Contoh penggunaan :
o Listing Program
public class LeftShift {
public static void main(String args[] ) {
int i=3;
i = i << 2;
System.out.println(i);
}
}
39
39
Operator Kombinasi
o Operator yang terdiri dari gabungan dua operator
o Contoh : Operator += adalah gabungan dari operator = dan +
4.16Latihan-latihan
Latihan 1
Modifikasi program berikut agar dapat menginputkan nilai tanggal, bulan dan
tahun kemudian jika terjadi kesalahan pada input tanggal, program akan
memunculkan pesan kesalahan.
40
40
Latihan 2
41
41
BAB V
UML CLASS DIAGRAM
42
42
5.5 Class Diagram
Bentuk :
Contoh
o Class Buku terdiri dari :
– Atribut : judul, pengarang
– Method : ambilJenis(), ambilHalaman();
o Penggambaran dalam Class Diagram :
Latihan 1
– Mengimplementasikan Class Diagram Buku ke dalam program
– Keterangan : untuk judul buku “Pemrograman Java” jenisnya =
“Prog” dan jumlah halaman = 100;
43
43
Latihan 2
Latihan 3
Class Diagram Tanggal dengan constructor
44
44
Listing Program
Latihan 4
Class Diagram Tabungan
Listing Program
45
45
5.6 Tugas :
Tugas 1
- Implementasikan Perluasan Class Diagram Mahasiswa seperti berikut:
46
46
BAB VI FLOW
CONTROL
47
47
Contoh penggunaan if untuk konversi nilai angka ke nilai huruf
import javax.swing.*;
public class Percabangan {
public static void main (String []args){
String input;
int angka=0;
input=JOptionPane.showInputDialog("Masukkan masa Kerja
Anda");
angka=Integer.parseInt(input);
if (angka < 3)
JOptionPane.showMessageDialog(null,"Anda Belum Bisa Jadi
Karyawan Tetap"); else if (angka <=15)
JOptionPane.showMessageDialog(null,"Jadi Karyawan Tetap");
else JOptionPane.showMessageDialog(null,"Anda tidak memenuhi
syarat");
}}
48
48
Perintah kondisional : switch
Cara penulisan :
import javax.swing.*;
public class PercabanganSwitch {
public static void main (String [ ]args) {
String pilihan =JOptionPane.showInputDialog ("Input 1 - 3");
int angka=Integer.parseInt(pilihan);
switch(angka)
{
case 1:
JOptionPane.showMessageDialog
(null,"Program D3\n\nSaya Kurang Hebat");
break;
49
49
case 2:
JOptionPane.showMessageDialog
(null,"Program S1\n\nSaya Hebat");
break; case 3:
JOptionPane.showMessageDialog
(null,"Program S2\n\nSaya Lebih Hebat");
break; default:
JOptionPane.showMessageDialog
(null,"Pilihan Salah");
}}}
import javax.swing.*;
public class PercabanganSwitch2 { public
static void main (String [ ]args) { String
input; String input1; String input2; String
input3; String input4;
double nilai1; double nilai2; double nilai3;
double nilai4; double hasil;
String pilihan =JOptionPane.showInputDialog
("*********************************\n * "
+ "Masukan pilihan Saudara : *\n
*********************************\n "
+ "1. Luas Persegi Panjang \n "
+ "2. Keliling Persegi Panjang \n "
+ "3. Luas Kubus \n "
+ "4. Keliling Kubus \n "
+ "5. Keluar \n\n Pilihan (1-5");
int angka=Integer.parseInt(pilihan);
switch(angka)
{
case 1:
input1 =JOptionPane.showInputDialog("***** Luas Persegi Panjang
*****\n "
+ "Masukan Panjang : ");
nilai1=Double.parseDouble(input1);
input2 =JOptionPane.showInputDialog("***** Luas Persegi
Panjang *****\n "
50
50
+ "Masukan Lebar : ");
nilai2=Integer.parseInt(input1);
hasil=nilai1*nilai2;
System.out.println("Luas Persegi Panjang : ");
System.out.println("panjang : "+nilai1);
System.out.println("lebar : "+nilai2);
JOptionPane.showMessageDialog (null,"Luas Persegi Panjang :\n\n
"+hasil);
break;
case 2:
input2 =JOptionPane.showInputDialog("***** Keliling Persegi
Panjang *****\n "
+ "Masukan Panjang : ");
nilai1=Double.parseDouble(input2);
input2 =JOptionPane.showInputDialog("***** Keliling Persegi
Panjang *****\n "
+ "Masukan Lebar : ");
nilai2=Integer.parseInt(input2);
hasil=2*(nilai1*nilai2);
System.out.println("keliling Persegi Panjang : ");
System.out.println("panjang : "+nilai1);
System.out.println("lebar : "+nilai2);
System.out.println("keliling Persegi Panjang : "+hasil);
break;
case 3:
input3 =JOptionPane.showInputDialog("***** Luas Kubus *****\n "
+ "Masukan Sisi : ");
nilai3=Double.parseDouble(input3);
hasil=nilai3*nilai3;
System.out.println("Luas Kubus : ");
System.out.println("Sisi : "+nilai3);
System.out.println("Luas Kubus : "+hasil);
break;
case 4:
input4 =JOptionPane.showInputDialog("***** Keliling Kubus
*****\n "
+ "Masukan Sisi : ");
nilai4=Double.parseDouble(input4);
hasil=4*nilai4;
System.out.println("Luas Kubus : ");
System.out.println("Sisi : "+nilai4);
51
51
System.out.println("Luas Kubus : "+hasil);
break;
default:
JOptionPane.showMessageDialog (null,"Pilihan Salah");
}}}
class IncrementDecrement{
public static void main (String[] args){
int i = 1;
System.out.println("i : " + i);
System.out.println("++i : " + ++i);
System.out.println("i++ : " + i++);
System.out.println("i : " + i);
System.out.println("--i : " + --i);
System.out.println("i-- : " + i--);
System.out.println("i : " + i);
}}
o Latihan 1
Buat program untuk menampilkan bilangan ganjil yang lebih
kecil dari 20 menggunakan perulangan for
52
52
Listing Program
Hasil :
o Latihan 2
Menampilkan nilai Faktorial dari suatu bilangan menggunakan
perintah for :
N ! = N x (N-1) x (N-2) x … x 1
5 ! = 5 x 4 x 3 x 2 x 1 =120
Listing Program
\
Hasil
o Latihan 3
- Menampilkan deret Fibonacci menggunakan perulangan for
53
53
- Deret fibonacci dari suku ke-1 sampai 7
1 1 2 3 5 8 13
Fibo(i) = Fibo(i-1) + Fibo(i-2)
Listing Program
Hasil
54
54
o Perbandingan for dengan while
o Latihan
Latihan 1
Buat program untuk menampilkan bilangan ganjil yang lebih kecil
dari 20 menggunaka while
Listing Program
Hasil
Latihan 2
Menampilkan nilai Faktorial dari suatu bilangan menggunakan
perintah while
N ! = N x (N-1) x (N-2) x … x 1
5 ! = 5 x 4 x 3 x 2 x 1 =120
55
55
Listing Program
import java.awt.*;
import javax.swing.*;
56
56
Listing Program
Hasil
Latihan 2
Listing Program
import javax.swing.JOptionPane;
public class DoWhile1
{
public static void main (String args [] ){
int batas=5;
57
57
int nomor=0;
do
{
JOptionPane.showMessageDialog (null,"Nomor ke - " +nomor);
System.out.println("Nomor ke"+nomor);
nomor++;
}
while (nomor <=batas);
}
}
58
58
BAB VII
ARRAY
59
59
Buat array yang menampung bilangan 1 sampai 10, kemudian tampilkan
array tersebut
Listing program
Hasil
7.5 BatasanArray
Indeks Array dimulai dari 0.
Jumlah dari elemen array ditandai dengan keyword length.
Latihan :
Buat array bilangan dengan ukuran 10, kemudian tampilkan ukurannya
menggunakan keyword length.
Listing program
60
60
Hasil
Listing program
Hasil
61
61
Tanggal tanggalku;
tanggalku = Tanggal[3];
tanggalku[0] = new Tanggal(22.2.1995);
tanggalku[1] = new Tanggal(10.9.2004);
tanggalku[3] = new Tanggal(23.6.2006);
Cara lain bisa dituliskan
Tanggal tanggalku[] ={
new Tanggal(22.2.1995),
new Tanggal(10.9.2004),
new Tanggal(23.6.2006)};
Latihan
Membuat elemen array dari class Tanggal, inisialisasi nilainya kemudian
tampilkan.
Listing program
62
62
Hasil :
Latihan 1
Dengan menggunakan array 2 dimensi, buatlah program untuk meyimpan
nilai UTS, UAS dan Tugas dari 3 orang mahasiswa, sbb :
Listing Program
Hasil
63
63
Latihan 2
Sama dengan latihan satu diatas, hanya gunakan array multi dimensi
untuk menyimpan nilai.
Listing program
Hasil
Latihan 3
Buat program dengan menggunakan array untuk menghitung bilangan
Fibonacci tentukan n = 9 (bilangan Fibonacci adalah bilangan yang
memindahkan 2 bilangan sebelumnya.
64
64
Listing program
Hasil
Hasil
65
65
7.10Pembuatan Method dari Array Suatu Tipe Data
Berikut ini dicontohkan pembuatan method yang menghasilkan array yang
berasal dari tipe char.
public char [ ] buat array( ) {
char s [ ]=new char [26];
for (int i=0;i<26,i++)
s [i] = (char)(‘A’+i);
}
Return s;
}
Latihan
Implementasi class yang memiliki method dimana return tipenya merupakan
array huruf ‘A’ sampai Z, lalu uji class tersebut
Listing program
Hasil
66
66
public titik [ ] buatarray( ) {
titik p[ ] = new titik[10];
for (int i=0’p<10;i++) {
p[i] = new titik(I,i+1);
}
return p
}
Latihan
Imlementasikan class yang memiliki method dimana return tipenya
merupakan array dari class titik, lalu uji class tersebut.
Listing program
67
67
Hasil
Latihan 1
Latihan 2
68
68
y[0] = 20 ; y[1] = 10 ; y[2] = 30;
System.out.println("Nilai y[0] : " + y[0]);
System.out.println("Nilai y[1] : " + y[1]);
System.out.println("Nilai y[2] : " + y[2]);
}}
Latihan 3
Latihan 4
69
69
System.out.println("Nilai Array x, y dan z : " + x[0] + " " + y[0] + " " +
z[0]);
System.out.println("Nilai Array x, y dan z : " + x[1] + " " + y[1] + " " +
z[1]);
System.out.println("Nilai Array x, y dan z : " + x[2] + " " + y[2] + " " +
z[2]);
}}
Latihan 5
}}
70
70
Latihan 6
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class LatihanArray{
public static void main (String [ ] args ) {
int array1[ ] =new int[4];
int array2[ ]={5,13,8,17 };
String output1="array1\nindex\tnilai\n";
for (int i=0;i<array1.length;i++){
output1+=i+"\t"+array1[i]+"\n";
}
String output2="array2\nindex\tnilai\n";
for (int i=0;i<array2.length;i++){
output2+=i+"\t"+array2[i]+"\n";
}
JTextArea outputArea1=new JTextArea();
outputArea1.setText(output1);
JTextArea outputArea2=new JTextArea(); outputArea2.setText(output2);
JOptionPane.showMessageDialog(null,outputArea1,"ARRAY",JOptionPane.
INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,outputArea2,"ARRAY",JOptionPane.
INFORMATION_MESSAGE);
}
}
71
71
BAB VIII
OVERLOADING DAN OVERRIDING
8.4 Overloading
Overloading adalah suatu keaddan dimana beberapa method memiliki
nama yang sama tetapi fungsionalitasnya berbeda
72
72
Contoh :
- Titik (x,y);
- Titik (x,y,z);
Ciri Overloading
- Nama method harus sama
- Daftar parameter harus berbeda
- Return type boleh sama, boleh berbeda
8.5 Overriding
Overriding menyatakan suatu keadaan dimana method pada subclass
menolak method pada parent class-nya.
Ciri dari overriding :
- Nama method harus sama
- Daftar parameter harus sama
- Return type harus sama
Contoh
class parent {
public void Info(){
System.out.println(“ini class Parent”);
}
class Child Extends Parent (
public void Info(){
System.out.println(“ini class Child”);
}
73
73
8.7 Latihan Melakukan Overloading pada Method
74
8.8 Latihan Menguji Class pada Program
Listing program
75
75
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
s1 sarjana = new s1();
s2 magister = new s2();
informasikan (sarjana);
informasikan (magister);
}
static void informasikan (jenjang vjenjang){
System.out.println("=========================================
");
System.out.println("Pendidikan : " + vjenjang.pendidikan);
System.out.println("Gelar : " + vjenjang.gelar);
System.out.println("=========================================
");
}
}
abstract class jenjang{
String pendidikan;
String gelar;
abstract public void setpendidikan (String vpendidikan);
abstract public void setgelar (String vgelar);
}
class s1 extends jenjang{
public s1(){
pendidikan = "Strata Satu";
gelar = "Sarjana";
}
public void setpendidikan(String vpendidikan){
pendidikan = vpendidikan;
}
public void setgelar(String vgelar){
pendidikan = vgelar;
}}
class s2 extends jenjang{
public s2(){
pendidikan = "Strata Dua";
gelar = "Magister";
}
76
76
public void setpendidikan(String vpendidikan){
pendidikan = vpendidikan;
}
public void setgelar(String vgelar){
pendidikan = vgelar;
}}
77
77
BAB IX
CLASS LANJUTAN
9.1 Pembahasan
Review
- Bentuk umum class
- Pembuatan class sederhana
- Menambahkan constructor
- Consructor Overloading
- Keyword this
- Local Variables dan Variable Scope
Lanjutan
- Instance Variables dan Instance Methods
- Static Variables dan Static Methods
- Method Overloading
- Melewatkan Argument
class namaclass{
// instance variables
tipedata1 namavar1 = nilai1;
tipedata2 namavar2 = nilai1;
…
tipedataN namavarN = nilaiN;
// Constructors
namaClass(parameters1){
// body costructor
}
namaClass(parametersN){
// body costructor
}
// Methods
return Tipe1 namaMethod(parameter1){
// body method
}
return TipeN namaMethod(parameterN){
// body method
78
78
}
class Titik3D{
double x;
double y;
double z;
}
class ContohTitik3D{
public static void main(String args[]){
Titik3d p = new Titik3D();
p.x = 1.1;
p.y = 3.4;
p.z = -2.8;
System.out.println(“p.x = “ + p.x);
System.out.println(“p.y = “ + p.y);
System.out.println(“p.z = “ + p.z);
}}
Hasilnya
p.x = 1.1
P.y = 3.4
p.z = -2.8
9.4 Menambahkan Constructor
class Titik3D{
double x;
double y; Constructor
double z
79
79
class ContohTitik3D{
public static void main(String args[]) {
Titik3D p = new TitikD(1.1,3.4,-2.8);
System.out.println("p.x = "+p.x);
System.out.println("p.y = "+p.y);
System.out.println("p.z = "+p.z);
}
}
Hasilnya
p.x = 1.1
P.y = 3.4
p.z = -2.8
this.x=x;
this.y=y;
this.z=z;
}
}
class DemoThis{
public static void main(String args[]){
Titik3D p = new Titik3D(1.1,3.4,-2.8);
System.out.println("p.x = "+p.x);
System.out.println("p.y = "+p.y);
System.out.println("p.z = "+p.z);
}}
80
80
9.7 Local Variables dan Variable Scope
Latihan 1
Listing program
class x{
void f( ){
for (int j = 0; j<5;j++){
int k=100;
System.out.println("j = "+j+"; k = "+k);
}
}
}
class variablescope{
public static void main(String args[ ]){
X x = new X( );
x.f( );
}
}
Hasil :
j = 0; k = 100
j = 1; k = 100
j = 2; k = 100
j = 3; k = 100
j = 4; k = 100
Latihan 2
Listing Program
class Obyekku{
static short s = 400; // variabel static
int i = 200;
void f( ){
System.out.println("s = "+s);
System.out.println("i = "+i);
short s = 300; // variabel local
81
81
short I = 100; // variabel variable
double d = 1E100; // variabel local
System.out.println("s = "+s);
System.out.println("i = "+i);
System.out.println("d = "+d);
}
}
class cariabellocal{
public static void main(String args[]){
Obyekku obyekku = new Obyekku( );
Obyekku.f( );
}
}
Hasil ;
s = 400
i = 200
s = 300
i = 200
d = 1.0E100
Latihan
class Bag{
boolean flag;
int i, j=2, k=3, l, m;
double array[]={-2.4,8.8e100, -9.2e-100};
String s1, s2=new String(“Hello”);
82
82
}
class Bagtest{
public static void main(String args[]){
Bag bag = new Bag( );
System.out.println(bag.flag);
System.out.println(bag.i);
System.out.println(bag.j);
System.out.println(bag,k);
System.out.println(bag.l);
System.out.println(bag.m);
for (int i = 0, I < bag.array.length; i++)
System.out.println(bag.array[i]);
System.out.println(bag.s1);
System.out.println(bag.s2);
}
}
Hasil :
False
0
2
3
0
0
-3.4
8.8E100
-9.2E-100
null
Hello
83
83
static{
// body statement
}
} Latihan
Latihan 1
class X{
static int array [ ];
static {
array = new int[6];
for (int i = 0; i < 6; i++)
array[i] = i;
}
}
class inisialisasistatic{
public static void main(String args[ ]){
for (int i=0;i<6;i++)
System.out.println(X.array[i]);
}
}
Hasil
0
1
2
3
4
5
9.10Method Overloading
class titik3d{
double x;
double y;
double z;
84
84
titik3d (double ax){
x=ax;
y=1;
z=1;
}
titik3d(double ax, double ay){
x=ax;
y=ay;
z=1;
} Overloaded Method
titik3d(double ax, double ay, double az){
x=ax;
y=ay;
z=az;
}
void tambahin (double x, double y, double z){
this.x=x;
this.y=y;
this.z=z;
}
}
class classlanjut{
public static void main (String [] args){
titik3d p = new titik3d(1.1,2.1,2.8);
System.out.println("p.x = "+p.x);
System.out.println("p.y = "+p.y);
System.out.println("p.z = "+p.z);
p.tambahin(5.6,3.4,8.9);
System.out.println("p.x = "+p.x);
System.out.println("p.y = "+p.y);
System.out.println("p.z = "+p.z);
p.tambahin(10.11,12.13,14.19);
System.out.println("p.x = "+p.x);
System.out.println("p.y = "+p.y);
System.out.println("p.z = "+p.z);
}
}
85
85
BAB X
PACKAGE DAN IMPORT CLASS
10.1 Package
Package adalah cara mengelola class-class yang kita buat
Package mengelompokkan class-class sesuai dengan kategori tertentu
Class-class dalam satu package harus disimpan pada directory yang
sama dengan nama package-nya,
Contoh package
86
86
Dapat diimplementasikan kedalam program berikut :
public class Mahasiswa {
public int nrp;
public String nama;
public Mahasiswa(int nrp, String nama){
this.nrp=nrp;
this.nama=nama;
}
}
87
87
Dapat diimplementasikan kedalam program berikut :
Package sekolah;
Package sekolah;
88
88
Kemudian uji dengan program berikut :
public class TesLatihan{
public static void main(String args[]){
int tmp;
boolen status;
Nasabah nasabah=new Nasabah(“Agus”, “Daryanto);
System.out.println(“Nasabah atas nama : “ +
nasabah.getNamaAwal( ) + ” ” +
nasabah.getNamaAkhir( ));
nasabah.setTabungan(new tabungan(5000));
tmp=nasabah.getTabungan( ).getSaldo( );
System.out.println(“Saldo awal : ” + tmp);
nasabah.getTabungan( ).simpanUang(3000);
System.out.println(“Jumlah uang yang disimpan : 3000”);
status=nasabah.getTabungan().ambilUang(6000);
System.out.println(“Jumlah uang yang diambil : 6000”);
If (status)
System.out.println(“ok”);
Else
System.out.println(“Gagal”);
nasabah.getTabungan().simpanUang(3500);
status=nasabah.getTabungan().ambilUang(4000);
System.out.println(“jumlah uang yang diambil : 4000”);
If (status)
System.out.println(“ok”);
Else
System.out.println(“gagal”);
status = nasabah.getTabungabn().ambilUang(1600);
System.out.println(“Jumlah uang yang diambil : 1600);
89
89
If (status)
System.out.println(“ok”);
Else
System.out.println(“gagal”);
nasabah.getTabungan().simpanUang(2000);
System.out.println(“Jumlah uang yang disimpan : 2000”);
tmp=nasabah.getTabungan().getSaldo();
System.out.println(saldo sekarang = “+tmp);
}
}
90
90
BAB XI
INHERITANCE
11.1 Subclass
Inheritance dari class
class namaclass2 extends namaclass1 {
//body of class
} Inheritance
Deklarasi variabel class
Bentuk : namaclass namavar;
class X{
}
class X1 extends X{
}
class X2 extends X{
}
class X11 extends X1{
}
class X12 extends X1{
}
class X21 extends X2{
}
class X22 extends X2{
}
class inheritancehierarchy{
public static voidmain(String args[]){
X x;
Instantianing System.out.println(“Instantianing x”);
x = new x();
System.out.println(“Instantianing x1”);
x1 = new x1();
System.out.println(“Instantianing x11”);
x11 = new x11();
System.out.println(“Instantianing x12”);
x12 = new x12();
System.out.println(“Instantianing x2”);
x2 = new x2();
System.out.println(“Instantianing x21”);
x21 = new x21();
91
91
System.out.println(“Instantianing x22”);
x22 = new x22();
}
}
Listing program
class X{
float f;
}
class X extends W{
StringBuffer sb;
}
class Y extends X{
String s;
}
class Z extends Y{
Integer i;
}
class Wxyz{
public static void main(String args[]){
Z z = new Z();
z.f = 4.567;
z.sb=new StringBuffer(“abcde”);
z.s=”Belajar Java”; z.i=new
Integer(41); System.out.println(“z.f
= “+z.f)’ System.out.println(“z.sb =
“+z.sb); System.out.println(“z.s =
“+z.s); System.out.println(“z.i =
“+z.i);
}
}
Hasil :
z.f = 4.567
z.sb = abcde
z.s = Belajar java
z.i = 41
92
92
Latihan 1
class E{
int x;
}
class F extends E{
String x;
}
class Ef{
public static void main(String args[]){
F f = new F();
f.x = “Ini adalah string”;
System.out.println(“f.x = “+f.x);
E e = new E();
e.x = 45;
System.out.println(“e.x = “+e.x);
}
}
Hasil :
f.x = Ini adalah string
e.x = 45
Latihan 2
class P{
static int x;
}
class Q extends P{
static String x;
}
class Pq{
public static void main(String args[]){
P p = new P();
p.x = 55;
System.out.println(“p.x = “+p.x);
Q q = new Q();
q.x = “Ini adalah string”;
93
93
System.out.println(“q.x = “+q.x);
}
}
Hasil
p.x = 55
q.x = Ini adalah string
Listing program
class A1{ void hello(){
System.out.println(“Hello dari A1”);
}
}
Di Overrided oleh
class B1 extends A1{ void hello(){
hello-nya B1
System.out.println(“Hello dari B1”);
}
}
class MethodOverriding1{
public static void man(String args[]){
C1 obj = new C1();
94
94
obj.hello();
}
}
Hasil
Hello dari C1
Heloo dari B1
class I1{
void hello(String s){
System.out.println(“I1 : “+s);
}
}
class SuperForMethods1{
public static void man(String args[]){
System.out.println(“Instantiating : I1”);
I1 obj = new I1();
obj.hello(“Selamat pagi”);
System.out.println(“Instantiating : J1”);
95
95
obj = new J1();
obj.hello(“Selamat siangagi”);
System.out.println(“Instantiating : K1”);
obj = new K1();
obj.hello(“Selamat malam”);
}
}
Hasil
Instantiating I1
I1 : Selamat pagi
Instantiating J1
I1 : Selamat siang
J1 : Selamat siang
Instantiating K1
I1 : Selamat malam
J1 : Selamat malam
K1 : Selamat malam
class S1{
int s1;
S1(){
System.out.println(“S1 Constructor”);
s1 = 1
}
}
96
96
class U1 extends T1{
int u1;
U1(){
System.out.println(“U1 Constructor”);
u1 = 2;
}
}
class InheritanceDanConstructor{
public static void man(String args[]){
U1 u1 = new U1();
System.out.println(“u1.s1 = ”+u1.s1);
System.out.println(“u1.t1 = ”+u1.t1);
System.out.println(“u1.u1 = ”+u1.u1);
}
}
Hasil
S1 Constructor
T1 Constructor
U1 Constructor
u1.s1 = 1
u1.t1 = 2
u1.u1 = 3
Listing program
class S2(
int s2;
S2(int s2){
this.s2=s2;
}
}
97
97
T2(int s2, intt2){
super(s2);
this.t2 = t2;
}
}
class U2 extends T2{
int u2;
U2(int s2, int t2, int u2){
super(s2, t2);
this.u2 = u2;
}
}
class InheritanceAndConstructor2{
public static void man(String args[]){
U1 u1 = new U1(1,2,3);
System.out.println(“u2.s2 = ”+u2.s2);
System.out.println(“u2.t2 = ”+u2.t2);
System.out.println(“u2.u2 = ”+u2.u2);
}
}
Hasil
u2.s2 = 1
u2.t2 = 2
u2.u2 = 3
98
98
void tampil(){
System.out.println(“Lingkaran”);
}
}
class Kotak extends Bentuk{
void tampil(){
System.out.println(“Kotak”);
}
}
class Segitiga extends Bentuk{
void tampil(){
System.out.println(“Segitiga”);
}
}
class AbstractClassDemo{
public static void main(String args[]){
Bentuk s = new Lingkaran();
s.tampil();
s=new Kotak();
s.tampil();
s=new Segitiga();
s.tampil();
}
}
Hasil
Lingkaran
Kotak
Segitiga
99
99
class FinalVariable{
public static void main(String args[]){
System.out.println(Lx);
}
}
Hasil
5
class PrivateConstructor{
public static void main(String args[]){
100
100
100
Native : kode mesin semisal C++
Private : dapat diakses hanya pada class yang sama
Protected : dapat diakases dari subclass dan package yang sama
Public : dapat di refer dari semua class
Static : bukan isntance method
Listing program
class Pesawatku{
public static void main(Stringargs[]){
System.out.println(new DC8().jumlahMesin());
System.out.println(new DC10().jumlahMesin());
}
}
Hasil
4
3
Latihan 1
package BABoop2;
101
101
101
System.out.println("================================");
System.out.println(" < CEMARA > ");
cemara cmr=new cemara(); cmr.tampil();
System.out.println("================================");
System.out.println(" < MANGGA > ");
mangga mg=new mangga(); mg.tampil();
System.out.println("================================");
System.out.println(" < KELAPA > ");
kelapa klp=new kelapa(); klp.tampil();
System.out.println("================================");
}
}
class pohon{
String daun;
String batang;
String akar;
pohon(){
daun = "Daun Pohon";
batang = "Batang pohon";
akar = "Akar pohon";
}
public void tampil(){
System.out.println(daun);
System.out.println(batang);
System.out.println(akar);
System.out.println("Buahnya enak");
}
}
class cemara extends pohon(){
cemara(){
daun="Tipis bergerigi";
batang="Batang cemara bercabang";
akar="Akar cemara adalah tunjang";
}
public void tampil(){
System.out.println(daun);
System.out.println(batang);
System.out.println(akar);
System.out.println("Cemara bukan pohon berbuah enak");
102
102
102
}}
class kelapa extends pohon(){
kelapa(){
daun="Daun kelapa menjari";
batang="Batang lurus";
akar="Akar serabut";
}
public void tampil(){ System.out.println(daun);
System.out.println(batang);
System.out.println(akar);
System.out.println("Pohon kelapa berbuah enak");
}}
class mangga extends pohon(){
mangga(){
daun="Daun kelapa oval";
batang="Batang barcabang";
akar="Akar tunggal";
}
public void tampil(){
System.out.println(daun);
System.out.println(batang);
System.out.println(akar);
System.out.println("Pohon mangga berbuah enak");
}} Latihan 2
package latihan;
103
103
103
}
public String getBentuk() {
return "Bentuk Bujur Sangkar";
}
public int hitungLuas() {
return panjang*lebar;
}
}
class SegiTiga extends Bentuk {
public SegiTiga(int panjang2, int lebar2) {
this.panjang = panjang2;
this.lebar = lebar2;
}
public int hitungLuas() {
return this.panjang*this.lebar/2;
}
}
class Polimorfisme {
public static void cetakLuasBentuk(Bentuk btk) {
System.out.println(btk.getBentuk() + " dengan luas "
+ btk.hitungLuas());
}
public static void main(String[] args) {
BujurSangkar bs = new BujurSangkar(10,20);
BujurSangkar bs1 = new BujurSangkar(10,20);
SegiTiga st = new SegiTiga(5,10);
SegiTiga st1 = new SegiTiga(50,100);
cetakLuasBentuk(bs);
cetakLuasBentuk(bs1);
cetakLuasBentuk(st);
cetakLuasBentuk(st1);
}
}
104
104
104
BAB XII
IMPLEMENTASI POLIMORFISME DENGAN INTERFACE
interface Bahan {
String perunggu = “perunggu”;
String emas = “emas”;
String marmer = “marmer”;
String perak = “perak”;
String kayu = “kayu”;
}
105
105
105
Koin(String bahan}{
this.bahan = bahan;
}
}
class Cincin extends BahanObject{
Cincin(String bahan){
this.bahan = bahan;
}
}
class BahanObjects{
public static void main(String args[]){
Bola bola = new Bola(Bahan.kayu);
Koin.koin = new Koin(Bahan.Perak);
Cincin cincin = new Cincin(Bahan.emas);
System.out.println(bola.bahan);
System.out.println(koin.bahan);
System.out.println(cincin.bahan);
}
}
Hasil :
Kayu
Perak
emas
interface A{
void tampil(String s);
}
class C1 implements A{
public void tampil(String s){
System.out.println(“C1 : “+s);
}
}
class C2 implements A{
public void tampil(String s){
System.out.println(“C2 : “+s);
}
}
106
106
106
class C3 implements A{
public void tampil(String s){
System.out.println(“C3 : “+s);
}
}
class interfaceReferencevariable{
public static void main(String args[]){
A a;
a = new C1();
a .tampil (“String 1”);
a = new C2();
a .tampil (“String 2”);
a = new C3();
a .tampil (“String 3”);
}
}
Hasil
C1 : String 1
C2 : String 2
C3 : String 3
interface J {
int j = 200;
int j1();
}
interface K {
double k1();
}
class I implements L{
public int j1(){
return 4;
107
107
107
}
public double k1(){
return 6.8;
}
public boolean l1(){
return true;
}
}
class InterfaceInheritance{
public static void main(String args[]){
I I = new I()’
System.out.println(i,j);
System.out.println(i.j1());
System.out.println(i.k1());
System.out.println(i.l1());
}
}
Hasil
200
4
6.8
true
interface L1{
void f();
void g();
}
108
108
108
int g();
}
class CompileError{
public ststic void main(String args(){
// ini tidak akan bisa ditampilkan
// karena program akan erro jika di-compile
System.out.println(“Error jika di-compile”);
}
12.4 OperatorInstanceof
Operator Instanceof digunakan untuk memeriksa apakah suatu obyek
merupakan instance dari suatu class yang spesifik
Contoh : Class Ikan dari IkanAirTawar dan IkanAirAsin. Yang
merupakan golongan IkanAirTawar adalah ikan Tombro, sedangkan
yang termasuk golongan IkanAirAsin adalah Salmon dan Tuna.
Pada latihan dibawah ini akan diimplementasikan Class Ikan yang
terdiri dari subClass IkanAirTawar dan IkanAirAsin. Yang termasuk
ikan air asin adalan Tunda dan Salmon. Dan Tombro untuk ikan air
tawar. Program akan menampilkan ikan yang termasuk ikan air asin
menggunakan instanceof.
109
109
109
Hasil
Latihan lain ini akan diimplementasikan class mamalia yang terdiri dari
Beruang, gajah, Kuda dan Singa. Masing-masing obyek mamalia
mengimplementasikan interface Kendaraan, dimana hanya obyek gajah
dan kuda saja yang memiliki method tunggangan karena obyek tersebut
dapat ditunggangi.
110
110
110
Hasil
111
DAFTAR PUSTAKA
112
PENGENALAN BAHASA PEMROGRAMAN C#
Tujuan :
1. Pengenalan Framework. NET
2. Mampu menggunakan variable, pernyataan, operator dan tipe data
3. Mampu membuat aplikasi sederhana menggunakan C#
Sekilas Pemrograman C#
Pada tahun 2000 Microsoft meluncurkan bahasa pemrograman baru yang diberi
nama C# Programming Language. C# dikembangkan oleh Microsoft oleh tim
yang dipimpin oleh Anders Hejlsberg dan Scott Wiltamuth. C# memiliki
kesamaan bahasa dengan C, C++, dan Java, sehingga memudahkan developer
yang sudah terbiasa dengan bahasa C untuk menggunakannya, C# mengambil
fitur-fitur terbaik dari ketiga bahasa tersebut dan juga menambahkan fitur-fitur
baru. C# adalah bahasa pemrograman Object Oriented dan memiliki class library
yang sangat lengkap yang berisi prebuilt component sehingga memudahkan
programer untuk men-develop program lebih cepat. C# juga distandarkan oleh
Ecma International pada bulan desember 2002.
Dengan C# dapat dibuat bermacam aplikasi seperti aplikasi console, aplikasi
windows form, aplikasi Web, aplikasi Web services, dan aplikasi untuk mobile
device. Jadi cukup belajar satu bahasa saja tapi sudah dapat digunakan untuk
mengembangkan berbagai macam aplikasi.
Ada dua komponen utama dalam .NET Framework yaitu CLR (Common
Language Runtume) dan FCL (.NET Framework Class Library).
Common Language Runtime (CLR) adalah pondasi utama dari Framework .NET.
CLR merupakan komponen yang bertanggung jawab terhadap beberapa tugas,
seperti mengatur managemen memory, melakukan eksekusi kode, melakukan
verifikasi terhadap keamanan kode, menentukan hak akses dari kode,
melakukan kompilasi kode, dan berbagai tugas lainnya. Dengan adanya
komponen CLR ini, maka aplikasi berbasis .NET biasa juga disebut dengan
managed code, sedangkan aplikasi di luar .NET disebut dengan un-managed
code.
Pada .NET ada dua tahap kompilasi yang dilakukan, pertama CLR akan
melakukan kompilasi kode-kode aplikasi kita menjadi bahasa assembly MSIL
(Microsoft Intermediate Language), kedua ketika aplikasi dieksekusi compiler
yang lain yang bernama JIT (Just-in-time compiler) yang juga salah satu
kompenen dalam CLR untuk menterjemahkan MSIL kedalam bahasa mesin yang
disesuaikan dengan platformnya.
Editor C#
Notepad
Kita dapat membuat aplikasi C# dalam notepad . File-file C# disimpan dengan
ekstension .cs, jika kita tidak hati-hati pada saat menyimpan file C# di
Notepad, misal kita bermaksud menyimpan file dengan nama test.cs maka
tidak tertutup kemungkinan file tersebut akan menjadi test.cs.txt kecuali kita
telah mensetting terlebih dahulu box drop down list pada fungsi Save As
menjadi “All Files”.
Visual Studio 6
Jika anda telah terbiasa menggunakan Visual Studio 6, maka tools tersebut
bisa digunakan untuk membuat aplikasi dengan C#, khususnya dengan
menggunakan editor Microsoft Visual C++.
Salah satu keuntungan menggunakan editor khusus buat pemrograman
(seperti Microsoft Visual C++) adalah adanya syntax highlighting , yang
memudahkan kita pada saat membaca dan menganalisa kode-kode program
kita. Namun, karena Visual Studio 6 (khususnya Visual C++) ini di buat
sebelum adanya bahasa C#, maka perlu sedikit “kreatifitas” kita untuk
memodifikasi setting editor tersebut agar dapat menampilkan syntax
highlighting C#.
Visual Studio .NET
Visual Studio .NET merupakan editor yang paling ideal untuk membuat
aplikasi yang berbasis Framework .NET, termasuk aplikasi dengan bahasa
C#. Editor ini tidak hanya menyediakan berbagai macam tools dan wizard
untuk membuat aplikasi C#, tapi juga termasuk fitur-fitur produktif seperti
IntelliSense dan bantuan yang dinamis.
3. Untuk proses kompilasi, kamu perlu buka “Visual Studio 2008 Command
Prompt”. Kemudian atur path sesuai dengan tempat penyimpanan
HaloDunia.cs. Perintah yang digunakan untuk kompilasi:
csc HaaloCsharp.cs
Perintah tersebut akan mengkompilasi program HaloDunia.cs menjadi
HaloCsharp.exe.
Penjelasan perbagian dari Latihan1.1 dan 1.2 di atas adalah sebagai berikut:
1. Tag // digunakan sebagai komentar, pada C# digunakan tag // (jika hanya satu
baris saja) atau diapit tag /* */ (jika komentarnya lebih dari satu baris). Kode
atau keterangan di dalam tag komentar tidak akan dieksekusi oleh compiler.
2. Keyword using digunakan untuk memberitahu compiler class yang digunakan
pada aplikasi. Salah satu keunggulan dari C# adalah tersedianya predefined
class yang dapat langsung digunakan dalam aplikasi.
3. Keyword namespace digunakan untuk mendeklarasikan ruang lingkup dari
class yang kamu buat. Class di dalam namespace dapat dipanggil dengan
mencantumkan nama namespace-nya terlebih dahulu.
4. Keyword using System; pada baris pertama mempunyai arti kamu dapat
menggunakan class-class yang ada pada namespace System.
5. Keyword class digunakan untuk mendeklarasikan class dengan nama
Program.
6. Deklarasi static void Main(string[] args) adalah method utama yang
dijalankan pada class Program.
7. Sintaks Console.WriteLine digunakan untuk menampilkan output ke layar
console.
Latihan1.3 :
using System;
class Latihan1_3 {
static void Main( string [] args) {
ushort hari, bulan, tahun;
Console .WriteLine( "Hitung Usia" );
Console .WriteLine( "-----------" );
try {
Console .Write( "Tanggal Lahir\t : " );
hari = Convert .ToUInt16( Console .ReadLine());
Console .Write( "Bulan Lahir\t : " );
bulan = Convert .ToUInt16( Console .ReadLine());
Console .Write( "Tahun Lahir\t : " );
tahun = Convert .ToUInt16( Console .ReadLine());
DateTime ultah = new DateTime (tahun, bulan, hari);
DateTime hariIni = DateTime .Now;
TimeSpan usia = hariIni.Subtract(ultah);
Console .WriteLine( "------------------------------------------------------------------------" );
Console .WriteLine( "Umur kamu adalah {0} hari, {1} jam " + "{2} menit.",
usia.Days, usia.Hours, usia.Minutes);
}
catch ( FormatException e) {
Console .WriteLine( "Data tanggal, bulan, tahun harus berupa angka." );
}
catch ( Exception e) {
Console .WriteLine( "Terjadi Kesalahan : " ,e.Message);
}
}
}
1.3 Tugas Praktikum
1. Buatlah program untuk menginputkan biodata terdiri dari nama lengkap,
nama panggilan, npm, umur, tempat lahir,telepon, dan alamat.
Output :
Assalamu‟alaikum.Let me introduce my self. My name is (nama lengkap),
but you can call me (nama panggilan). My NPM is (npm). I was born in
(tempat lahir) and I am (umur) years old. I am very glad if you want to
invite my house in (alamat). So, don‟t forget to call me before with the
number (telepon).Thank you.
2. Buatlah program konversi waktu dari detik ke jam, menit, detik!
3. Buatlah program konversi suhu dari Celcius (C) ke Fahrenheit (F),
Reamur (R), dan Kelvin (K). Suhu Celsius di masukkan melalui keyboard
saat program dieksekusi !
F = C * 9/5 +32
K =C+273,15
R = 4/5*C
BAB II
STRUKTUR RUNTUTAN & PERCABANGAN
Tujuan :
1. Memahami struktur runtutan
2. Memahami struktur pemilihan if-else dan switch-case
3. Mampu membuat program sederhana dengan menggunakan struktur
percabangan
2.1 Pendahuluan
Struktur kontrol yang ada pada bahasa C# adalah struktur runtutan,
struktur pemilihan dan struktur pengulangan. Struktur kontrol pemilihan dan
pengulangan memanfaatkan operator dalam menentukan suatu kondisi.
Operator-operator yang terkait dengan proses seleksi kondisi adalah
Operator Logika dan Relasional (hubungan).
Latihan 2.1
//program menjumlahkan dua buah bilangan
using System;
class Tambah{
static void Main(string[] args){
int number1; //variabel unt menampung nilai pertama
int number2; //variabel unt menampung nilai kedua
int sum; //variabel yg menampung hasil penjumlahan
Console.Write("Masukan nilai pertama :");
//konversi dari tipe string ke integer
number1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Masukan nilai kedua :");
number2 = Convert.ToInt32(Console.ReadLine());
sum = number1 + number2;
Console.WriteLine("Jadi hasil penjumlahannya : "+sum);
}
}
Jika kondisi yang diseleksi bernilai benar atau terpenuhi maka pernyataan
pertama yang dilaksanakan dan jika kondisi yang diseleksi bernilai salah
maka pernyataan yang kedua yang dilaksanakan. Setiap pernyataan
diakhiri tanda titik koma (;) walaupun sebelum else.
Latihan2.2 :
using System;
class Latihan2_2 {
static void Main( string [] args) {
Console .Write( "Masukan IPK : " );
float ipk = Convert .ToSingle( Console .ReadLine());
string predikat;
if (ipk > 3.5)
predikat = "Cum Laude" ;
else if (ipk > 3)
predikat = "Sangat Memuaskan" ;
else if (ipk >= 2.75)
predikat = "Memuaskan" ;
else if (ipk >= 2)
predikat = "Cukup" ;
else
predikat = "Memuakkan" ;
Console .WriteLine( "Predikat Anda adalah : {0}" , predikat);
}
}
Latihan2.3 :
using System;
class Pileg {
static void Main() {
int intHari;
Console.Write("Masukan Pilihan Hari (1-7) :");
intHari = Int32.Parse(Console.ReadLine());
switch (intHari){
case 1:
Console.WriteLine("Hari Minggu");
break;
case 2:
Console.WriteLine("Hari Senin");
break;
case 3:
Console.WriteLine("Hari Selasa");
break;
case 4:
Console.WriteLine("Hari Rabu");
break;
case 5:
Console.WriteLine("Hari Kamis");
break;
case 6:
Console.WriteLine("Hari Jumat");
break;
case 7:
Console.WriteLine("Hari Sabtu");
break;
default:
Console.WriteLine("Anda salah memasukan input (1-7)");
break;
}
}
}
Output :
a. Buatlah Tampilan Menu
b. Baru pilih horror atau romantic
Horor : 2
Romantic : 3
c. Hitung total harga
Total Harga Rp. 8500,-
BAB III
STRUKTUR PENGULANGAN
Tujuan :
1. Memahami struktur pengulangan for, while, do-while,foreach
2. Memahami struktur lompat break, continue dan goto
3. Mampu membuat program sederhana dengan menggunakan struktur
pengulangan
3.1 Pendahuluan
Sering kali dalam membuat program, kamu menuliskan beberapa perintah
baris yang sama. Penulisan perintah tersebut dapat disingkat dengan
menggunakan struktur pengulangan, seperti for, while, dan do-while.
Beberapa hal penting pada struktur pengulangan adalah adanya
inisialisasi, kondisi, dan iterasi. Ada empat struktur pengulangan yang
dapat digunakan pada bahasa C#, yaitu:
a. Struktur for
b. Struktur while
c. Struktur do…while
d. Struktur foreach
Berkaitan dengan proses pengulangan, pemrograman C# juga
menyediakan pernyataan break (untuk mengakhiri pengulangan) , goto ,
dan continue(untuk melakukan pengulangan selanjutnya).
Latihan3.1 :
static void Main(string[] args)
{
//mencetak bilangan dari 1-10, increment
for (int i = 1; i <= 10; i++)
Console.WriteLine(i);
Console.WriteLine();
//mencetak bilangan dari 10 ke 1, decrement
for (int i = 10; i >= 1; i--)
Console.WriteLine(i);
}
Latihan3.2 :
static void Main(string[] args){
int bil;
int i = 1;
int banyak;
int besar = 0;
Console.Write("Masukan banyak bilangan yang akan dicek :");
banyak = Convert.ToInt32(Console.ReadLine());
while (i <= banyak){
Console.Write("Masukan Bilangan ke-"+i+": ");
bil = Convert.ToInt32(Console.ReadLine());
if (bil >= besar){
besar = bil;
}
i++;
}
Console.WriteLine("Jadi bilangan yang terbesar adalah :"+besar);}
Latihan3.3 :
static void Main(string[] args){
int num;
int nextdigit;
Console.Write("Masukan bilangan :");
num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Bilangan sebelum dibalik "+num);
Console.Write("Bilangan setelah dibalik :");
do{
nextdigit = num % 10;
Console.Write(nextdigit);
num = num / 10;
} while (num > 0);
}
}while(kondisi)
while(kondisi){
continue;
}
Tugas Praktikum
1. Buatlah program menggunakan nested loop!
a. Input : UNBAJA
Output : AJABNU
b. Masukan Bilangan : 7
1 1
2 3
3 6
4 10
5 15
6 21
7 28
2. Buatlah program dengan menggunakan conditional looping!