Fakultas JurusanProdi Kode Matakuliah Nama Matakuliah TEKNOLOGI INDUSTRI

  • Slides: 16
Download presentation
Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : TEKNOLOGI INDUSTRI : TEKNIK INFORMATIKA/TEKNIK INFORMATIKA :

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : TEKNOLOGI INDUSTRI : TEKNIK INFORMATIKA/TEKNIK INFORMATIKA : MIP 1202 : PEMROGRAMAN BERORIENTASI OBJEK Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 2 : 1 : 2017 -2 : 26 CASTING DATA Dosen: Erma Susanti, S. Kom, M. Cs Versi : 1 Revisi : Halaman : 1 Dari : 26

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Tujuan Setelah mengikuti mata kuliah ini mahasiswa dapat: • Memahami dan memanfaatkan pemahaman mengenai casting data Versi : 1 Revisi : 0 Halaman : 2 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Pokok bahasan Dalam modul ini akan diuraikan beberapa topik bahasan yaitu : 1) Pengertian casting data 2) Casting tipe data primitive 3) Casting objek 4) Pernyataan instaceof Versi : 1 Revisi : 0 Halaman : 3 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Pengertian Casting Data § Casting data adalah kebutuhan untuk menyesuaikan tipe data yang berbeda pada saat berhubungan dengan operasi data, fungsi atau penugasan ke dalam variabel § Contoh berikut adalah statemen yang bermasalah karena statemen b = a telah menugasi variabel b (bertipe byte) dengan isi nilai variabel a (bertipe int): int a = 10; byte b = a; § Statemen tersebut akan menimbulkan error pada saat dikompilasi found : int required: byte b = a; 1 error Versi : 1 Revisi : 0 Halaman : 4 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Casting Data § Misal kita memiliki definisi fungsi atau method: public void hitung (int n) { … } § Ini tidak dapat dipanggil misalnya dalam statemen berikut: byte m = 20; hitung(m) § Karena tidak kompatibel nilai m yang bertipe byte dengan nilai n yang bertipe int dalam definisi fungsi Versi : 1 Revisi : 0 Halaman : 5 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Casting Data (tipedata)variabel Contoh: int a = 10; byte b = 5; b = (byte) a; Berarti bahwa variabel a yang bertipe int dicasting ke tipe byte Versi : 1 Revisi : 0 Halaman : 6 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Casting Tipe Data Primitive § Yang termasuk tipe data primitive adalah byte, short, int, long, float, double, char, String dan boolean § Casting tipe data primitive biasa dilakukan untuk konversi bilangan apabila tipe bilangan yang berbeda akan dipertukarkan § Dalam java dikenal istilah: § Implisit casting: dilakukan otomatis oleh program jika berkaitan dengan penugasan tipe lebih sempit ditugaskan kepada tipe yang lebih luas byte a = 10; int b = a; class p 02 { public static void main (String[] args) { byte a=25; int b = a; System. out. println(“a = “+a+” b = “+b); } } Hasil program adalah: a = 25 b = 25 dalam hal ini cakupan tipe int lebih luas dari tipe byte, sehingga automatic casting akan dilakukan java Versi : 1 Revisi : 0 Halaman : 7 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Casting Tipe Data Primitive § Eksplisit casting: bila tipe yang lebih sempit di-assign ke tipe yang lebih luas makan diperlukan eksplisit casting class p 02 { public static void main (String[] args) { int a=25; byte b = (byte) a; System. out. println(“a = “+a+” b = “+b); } } Hasil program adalah: a = 25 b = 25 Karena variabel a yang bertipe int lebih luas cakupannya daripada varibel b yang bertipe b maka diperlukan explicit casting yaitu byte b = (byte) a; Versi : 1 Revisi : 0 Halaman : 8 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Casting dalam Operasi Data Primitive § Apabila tipe byte, short dan int dioperasikan maka tipe yang diambil oleh Java adalah tipe int class p 03 { public static void main (String[] args) { byte a = 50; byte b = 5; byte c = 10; byte d = a*b/c; System. out. println(“a = “+a+” b = “+b+” c = “+c+” d = “+d); } } Jika dicompile akan muncul kesalahan, sehingga perlu dilakukan casting byte d = (byte) (a*b/c); Versi : 1 Revisi : 0 Halaman : 9 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Contoh: casting dalam operasi data primitive § Apabila tipe byte, short dan int dioperasikan maka tipe yang diambil oleh Java adalah tipe int class p 04 { public static void main (String[] args) { byte a = 50; int b = 5; float c = 2; int d = (a*b/c); int e = (a*b/(251)); System. out. println(“a = “+a+” b = “+b+” c = “+c+” d = “+d); System. out. println(“e = “+e); } } Jika dicompile akan muncul kesalahan, sehingga perlu dilakukan casting int d = (int)(a*b/c); int e = (int)(a*b/(251)); //hasil operasi di casting ke int Versi : 1 Revisi : 0 Halaman : 10 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Casting Objek § Casting objek sering dilakukan karena objek-objek yang berasal dari silsilah kelas mungkin akan dipertukarkan referensinya § Contoh automatic casting dari objek staff dari kelas Employee dan objek boss dari kelas Manager //casting objek otomatis class co 1 { public static void main (String [] arg){ Employee staff = new Manager(“JON”, 1000, “Yuliet”); Manager boss = new Manager(“Mr. Big”, 5555, ”Miss Jane”); staff=boss; staff. Print(); boss. Print(); } } Versi : 1 Revisi : 0 Halaman : 11 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Casting Objek class Employee { public Employee(String s, float n) { name=s; salary = n; }; public void Print() { System. out. println(“My name is : “+name+” My salary is : “+salary); } private String name; private float salary; } class Manager extends Employee { public Manager(String s 1, int n, String s 2) { super(s 1, n); secname=s 2; } public void Print() { super. Print(); System. out. println(“My secretary : “+secname); } private String secname; } Versi : 1 Revisi : 0 Halaman : 12 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Hasil automatic casting My name is : Mr. Big My salary is : 5555. 0 My secretary : Miss Jane Jika statemen staff=boss diganti dengan boss=staff maka akan terjadi error program. Kesalahan ini disebabkan karena perbedaan tipe data. Untuk itu perlu dilakukan casting dengan cara: boss=(Manager)staff Sehingga hasilnya My name is : JON My salary is : 1000 My secretary : Miss Jane Versi : 1 Revisi : 0 Halaman : 13 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Pernyataan instanceof § Pernyataan instanceof digunakan untuk mengecek apakah objek tertentu berasal dari kelas tertentu § Pernyataan akan bernilai true apabila objek adalah instance dari kelas tertentu atau superclassnya class co 1 { public static void main (String[] args) { Employee staff = new Employee(“JON”, 1000); Manager boss = new Manager(“Mr. Big”, 5555, ”Miss Jane”); } System. out. println(staff instanceof Employee); System. out. println(staff instanceof Manager); System. out. println(boss instanceof Employee); System. out. println(boss instanceof Manager); } Hasil program : true false true Versi : 1 Revisi : 0 Halaman : 14 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Pernyataan instanceof § Hasil ini menunjukka bahwa instanceof akan bernilai true jika objek adalah instance dari class tersebut atau superclassnya § Pernyataan ini dapat digunakan untuk memastikan dan menghindari kesalahan dalam casting: if (staff instanceof Manager) boss=*(Manager)staff; Versi : 1 Revisi : 0 Halaman : 15 Dari : 16

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik

Fakultas Jurusan/Prodi Kode Matakuliah Nama Matakuliah : Teknologi Industri : Teknik Informatika / Teknik Informatika : MIP 1202 : Pemrograman Berorientasi Objek Pertemuan Ke Handout Ke Jumlah Halaman Mulai Berlaku : 5 : 16 : 2017 -2 Latihan § Perhatikan program berikut class p 15 { public static void main (String[] args) { int a = 5; float b = 1. 2; double c = 10. 8; float d = a*(b+c); int e = (a*b/(251)); System. out. println(“a = “+a+” b = “+b+” c = “+c+” d = “+d); } } Bagaimana jika dicompile? Kenapa terjadi error? jelaskan Versi : 1 Revisi : 0 Halaman : 16 Dari : 16