Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.