Array dan String Viska Mutiawani, M.Sc 1 Viska Mutiawani - Informatika FMIPA Unsyiah Konsep Penting Array String 2 Viska Mutiawani - Informatika FMIPA Unsyiah Array 3 Viska Mutiawani - Informatika FMIPA Unsyiah Array Sintaks Tipe_data[] nama_variable = new tipe_data[ukuran]; Contoh: int[] tts = new int[100]; int[] tts; tts = new int[100]; ATAU ATAU int tts[]= new int[100]; 4 Viska Mutiawani - Informatika FMIPA Unsyiah Array (2) Memberi nilai kepada array: int[] nilai = {2, 3, 4, 5}; char[] abjad= {a, b, c, d}; Kita juga bisa membuat array tanpa nama: new int[]{2, 3, 5, 7, 11}; menyediakan satu array baru dengan nilai-nilai tersebut. Sering dipakai untuk mengirim parameter ke method. 5 Viska Mutiawani - Informatika FMIPA Unsyiah Array (3) Digunakan apabila kita ingin mengirimkan array sebagai parameter pada method. cetakLimaPrima(new int[] {2,3,5,7,11} ); ATAU int[] bilPrima = {2,3,5,7,11}; cetakLimaPrima(bilPrima); 6 Viska Mutiawani - Informatika FMIPA Unsyiah Multi-dimensi Array Data array disimpan di dalam indeks baris dan kolom 7 int[][] arr=new int[3][3];//3 row and 3 column arr[0][0]=1; arr[0][1]=2; arr[0][2]=3; arr[1][0]=4; arr[1][1]=5; arr[1][2]=6; arr[2][0]=7; arr[2][1]=8; arr[2][2]=9; Viska Mutiawani - Informatika FMIPA Unsyiah Contoh class Testarray3{ public static void main(String args[]){ //declaring and initializing 2D array int arr[][]={{1,2,3},{2,4,5},{4,4,5}}; //printing 2D array for(int i=0;i<3;i++){ for(int j=0;j<3;j++){ System.out.print(arr[i][j]+" "); } System.out.println(); } }} 8 Viska Mutiawani - Informatika FMIPA Unsyiah Array Sebagai Objek Apabila ia dianggap sebagai objek, maka ia mempunyai atribut dan method Atribut length Menentukan ukuran suatu array: nama_array.length int bilPrima={2, 3, 5, 7, 11}; for(int i=0; i<bilPrima.length;i++) System.out.println(bilPrima[i]); 9 Viska Mutiawani - Informatika FMIPA Unsyiah Method arraycopy() Mengcopy dari satu array ke array yang lain. Sintaksnya: System.arraycopy(sumber,indekSumber,sasaran, indekSasaran,bil); sumber :nama array yang hendak dicopy indekSumber :permulaan kedudukan array yang akan di copy dari sumber sasaran : array baru yang akan menyimpan kandungan array sumber indekSasaran :permulaan kedudukan pada array sasaran untuk menyimpan nilai yang dicopy bil 10 : jumlah nilai yang dicopy Viska Mutiawani - Informatika FMIPA Unsyiah Metod arraycopy() int[] nomGanjil ={1, 3, 5, 7, 9}; int[] nomPositif={10, 20, 30, 40, 50, 60}; System.arraycopy(nomGanjil, 1, nomPositif, 2, 3); for(int i=0; i<nomPositif.length; i++){ Sysem.out.println(“nomPositif[“ + i + “] selepas copy:” +nomPositif[i]); } OUTPUT 11 nomPositif[0] selepas copy ialah 10 nomPositif[1] selepas copy ialah 20 nomPositif[2] selepas copy ialah 3 nomPositif[3] selepas copy ialah 5 nomPositif[4] selepas copy ialah 7 nomPositif[5] selepas copy ialah 60 Viska Mutiawani - Informatika FMIPA Unsyiah System.arraycopy(nomGanjil, 1, nomPositif, 2, 3); Sebelum copy 1 10 3 20 5 30 7 40 9 50 60 Selepas copy 1 10 3 20 5 3 7 5 9 7 60 12 Viska Mutiawani - Informatika FMIPA Unsyiah Memproses data array Data yang ada dalam array biasanya diproses dengan for loop Krn ukuran diketahui Tipe datanya sama semua Sejak Java versi 5, diperkenalkan for-each loop 13 Digunakan untuk traverse/menjejaki unsur array satu demi satu Tidak perlu indeks Viska Mutiawani - Informatika FMIPA Unsyiah Contoh for-each pada array public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (double element: myList) { System.out.println(element); } } } 14 Viska Mutiawani - Informatika FMIPA Unsyiah String 15 Viska Mutiawani - Informatika FMIPA Unsyiah String Berbeda dengan C, Java mempunyai kelas String. Kita tidak perlu tipe data array char untuk menyimpan rentetan aksara. Tipe data berjenis String akan menyimpan aksara di antara tanda “ “, termasuk ruang kosong 16 Contoh: String kosong=“”; //suatu rentetan kosong String namaSaya = “Muhammad Muktasim”; Viska Mutiawani - Informatika FMIPA Unsyiah String pada Java String pada Java String pada Java bersifat immutable Objek yang merepresentasikan rentetan aksara Class String digunakan untuk mencipta objek String Maksudnya isinya tidak bisa diubah Jika ingin bentuk string yang bisa diubah isinya, gunakan class StringBuffer dan StringBuilder 17 Viska Mutiawani - Informatika FMIPA Unsyiah Cara mencipta objek String (1) String literal Dengan tanda petik dua String s="welcome"; Objek String disimpan di String constant pool String s1="Welcome"; String s2="Welcome"; //merujuk ke string s1 yg isinya sama 18 Viska Mutiawani - Informatika FMIPA Unsyiah Cara mencipta objek String (2) Dengan keyword new String s=new String("Welcome"); //mencipta 2 objek dan 1 variabel reference Pada kasus ini, JVM akan mencipta satu objek String dalam memory normal (non pool) dan bentuk literal "Welcome" akan disimpan dalam string constant pool. Variable s merujuk pada object dalam heap(non pool). 19 Viska Mutiawani - Informatika FMIPA Unsyiah Cara mencipta objek String (3) Dari karakter char 20 Viska Mutiawani - Informatika FMIPA Unsyiah Operasi Terhadap String Menggabung string Menggunakan operator ‘+’ String judul = “OO”; String buku = “.Java”; String judulBuku = judul + buku; System.out.println(judulBuku); OUTPUT 21 OO.Java //tanpa spasi Bisa juga menggunakan method concat() Viska Mutiawani - Informatika FMIPA Unsyiah Operasi terhadap string Mengkombinasikan string dengan concat() public class ConcatExample{ public static void main(String args[]){ String s1="Java string"; s1.concat("is immutable"); System.out.println(s1); s1=s1.concat(" is immutable so assign it explicitl y"); System.out.println(s1); }} Java string Java string is immutable to assign it explicitly 22 Viska Mutiawani - Informatika FMIPA Unsyiah Operasi Terhadap String Java menghitung substring bermula dari 0 hingga 4 0: kedudukan ‘P’ Substring 4: kedudukan ‘i’ Mendapatkan sebagian dari string Metod substring() digunakan String senikata = “Puji dan syukur kepada Allah”; String s = senikata.substring(0,4); System.out.println(“Subrstring bernilai ”+s); OUTPUT 23 Substring bernilai Puji Viska Mutiawani - Informatika FMIPA Unsyiah Operasi Terhadap String Panjang string Mendapatkan panjang suatu string Metod length() digunakan String kata = “Salam Sejahtera”; int panjang = kata.length(); // panjang bernilai 15 Membanding string Menguji apakah dua string mempunyai nilai yang sama Metod equals() digunakan “salam”.equals(kata); // bernilai false “Salam sejahtera”.equalIgnoreCase(kata); 24 // bernilai true Viska Mutiawani - Informatika FMIPA Unsyiah Method String lain? Masih banyak method class String lain yang berguna seperti: 25 char charAt(int index) int length() boolean contains(CharSequence s) boolean isEmpty() String concat(String str) String replace(char old, char new) String trim() String split(String regex) int indexOf(int ch) String toLowerCase() String toUpperCase() Viska Mutiawani - Informatika FMIPA Unsyiah Method charAt() public class CharAtExample{ public static void main(String args[]){ String name="javatpoint"; char ch=name.charAt(4); //returns the char value at the 4th index System.out.println(ch); }} 26 Viska Mutiawani - Informatika FMIPA Unsyiah Method endsWith() dan startsWith() public class EndsWithExample{ public static void main(String args[]){ String s1="java by javatpoint"; System.out.println(s1.endsWith("t")); System.out.println(s1.startsWith("point")); }} 27 Viska Mutiawani - Informatika FMIPA Unsyiah Method equals() public class EqualsExample{ public static void main(String args[]){ String s1="javatpoint"; String s2="javatpoint"; String s3="JAVATPOINT"; String s4="python"; System.out.println(s1.equals(s2)); //true because content and case is same System.out.println(s1.equals(s3));//false because case is not same System.out.println(s1.equals(s4));//false because content is not same }} 28 Viska Mutiawani - Informatika FMIPA Unsyiah Method isEmpty() public class IsEmptyExample{ public static void main(String args[]){ String s1=""; String s2="javatpoint"; System.out.println(s1.isEmpty()); System.out.println(s2.isEmpty()); }} 29 Viska Mutiawani - Informatika FMIPA Unsyiah Method split() public class SplitExample{ public static void main(String args[]){ String s1="java string split method by javatpoint"; String[] words=s1.split(“ "); //splits the string based on space //using java foreach loop to print elements of string array for(String w:words){ System.out.println(w); } }} 30 Viska Mutiawani - Informatika FMIPA Unsyiah Method toString() Method toString() ada dalam class Object Jika anda ingin merepresentasikan suatu objek sebagai string, gunakan method toString() Method toString() mengembalikan representasi string dari suatu objek Sewaktu anda melakukan proses cetak/print, compiler Java secara internal memanggil method toString() Anda dapat meng-override method toString() untuk mencetak isi sesuai keinginan anda 31 Viska Mutiawani - Informatika FMIPA Unsyiah Sistem Unicode 32 Viska Mutiawani - Informatika FMIPA Unsyiah Unicode Unicode merupakah standar pengkodean universal yang mampu untuk merepresentasikan hampir semua bahasa tertulis di dunia ini. Java menggunakan sistem unicode 33 Viska Mutiawani - Informatika FMIPA Unsyiah Sebelum Unicode Sebelum Unicode ada bahasa standar lain: ASCII (American Standard Code for Information Interchange) for the United States. ISO 8859-1 for Western European Language. KOI-8 for Russian. GB18030 and BIG-5 for chinese, dan lainnya. Ada dua masalah yang timbul: 34 Suatu nilai code akan menjadi huruf yang berbeda pada standar bahasa yang berbeda. Pengkodean bahasa yang memiliki set aksara yang banyak memiliki perbedaan panjang. Ada aksara yang satu byte, ada yang dua byte, bahkan ada yang lebih. Viska Mutiawani - Informatika FMIPA Unsyiah Unicode solve the problem Untuk menyelesaikan masalah sebelumnya, sistem unicode dikembangkan. Unicode menggunakan 2 byte untuk aksara Jadi Java menggunakan 2 byte untuk aksara lowest value:\u0000 highest value:\uFFFF 35 Viska Mutiawani - Informatika FMIPA Unsyiah Java Command Line Argument 36 Viska Mutiawani - Informatika FMIPA Unsyiah Java Command Line Argument Merupakan argument yang dikirimkan pada saat program Java dijalankan (run). Argument yang dikirim lewat console dapat diterima dalam program Java sebagai input. Cara yang sederhana untuk melakukan tes pada program dengan nilai yang berbeda-beda. 37 Viska Mutiawani - Informatika FMIPA Unsyiah Contoh class CommandLineExample{ public static void main(String args[]){ System.out.println("Your first argument is: "+args[0]); } } compile dengan > javac CommandLineExample.java run dengan > java CommandLineExample sana Output ? Bagaimana jika dirun: java CommandLineExample sana dong 38 Viska Mutiawani - Informatika FMIPA Unsyiah Contoh lain class A{ public static void main(String args[]){ for(int i=0;i<args.length;i++) System.out.println(args[i]); } } compile dengan > javac A.java run dengan > java A hey 1 sana dong, geser ke 3 39 Viska Mutiawani - Informatika FMIPA Unsyiah Supplemental reading Getting Started http://docs.oracle.com/javase/tutorial/getStarted/index.html Nuts and bolts of the Java Language http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html Compiling and Running a Simple Program http://www.oracle.com/technetwork/java/compile-136656.html Codingbat http://codingbat.com 40 Viska Mutiawani - Informatika FMIPA Unsyiah