Anda di halaman 1dari 20

A2.

1100113_GUNAWAN_TI-VIC
BAB 1

1
1. Sebutkan kelebihan Java dibandingkan dengan Pascal atau C!
Jawaban :

Java merupakan pemograman yang berorientasi objek, seingga dalam pembuatan


struktur program yang akan dibuat lebih menekankan pada objek itu sendiri.
Java bersifat multiplatform Java dirancang untuk mendukung aplikasi yang dapat
beroperasi di lingkungan jaringan berbeda. Untuk mengakomodasi hal tersebut, Java
compiler membangkitkan bytecodes (sebuah format yang tidak tergantung pada
arsitektur tertentu yang didesain untuk mengirimkan kode ke banyak platform
perangkat keras dan perangkat lunak secara efisien). Java dapat dijalankan oleh
banyak platform seperti Linux, Unix, Windows, Solari, maupun Mac.\
Java bersifat multithread
Multithreading adalah kemampuan suatu program 1ystem1r untuk mengerjakan
beberapa proses dalam suatu waktu. Thread dalam Java memiliki kemampuan untuk
memanfaatkan kelebihan multi prosessor apabila 1ystem operasi yang digunakan
mendukung multi prosessor.
Dapat didistribusi dengan mudah
Bersifat dinamis
Java dirancang untuk beradaptasi dengan lingkungan yang sedang berkembang.
Java bersifat dinamis dalam tahap linking. Class yang ada dapat di link sebatas yang
diperlukan, apabila diperlukan modul kode yang baru dapat di link dari beberapa
sumber, bahkan dari sumber dalam jaringan Internet.

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);
}
}

Hitung Bujur sangkar

Hasilnya

A2.1100113_GUNAWAN_TI-VIC
5

Hitung Persegi Panjang


import javax.swing.JOptionPane;
public class persegipanjang {
public static void main(String args[]) {
String first;String second;String three;int number1;int number2; int sum;
first=JOptionPane.showInputDialog("Masukkan panjang :");
second=JOptionPane.showInputDialog("Masukkan lebar :");
number1=Integer.parseInt(first);
number2=Integer.parseInt(second);
sum=number1*number2;
JOptionPane.showMessageDialog(null,"Luas persegi panjang adalah :
"+sum,"Hasil",JOptionPane.PLAIN_MESSAGE);
System.exit(0);
}
}
Hasilnya :

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

124*2 = 124 << 1


124 = 0000000001111100
///////////////

<< 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[] semuachannel={RCTI,SCTV,INDOSIAR,LA TV,METRO


TV,TRANS TV,TPI,TV 7,TVRI,TV G,ANTV);

String[] channelfavorit={RCTI,SCTV,INDOSIAR,LA
TV,METRO TV,TRANS TV,TPI,TV 7);

System.out.println(televisi yang baru saya beli : +


tv.getdeskripsi());

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.

public class Televisi {


private int vol = 0;
private boolean on = false;
private String chanl;
private String retn;
//constructor
public Televisi (String channel, boolean inputan, int volume)
{
vol = volume;
on = inputan;
chanl = channel;
// untuk menampilkan
System.out.println ("\n Object Channel Televisi" +channel+ "Sukses dibuat");
}
//fungsi
public void hidupkan_televisi ()
{
if (on == true)
retn = "Televisi Telah Dihidupkan";
else
retn = "Televisi Mati";
if (vol > 0)
retn += "Dengan Volume" +vol;
System.out.println(retn);
}
public static void main(String[] args) {
// TODO code application logic here
Televisi ind = new Televisi ("Indosiar", true, 20);
ind.hidupkan_televisi();
Televisi sctv = new Televisi ("SCTV", true, 10);
sctv.hidupkan_televisi();
Televisi rcti = new Televisi ("RCTI", false, 0);
rcti.hidupkan_televisi();
}
}

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

public void setVolume(int volume) {


this.volume = volume;
System.out.println("intensitas volume sekarang : " + volume);
}
}
Maka Hasilnya Adalah

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.
>

Pewarisan dapat digunakan untuk mempercepat dalam pembangunan sistem atau

program yang akan dibuat


> Program dapat mendefinisikan superclass khusus yang bersifat genetik, yang disebut
abstrak class, untuk mendefinisikan class dan tingkah laku secara umum.
> Pewarisan digunakan ketika ada penumpukan program yang sama
> Selain itu juga pewarisan digunakan dalam pengembangan system yang lebih komplek
2. Ketika kita akan mendeklarasikan member yang sama superclasnya maka data yang
dipanggil akan keluar kembali sesuai dengan apa yang kita inputkan.

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

Contohnya seperti Berikut :

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

2. Keuntungan Menggunakan Package adalah Dengan menggunakan package anda


menciptakan name space anda sendiri sehingga anda dapat menggunakan nama yang
sama dengan class maupun interface asalkan kedua class maupun interface tersebut
berada di dalam package yang berbeda. Selain itu dengan menggunakan package, file class
maupun interface yang anda buat akan tersimpan dengan rapi dalam direktorinya masingmasing sehingga memudahkan pencarian. Menaruh file dalam jumlah besar ke dalam satu
direktori saja akan mudah menimbulkan kebingungan pada saat pencarian.
3. Keyword import dipakai jika anda ingin menggunakan class ataupun interface yang
berbeda pada package yang berbeda dari tempat dimana anda ingin menggunakannya.
Dengan menggunakan keyword import ini, anda tidak perlu menuliskan full package

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

Anda mungkin juga menyukai