• Tidak ada hasil yang ditemukan

Pemrograman Berorientasi Obyek. Ramos Somya

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pemrograman Berorientasi Obyek. Ramos Somya"

Copied!
44
0
0

Teks penuh

(1)

Pemrograman Berorientasi Obyek

(2)

String adalah deretan dari karakter. Pada Java

String merupakan sebuah

object.

Java menyediakan class String, StringBuffer dan

StringTokenizer untuk menyimpan dan memroses

string.

(3)

+String()

+String(value: String)

+String(value: char[])

+charAt(index: int): char

+compareTo(anotherString: String): int

+compareToIgnoreCase(anotherString: String): int

+concat(anotherString: String): String

+endsWith(suffix: String): boolean

+equals(anotherString: String): boolean

+equalsIgnoreCase(anotherString: String): boolean

+indexOf(ch: int): int

+indexOf(ch: int, fromIndex: int): int

+indexOf(str: String): int

+indexOf(str: String, fromIndex: int): int

+intern(): String

+regionMatches(toffset: int, other: String, offset: int, len: int): boolean

+length(): int

+replace(oldChar: char, newChar: char): String

+startsWith(prefix: String): boolean

+subString(beginIndex: int): String

+subString(beginIndex: int, endIndex: int): String

+toCharArray(): char[]

+toLowerCase(): String

+toString(): String

+toUpperCase(): String

+trim(): String

+copyValueOf(data: char[]): String

+valueOf(c: char): String

+valueOf(data: char[]): String

+valueOf(d: double): String

+valueOf(f: float): String

+valueOf(i: int): String

(4)

String merupakan object yang dienkapsulasi dalam class

String (java.lang.String).

Parameter yang digunakan pada method println(String s)

merupakan string literal.

Compiler Java mengubah string literal menjadi sebuah

object string dan meneruskannya kepada println.

Operasi-operasi dalam String:

- Membuat dan menginisialisasi String - Membandingkan String

- Menggabungkan String

(5)

String dapat dibuat dari sebuah nilai String atau sebuah

array dari karakter.

Deklarasi pembuatan String dari sebuah String literal

menggunakan sintak:

String string1 = new String(stringLiteral);

Argumen stringLiteral merupakan deretan karakter yang

diapit oleh tanda petik ganda (“…”).

Misal untuk membuat sebuah object String bernama pesan

untuk string literal “Belajar Java!”:

String pesan = new String(“Belajar Java!”);

Atau notasi shorthand untuk membuat string:

(6)

String juga dapat dibuat dari array karakter.

char[] charArray = {‘B’, ‘e’, ‘l’, ‘a’, ‘j’, ‘a’, ‘r’, ‘ ’,’J’,

‘a’, ‘v’, ‘a’};

(7)

Kita mendapatkan panjang dari sebuah string dengan

memanggil method length().

Misalnya, pesan.length() menghasilkan panjang dari

string pesan.

Method s.charAt(index) dapat digunakan untuk

mendapatkan karakter tertentu pada string s, dimana

index bernilai dari 0 sampai s.length()-1.

Berdasar contoh sebelumnya pemanggilan method

pesan.charAt(0) mengembalikan sebuah karakter ’B’ dan

pesan.charAt(10) menghasilkan ’v’. Sedangkan pesan.length() bernilai 12.

(8)

Method concat() digunakan untuk menggabungkan dua

string:

String s3 = s1.concat(s2);

Java juga menyediakan cara yang mudah untuk

menggabungkan string dengan menggunakan tanda tambah (+), misal:

String s4 = pesan + “ dan “ + “HTML!”;

Maka string s4 berisi “Belajar Java dan HTML!”.

Apabila kita menggunakan tanda tambah (+) untuk

menggabungkan sebuah angka dengan string pada method

println, maka angka tersebut dikonversi menjadi string

(9)

String merupakan class yang immutable (tidak dapat

berubah).

