Download PemrogramanDasar-09-String-2

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
PEMROGRAMAN DASAR
Sistem Informasi PTIIK UB
Semester Ganjil 2014/2015
Objek String
Dr. Eng. Herman Tolle, ST., MT
Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya
String
•
•
•
•
Terdiri atas deretan karakter
Dapat dianggap sebagai array of character
String diimplementasikan oleh java dalam bentuk class.
Dapat langsung di konstruksi tanpa perintah new
String namaVariable;
• Dapat pula dikonstruksi dengan perintah new
String namaVariable = new String(“data inisialisasi”);
Deklarasi dan Inisialisasi
Deklarasi:
• String namaVariabel;
• String namaVariable = new String(“contoh inisialisasi”);
Inisialisasi
• namaVariable = “data string”;
• namaVariable = new String(“contoh inisialisasi”);
Konstruktor String
• Selain cara-cara diatas, String dapat
dibentuk melalui inisialisasi array karakter.
• Contoh:
char kata[]
{‘h’, ’a’,
String s1 =
String s2 =
=
’l’, ’l’, ’o’};
new String (kata);
new String (kata, 2, 3);
Konkatenasi string
• String dapat digabungkan dengan string lain
menggunakan operator “+”
String s1 = “Cabe Pedas”;
String s2 = “ Enak”;
String s3;
s2 = s1 + s2;
System.out.println(s1+s2);
S3 = s1.concat(s2);
String null vs String kosong
• String kosong berbeda dengan String null!!!
• String null bila belum dialokasikan pada memory.
String s;
s = null; //atau belum diinisialisasikan apapun
• String kosong bila yang dialokasikan pada memory
tidak memiliki karakter apapun
String s;
s = “”;
Membandingkan dua untai string
• Tidak dapat dilakukan dengan operator “==“
s1 = “satu”;
s2 = “dua”;
If (s1==s2) //Tidak dapat dengan cara ini!!!
System.out.println(“sama”)
else
System.out.println(“beda”);
• Dapat dilakukan dengan method equals()
s1 = “satu”;
s2 = “dua”;
If (s1.equals(s2))
System.out.println(“sama”)
else
System.out.println(“beda”);
Cara lain membandingkan String
• Dapat dibandingkan dengan cara
String s1=“satu”;
If (s1.equals(“satu”))
System.out.println(“isinya satu”);
//atau
If (“satu”.equals(s1))
System.out.println(“isinya satu”);
String Array
• Deklarasi:
String namaVariable[] = new String[jumlahArray];
String namaVariable[] = {“data1”, ”data2”,
”data3”, ”data4”, ”data5”,
”data6”, ”data7”, ”data8”};
• Inisialisasi
String [indexArray] = “data”;
import java.util.Scanner;
import static java.lang.System.out;
class ProcessMoreData {
public static void main(String args[]) {
Scanner myScanner = new Scanner(System.in);
String fullName;
double amount, total;
boolean taxable;
out.print(“Customer’s full name: “);
fullName = myScanner.nextLine();
out.print(“Amount: “);
amount = myScanner.nextDouble();
out.print(“Taxable? (true/false) “);
taxable = myScanner.nextBoolean();
if (taxable) {
out.println();
total = amount * 1.05;
out.print(“The total for “);
} else {
out.print(fullName);
total = amount;
out.print(“ is “);
}
out.print(total);
out.println(“.”);
}
}
ARGUMEN STRING
Argumen
• Argumen pada method main() berupa array string.
public static void main(String [] argv)
{
}
• Argumen didapat melalui java runtime.
java ContohArgumen argsatu argdua argtiga
java ContohArgumen “arg satu” “arg dua” “arg tiga”
• Argumen tersebut diterima oleh String array yang
menjadi parameter dari method main(String [] argv)
Argumen (cont-2)
• Argumen yang satu dengan argumen lainnya
dipisahkan dengan spasi.
• Jika ingin memasukkan spasi sebagai bagian dari
sebuah argumen, beri tanda double quote (“”)
yang mengapit argumen tersebut, sehingga
argumen tersebut dianggap satu kesatuan.
• Jumlah argumen dapat dikenali melalui method
length.
• Contoh:
• args.length
Mengakses argumen
• Sebagai array, maka untuk membaca
argumen dapat dilakukan dengan
memberikan nilai index nya
args[0]
args[1]
args[2]
public class TesInputArgumen
{
public static void main(String[] args)
{
String nama = args[0];
String zodiac = args[1];
int umur = stringToInt(args[2]);
System.out.println("Hello " + nama);
System.out.println("Zodiak anda adalah " + zodiac);
if (zodiac.equals("capricorn"))
System.out.println(“Isi ramalan capricorn..");
else
System.out.println("Isi ramalan lain .. ");
}
}
Input:
C:\SourceCode>Java TestInputArgumen Budi Capricorn 18
Modifikasi String
• String tidak dapat diganti isinya secara
langsung karakter per karakter.
• Hanya dapat diganti isinya dengan
memberikan nilai baru.
• Untuk mengganti karakter-karakter pada
string, harus mempergunakan methodmethod string yang disediakan oleh class
String
Beberapa contoh method untuk
mengakses string
• String substring(int offset)
– Contoh: s1 = s.substring(5);
• String substring(int offset, int endIndex)
– Contoh: s1 = s.substring(5,10);
•
•
•
•
•
•
•
•
•
•
•
int lastIndexOf(char c)
int lastIndexOf(char c, int startPos)
Int IndexOf(String s)
int lastIndexOf(String s)
int lastIndexOf(String s, int startPos)
String valueOf(char c)
String valueOf(char c)
String valueOf(float f)
String valueOf(int i)
char charAt(int index)
Method lainnya dapat dilihat dari lampiran Class String dari API docs.
• String NAMA = new String (“Budi”);
• char INITIAL = ‘B’;
• int X = NAMA.indexOf(‘d’); 
• char Kar1 = NAMA.charAt(1); 
String Buffer
• Objek yang dibentuk dari Class StringBuffer
yang terdapat pada package java.lang
• Untuk menampung byte yang dapat diubah
isinya
• Konstruktor:
– StringBuffer(int n)
– Menciptakan String Buffer dengan untaian
karakter sebanyak n
Contoh StringBuffer
• Menggunakan method append() untuk menambah karakter
pada suatu objek yang dibentuk dari StringBuffer
public class contohStrBuf
{
public static void main(String args[])
{
String str = “Ini String Asli”;
int panjang = str.length();
StringBuffer strBuf = new StringBuffer(len);
char ch;
for (int i = (len-1); i>= 0; i--)
{
ch = str.charAt(i);
strBuf.append(ch);
}
System.out.println(strBuf);
}
}
Cek Palindrome String
import java.util.Scanner;
public class PeriksaPalindrome {
/** Metode utama */
public static void main(String[] args) {
// Menciptakan Scanner
Scanner masukan = new Scanner(System.in);
// Meminta pengguna memasukkan suatu string
System.out.print("Masukkan suatu string: ");
String s = masukan.nextLine();
if(apaPalindrome(s) )
System.out.println(s + " adalah suatu palindrome");
else
System.out.println(s + " bukan suatu palindrome");
}
/** Memeriksa apakah suatu string adalah suatu palindrome */
public static boolean apaPalindrome( String s) {
// Indeks pertama dalam string
int bawah = 0;
// Indeks terkahir string
int atas = s.length()- 1;
while (bawah < atas) {
if(s.charAt(bawah) != s.charAt(atas))
return false; // Bukan suatu palindrome
bawah++;
atas--;
}
return true; // The string is a palindrome
}
}
Cek Palindrome String
STRING & KARAKTER
Panjang String dan mendapatkan karakter
tunggal
• 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.
Fungsi Karakter
•
•
•
•
•
•
•
•
•
•
•
+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
• 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
Method toUpperCase(char ch) menghasilkan karakter berhuruf besar.
import java.util.Scanner;
Contoh
public class HitungSetiapHuruf {
/** Metode utama */
public static void main(String[] args) {
// Menciptakan Scanner
Scanner masukan = new Scanner(System.in);
// Meminta pengguna memasukkan suatu string
System.out.print("Masukkan suatu string: ");
String s = masukan.nextLine();
// Memanggil metode hitungHuruf untuk menghitung setiap huruf
int[] hitung = hitungHuruf(s.toLowerCase());
// Menampilkan hasil
for (int i = 0; i < hitung.length; i++) {
if (hitung[i] != 0)
System.out.println((char)('a' + i) + " muncul " +
hitung[i] + " kali" );
}
}
/** Menghitung setiap huruf dalam string*/
public static int[] hitungHuruf(String s) {
int[] hitung = new int[26];
for (int i = 0; i < s.length(); i++)
{
if (Character.isLetter(s.charAt(i)))
hitung[s.charAt(i) - 'a']++;
}
return hitung;
}
/** Menvalidasi input angka*/
public static boolean AngkaValid(String s) {
boolean T = true;
for (int i = 0; i < s.length(); i++)
{
if !(Character.isDigit(s.charAt(i)))
return false;
}
return T;
}
public static void main(String[] args) {
// Menciptakan Scanner
Scanner masukan = new Scanner(System.in);
// Meminta pengguna memasukkan suatu string
System.out.print("Masukkan Password: ");
String password = masukan.nextLine();
if (passwordValid(password))
System.out.println(“Password Valid!”);
else
System.out.println(“Password Tidak Valid!”);
}
Latihan
• Buat program dengan fungsi untuk memvalidasi
input sebuah password, dengan ketentuan:
– Panjang minimal 8 karakter
– Gabungan dari Huruf dan Angka
– Minimal memuat 2 digit
• Input: String Password
• Proses: boolean passwordValid(Password)
• Output: “Password Valid” atau “Password Tidak
Valid”
Class StringBuffer
• 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 argumen length.
…
• public StringBuffer(String string)
Membuat sebuah buffer string untuk argumen string dan
kapasitas awal 16 karakter ditambah dengan panjang dari
argumen string tersebut.