Java
Java
1100113_GUNAWAN_TI-VIC
BAB 1
1
1. Sebutkan kelebihan Java dibandingkan dengan Pascal atau C!
Jawaban :
A2.1100113_GUNAWAN_TI-VIC
BAB 2
1. Jelaskan perbedaan antara state dengan behaviour, dan berikan contohnya!
2. Jelaskan apa yang dimaksud dengan class dan objek apa perbedaannya dan
berikan contohnya!
Jawaban :
1. State merupakan keadaan dari suatu objek, contohnya tinggi, berat, usia, merupakan
state yang dimiliki oleh objek manusia. State ini bersifat pasif karena ia tidak dapat
melakukan operasi apa pun, padanya justru dilakukan operasi. Oleh karena itu
secara sederhana state dapat dianggap sebagai kata benda. Sedangkan behaviour
merupakan operasi atau aktivitas yang dapat dilakukan oleh suatu objek, contohnya
makan, minum, menua, bekerja, merupakan behaviour yang dimiliki oleh objek
manusia. Aktivitas ini dapat (tidak selalu) mempengaruhi state dari objek itu sendiri,
misalnya behaviour menua dapat merubah state umur. Oleh karena sifatnya ini,
secara sederhana behaviour dianggap sebagai kata kerja.
2. A. Class adalah struktur dasar dari OOP (Object Oriented Programming). Terdiri dari
dua tipe yaitu : field (attribute/property) dan method (behavior). Class digunakan
untuk mendeklarasikan sebuah variabel yang berupa objek atau dinamakan
referensi objek
(object reference).
B. Obyek adalah sebuah perangkat lunak yg berisi sekumpulan variabel dan method
yg berhubungan. Obyek merupakan sebuah instance (keturunan) dari class.
Contohnya adalah : desain arsitektur gedung dan gedung yang dibuat berdasarkan
desain tersebut. Desain arsitektur gedung dapat dianggap sebagai class, sedangkan
gedung yang dibangun berdasarkan desain itu sendiri dapat dianggap sebagai
objeknya.
A2.1100113_GUNAWAN_TI-VIC
BAB 3
1. Apa perbedaan antara tipe data primitif dan tipe data referensi?
2. Buat program untuk menghitung luas:
Segitiga
Lingkaran
Bujursangkar
Empat persegi panjang
Perhatikan konversi tipe data secara otomatis dari setiap ekspresi matematika yang
digunakan.
Jawaban
1. Tipe data primitif merupakan tipe data dasar yang dikenal oleh Java. Variabel dengan tipe
data primitif dapat langsung digunakan untuk memegang data yang sesuai dengan tipe
datanya. Contoh : int var = 3; maka nilai variabel var adalah 3.
Sedangkan tipe data referensi digunakan untuk semua tipe data selain tipe data primitif
termasuk di sini adalah array dan class. Variabel dengan tipe data referensi tidak
memegang secara langsung nilai yang hendak disimpan, melainkan variabel ini hanya
memegang referensi (alamat) dari nilai yang sebenarnya yang ada di memori.
2. Program
> Luas Segitiga
public class Segitiga {
public static void main (String a[]) {
int tinggi=Integer.parseInt(a[0]);
int alas=Integer.parseInt(a[1]);
double luas=(alas*tinggi)/2;
System.out.println("Tinggi: "+tinggi);
System.out.println("Alas : "+alas);
System.out.println("Luas : "+luas);
}
}
Hasil
A2.1100113_GUNAWAN_TI-VIC
Program Lingkaran
import java.util.*;
public class Lingkaran{
public static void main(String[] args){
scanner input = new scanner(System.in);
double phi = 3.14;
double r, luas,keliling;
System.out.println("Program Luas Lingkaran\n");
System.out.print("Masukkan Panjang Jari-jari : ");
r = input.nextDouble();
luas = 0.5 * phi * r * r;
keliling = 2 * phi * r;
System.out.print("Luas Lingkaran = " + (int)luas + " \nKeliling
lingkaran = "+ (int)keliling);
}
}
Hasilnya
A2.1100113_GUNAWAN_TI-VIC
5
A2.1100113_GUNAWAN_TI-VIC
BAB 4
SOAL
1. Apa perbedaan x++ dengan ++x, jelaskan!
2. Bagaimana menghitung perkalian dan pembagian dengan bilangan dua tanpa
menggunakan operator matematika?
3. Bagaimana menukar nlai dari dua variabel integer dengan tanpa menggunakan variabel
perantara?
Contoh : a=22 dan b=34, tanpa menggunakan variabel perantara, tukarlah kedua nilai
dari variabel tersebut sehingga a=34 dan b=22.
JAWABAN
1. Penggunaan x++ dan ++x jika tidak dikombinasikan dengan ekspresi lainnya tidak
memiliki perbedaan sama sekali. Perbedaannya baru akan terasa jika penggunaannya
digabung dengan suatu ekspresi. Namun secara sederhana x++ dapat diartikan : lakukan
operasi terhadap x baru kemudian tambahkan tambahkan dengan 1. Sedangkan ++x dapar
diartikan : jumlahksn x dengan 1, baru kemudian lakukan operasi terhadap x.
2. Perkalian dengan bilangan dua dapat dilakukan dengan menggunakan operator bitwise << (geser
kiri). Sedangkan untuk pembagian dapat dilakukan dengan menggunakan operator bitwise >> (geser
kanan).
Contoh penjelasan :
124/2 = 124 >> 1
124
= 0000000001111100
\\\\\\\\\\\\\\\
0000000000111110
>> 1
= 62
<< 1
0000000011111000
= 248
3. Contoh : variabel A = 22 dan B = 34, tanpa menggunakan variabel perantara, tukarlah kedua nilai
dari variabel tersebut sehingga variabel A = 34 dan B = 22. Untuk menukar nilai dari dua buah
variabel integer tanpa menggunakan variabel perantara dapat digunakan operator bitwise XOR.
Perhatikan contoh penjelasan berikut ini :
A = 22 dan B = 34
Hasil dari A XOR B adalah
A2.1100113_GUNAWAN_TI-VIC
A = 22
B = 34
= 0000000000010110
= 0000000000100010
A XOR B = 0000000000110100 = 52
Jika kita anggap hasil dari A XOR B adalah C maka
A = 22
= 0000000000010110
C = 52
= 0000000000110100
B XOR C = 0000000000010110 = A
Dapat disimpulkan bahwa jika C = A XOR B,
maka C XOR A = B dan C XOR B = A
Dengan demikian, Anda dapat menuliskan kode berikut ini untuk menukar nilai dari dua buah
variabel integer A dan B di atas :
A = A ^ B;
B = A ^ B;
A = B ^ A;
Sehingga sekarang nilai variabel A = 34 dan B = 22.
BAB 5:
SOAL
1. Jelaskan lebih detail mengenai kata kunci return dan buatlah program java yang
menggunakan kata kunci return tersebut!
2. Buatlah program yang menghasilkan output seperti di bawah ni:
*
**
***
****
*****
******
*******
3. Buatlan program untuk mendapatkan bilangan prima dari suatu range bilangan!
JAWABAN
A2.1100113_GUNAWAN_TI-VIC
1. Kata kunci return merupakan sebuah kata kunci yang digunakan untuk mengulang
kembali
method
yang
digunakan
dalam
pemograman
java,sehigga
apabila
kita
menggunakan kata kunci return pada java maka program akan mengcompie program yang
sebelumnya. Jadi intinya kata kunci return di gunakan mengembalikan nilai dari fungsi yang
bersangkutan. mengenai return true,return false,return 0 itu tergantung tipe data yg
digunakan fungsi tersebut,
class DemoReturn {
public static void main(String[] args) {
int banyak = 0;
tulis(banyak);
}
// Mendefinisikan method tulis()
private static void tulis(int n) {
if (n < 1) {
System.out.println("Nilai i tidak boleh lebih kecil " +
"dari 1");
return; // keluar dari method tulis()
}
// statemen ini tidak akan dilakukan bila n < 1
for (int i=0; i<n; i++) {
System.out.println("Baris ke-" + i);
}
}
}
2. Contoh Program
public class Bintang {
public static void main(String[] args) {
int ukuran = 7;
for (int i = 0; i<ukuran; i++) {
int j;
int spasiCounter = ukuran - i - 1;
for (j = 0; j < spasiCounter; j++) {
System.out.print(" ");
}
for (j = 0; j <= (i*2); j++) {
if (j % 2 == 1)
A2.1100113_GUNAWAN_TI-VIC
System.out.print(" ");
else
System.out.print("*");
}
System.out.println();
}
}
}
HASILNYA :
A2.1100113_GUNAWAN_TI-VIC
BAB 6
10
SOAL
1. Buatlah class dengan nama televisi, yang mempunyai properti:
a. Deskripsi: untuk menyimpan nama dan dekripsi dari televisi. Property ini
adalah read-only.
b. Jumlahchannel: untuk menyimpan banyaknya channel yang dapat disimpan
oleh televisi. Property ini adalah read-only.
c. Channels: untuk menyimpan data-data channel. Property ini tidak read-only.
d. Channelaktif: untuk menyimpan nomor channel yang aktif. Property ini tidak
read-only.
e. Volume: untuk menyimpan informasi besarnya volume televisi yang sedang
aktif. Property ini tidak read-only.
2. Selain itu televisi tersebut juga harus mendukung operasi berikut:
a. Menset channel yang diinginkan.
b. Menganti channel yang aktif.
c. Merubah volume.
d. Menampilkan nama dan dekripsi dari televisi
3. Class televisi tersebut harus dapat diakses dalam program berikut :
public class user{
public static void main(String args[]){
televisi tv=new televisi(tv tempo dulu, 14 inci,10);
String[] channelfavorit={RCTI,SCTV,INDOSIAR,LA
TV,METRO TV,TRANS TV,TPI,TV 7);
tv.getchannel();
tv.setchannels(semuachannel);
tv.setchannels(channelfavorit);
tv.setchannelaktif(3);
tv.setvolume(10);
tv.setchannelaktif(10);
A2.1100113_GUNAWAN_TI-VIC
tv.setchannelaktif(1);
11
}
}
JAWABAN
1.
A2.1100113_GUNAWAN_TI-VIC
2. class Televisi {
private String deskripsi;
private int jumlahChannel;
private String[] channels = null;
private int channelAktif;
private int volume;
public Televisi(String deskripsi, int jumlahChannel) {
this.deskripsi = deskripsi;
this.jumlahChannel = jumlahChannel;
}
public String getDeskripsi() {
return deskripsi;
}
public int getJumlahChannel() {
return jumlahChannel;
}
public String[] getChannels() {
if (channels == null) {
System.out.println("Belum ada channel yang diset!");
}
return channels;
}
public void setChannels(String[] channels) {
if (channels.length > jumlahChannel) {
System.out.println("Maaf Tv ini hanya dapat menyimpan " +
jumlahChannel + " channel");
}
else {
this.channels = channels;
System.out.println("Informasi channel berhasil di update!");
}
}
public int getChannelAktif() {
return channelAktif;
}
public void setChannelAktif(int channelAktif) {
if (channelAktif > channels.length) {
System.out.println("Channel yang Anda inginkan belum diset!");
return;
}
this.channelAktif = channelAktif;
System.out.println("Pindah channel ke : " + channels[channelAktif]);
}
12
A2.1100113_GUNAWAN_TI-VIC
public int getVolume() {
return volume;
}
13
BAB 7
SOAL
1. Keuntungan apa yang dapat anda peroleh dengan melakukan pewarisan dan kapan anda
mungkin perlu untuk melakukannya?
2. Apa yang terjadi jika kita mendeklarasikan member pada subclass yang sama persis dengan
yang dimiliki oleh superclass-nya? Bagaimana pula cara subclass agar dapat mengakses
member dari superclass tersebut?
3. Buatlah sebuah class turunan bernama televisimodern dari class televisi yng telah kita buat
pada kuis bab 6. Tambahkan fasilitas teletext dan cd player built in yang dapat digunakan
untuk memutar VCD. Class tersebut harus dapat digunakan oleh contoh program berikut:
public class user{
public static void main(String args[]){
televisimodern
inci,100);
tv=new
televisimodern(tv
moderb,
29
String
semuachannel(RCTI,SCTV,INDOSIAR,LATV,METROTV,TV7,
TPI,TRANSTV,TVRI,TVG,ANTV);
System.out.println(televisi
tv.getdeskripsi());
yang
baru
saya
beli
A2.1100113_GUNAWAN_TI-VIC
tv.getchannels();
tv.setchannels(semuachannel);
tv.setchannelaktif(3);
tv.setvolume(10);
tv.setchannelaktif(10);
tv.setchannelaktif(1);
tv.setmodustampilan(televisimodern.TELETEXT);
tv.sethalamanteletext(250);
tv.setmodustampilan(televisi.TV);
tv.palycd();
tv.setdisctray(the matrix);
tv.playcd();
}
}
JAWABAN
1. > Kita dapat menggunakan kembali kelas-kelas yang kita buat (sebagai superkelas) dan
membuat kelas-kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih
khusus dari behaviour umum yang dimiliki superkelas.
>
14
A2.1100113_GUNAWAN_TI-VIC
3. Programnya adalah sebagai Berikut
15
public class TelevisiModern extends Televisi {
public static final int TV = 0;
public static final int TELETEXT = 1;
int modusTampilan = TV;
int halamanTeletext = 100;
String discTray = null;
public TelevisiModern(String deskripsi, int jumlahChannel) {
super(deskripsi, jumlahChannel);
}
public void setHalamanTeletext(int halamanTeletext) {
this.halamanTeletext = halamanTeletext;
System.out.println("Berpindah ke halaman teletext " +
halamanTeletext);
}
public void setModusTampilan(int modusTampilan) {
switch (modusTampilan) {
case TV:
System.out.println("Modus tampilan : Televisi");
break;
case TELETEXT:
System.out.println("Modus tampilan : Teletext");
break;
}
}
public String getDiscTray() {
return discTray;
}
public void setDiscTray(String discTray) {
this.discTray = discTray;
}
public void playCD() {
if (discTray == null) {
System.out.println("Tidak ada CD di dalam disc tray!");
return;
}
System.out.println("Memutar file " + discTray);
}
}
Hasilnya Adalah
A2.1100113_GUNAWAN_TI-VIC
16
BAB 9
SOAL
1. Sebutkan cara untuk menset classpath dan path!
2. Sebutkan keuntungan menggunakan package!
3. Sebutkan fungsi perintah import dan apa hubungannya dengan package!
Jawaban
1. Cara Pertama adalah membuat sebuah
> Klik tombol Start pada taskbar > klik kanan Computer > klik Advanced system settings >
pada tab Advanced, klik tombol Environment Variables Muncul Jendela Environment
Variables Pada User Variables for, klik tombol New Muncul jendela Edit User Variable
A2.1100113_GUNAWAN_TI-VIC
17
Gambar diatas menunjukan kita terlebih dahulu memasukan path java yang kita gunakan,
disini saya menggunakan J2SDK Versi 4.2_03
Setelah itu Kita Aturpath Di cmd
A2.1100113_GUNAWAN_TI-VIC
class/interface name untuk dapat menggunakan class atau interface yang ada dalam suatu
package. Anda cukup menggunakan nama classnya saja secara langsung.
BAB 10
SOAL
1. Apa perbedaan antara throw dengan throws?
2. Jelaskan fungsi pembuatan subclass eksepsi sendiri!
JAWABAN
1. Keyword throw digunakan untuk melempar suatu eksepsi dalam program, contoh kode:
If (ada yang salah)
Throw new Exception(Salah nih.!);
Sedangkan keyword throws digunakan pada waktu mendeklarasikan suatu method untuk
memberitahu bahwa method yang bersangkutan dapat melempar eksepsi dengan tipe yang
dideklarasikan oleh keyword throws tersebut. Contoh kode :
void methodAneh() throws IOException, Exception {}
Penggunaan keyword throws ini juga hanya diperlukan jika eksepsi yang hendak dilempar
merupakan eksepsi yang dicek (bukan merupakan turunan dari class RuntimeException dan
umumnya merupakan turunan dari class Exception).
2. Dengan membuat class eksepsi sendiri berarti Anda membuat tipe data baru dimana tipe
data baru ini dapat Anda gunakan untuk melempar suatu eksepsi untuk kemudian ditangkap
pada bagian lain dari program. Dengan menggunakan tipe data eksepsi yang berbeda-beda,
program dapat mengetahui apa kira-kira penyebab eksepsi yang bersangkutan sehingga
dapat bertindak sebagimana mestinya.
18
A2.1100113_GUNAWAN_TI-VIC
BAB 11
SOAL
1. Menurut anda, kapan kita sebaiknya menggunakan interface Runnable dan kapan
kita membuat turunan dari class Thread?
2. Jelaskan perbedaan anatar sinkronisasi pada method dengan sinkronisasi pada
objek!
JAWABAN
1. Interface Runnable digunakan jika Anda harus menurunkan class yang Anda buat dari
class lainnya sehingga tidak memungkinkan lagi untuk diturunkan dari class Thread. Namun
membuat class turunan dari class Thread sangat disarankan jika class yang Anda buat
tersebut akan meng-override member dari class Thread tersebut.
2. Sinkronisasi pada method mengharuskan method tersebut dideklarasikan dengan
menggunakan keyword synchronized. Jika ternyata pendeklarasian method tersebut tidak
menggunakan keyword tersebut maka Anda tidak punya cara lain selain menggunakan
tehnik sinkronisasi pada objek. Namun jika Anda memiliki source code dari class dimana
method tersebut berada, Anda dapat saja mengubah method tersebut agar didelarasikan
menggunakan keyword synchronized.
BAB 12
1. Jelaskan fungsi class wrappers dan hubungannya dengan tipe data primitif!
2. Berikut ini sekumpulan string yang didalamnya terdapat informasi no induk
mahasiswa, nama, dan ipk:
Buatlah sebuah program untuk mengelompokkan semua informasi yang didapat dari
string di atas, ke dalam collection atau map. Tambahkan fasilitas untuk mengurutkan
data berdasarkan ketiga informasi tersebut dan tampilkan ke layar!
Program yang anda buat tersebut harus dapat digunakan seperti berikut ini:
public class user{
public static void main(String args[]){
}
}
19
A2.1100113_GUNAWAN_TI-VIC
20