Setelah sebuah string tercipta, maka nilainya tidak dapat

dimodifikasi.

Misalnya, kita tidak dapat mengganti “Java” pada pesan

menjadi “HTML”.

Jadi yang dapat kita lakukan jika kita ingin mengubah

string pesan dengan memberikan nilai baru kepada pesan:

(10)

Sebagai alternatif, kita dapat mengutip substring dari

sebuah string menggunakan method substring pada kelas String yang mempunyai 2 versi:

public String substring(int beginIndex, int endIndex)

Menghasilkan sebuah string baru yang merupakan substring dari string tersebut.

Substring dimulai pada beginIndex yang ditentukan dan berakhir pada karakter pada endIndex-1. Maka panjang dari substring adalah endIndex-beginIndex. Misalnya: String pesan = “Belajar Java”.substring(0,8) + “HTML”;

(11)

public String substring(int beginIndex)

Menghasilkan sebuah string baru yang merupakan substring dari string tersebut. Substring dimulai pada beginIndex yang ditentukan hingga akhir dari string.

(12)

Operator == hanya akan mengecek apakah string1 dan

string2 menunjuk kepada obyek yang sama; namun tidak akan memberitahu apakah string1 dan string2

(13)

Method equals() digunakan untuk membandingkan

kesamaan isi dari object. Misalnya, kita membandingkan isi kedua string:

(14)

Method compareTo() juga dapat digunakan untuk

membandingkan dua buah string: s1.compareTo(s2);

Method compareTo() akan menghasilkan nilai 0 jika s1

sama dengan s2, dan akan bernilai kurang dari 0 apabila s1 secara leksikograpikal kurang dari s2 dan bernilai lebih dari 0 apabila s1 secara leksikograpikal lebih dari s2.

Class String juga menyediakan method

equalsIgnoreCase() yang mengabaikan perbedaan huruf besar atau kecil saat membandingkan string dan regionMatches() untuk membandingkan bagian / potongan dari dua string.

(15)

Kita juga dapat menggunakan str.startsWith(prefix) untuk

mengecek apakah string str dimulai dengan prefix tertentu dan str.endsWith(suffix) untuk mengecek apakah string str diakhiri dengan sufix tertentu.

(16)

String dapat dikonversi menjadi string yang baru dengan

method toLowerCase menjadi huruf kecil semua, toUpperCase menjadi huruf besar semua, trim menghilangkan karakter blank pada akhir kedua string dan replace(oldChar, newChar) yang mengganti sebuah karakter pada string dengan karakter baru yang ditentukan.

(17)

Untuk menemukan sebuah karakter atau substring pada

sebuah string digunakan method indexOf. Empat jenis overloading pada method indexOf didefinisikan untuk kelas String:

public int indexOf(int ch)

Menghasilkan index dari karakter pertama pada string yang sesuai dengan karakter yang ditentukan pada ch. Akan bernilai -1 jika karakter yang dicari tidak ditemukan pada string.

public int indexOf(int ch, int fromIndex)

Menghasilkan index dari karakter pertama dalam string dimulai dari karakter pada fromIndex yang sesuai dengan karakter yang ditentukan pada ch. Akan bernilai -1 jika karakter yang dicari tidak ditemukan pada string.

(18)

public int indexOf(String str)

Menghasilkan index dari karakter pertama dari substring pada string yang sesuai, yang ditentukan pada str. Akan bernilai -1 jika karakter yang dicari tidak ditemukan pada string.

public int indexOf(String str, int fromIndex)

Menghasilkan index dari karakter pertama dari substring dalam string dimulai dari karakter pada fromIndex yang sesuai dengan string yang ditentukan pada str. Akan

bernilai -1 jika karakter yang dicari tidak ditemukan pada string.

(19)
(20)

String bukan array, tetapi string dapat diubah menjadi

