m0512017_pbo_prak1

19
LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK PENGENALAN DASAR-DASAR JAVA DISUSUN OLEH : ELY DESYANAWATI M0512017 JURUSAN INFORMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM SURAKARTA 2013

Upload: ely-desyana

Post on 27-Oct-2015

8 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: M0512017_PBO_PRAK1

LAPORAN PRAKTIKUM

PEMROGRAMAN BERORIENTASI OBJEK

PENGENALAN DASAR-DASAR JAVA

DISUSUN OLEH :

ELY DESYANAWATI

M0512017

JURUSAN INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

SURAKARTA

2013

Page 2: M0512017_PBO_PRAK1

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

Page 3: M0512017_PBO_PRAK1

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

Page 4: M0512017_PBO_PRAK1

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:

Page 5: M0512017_PBO_PRAK1

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

Page 6: M0512017_PBO_PRAK1

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

Page 7: M0512017_PBO_PRAK1

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

Page 8: M0512017_PBO_PRAK1

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

Page 9: M0512017_PBO_PRAK1

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

Page 10: M0512017_PBO_PRAK1

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

Page 11: M0512017_PBO_PRAK1

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.

Page 12: M0512017_PBO_PRAK1

Perulangan selanjutnya i=6 tidak dilakukan karena kondisi tidak memenuhi

dimana syaratnya adalah i<=5. Perulangan berhenti di i=5.

Hasil Eksekusi

4. CONSTRUCTOR

Page 13: M0512017_PBO_PRAK1

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

Page 14: M0512017_PBO_PRAK1

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