PEMROGRAMAN BERORIENTASI OBJEK File...

13
Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma PEMROGRAMAN BERORIENTASI OBJEK “ File Stream ” Oleh : Farhat, ST, MMSI, MSc { Diolah dari berbagai Sumber }

Transcript of PEMROGRAMAN BERORIENTASI OBJEK File...

Page 1: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

PEMROGRAMAN BERORIENTASI OBJEK

“ File Stream ”

Oleh : Farhat, ST, MMSI, MSc

{ Diolah dari berbagai Sumber }

Page 2: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

BYTE STREAM CLASS

Stream byte didefinisikan dengan menggunakan dua buah hirarki kelas, yaitu InputStream dan OutputStream. Adapun fungsi Stream byte yaitu untuk memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk menulis dan membaca file biner.

Daftar beberapa kelas dalam paket java.io yang termasuk dalam kategori stream byte diantaranya adalah :

Nama Kelas Keterangan

BufferedInputStream Stream input yang telah ter-buffer

BufferedOutputStream Stream output yang telah ter-buffer

ByteArrayInputStream Stream input yang membaca dari array byte

ByteArrayOutputStream Stream output yang menulis ke array byte

DataInputStream Stream input yang berisi method-method untuk membaca tipe data standar yang terdapat dalam java

DataOutputStream Stream output yang berisi method-method untuk menulis tipe data standar yang terdapat dalam java

CHARACTER STREAMS CLASS

Semua class dan interface yang berhubungan dengan streams ada dalam package Java.io. Stream ini digunakan untuk menulis maupun membaca data bertipe karakter. Character streams terdiri dari dua superclass, yaitu:

Reader & Writer

Daftar class bertipe character streams:

BufferedReader

BufferedWriter

CharArrayReader

CharArrayWriter

FileReader

FileWriter

InputStreamReader

OutpuStreamWriter

PrintWriter

StringReader

String Writer

Page 3: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

VARIABEL STREAMS STANDAR

Java memiliki 3 variabel standar, yaitu:

System.in merupakan input stream standar (default=keyboard).

System.out merupakan output stream standar( default=monitor).

System.err merupakan output stream untuk mencetak pesan kesalahan yang secara default adalah console.

MENGGUNAKAN CHARACTER STREAMS

Character stream lebih cocok digunakan untuk menangani operasi i/o yang berbasis karakter. Daftar method dalam class reader :

1. abstract void close() 2. vod mark(int readAheadLimit) 3. boolean markSupported() 4. int read() 5. int read(char[] cbuf) 6. abstract int read(char[] cbuf, int off, int len) 7. void reset() 8. long skip(long n)

Daftar method dalam class writer.

1. abstract void close() 2. abstract void clear() 3. abstract void flush() 4. void write(char[] cbuf, int off, int len) 5. void write(int c) 6. void write(String str) 7. void write(String str, int off, int len)

MEMBACA INPUT DARI CONSOLE

Kode berikut digunakan untuk membaca dari console menggunakan character stream.

//bungkus System.in ke dalam objek InputStreamReader

InputStreamReader input=new InputStreamReader(System.in);

//bungkus kembali objek InputStreamReader ke dalam objek

//bufferedReader

BufferedReader br=new BufferedReader(input);

Atau dengan cara yang lebih singkat berikut ini:

Bufferedreader br=new BufferedReader(new InputStreamReader(System.n));

Untuk membaca character stream gunakan kontruktor berikut.

int read() throws IOException

int read(char[] cbuf) throws IOException

int read(char[] cbuf, int off, int len) throws IOException

Page 4: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

String readLine() throws IOException

Contoh penggunaan character streams yang membaca input per karakter.

import Java.io.*;

class demoinputstream{

public static void main(String args[]) throws IOException{

char data;

String str=””;

BufferedReader br=new BufferedReader(InputStreamReader(System.in));

System.out.println(“ketik sejumlah karakter diakhiri dengan Q.”);

data=(char)br.read();

while(data!=’Q’){

str+=data;

data=(char)br.read();

}

System.out.println(str);

}

}

hasil :

ketik sejumlah karakter diakhiri dengan karakter Q.