sebuah array dan sebaliknya.

 Untuk mengkonversi sebuah string menjadi array dari

karakter digunakan method toCharArray.

Misalnya, pernyataan berikut mengubah string ‘Java’

menjadi array:

char[] charArray = “Java”.toCharArray();

Maka charArray[0] adalah ‘J’ dan charArray[3] adalah ‘a’.

 Untuk mengkonversi array dari karakter menjadi sebuah

string dapat menggunakan konstruktor String(char[]) atau method valueOf(char[]).

String str = new String(new char[]{‘J’, ‘a’, ‘v’, ‘a’});

(21)

Method valueOf dapat digunakan untuk mengkonversi

array dari karakter menjadi sebuah string.

Terdapat beberapa versi overloading dari method valueOf

yang dapat dipakai untuk mengkonversi karakter dan angka menjadi string, dengan tipe argumen yang berbeda-beda: char, double, long, int dan float.

Misalnya, untuk mengubah sebuah nilai double menjadi

string dipakai String.valueOf(5.44) yang menghasilkan sebuah string yang berisi karakter-karakter ‘5’, ’.’, ’4’ dan ’4’.

Dan sebaliknya untuk mengubah sebuah string numerik

menjadi angka dipakai Double.parseDouble(str) atau Int.parseInt(str) menghasilkan nilai double atau int.

(22)

Java menyediakan sebuah class pembungkus untuk setiap

tipe data primitif.

Kelas-kelas tersebut ialah Character, Boolean, Byte,

Short, Integer, Long, Float, dan Double untuk char, boolean, byte, short, int, long, float, dan double.

Semua class tersebut berada di package java.lang dan

menjadikan nilai data primitif dapat diperlakukan sebagai object.

Class Character mempunyai sebuah constructor dan lebih

(23)

+Character(value: char)+charValue(): char

+compareTo(anotherCharacter: Character): int+equals(anotherCharacter: Character): boolean+isDigit(ch: char): boolean

+isLetter(ch: char): boolean

+isLetterOrDigit(ch: char): boolean+isLowerCase(ch: char): boolean+isUpperCase(ch: char): boolean+toLowerCase(ch: char): char+toUpperCase(ch: char): char

(24)

Object Character dapat dibuat dari sebuah nilai char, misalnya:

Character character = new Character(‘a’);

Kebanyakan method pada class Character adalah static method.

Method isDigit(char ch) bernilai true jika karakternya sebuah angka. Method isLetter(charch) bernilai true jika karakternya sebuah huruf. Method isLetterorDigit(char ch) bernilai true jika karakternya sebuah

huruf atau angka.

Method isLowerCase(char ch) bernilai true jika karakternya berhuruf

kecil.

Method isUpperCase(char ch) bernilai true jika karakternya berhuruf

besar.

Method toLowerCase(char ch) menghasilkan karakter berhuruf kecil,

dan

(25)

Class StringBuffer merupakan alternatif dari class String.StringBuffer lebih fleksibel daripada String.

Kita dapat menambahkan, menyisipkan dan

membubuhkan isi baru terhadap sebuah buffer string, dibandingkan dengan nilai string yang selalu tetap ketika dibuat.

Class StringBuffer menyediakan 3 buah constructor:public StringBuffer()

Membuat sebuah buffer string kosong (tidak ada karakter di dalamnya) dan kapasitas awal 16 karakter.

public StringBuffer(int length)

Membuat sebuah buffer string kosong (tidak ada karakter di dalamnya) dan kapasitas awal ditentukan pada

(26)

public StringBuffer(String string)

Membuat sebuah buffer string untuk argumen string dan kapasitas awal 16 karakter ditambah dengan panjang dari argumen string tersebut.

(27)

Class StringBuffer mempunyai lebih dari 30 method untuk mengelola

buffer dan memodifikasi string pada buffer:

+append(data: char[]): StringBuffer

