m0512017_pbo_prak1
TRANSCRIPT
LAPORAN PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBJEK
PENGENALAN DASAR-DASAR JAVA
DISUSUN OLEH :
ELY DESYANAWATI
M0512017
JURUSAN INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
SURAKARTA
2013
1. TYPECASTING
Typecasting adalah proses pemeranan (casting) tipe data dari satu tipe tertentu ke tipe
data lainnya. Di dalam pemrograman Java, apabila terdapat 2 tipe data yang kompatibel
atau cocok maka Java akan melakukan konversi tipe secara otomatis. Contohnya, kita
selalu dapat memasukkan nilai bertipe integer ke variabel yang dideklarasikan dengan
tipe long. Namun, jika keduanya tidak kompatibel maka secara eksplisit kita perlu
melakukan typecst terhadap variabel yang akan dikonversi tersebut.
Kode untuk program typecasting
ANALISA
Di dalam kelas typecasting diatas terdapat method main sebagai method utama agar
program dapat dieksekusi. Di dalam method main di deklarasikan variabel a bertipe
integer diberi nilai awal 10. Kemudian terdapat kondisi if dimana a>5. Karena a bernilai
10, maka kondisi benar sehingga menjalankan statement didalamnya, yaitu inisialisasi
variabel b bertipe integer dengan nilai 50. Selanjutnya menjalankan instruksi
untuk mencetak keluaran
“Nilai a dalam if = " yang parameternya menunjuk pada variabel a yang bernilai 10.
Sehingga hasil cetakannya adalah Nilai a dalam if = 10. Kemudianmenjalankan instruksi
selanjutnya untuk mencetak
keluaran “Nilai b dalam if= “ yang parameternya menunjuk pada variabel b yang bernilai
50. Sehingga hasil keluarannya adalah Nilai b dalam if = 50.
Kemudian diluar kondisi if, terdapat instruksi untuk mencetak “Nilai a diluar if= “ yang
parameternya menunjuk pada variabel a yang bernilai 10, sehingga akan hasil
keluarannya adalah Nilai a diluar if = 10. Dalam hal ini nilai b diluar if tidak dapat
dikenali karena variabel b hanya dideklarasikan didalam blok if.
variabel yang dideklarasikan di dalam blok tertentu (dalam hal ini di dalam kondisi if)
hanya akan dikenali di dalam blok yang bersangkutan saja. Pada kode diatas, variabel b
dideklarasikan di dalam blok if sehingga tidak akan dikenali lagi dari luar blok if.
Hasil Eksekusi
Selanjutnya kode untuk typecasting
Didalam baris kode diatas, pertama deklarasi variabel c bertipe integer dengan nilai 287.
Kemudian deklarasi variabel d bertipe double dengann nilai 279,8736.
I. Konversi int byte
Konversi yang pertama adalah typecasting dari tipe integer ke tipe byte. konversi ini
tidak adapat dilakukan secara otomatis karena tipe byte memiliki rentang nilai lebih
kecil dibandingkan dengan tipe int sehingga diperlukan typecasting. Bentuk umum
typecasting dalam java yaitu (tipetarget)nilai. tipetarget adalah tipe tujuan yang
diinginkan. Sehingga instruksi untuk pengkonversian int ke byte adalah
yang berarti akan melakukan konversi variabel c ke tipe
byte, kemudian hasil konversinya akan disimpan di variabel x bertipe byte. Hasil
konversi dari tipe int ke byte adalah sisa bagi dari nilai yang akan dikonversi dibagi
dengan jumlah rentang nilai dari tipe byte yaitu 256 ( dari -128 ampai 127 ).
Sehingga x= 287 mod 256 = 31. Jadi hasil konversi variabel c bertipe int ke tipe
byte = 31. kemudian instruksi selanjutnya untuk mencetak keluaran:
System.out.println("\nTypecasting dari tipe int ke byte"); akan mencetak
keluaran Typecasting dari tipe int ke byte
System.out.println("int= "+c); akan mencetak int= 287
System.out.println("byte = "+x); akan mencetak hasil konversi yang disimpan
dalam variabel x, sehingga keluarannya adalah byte= 31
Hasil eksekusi
II. Konversi double int
Konversi yang kedua adalah typecasting dari tipe double ke tipe int. Untuk konversi
tipe double ke int, yang dilakukan adalah membuang nilai desimal yang terdapat di
belakang koma. Pada kode sebelumya terdapat variabel d bertipe double bernilai
279.8736. kemudian untuk mengkonversi ke tipe int maka terdapat instruksi
yang berarti akan melakukan konversi variabel d ke tipe int,
kemudian hasil konversinya akan disimpan di variabel y bertipe int. karena untuk
pengkonversian double ke int adalah dengan membuang nilai desimal di belakang
koma, maka hasil konversi d adalah 279.
kemudian instruksi selanjutnya untuk mencetak keluaran:
System.out.println("Typecasting dari tipe double ke int"); akan mencetak
keluaran Typecasting dari tipe double ke int
System.out.println("double = "+d); akan mencetak double = 279.8736
System.out.println("int = "+y); akan mencetak hasil konversi yang disimpan
dalam variabel y, sehingga keluarannya adalah int = 279
Hasil eksekusi
III. Konversi double byte
Konversi yang ketiga adalah typecasting dari tipe double ke tipe byte. secara
internal, java akan melakukan konversi ini dalam dua tahap. Pertama, tipe double
akan dikonversi terlebih dahulu ke tipe int. dan yang kedua, hasil konversi tersebut
(tipe int) akan dikonveri menjadi tipe byte.
instruksi ini berarti hasil konversi d (d=279.8736) akan disimpan
di dalam variabel x. Langkahnya:
Double int = 279
Int byte = 279 mod 256 = 23
Jadi variabel x bernilai 23, yang merupakan nilai hasil konversi variabel d (d=
279.8736) dari double ke byte.
kemudian instruksi selanjutnya untuk mencetak keluaran:
System.out.println("Typecasting dari tipe double ke byte"); akan mencetak
keluaran Typecasting dari tipe double ke byte
System.out.println("double = "+d); akan mencetak double = 279.8736
System.out.println("byte = "+x); akan mencetak hasil konversi yang disimpan
dalam variabel x, sehingga keluarannya adalah byte = 23
Hasil eksekusi
2. IF STATEMENT
Program ini untuk mengetahui nilai indeks dari nilai akhir uts dan uas. Ketentuannya
adalah sebagai berikut:
Nilai akhir= (0.4 x nilai uas)+(0.6 x nilai uas)
Nilai akhir Nilai indeks
Nilai akhir ≥ 80 A
Nilai akhir < 80 dan ≥ 70 B
Nilai akhir <70 dan ≥ 50 C
Nilai akhir <50 dan ≥ 30 D
Nilai akhir <30 E
Ketentuan-ketentuan tersebut kenudian dimasukkan ke dalam kode program dengan
menggunakan if statement dengan 5 kondisi. Sebelumnya terdapat deklarasi nilaiIndeks
bertipe char. Kemudian inisialisasi nilaiUTS= 90.0, nilaiUAS= 80.0, dan nilaiAkhir
bertipe double. Untuk menghitung nilai akhir digunakan rumus seperti ketentuan diatas
nilaiAkhir = (0.4 * nilaiUTS) + (0.6 * nilaiUAS);
kemudian terdapat beberapa kondisi
Kondisi yang pertama if( nilaiAkhir >= 80), jika kondisi bernilai true maka akan
menjalankan statement didalamnya yaitu nilaiIndeks = ‘A’; yang berarti jika nilai akhir
>=80 maka akan mendapatkan nilai A, kondisi selanjutnya tidak dicek, kemudian keluar
dari kondisi dan menjalankan instruksi selanjutnya.
Jika kondisi tersebut salah atau tidak terpenuhi, maka akan masuk ke kondisi kedua yaitu
else if (nilaiAkhir >= 70). Jika kondisi kedua ini bernilai true maka akan menjalankan
statement didalamnya yaitu nilaiIndeks = 'B'; yang berarti jika nilai akhir >=70 maka
akan mendapatkan nilai B. Kondisi selanjutnya tidak dicek, kemudian keluar dari
kondisi dan menjalankan instruksi selanjutnya.
Jika kondisi tersebut salah atau tidak terpenuhi, maka akan masuk ke kondisi ketiga yaitu
else if (nilaiAkhir >= 50). Jika kondisi ketiga ini bernilai true maka akan menjalankan
statement didalamnya yaitu nilaiIndeks = 'C'; yang berarti jika nilai akhir >=50 maka
akan mendapatkan nilai C. Kondisi selanjutnya tidak dicek, kemudian keluar dari
kondisi dan menjalankan instruksi selanjutnya.
Jika kondisi tersebut salah atau tidak terpenuhi, maka akan masuk ke kondisi keempat
yaitu else if (nilaiAkhir >= 30). Jika kondisi keempat ini bernilai true maka akan
menjalankan statement didalamnya yaitu nilaiIndeks = 'D'; yang berarti jika nilai akhir
>=50 maka akan mendapatkan nilai D. Kondisi selanjutnya tidak dicek, kemudian
keluar dari kondisi dan menjalankan instruksi selanjutnya.
Jika kondisi tersebut salah atau tidak terpenuhi, maka akan masuk ke kondisi taerakhir
yaitu else { nilaiIndeks = 'E'; }. Kondisi ini berarti jika semua kondisi sebelumnya tidak
terpenuhi atau bisa juga berarti nilaiAkhir < 30, maka akan menjalankan kondisi terakhir
ini. Sehingga kemudian akan menjalankan statement didalamnya yaitu nilaiIndeks = 'E';
Dari nilai yang telah dimasukkan diawal tadi yaitu nilaiUTS = 90.0, nilaiUAS = 80.0,
maka kemudian akan menghitung nilai akhirnya dengan rumus yang telah dimasukkan
pada kode diatas yaitu nilaiAkhir = (0.4 * nilaiUTS) + (0.6 * nilaiUAS) = (0.4 *
90.0)+(0.6*80.0) = 84.0. Dari perhitungan tersebut didapatkan nilai akhir = 84.0. Lalu
masuk ke kondisi if. Nilai akhir ini akan dicek di kondisi yang pertama yaitu
if(nilaiAKhir >= 80) if(84.0 >= 80) bernilai true, maka akan menjalankan satement
didalamnya yaitu nilaiIndeks = ‘A’. karena kondisi sudah bernilai benar maka kondisi
selanjutnya tidak dicek, sehingga langsung keluar dari kondisi. Kemudian menjalankan
instruksi pencetakan System.out.println("Nilai Akhir\t: " + nilaiAkhir); maka akan
mencetak Nilai Akhir yaitu 84.0. kemudian instruksi System.out.println("Nilai Indeks\t:
" + nilaiIndeks); maka akan mencetak Nilai Indeks yaitu A
Hasil eksekusi
3. NESTED FOR
Pada program ini terdapat perulangan bersarang (nested for), yang berarti di dalam
perulangan terdapat lagi perulangan lainnya.
Perulangan pertama yaitu for (int i=1; i<=5; i++). Perulangan tersebut dimulai dari i=1
sampai i = 5 dan kemudian mengalami incremen +1. Kemudian di dalam perulangan
pertama ini terdapat perulngan lagi yaitu for (int j=1; j<=i; j++) . Perulangan ini dimulai
dari j=1 dengan kondisi selama j kurang dari sama dengan 1 maka j akan diincrement (j+
+). Perulangan yang pertama akan melakukan perulangan untuk perintah-perintah
dibawahnya sebanyak 5 kali yaitu mulai dari i=1, i=2, sampai i =5). Untuk setiap nilai i,
perintah yang diulang ada 2, yaitu pertama perintah for (int j=1; j<=i; j++) yang
mengulang perintah untuk mencetak i*j secara mendatar, dan kedua adalah perintah
println() yang akan menurukan kursor ke baris berikutnya (pindah baris).
Perulangan pertama yaitu i=1, kemudian masuk ke perulangan kedua j=1, lalu
mencetak i*j = 1*1 = 1, sehingga tercetak angka 1. Kemudian incremen j++
menjadi j=2, karena kondisi j<=i sudah tidak terpenuhi maka perulangan
berhenti, lalu pindah baris.
Perulangan selanjutnya, i=2, kemudian masuk ke for bersarang j=1 i*j = 2*1
=2. Kemudian incremen j++ menjadi j=2, karena masih memenuhi kondisi j<=1
maka instruksi berikutnya dijalankan sehingga i*j = 2*2 =4. Kemudian incremen
j++ menjadi j=3, kondisi tidak memenuhi maka perulangan berhenti, lalu pindah
baris.
Perulangan selanjutnya, i=3, kemudian masuk ke for bersarang j=1 i*j = 3*1=
3, sehingga 3 dicetak. Kemudian incremen j++ menjadi j=2, karena masih
memenuhi kondisi j<=i maka instruksi berikutnya dijalankan sehingga i*j =
3*2 =6, sehingga 6 dicetak. Kemudian incremen j++ menjadi j=3, karena masih
memenuhi kondisi j<=i maka instruksi berikutnya dijalankan sehingga i*j =
3*3 =9, sehingga 9 dicetak. Kemudian incremen j++ menjadi j=4, kondisi tidak
memenuhi maka perulangan berhenti, lalu pindah baris.
Perulangan selanjutnya, i=4, kemudian masuk ke for bersarang j=1 i*j = 4*1=
4, sehingga 4 dicetak. Kemudian incremen j++ menjadi j=2, karena masih
memenuhi kondisi j<=i maka instruksi berikutnya dijalankan sehingga i*j =
4*2 =8, sehingga 8 dicetak. Kemudian incremen j++ menjadi j=3, karena masih
memenuhi kondisi j<=i maka instruksi berikutnya dijalankan sehingga i*j =
4*3 =12, sehingga 12 dicetak. Kemudian incremen j++ menjadi j=4, karena
masih memenuhi kondisi j<=i maka instruksi berikutnya dijalankan sehingga
i*j = 4*4 =16, sehingga 16 dicetak. Kemudian incremen j++ menjadi j=5, kondisi
tidak memenuhi maka perulangan berhenti, lalu pindah baris.
Perulangan selanjutnya, i=5, kemudian masuk ke for bersarang j=1 i*j = 5*1=
5, sehingga 5 dicetak. Kemudian incremen j++ menjadi j=2, karena masih
memenuhi kondisi j<=i maka instruksi berikutnya dijalankan sehingga i*j =
5*2 =10, sehingga 10 dicetak. Kemudian incremen j++ menjadi j=3, karena
masih memenuhi kondisi j<=i maka instruksi berikutnya dijalankan sehingga
i*j = 5*3 =15, sehingga 15 dicetak. Kemudian incremen j++ menjadi j=4, karena
masih memenuhi kondisi j<=i maka instruksi berikutnya dijalankan sehingga
i*j = 5*4 =20, sehingga 20 dicetak. Kemudian incremen j++ menjadi j=5, karena
masih memenuhi kondisi j<=i maka instruksi berikutnya dijalankan sehingga
i*j = 5*5 =25, sehingga 25 dicetak Kemudian incremen j++ menjadi j=6, kondisi
tidak memenuhi maka perulangan berhenti, lalu pindah baris.
Perulangan selanjutnya i=6 tidak dilakukan karena kondisi tidak memenuhi
dimana syaratnya adalah i<=5. Perulangan berhenti di i=5.
Hasil Eksekusi
4. CONSTRUCTOR
Constructor adalah method khusus yang didefinisika di dalam kelas dan akan dipanggil
secara otomatis setiap kali terjadi instansiasi objek. Constructor berfungsi meakukan
inisialisasi ilai terhadap data-data yang terdapat pada kelas yang bersangkutan.
Constructor tidak memiliki nilai kembalian. Nama constructor haruslah sama persis
dengan nama kelas yang didefinisikan.
Pada program hitung volume ini perama-tama pendeklarasian variabel panjang, lebar,
dan tinggi bertipe data double. Kemudian mendefinisikan constructor dengan parameter,
yaitu Kotak6(double p, double l,
double t)
Kemudian terdapat fungsi hitungVolume yang memberikan nilai kembalian(panjang *
lebar * tinggi).
Lalu masuk ke method main class constructor
Pada method ini terdapat pendeklarasian Kotak6 k1, k2.
Kemudian pembentukan objek baru k1 yaitu k1 = new Kotak6(4, 3, 2); menunjukkan
inisialisasi panjang=4, lebar=3, tinggi=2. Nilai-nilai ini merupakan nilai dari parameter
construktor kotak6. Kemudian objek kedua k2 yaitu k2 = new Kotak6(6, 5, 4);
menunjukkan inisialisasi panjang=6, lebar=5, tinggi=4. Selanjutnya menjalankan
instruksi berikutnya yaitu System.out.println("Volume k1 = " + k1.hitungVolume());
berarti akan mencetak hasil volume k1 yang dihitung dari rumus hitungVolume().
Volume k1= panjang*lebar*tinggi = 4*3*2 = 24.0 ,karena bertipe double maka terdapat
nilai desimal dibelakang koma. Jadi Volume k1 = 24.0
Kemudian instruksi selanjutnya mencetak hasil Volume k2 yaitu
System.out.println("Volume k2 = " + k2.hitungVolume()); hasil volume k2 juga
dihitung dari rumus hitungVolume(). Volume k2= panjang*lebar*tinggi = 6*5*4 =
120.0 ,karena bertipe double maka terdapat nilai desimal dibelakang koma. Jadi Volume
k2 = 120.0
Hasil eksekusi