ABCDEFGHIJKLMNQ

ABCDEFGHIJKLMNQ

Contoh character stream yang membaca input persatu baris string.

import Java.io.*;

class demoinputstream{

public static void main(String args[]) thorws IOException {

String hasil=””;

String str;

BufferedReader br=new BufferedReader(InputStreamReader(System.in));

System.out.println(“ketik sejumlah string diakhiri dengan string KELUAR.”);

str=br.readLine();

while(!str.equals(“KELUAR”)){

hasil+=str+’\n’;

str=br.readLine();

}

System.out.println();

System.out.println(“hasil : \n “ + hasil);

}

hasil:

ketik sejumlah string diakhiri dengan string KELUAR.

contoh program

yang membaca dari

console per baris string

KELUAR

Page 5: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

Menulis Output Ke Console

Kontruktor class PrintWriter.

PrintWriter(OutputStream out)

PrintWriter(OutputStream out, boolean autoFlush)

Berikut adalah kode untuk membungkus System.out kedalam objek PrintStream.

PrintWriter pw=new PrintWriter(System.out, true);

Contoh program.

import Java.io.*;

class demooutputstream{

public static void main(String args[]) throws IOException{

PrintWriter pw=new PrintWriter(System.out, true);

pw.println(“menulis ke console dengan character streams..”);

}

}

CHARACTER STREAMING

Platform Java menyimpan karakter nilai-nilai menggunakan konvensi Unicode. Character Streaming I / O secara otomatis menerjemahkan format internal ini ke dan dari set karakter lokal. Set karakter lokal biasanya merupakan superset 8-bit ASCII. Untuk sebagian besar aplikasi, I / O dengan karakter stream tidak lebih rumit daripada I / O dengan byte stream. Input dan output dilakukan dengan kelas aliran secara otomatis menerjemahkan ke dan dari set karakter lokal. Sebuah program yang menggunakan karakter stream di tempat byte stream secara otomatis menyesuaikan dengan karakter lokal mengatur dan siap untuk internasionalisasi - semua tanpa usaha ekstra oleh programmer. Jika internasionalisasi tidak prioritas, Anda hanya dapat menggunakan kelas aliran karakter tanpa membayar banyak perhatian untuk isu-isu set karakter. Kemudian, jika internasionalisasi menjadi prioritas, program anda dapat disesuaikan tanpa recoding luas. Melihat jejak Internasionalisasi untuk informasi lebih lanjut. Menggunakan Streaming Karakter Semua kelas aliran karakter adalah keturunan dari Reader dan Writer. Seperti byte stream, ada kelas aliran karakter yang mengkhususkan diri dalam file I / O: FileReader dan FileWriter.

Contoh menggambarkan kelas-kelas ini.

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

public class CopyCharacters {

public static void main(String[] args) throws IOException {

FileReader inputStream = null;

FileWriter outputStream = null;

try {

inputStream = new FileReader("xanadu.txt");

Page 6: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

outputStream = new FileWriter("characteroutput.txt");

int c;

while ((c = inputStream.read()) != -1) {

outputStream.write(c);

}

} finally {

if (inputStream != null) {

inputStream.close();

}

if (outputStream != null) {

outputStream.close();

}

}

}

}

CopyCharacters sangat mirip dengan CopyBytes. Perbedaan yang paling penting adalah bahwa CopyCharacters menggunakan FileReader dan FileWriter untuk input dan output di tempat FileInputStream dan FileOutputStream. Perhatikan bahwa kedua CopyBytes dan CopyCharacters menggunakan variabel int untuk membaca ke dan menulis dari. Namun, di CopyCharacters, variabel int memegang nilai karakter di 16 bit terakhir; di CopyBytes, variabel int memegang nilai byte dalam 8 bit terakhir. Character Stream sering disebut "pembungkus" untuk byte stream. Aliran karakter menggunakan aliran byte untuk melakukan fisik I / O, sedangkan aliran karakter menangani terjemahan antara karakter dan byte. FileReader, misalnya, menggunakan FileInputStream, sedangkan FileWriter menggunakan FileOutputStream. Ada dua tujuan umum byte-untuk-karakter "jembatan" stream: InputStreamReader dan OutputStreamWriter. Menggunakannya untuk membuat karakter stream jika tidak ada kelas aliran karakter dikemas yang memenuhi kebutuhan Anda. Soket pelajaran dalam jejak jaringan menunjukkan bagaimana untuk membuat aliran karakter dari aliran byte yang disediakan oleh kelas socket. Line-Oriented I / O Karakter I / O biasanya terjadi pada unit lebih besar dari karakter tunggal. Satu unit umum adalah baris: string karakter dengan terminator garis di akhir. Sebuah garis terminator dapat menjadi urutan carriage-return / line-feed ( "\ r \ n"), satu carriage-return ( "\ r"), atau single line-feed ( "\ n"). Mendukung semua line terminator mungkin memungkinkan program untuk membaca file teks yang dibuat pada salah satu sistem operasi yang banyak digunakan. Mari kita memodifikasi contoh CopyCharacters menggunakan line-berorientasi I / O. Untuk melakukan hal ini, kita harus menggunakan dua kelas yang belum pernah kita lihat sebelumnya, BufferedReader dan PrintWriter. Kami akan mengeksplorasi kelas ini secara lebih mendalam di

Page 7: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

Buffered I / O dan Formatting. Saat ini, kami hanya tertarik pada dukungan mereka untuk line-berorientasi I / O. contoh program untuk memanggil BufferedReader.readLine dan PrintWriter.println untuk melakukan input dan output satu baris pada satu waktu.

import java.io.FileReader;

import java.io.FileWriter;

import java.io.BufferedReader;

import java.io.PrintWriter;

import java.io.IOException;

public class CopyLines {

public static void main(String[] args) throws IOException {

BufferedReader inputStream = null;

PrintWriter outputStream = null;

try {

inputStream = new BufferedReader(new FileReader("xanadu.txt"));

outputStream = new PrintWriter(new

FileWriter("characteroutput.txt"));

String l;

while ((l = inputStream.readLine()) != null) {

outputStream.println(l);

}

} finally {

if (inputStream != null) {

inputStream.close();

}

if (outputStream != null) {

outputStream.close();

}

}

}

}

PREDEFINED SYSTEM CLASS

Java class library (Java API) memiliki banyak sekali kelas (Java predefined classes) yang diletakkan di paket (package) untuk dapat dipergunakan kembali di program. Paket tersebut digunakan untuk mengelompokkan kelas-kelas yang mempunyai kemiripan fungsi (related class). Kelas-kelas Java yang akan digunakan di dalam program, terlebih dahulu harus diimpor beserta dengan nama paket di mana kelas tersebut berada, kecuali untuk kelas Java yang berada di paket java.lang seperti kelas JOptionPane yang berada di paket javax.swing dan kelas DecimalFormat yang berada di paket java.text. Berikut ini adalah daftar beberapa paket Java yang sering dipergunakan di program Java:

Page 8: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

Tabel beberapa Paket Java

Paket Keterangan

javax.swing Paket ini berisi kelas-kelas dan interface untuk komponen GUI swing Java yang menyediakan dukungan untuk tampilan grafis yang portabel.

javax.swing.event Paket ini berisi kelas-kelas dan interfes yang memperbolehkan penanganan event untuk komponent grafis yang terletak di paket javax.swing.

java.lang Paket ini berisi kelas-kelas dan interfes yang diperlukan oleh banyak program Java. Paket ini diimpor oleh kompiler ke semua program Java secara otomatis.

java.applet Paket ini berisi kelas-kelas Applet dan juga beberapa interfes yang memperbolehkan interaksi applet dan browser serta untuk memainkan klip audio. Kelas javax.swing.JApplet digunakan untuk menetapkan applet yang menggunakan komponen GUI swing.

java.text Paket ini berisi kelas-kelas dan interfes yang memperbolehkan program Java untuk memanipulasi angka, tanggal, karakter dan juga string.

java.net Paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan.

KEUNTUNGAN MENGGUNAKAN PAKET

Ada kemungkinan, programer Java membuat kelas sendiri yang mempunyai nama sama dengan kelas yang sudah ada di Java API tanpa sengaja. Konflik penamaan kelas bisa saja terjadi. Untuk mengatasi masalah terkait penamaan kelas, Anda dapat meletakkan kelas yang mempunyai nama sama ke dalam paket berbeda dan mengakses kelas tersebut beserta dengan nama paketnya. Kelas-kelas Java yang mempunyai kemiripan fungsi seharusnya diletakkan di paket yang sama sehingga akan mempermudah penempatan dan pendistribusian. Paket juga berfungsi memberi proteksi pada kelas dan interface yang ada di dalamnya. Sebagai contoh, kelas yang dideklarasikan dengan kata kunci private, hanya dapat diakses oleh kelas-kelas lain yang berada dalam paket yang sama.

DIREKTORI PAKET

Sebuah paket sebenarnya adalah direktori yang digunakan untuk menyimpan file-file bytecode (file berekstensi .class). Paket Java disusun secara berjenjang (hierarchical). Anda bisa mempunyai paket yang berada di dalam paket lain. Sebagai contoh, javax.swing.JOptionPane menunjukkan bahwa kelas JOptionPane berada di paket swing dan paket swing sendiri berada di paket javax. Level jenjang paket digunakan untuk memastikan keunikan dari nama paket.

Semua kelas yang dibuat akan tersimpan di direktori yang sekarang aktif (current directory atau default package) ketika program sumber Java dikompilasi. Karena program sumber Java terletak

Page 9: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

di direktori, misalnya c:\hindro\javasc dan proses kompilasi juga dilakukan di direktori tersebut, maka file bytecode hasil kompilasi juga akan tersimpan di direktori yang sama.

MELETAKKAN KELAS KE DALAM PAKET

Setiap kelas Java akan diletakkan (dikelompokkan) ke dalam paket. Kelas-kelas tersebut diletakkan ke dalam paket saat program sumber Java (Java source program) dikompilasi. Untuk meletakkan sebuah kelas hasil kompilasi ke dalam paket yang dituju, Anda dapat menyertakan pernyataan package diikuti nama paket di program sumber Java. Pernyataan package yang diikuti nama peket adalah pernyataan Java yang paling pertama. Berikut ini adalah sintak pernyataan package untuk meletakkan hasil kompilasi ke dalam paket:

Package nama-paket;

Untuk mendemonstrasikan penggunaan pernyataan package di atas, terlebih dahulu Anda dapat membuat direktori baru. Misalnya c:\filejava\javaapp\kelas\bangun\datar adalah direktori yang digunakan untuk menyimpan file bytecode Java (berekstensi .class). Dari direktori tempat menyimpan kelas, Anda dapat menentukan c:\filejava\javaapp\kelas sebagai class path dan bangun\datar sebagai nama paket (package name). Agar Java mengetahui letak kelas yang sudah dibuat di dalam sistem file (file system), Anda perlu memodifikasi nilai variabel CLASSPATH di kotak dialok Edit System Variable.

Modifikasi nilai variabel CLASSPATH dilakukan dengan menambahkan ;c:\filejava\javaapp\kelas ke nilai yang sudah ada di variabel CLASSPATH. Untuk menambahkan beberapa path lain ke dalam nilai variabel CLASSPATH, Anda harus memberikan pemisah berupa titik koma. Umumnya, variabel CLASSPATH sudah terisi dengan dot (.) yang mengacu ke direktori yang sedang aktif (current directory) atau lokasi dari pustaka kelas Java. Berikut ini adalah kotak dialok Edit System Variable dari variabel CLASSPATH:

Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus keliling segitiga sama sisi ABC adalah sisi AB + sisi BC + sisi CA dan rumus luasnya adalah ½ x alas x tinggi. Kelas bangun datar segitiga sama sisi ini dinamakan Segi3ABC dan mempunyai dua metoda untuk mencari keliling dan luas. Kelas Segi3ABC akan diletakkan ke dalam paket bangun\datar. Berikut ini adalah kode programnya:

Page 10: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

// Meletakkan kelas ke paket

package bangun.datar;

// Mendefinisikan kelas Segi3ABC

public class Segi3ABC {

// Metoda hitungKeliling

// Untuk mencari keliling segi tiga

public static double hitungKeliling(double sisiAB, double sisiBC,

double sisiCA) {

double keliling;

keliling = sisiAB + sisiBC + sisiCA;

return keliling;

}

// Metoda hitungLuas

// Untuk mencari luas segi tiga

public static double hitungLuas(double sisiAB) {

// Deklarasi variabel

double luas;

// Mencari tinggi segi tiga

double tinggi = Math.sqrt(Math.pow(sisiAB, 2) - Math.pow((0.5 *

sisiAB), 2));

// Mencari luas segi tiga

luas = sisiAB * tinggi;

return luas;

}

}

Kelas Segi3ABC tidak memiliki metoda main dikarenakan kelas ini akan digunakan di program lain yang mempunyai metoda main. Dari kode program di atas, baris nomor 2 adalah pernyataan package yang diikuti oleh nama paket bangun.datar. Pernyataan package di program sumber Java (Segi3ABC.java) digunakan untuk meletakkan file bytecode hasil kompilasi (Segi3ABC.class) ke dalam paket yang sudah ditentukan di pernyataan package.

Baris nomor 24 adalah pernyataan untuk mencari tinggi segitiga sama sisi. Anda dapat menggunakan rumus phytagoras untuk mengetahui tinggi dari segitiga sama sisi. Rumus phytagoras meliputi pencarian akar (√x) dan pemangkatan (x2) dari variabel x. Untuk mencari nilai akar dan pemangkatan, dapat menggunakan metoda statik sqrt dan pow dari kelas Math yang ada di paket java.lang. Math.sqrt(x) sama artinya dengan √x dan Math.pow(x, y) sama artinya dengan xy. Selain metoda sqrt dan pow, kelas Math juga berisi metoda lain untuk melakukan fungsi matematika dasar serta metoda random (Math.random) yang dapat menghasilkan nilai random double lebih besar atau sama dengan 0.0 dan lebih kecil dari 1.0 (0 <= Math.random() < 1.0).

Ada dua cara untuk mengkompilasi program sumber Java agar file berekstensi .class hasil dari kompilasi dapat diletakkan di paket yang sudah ditentukan sebagaimana di dalam pernyataan

Page 11: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

package. Cara pertama, Anda harus menyimpan file program sumber (file berekstensi .java) di direktori c:\filejava\javaapp\kelas\bangun\datar. Sebelum proses kompilasi dilakukan, Anda terlebih dahulu harus berada di direktori dimana paket bangun\datar berada. Cara kedua, Anda dapat mengkompilasi program sumber Java yang terletak di sebuah direktori dan meletakkan hasil kompilasi di direktori (paket) tertentu melalui c prompt (c:\>).

Untuk menggunakan cara yang pertama, file program sumber Java (Segi3ABC.java) harus disimpan di folder atau direktori c:\filejava\javaapp\kelas\bangun\datar. Karena di program sumber tersebut sudah terdapat pernyataan package bangun.datar, sebelum dikompilasi, Anda cukup berada di direktori c:\filejava\javaapp\kelas. Kompilasi dapat dilakukan dengan menuliskan perintah seperti di bawah ini di baris perintah pada jendela Command Prompt.

javac bangun\datar\Segi3ABC.java

Setelah proses kompilasi selesai, Anda harus pastikan bahwa file bytecode yang berekstensi .class (Segi3ABC.class) sudah berada di direktori c:\filejava\javaapp\kelas\bangun\datar. Kompiler Java dapat mengetahui tempat untuk meletakkan file hasil kompilasi dengan mengkombinasikan classpath c:\filejava\javaapp\kelas dengan nama paket bangun.datar.

Umumnya, programer Java memilih untuk meletakkan file program sumber (berekstensi .java) dan file hasil kompilasi (berekstensi .class) di direktori berbeda. Hal ini dimaksudkan untuk mempermudah proses pendistribusian paket yang hanya berisi kelas-kelas hasil kompilasi. Anda juga dapat mengelola file dengan cara demikian. Misalnya, Anda membuat direktori c:\filejava\javaapp\sumber\bangun\datar sebagai tempat menyimpan file program sumber, sedangkan tempat untuk menyimpan file hasil kompilasi, Anda dapat menggunakan direktori c:\filejava\javaapp\kelas\bangun\datar. Untuk mengkompilasi file program sumber melalui c prompt (c:\>), Anda dapat menuliskan perintah seperti di bawah ini.

c:\>javac –d filejava\javaapp\kelas

filejava\javaapp\sumber\bangun\datar\Segi3ABC.java

Page 12: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

-d memberitahukan kepada kompiler Java untuk meletakkan file kelas hasil mengkompilasi (Segi3ABC.class) ke direktori c:\filejava\javaapp\kelas\bangun\datar. Setelah kompilasi file sumber selesai dilakukan dan tidak terdapat kesalahan, Anda dapat memastikan bahwa file hasil kompilasi sudah berada di direktori c:\filejava\javaapp\kelas\bangun\datar.

Kelas Segi3ABC yang tersimpan di direktori c:\filejava\javaapp\kelas\bangun\datar dapat dipanggil dengan menggunakan pernyataan import sebagaimana kelas-kelas Java lain. Contoh program berikut ini akan menggunakan kelas Segi3ABC yang sudah didefinisikan sebelumnya untuk menghitung keliling dan luas segitiga sama sisi. Segitiga sama sisi mempunyai panjang sisi yang sama yaitu 9 cm. Berikut ini adalah kode program, penjelasan dan hasil eksekusi program:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

// Nama file : SegitigaSamaSisi.java

// Menghitung keliling dan luas segitiga

// Mengimpor kelas

import javax.swing.JOptionPane;

import java.text.DecimalFormat;

import bangun.datar.Segi3ABC;

// Deklarasi kelas

public class SegitigaSamaSisi {

// Metoda main

public static void main(String[] args) {

// Deklarasi variable

double keliling;

double luas;

double sisi = 9;

String hasil= "";

DecimalFormat formatAngka;

// Membuat objek dari kelas DecimalFormat

formatAngka = new DecimalFormat("0.00");

hasil += "Segitiga Sama Sisi\n\nPanjang sisi : " + sisi + "\n\n";

keliling = Segi3ABC.hitungKeliling(9, 9, 9);

hasil += "Keliling Segitiga ABC : " + formatAngka.format(keliling) +

"\n";

luas = Segi3ABC.hitungLuas(9);

hasil += "Luas Segitiga ABC : " + formatAngka.format(luas) + "\n";

JOptionPane.showMessageDialog(null, hasil, "Menghitung Keliling dan

Luas",

JOptionPane.INFORMATION_MESSAGE);

// Mengakhiri aplikasi berpenampilan GUI

System.exit(0);

}}

Page 13: PEMROGRAMAN BERORIENTASI OBJEK File Streamfarhana.salim.staff.gunadarma.ac.id/Downloads/files/... · Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma BYTE

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

Baris nomor 7 adalah pernyataan untuk mengimpor kelas Segi3ABC yeng terletak di paket bangun.datar. Kelas Segi3ABC merupakan kelas yang didefinisikan oleh pengguna aplikasi (user-defined class) dan bukan termasuk ke dalam Java predefined class yang terletak di pustaka kelas Java. Baris nomor 27 adalah pernyataan pemberian (assigment statement). Di dalam pernyataan ini, metoda hitungKeliling kelas Segi3ABC yang berada di paket bangun.datar dipanggil. Metoda hitungKeliling akan mengembalikan nilai keliling segitiga dengan tipe data double untuk diberikan atau disimpan ke variabel keliling.

Baris nomor 30 adalah juga pernyataan pemberian nilai. Di dalam pernyataan pemberian nilai ini, metoda hitungLuas kelas Segi3ABC yang tersimpan di paket bangun.datar dipanggil. Metoda hitungLuas akan mengembalikan nilai luas segitiga dengan tipe data double untuk disimpan di variabel luas. Baris nomor 33 adalah pernyataan untuk menampilkan hasil mencari keliling dan luas dengan menggunakan metoda hitungKeliling dan hitungLuas kelas Segi3ABC.