+append(data: char[], offset: int, len: int): StringBuffer+append(v: aPrimitiveType): StringBuffer

+append(str: String): StringBuffer+capacity(): int

+charAt(index: int): char

+delete(startIndex: int, endIndex: int): StringBuffer+deleteCharAt(index: int): StringBuffer

+insert(index: int, data: char[], offset: int, len: int): StringBuffer+insert(offset: int, data: char[]): StringBuffer

+insert(offset: int, b: aPrimitiveType): StringBuffer+insert(offset: int, str: String): StringBuffer

+length(): int

+replace(startIndex: int, endIndex: int, str: String): StringBuffer+reverse(): StringBuffer

+setCharAt(index: int, ch: char): void+setLength(newLength: int): void+subString(start: int): StringBuffer

(28)

Class StringBuffer menyediakan beberapa method yang

di-overloading untuk membubuhkan boolean, char, char

array, double, float, int, long dan String pada sebuah buffer string.

StringBuffer strBuf = new StringBuffer(); strBuf.append(“Belajar”);

strBuf.append(“ ”);

strBuf.append(“Java”);

Untuk menyisipkan string baru dapat dipakai:

strBuf.insert(8, “HTML dan ”);

(29)

Class lain yang berguna untuk pemrosesan string ialah

java.util.StringTokenizer.

Class ini dipakai untuk membagi string menjadi

potongan-potongan sehingga informasi yang terkandung dapat diterima kembali dan diproses.

Misalnya, untuk mendapatkan semua kata pada string

“Saya senang belajar Java di FTI”, kita dapat membuat sebuah instansiasi dari kelas StringTokenizer untuk string tersebut dan mendapatkan setiap kata pada string itu menggunakan method pada kelas StringTokenizer.

(30)

+countTokens(): int

+hasMoreTokens(): boolean+nextToken(): String

+nextTokens(delim: String): String

Class StringTokenizer mengenali setiap kata dengan

menentukan sekumpulan karakter sebagai delimiter / pembatas ketika membentuk sebuah object StringTokenizer. Delimiter yang akan membagi sebuah string menjadi potongan-potongan yang disebut tokens.

(31)

Class StringTokenizer mempunyai 3 constructor:

public StringTokenizer(String s, String delim, boolean

returnTokens)

Membentuk sebuah StringTokenizer untuk sebuah string s dengan delimiter tertentu. Jika returnTokens bernilai true, delimiter akan dikembalikan sebagai sebuah token.

public StringTokenizer(String s, String delim)

Membentuk sebuah StringTokenizer untuk sebuah string s dengan delimiter tertentu delim, yang bukan merupakan sebuah token.

public StringTokenizer(String s)

Membentuk sebuah StringTokenizer untuk sebuah string s dengan delimiter default “ \t\n\r” (spasi, tab, pergantian garis baru / new line & carriage return) dan delimiter bukan merupakan sebuah token.

(32)

Method hasMoreToken() bernilai true jika terdapat token

yang tersisa pada string. Method nextToken()

menghasilkan token selanjutnya pada string, sedangkan nextToken(String delim) menghasilkan token selanjutnya pada string setelah menempatkan delimiter / pembatas yaitu delim. Method countTokens() bernilai jumlah token yang terdapat pada string tokenizer.

(33)
(34)

Modifikasi Contoh Program 1.1 sebelumnya untuk

mengubah String (kalimat) menjadi format TitleCase (Huruf pertama setiap kata adalah huruf kapital dan sisanya huruf kecil).

(35)

Stream adalah proses untuk membaca data dari suatu

sumber atau menulis data ke suatu tujuan.

class stream ini berada paket java.io jadi untuk

menggunakan harus diimpor terlebih dahulu.

(36)

Class InputStream merupakan class abstrak yang menjadi

dasar bagi semua class yang berhubungan dengan

pembacaan data dari suatu sumber. Method-method yang sering dipakai:

int available() Metode ini mengembalikan jumlah data

yang telah tersedia untuk dibaca.

void close(). Method untuk menutup stream.

int read() Method untuk membaca sebuah byte data,

(37)

Class OutputStream merupakan class abstrak yang

menjadi dasar untuk semua stream keluaran. Method-methodnya:

void clear() Method untuk menutup stream keluaran.void flush() Method ini memaksa penulisan.

void write(int b) Method untuk menuliskan byte b ke

stream keluaran.

Class ByteArrayOutputStream merupakan class yang

digunakan untuk mengirimkan keluaran ke suatu array dengan elemen bertipe byte.

(38)

Class FileInputStream digunakan untuk membaca data

dari suatu file.

Class SequenceInputStream digunakan untuk

menggabungkan dua buah stream masukan atau lebih menjadi sebuah stream masukan.

Class DataInputStream digunakan untuk membaca data

yang memiliki format khusus ke stream masukan.

Class BufferedInputStream adalah class yang digunakan

untuk membuat stream masukan berpenyangga. Tujuan penyanggaan ini adalah untuk membuat pembacaan data pada file dilakukan secara efisien.

(39)

Class FileOutputStream digunakan untuk menulis

keluaran ke suatu berkas.

Class DataOuputStream digunakan untuk menuliskan

berbagai tipe data ke stream keluaran dalam berbagai format yang tak bergantung pada mesin.

Class BufferedOutputStream adalah class yang digunakan

untuk membuat stream keluaran berpenyangga. Tujuan penyanggaan agar penulisan ke file dapat dilakukan

(40)

Buat sebuah file .txt dengan isi terserah Anda lalu simpan dalam drive

komputer Anda.

Buat program Java untuk memanggil file txt tersebut dan

(41)
(42)

Modifikasi program Title Case sebelumnya sehingga dapat

mengubah inputan berupa kalimat ke bentuk TitleCase dan menyimpannya dalam sebuah file .txt

(43)

Dikerjakan secara kelompok max 5 mahasiswa.

Dikumpulkan dalam bentuk hardcopy yang berisi

kode program, output dan penjelasan kode

program sejelas-jelasnya.

Dikumpulkan di kantor saya pada hari Senin, 4

Juli 2011 pukul 09.00 – 10.00

(44)

Referensi

Dokumen terkait

Berdasarkan hasil penelitian mengenai biaya untuk melakukan SADARI dapat dilihat bahwa pengetahuan responden tentang besar biaya untuk melakukan SADARI yaitu sebanyak 43

Hasil pengujian menunjukkan bahwa ketepatan perpindahan distributor channel sesuai rancangan, kecepatan sumber hasil pengamatan antara 15 mm/dt sampai 20 mm/detik masih

Tingkat ketidakjenuhan CPO yang tinggi memiliki beberapa keuntungan seperti (a) meningkatkan kualitas CPO, (b) berguna sebagai alternatif bahan baku untuk medis

khazanah keilmuan dan memperbanyak informasi yang tentunya terkait dalam bidang ilmu falak pada umumnya dan juga terkait dengan pembahasan dari penelitian ini,

Penelitian ini merupakan uji klinis yang dilakukan secara acak dan tersamar ganda (double blind randomized trial), membandingkan efektivitas dosis tunggal albendazole 400 mg

DFS (Deep First Search) adalah algoritma yang mencari solusi dengan mengutamakan kedalaman, berarti bahwa pencarian akan terus dilanjutkan sedalam mungkin sampai

Partisipan menjawab semua pertanyaan-pertanyaan yang peneliti ajukan. Selama wawancara, partisipan juga sempat bergurau dengan peneliti sambil tertawa, sehingga

Penelitian ini merupakan penelitian korelasi deskriptif yang bertujuan mengidentifikasi hubungan antara pemberian spa bayi dengan kualitas tidur bayi di Lolypop Kids and Baby