IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-6 Misbakhul Munir IRFAN SUBAKTI 司馬伊凡 Мисбакхул Мунир Ирфан Субакти
constructor Blok kode yang mengawali obyek yang baru saja dibuat Mirip dengan instance method (function) tetapi bukan merupakan method/function karena ia tidak mempunyai kembalian tipe. Tipe khusus dari method/function Memiliki nama yang sama dengan nama class public class ClassKu { // Ini adalah constructor ClassKu() { 2
constructor (lanjutan) Untuk membuat obyek baru dari class ClassKu dengan cara memanggil new public class ClassKu { // Ini adalah constructor ClassKu() { ClassKu classku = new ClassKu(); 3
constructor: Contoh public class ClassKu { String nama; // Ini adalah constructor ClassKu() { this.nama = Nama yang dibuat di constructor ; public static void main(string args[]) { ClassKu classku = new ClassKu(); System.out.println(classKu.nama); Output: Nama yang dibuat di constructor 4
Tipe constructor Ada 3 jenis tipe constructor: Default Tidak mempunyai argument (no-arg constructor) Berparameter (mempunyai parameter: parameterized) 5
constructor: Default Jika kita tidak mengimplementasikan sembarang constructor Java compiler menyisipkan default constructor mewakili kita Tak dapat dijumpai di file Java (.java) kita disisipkan ke dalam kode waktu proses kompilasi dan akan muncul di file.class : public class ClassKu { public static void main(string args[]) { ClassKu classku = new ClassKu(); Compiler public class ClassKu { ClassKu() { public static void main(string args[]) { ClassKu classku = new ClassKu(); 6
no-arg constructor Jika kita mengimplementasikan sembarang constructor maka kita tidak lagi menerima default constructor dari Java compiler constructor yang tidak memiliki argument disebut dengan no-arg constructor Ciri-cirinya adalah sama dengan default constructor di dalamnya bisa terdapat sembarang kode, tidak seperti default constructor yang tidak mempunyai kode apa-apa public class ClassKu { public ClassKu() { System.out.println( Ini adalah no-arg constructor ; public static void main(string args[]) { new ClassKu(); Output: Ini adalah no-arg constructor 7
parameterized constructor (1) constructor dengan argument(s) (yang juga bisa disebut dengan parameter) parameterized constructor public class Mahasiswa { int mhsnrp; String mhsnama; public Mahasiswa(int mhsnrp, String mhsnama) { this.mhsnrp = mhsnrp; this.mhsnama = mhsnama; public info() { System.out.println( NRP: + mhsnrp + Nama: + mhsnama); public static void main(string args[]) { Mahasiswa mhs1 = new Mahasiswa(1007, Mukidi ); Mahasiswa mhs2 = new Mahasiswa(1008, Bunali ); mhs1.info(); mhs2.info(); Output: NRP: 1007 Nama: Mukidi NRP: 1008 Nama: Bunali 8
parameterized constructor (2) Kita punya 2 constructor: default dan parameterized constructor. Saat kita tidak melewatkan satu pun parameter di kala membuat obyek baru (dengan memanggil new) default constructor yang dipanggil. Namun saat kita melewatkan parameter maka parameterized constructor yang bersesuaian dengan parameter yang dilewatkan tadi yang akan dipanggil. public class Mahasiswa { Output: private int mhsnrp; private String mhsnama; public Mahasiswa() { this.mhsnrp = 1000; this.mhsnama = Mukiyo ; public Mahasiswa(int mhsnrp) { this.mhsnrp = mhsnrp; this.mhsnama = Bunali ; public Mahasiswa(int mhsnrp, String mhsnama) { public info() { this.mhsnrp = mhsnrp; this.mhsnama = mhsnama; System.out.println( NRP: + mhsnrp + Nama: + mhsnama); public static void main(string args[]) { NRP: 1000 Nama: Mukiyo NRP: 1006 Nama: Bunali Mahasiswa mhs1 = new Mahasiswa(); Mahasiswa mhs2 = new Mahasiswa(1006); Mahasiswa mhs3 = new Mahasiswa(1007, Mukidi ); mhs1.info(); mhs2.info(); mhs3.info(); NRP: 1007 Nama: Mukidi 9
parameterized constructor (3) Output kode di bawah ini adalah compilation error (kesalahan kompilasi) kode Mahasiswa mhs = new Mahasiswa() memanggil default constructor yang tidak kita punyai dalam program. Saat kita tidak mengimplementasikan sconstructor apa pun di dalam class compiler akan menyisipkan default constructor dalam kode kita. Namun saat kita mengimplementasikan sembarang constructor kita tidak akan lagi menerima default constructor dari compiler ke kode kita public class Mahasiswa { private int mhsnrp; private String mhsnama; public Mahasiswa(int mhsnrp, String mhsnama) { this.mhsnrp = mhsnrp; this.mhsnama = mhsnama; public info() { System.out.println( NRP: + mhsnrp + Nama: + mhsnama); public static void main(string args[]) { Mahasiswa mhs = new Mahasiswa(); mhs.info(); 10
Rantai constructor Saat sebuah constructor memanggil constructor yang lain dalam class yang sama rantai constructor public class Mahasiswa {... Mahasiswa() { this( Mukidi ); Mahasiswa(String nama) { this(nama, 1007); Mahasiswa(String nama, int nrp) { this.nama = nama; this.nrp = nrp; public static void main(string args[]) { Mahasiswa mhs = new Mahasiswa();... 11
super() Saat sebuah constructor child class (klas anak) dipanggil secara implisit constructor parent class (klas induk) juga akan dipanggil. Ini artinya secara compiler akan menyisipkan super(); pada awal constructor child class class Orang { Orang() { System.out.println( Constructor Orang ); class Mahasiswa extends Orang { Mahasiswa() { // Compiler menyisipkan super(); disini System.out.println( Constructor Mahasiswa ); public static void main(string args[]) { new Mahasiswa(); Output: Constructor Orang Constructor Mahasiswa 12
constructor Overloading Konsep di mana satu constructor bisa memiliki daftar parameter yang berbeda sehingga setiap constructor menjalankan tugas yang berbeda Di bawah ini terdapat 3 overloaded constructor mereka harus memiliki daftar parameter yang berbeda public class Mahasiswa {... Mahasiswa() {... Mahasiswa(String nama) {... Mahasiswa(String nama, int nrp) {...... 13
Java copy constructor Menyalin nilai dari satu obyek ke obyek yang lain public class Mahasiswa { String nama; Mahasiswa(String nama) { this.nama = nama; // Ini adalah Copy Constructor -> menyalin nilai dari satu obyek ke obyek yg lain // (obyek yg memanggil constructor ini) Mahasiswa(Mahasiswa mahasiswa) { nama = mahasiswa.nama; void cetaknama() { System.out.println( Nama: + nama); public static void main(string args[]) { Mahasiswa mhs1 = new Mahasiswa( Mukidi ); // Lewatkan obyek sebagai argument ke constructor -> Ini akan memanggil Copy Constructor Mahasiswa mhs2 = new Mahasiswa(mhs1); mhs1.cetaknama(); mhs2.cetaknama(); Output: Nama: Mukidi Nama: Mukidi 14
Method/function vs constructor Tujuan constructor inisialisasi obyek dari suatu class Method/function menjalankan suatu tugas/fungsi dengan mengeksekusi kode Java constructor tidak boleh berupa abstract, final, static dan synchronized Method/function boleh berupa abstract, final, static dan synchronized constructor tidak memiliki return type (tipe pengembalian) Method/function memiliki return type 15
Latihan 1: Genap Cetaklah bilangan genap dari 0 sampai bilangan yang dimasukkan user Contoh hasil: Masukkan bilangan: 10 0 2 4 6 8 10 16
Latihan 2: Terkecil Buatlah program yang menerima input/masukan bilangan bulat dari user Bila user memasukkan bilangan negatif, tampilkan bilangan terkecil dari semua bilangan yang dimasukkan user. Contoh hasil: Masukkan bilangan: 10 Masukkan bilangan: 15 Masukkan bilangan: 3 Masukkan bilangan: -7 Bilangan terkecil: 3 17
Latihan 2: Terkecil (program) Buatlah program yang menerima input/masukan bilangan bulat dari user Bila user memasukkan bilangan negatif, tampilkan bilangan terkecil dari semua bilangan yang dimasukkan user. Contoh hasil: Masukkan bilangan: 10 Masukkan bilangan: 15 Masukkan bilangan: 3 Masukkan bilangan: -7 Bilangan terkecil: 3 18
Latihan 3: Bintang Program yang menerima masukan bilangan bulat n dari user. Tampilkan karakter * (bintang) sebanyak n di baris pertama. Lalu tampilkan karakter * sebanyak n-1 di baris ke-2, n-2 di baris ke-3, n-3 di baris ke-4, dst. Contoh hasil: Masukkan bilangan: 6 ****** ***** **** *** ** * 19
Latihan 4: Kebalikan Program yang menerima masukan/input sebuah kata dari user. Tampilkan kebalikan kata dari masukan/input user tadi. Contoh hasil 1: Masukkan kata: katak katak kebalikannya: katak katak adalah palindrome Contoh hasil 2: Masukkan kata: plastik plastik kebalikannya: kitsalp plastik bukan palindrome 20
Latihan 5: Pertama di Alfabet Program yang menerima masukan/input sebuah kata dari user. Tampilkan karakter alfabet pertama dari kata itu. Contoh hasil 1: Masukkan kata: katak Karakter pertama alfabetnya: a Contoh hasil 2: Masukkan kata: heboh Karakter pertama alfabetnya: b 21
Latihan 6: Urutan Alfabet Program yang menerima masukan/input sebuah kata dari user. Tampilkan karakter dari kata itu sesuai dengan urutan alfabetnya. Dari Java API untuk String, gunakan fungsi substring() mendapatkan sub (bagian) dari sebuah kata, juga fungsi indexof() mendapatkan indeks dari suatu karakter di suatu kata. Contoh hasil: Masukkan kata: monyet Urutan alfabetnya: e m n o t y 22