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
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