Pemrograman berorientasi Objek Tipe Data
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Menggunakan jenis-jenis tipe data sesuai dengan kebutuhan pemrograman Menggunakan sintaks untuk melakukan operasi input dan output
Outline Materi Tipe Data Input/Output (I/O) Format Output Type Casting (Conversion) ASCII Import Konstanta
Tipe Data Merupakan atribut yang memiliki rentangan nilai dan jenisnya (tipe) Digunakan untuk menyimpan nilai dan eksekusi operasi Berdasarkan nilai yang disimpan: Boolean (boolean) Numeric (byte, short, int, long, float, double) Character (char) String (String)
Tipe Data Berdasarkan pembagian: Berdasarkan asalnya: Atomic DT (boolean, byte, char, short, int, long, float, double) Composite DT (Array, Struct, List, Queue, Stack, String, Tree) Berdasarkan asalnya: Native / primitive / basic DT (sama dengan Atomic) Abstract DT (sama dengan Composite) Berdasarkan pembuatannya: Built-in DT (sama dengan Atomic) User-defined DT (sama dengan Composite)
Tipe Data Nama Rentang Ukuran Class boolean true, false 1 bit Boolean byte -27 (-128) to 27 – 1 (127) 8 bit Byte char 0 to 65,535 16 bit Character short -215 (-32,768) to 215 – 1 (32,767) Short int -231 (-2,147,483,648) to 231 (2,147,483,647) 32 bit Integer long -263 to 263 – 1 64 bit Long float -3.4E38 to 3.4E38 Float double -1.798E308 to 1.798E308 Double
Tipe Data Nama file: TipeData.java Output:
Input / Output (I/O) Komunikasi antara komputer dengan pihak luar (manusia / mesin) Input: Signal/data yang diterima oleh sistem Output: Signal/data yang dikirim dari sistem Proses I/O disebut “I/O perform” atau “I/O Operation”
Input / Output (I/O) Contoh perangkat input: keyboard, mouse Contoh perangkat output: monitor, printer Contoh perangkat input dan output: disk, file
Input / Output (I/O) Mengambil input dari console menggunakan Scanner Diperlukan deklarasi import: import java.util.Scanner; Deklarasi penciptaan object: Scanner input = new Scanner(System.in);
Input / Output (I/O) next(); Menginput string (kata) nextLine(); Method Kegunaan next(); Menginput string (kata) nextLine(); Menginput string (kalimat) nextByte(); Menginput bilangan (byte) nextShort(); Menginput bilangan (short) nextInt(); Menginput bilangan (int) nextLong(); Menginput bilangan (long) nextFloat(); Menginput bilangan (float) nextDouble(); Menginput bilangan (double)
Input / Output (I/O)
Input / Output (I/O)
Input / Output (I/O) Specifier Description Example Output %b boolean ˽false ˽˽true %c character %5c ˽˽˽˽a %d integer %5d ˽˽˽69 1234567 %f Floating-point %5.2f ˽˽3.14 ˽20.60 %e scientific %10.2e ˽˽3.14e+02 %s string %10s ˽˽˽˽˽hello Ket: ˽ spasi
Input / Output (I/O) Specifier Description Example Output %b boolean false˽ true˽˽ %c character %-5c a˽˽˽˽ %d integer %-5d 69˽˽˽ 1234567 %f Floating-point %-5.2f 3.14˽˽ 20.60˽ %e scientific %-10.2e 3.14e+02˽˽ %s string %-10s hello˽˽˽˽˽ Ket: ˽ spasi
Input / Output (I/O)
Input / Output (I/O) System.out.print mencetak ke console tanpa diakhiri linefeed (newline) System.out.println mencetak ke console dengan diakhiri linefeed (newline) System.out.printf sama seperti System.out.print, mendukung format output
Type Casting (Conversion) Operasi konversi nilai antar tipe data yang berbeda Jenis type casting (conversion): Widening a type: konversi (cast) nilai dari tipe data yang lebih kecil ke tipe data yang lebih besar (dilakukan secara otomatis oleh Java) Narrowing a type: konversi (cast) nilai dari tipe data yang lebih besar ke tipe data yang lebih kecil (diperlukan secara eksplisit) Urutan ukuran tipe data byte, short, int, long, float, double
Type Casting (Conversion) Sintaks untuk narrowing casting menggunakan tanda kurung “(tipe data)” Contoh 1: float f = (float) 10.1; int i = (int) f; Contoh 2: double d = 4.5; int i = (int) d; Pada contoh 1-2 di atas, nilai dari f dan d tidak berubah
Type Casting (Conversion)
Type Casting (Conversion) Konversi dari String ke tipe data atomik dapat dilakukan dengan bantuan kelas: Class Konversi ke tipe data Pemakaian Boolean boolean Boolean.parseBoolean(…); Byte byte Byte.parseByte(…); Character char String.charAt(<index>); Short short Short.parseShort(…); Integer int Integer.parseInt(…); Long long Long.parseLong(…); Float float Float.parseFloat(…); Double double Double.parseDouble(…);
Type Casting (Conversion)
Type Casting (Conversion)
Type Casting (Conversion)
ASCII American Standard Code for Information Interchange 7-bit, 128 karakter (000 s/d 127) Berupa: uppercase/lowercase letters, digits, punctuation marks, dan control characters Perkembangan lanjut dari ASCII Unicode (terdiri dari 1,112,064 karakter)
ASCII
ASCII
ASCII
Type Casting (Conversion) cont. ASCII karakter ‘0’ s/d ‘9’ ‘0’ 48 ‘1’ 49 ‘9’ 57 Konversi karakter ke bilangan dikurangi nilai 48 Konversi bilangan ke karakter ditambahi nilai 48
Type Casting (Conversion) cont.
Konstanta Data permanen yang tidak dapat diubah Contoh: π (PHI) = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 g (gravitation) = 9.8 Konstanta harus dideklarasikan dan diinisialisasikan pada sebuah statement final merupakan keyword pada Java untuk pembuatan konstanta Deklarasi: final datatype CONSTANTNAME = VALUE; Contoh: final double PHI = 3.1415;
Konstanta
Did You Know? Pada saat pemakaian Scanner, diperlukan deklarasi “import java.util.Scanner;” Hal ini dikarenakan Scanner merupakan kelas yang perlu di-include Pemakaian System tidak memerlukan deklarasi “import java.lang.System;” Hal ini dikarenakan Java secara otomatis telah meng-import semua isi “java.lang” untuk setiap aplikasinya
Did You Know? Isi java.lang sering digunakan: Boolean Byte Character Double Float Integer Long Math Short String System Thread
Advanced Learning Selain menggunakan Scanner, inputan dari console dapat menggunakan BufferedReader Diperlukan deklarasi import: import java.io.BufferedReader; import java.io.InputStreamReader; Deklarasi penciptaan object: BufferedReader input = new BufferedReader (new InputStreamReader(System.in)); Method read(); untuk membaca karakter tunggal Method readLine(); untuk membaca kalimat
Advanced Learning
Advanced Learning Deklarasi import seperti: import java.io.BufferedReader; import java.io.InputStreamReader; dapat diringkas menjadi: import java.io.*; Penggunaan try and catch akan dibahas di pertemuan berikutnya (Exception Handling)
Referensi Introduction to Java. 7ed. 2009. Liang. p60, p67-71, p79-81, p117-118, p1300-1301 Java Software Solutions. 5ed. 2007. Lewis. p99-103, p111-114 The Complete Reference: Java. 5ed. 2005. Herbert. p33-48 Dasar Pemrograman Java2. 2004. Abdul Kadir. p66-73 Composite Data Types. http://remote.science.uva.nl/~heck/JAVAcourse/ch4 Data Type. http://en.wikipedia.org/wiki/Data_type Primitive Data types. http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html Primitive Data types. http://en.wikipedia.org/wiki/Primitive_type