Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts
Istifadah KBM 26 Pesantren Siber Bandung

Istifadah KBM 26 Pesantren Siber Bandung

1/07/2020 Add Comment

Rabu, 25 September 2019

                Pada sekitar pukul sembilan pagi, alhamdulillah kami semua sudah berkumpul didalam kelas. Selama mengisi waktu luang, kami pun memanfaatkannya dengan melakukan berbagai aktifitas positif. Saya sendiri memanfaatkan waktu dengan mengerjakan tugas programming dimana kami harus membuat contoh inheritance (Pewarisan sifat) OOP pada java dengan berbagai komponen didalamnya. Selain proses pengerjaan tugas tersebut memakan waktu yang cukup lama, proses tersebut juga cukup menguras otak. Setelah mengerjakan tugas tersebut, saya sendiri mempelajari secara mandiri materi Inner Class & Polimorphism pada OOP java karena kedua materi tersebut adalah tugas yang diberikan Kang Basyir untuk dipelajari secara otodidak.
                Inner Class merupakan kelas yang letak pembuatannya berada didalam kelas. Cara pembuatan inner class ini sama seperti membuat kelas biasa, hanya saja kita memnuat kelas tersebut didalam kelas yang sudah dibuat. Berikut ini adalah contoh pembuatan inner class dimana pada kelas Kampus terdapat beberapa inner class yaitu : kelas Mahasiswa, Dosen, dan Staff :

package sebagai.contoh;

public class Kampus {
       public class Mahasiswa{
             
       }
       public class Dosen{
              String nama;
              String NIP;
       }
       public class Staff{
             
       }
}

Pada Inner Class juga kita masih bisa mengakses data yang sifatnya private yang ada dikelas utama karena masih dalam satu kelas. Adapun cara memanggil suatu objek pada inner class, penulisannya seperti ini :
NamaKelas objek = new NamaKelas();
namaInnerClass objekInner = objek.new namaInnerClass();
Untuk lebih jelasnya, disini saya akan contohkan cara memanggil “nama” yang ada pada inner class Dosen -yang telah kita tampilkan diatas- melalui kelas yang baru -yang terpisah dari kelas Kampus- :

package sebagai.contoh;

import sebagai.contoh.Kampus.Dosen;

public class Program {
       public static void main(String[] args) {
              Kampus objekUtama = new Kampus();
              Dosen objekInner = objekUtama.new Dosen();
             
              objekInner.nama = "Ihsan";
              System.out.println(objekInner.nama);
       }
}

                Selanjutnya adalah materi tentang Polimorfisme / Polimorphism pada OOP Java. Jika kita artikan dari segi katanya, “poli” yang bermakna banyak (atau lebih dari satu) & “morph” yang bermakna bentuk. Relasinya dengan OOP adalah sebuah objek bisa memiliki banyak bentuk, dari relasi tersebut memungkinkan terjadi beberapa hal :
-          Suatu objek bisa berasal dari kelas induk/ super class namun value-nya bisa dipanggil menggunakan kelas turunannya.
-          Sebuah kelas induk namun bisa bertingkah laku atau memiliki sifat kelas turunannya.
-          Sebuah kelas dapat disamarkan menjadi kelas induknya.
Pada umumnya penulisan objek adalah : NamaKelas objek = new NamaKelas(); .Namun, contoh penulisan polimorfisme nantinya seperti ini : KelasInduk objek = new classTurunannya();
Berikut ini contoh sederhana polimorfisme dimana mula-mula kita membuat kelas induk “Movie” beberapa atribut dan method :

package sebagai.contoh;

public class Movie {
       private String judul;
       private int tahun;
       private String negara;
      
       public void negara() {
              System.out.println("Default Negara");
       }
}
Selanjutnya kita membuat kelas turunan yaitu “Starwars” yang berinduk ke kelas “Movie”, pada kelas ini kita membuat method yang sama seperti yang ada pada kelas “Movie” namun isinya berbeda :

package sebagai.contoh;

public class Starwars extends Movie{
       public void negara() {
              System.out.println("Amerika");
       }
}
Lalu kita membuat kelas “Main” yang digunakan sebagai pemanggil seperti berikut :

package sebagai.contoh;

public class Main {
       public static void main(String[] args) {
              Movie m = new Starwars();
              m.negara();
       }
}

Pada kelas “Main” diatas, ketika kita membuat objek “m” maka kita memanggil kelas “Movie”. Namun pada tulisan setelah “new”, yang seharusnya kita tulis “Movie” juga maka kita ubah menjadi “Starwars”. Maka nantinya walaupun yang dipanggilnya adalah “Movie”, namun yang akan diakses adalah “Starwars” sehingga yang akan muncul adalah value yang ada di “Starwars” yaitu "Amerika"-bukan value yang ada di Movie yaitu "Default Negara”-.
                Itulah beberapa hal yang saya pelajari secara mandiri hari ini, semoga Allah menjadikan kita orang yang senantiasa bersungguh-sungguh dalam menuntut ilmu...Aamiin

Istifadah KBM 25 Pesantren Siber Bandung

Istifadah KBM 25 Pesantren Siber Bandung

1/06/2020 Add Comment

Selasa, 24 September 2019

                Pada sekitar pukul sembilan pagi kami sudah berkumpul didalam kelas, Kegiatan Belajar Mengajar (KBM) untuk sesi pertama ini diisi oleh Kang Aiman, beliau menyuruh kami untuk mempresentasikan materi mengenai VPN (Virtual Private Network) -Pada pertemuan sebelumnya kami diberi tugas untuk membuat presentasi mengenai VPN-. Beliau pun menyuruh salahsatu dari kami secara acak untuk maju kedepan dan mempresentasikan materi tersebut. Setelah orang tersebut selesai melakukan presentasi, ia akan diberi beberapa pertanyaan mengenai materi yang telah ia sampaikan. Setelah ia menjawab pertanyaan, Kang Aiman akan mereview presentasi orang tersebut. Selanjutnya akan kembali dipilih secara acak salah satu dari kami untuk maju mempresentasikan materinya. Kegiatan ini berlangsung hingga menjelang waktu dzuhur dimana sebagian dari kami telah melakukan presentasi, tetapi sebagian yang lainnya belum. Dari kegiatan ini saya pun mempelajari banyak hal mulai dari latihan public speaking hingga materi yang disampaikan seperti : Definisi VPN, cara kerjanya, kriteria VPN yang baik, kapan, dimana, kenapa seseorang memerlukan VPN, dan lain sebagainya.
                KBM untuk sesi kedua setelah istirahat siang diisi oleh Kang Basyir melanjutkan pembahasan materi tentang OOP pada Java. Pada pertemuan sebelumnya Kang Basyir telah menjelaskan materi OOP mengenai kelas, atribut, method, konstruktor, dan enkapsulasi. Untuk pertemuan kali ini beliau akan melanjutkan pembahasan OOP mengenai Hak Akses & Penurunan Sifat (Inheritance). Sebenarnya materi mengenai hak akses sudah pernah Kang Basyir singgung pada pertemuan sebelumnya, dimana hak akses pada java ini terdiri dari tiga level yaitu : Public (bisa diakses oleh pihak luar selama masih dalam satu project), Protected (bisa diakses oleh pihak luar selama masih dalam satu package), dan Private (hanya bisa diakses melalui kelas yang sama). Pada java ada tambahan yaitu Default -jika tidak diisi/kosong- (maka secara otomatis akan diatur ke Private yakni hanya bisa diakses melalui kelas yang sama).
                Untuk Penurunan Sifat (Inheritance) pada OOP ini konsepnya mirip seperti klasifikasi makhluk hidup pada biologi. Misalnya makhluk hidup memiliki sifat bernapas, berkembang, dan makan. Makhluk hidup juga mempunyai anak/turunan yaitu sebagai contoh manusia, hewan, dan tumbuhan. Maka sifat-sifat yang ada pada induk ini diwariskan ke anak/turunannya. Inheritance merupakan sifat atau konsep pewarisan pada java, dimana kita dapat mengakses sifat ataupun method dari kelas lain. Dimana nantinya -pada java- ada kelas induk yang akan menurunkan sifat berupa atribut ataupun metoda ke kelas anak/turunannya. Untuk melakukan inhertance (Penurunan Sifat) pada kelas turunan dari kelas induknya, maka digunakan kata kunci extends pada kelas turunan/subclass untuk ditunjukkan kepada kelas induk/superclass. Umumnya pada kelas induk tidak ditemukan “main” karena kelas tersebut tidak dijalankan, sedangkan kelas turunan terkadang ada “main” terkadang pula tidak ada tergantung penggunaan. Berikut ini adalah contoh yang sangat sederhana dari kelas induk :

package sebagai.contoh;

public class Binatang {
       String nama;
       int umur;
      
       public void tampilSuara() {
              System.out.println("Suara Binatang ");
       }
}
Adapun contoh sederhana dari kelas turunan adalah berikut :
package sebagai.contoh;

public class Anjing extends Binatang {
       public static void main(String[] args) {
             
              Binatang anjing = new Binatang();
             
              anjing.tampilSuara();
       }
}

Dari kode diatas kita tahu bahwa kelas turunan yaitu Anjing menginduk ke kelas Binatang dengan menggunakan extends dan mengakses apa yang ada di kelas Binatang yaitu tampilSuara.
Setelah Kang Basyir selesai dari penjelasan, beliau memberi kami waktu untuk memahami materi yang disampaikan dan memberi kami tugas yang cukup banyak untuk melatih pemahaman kami dan agar kami terbiasa dengan konsep OOP ini, karena menurut beliau konsep OOP ini akan selalu ditemukan oleh seorang programmer hampir disetiap bahasa pemrograman.
                Itulah beberapa hal yang saya pelajari hari ini, semoga Allah menjadikan kita seorang mukmin yang kuat seperti apa yang disabdakan Nabi shallallahu alaihi wa sallam :
(المؤمن القوي خير وأحب إلى الله من المؤمن الضعيف، وفي كلّ خير)
Artinya : “Seorang mukmin yang kuat itu lebih baik dan lebih dicintai oleh Allah daripada orang mukmin yang lemah, namun pada masing-masing (dari keduanya) terdapat kebaikan.”

Istifadah KBM 24 Pesantren Siber Bandung

Istifadah KBM 24 Pesantren Siber Bandung

1/06/2020 Add Comment

Senin, 23 September 2019

                Kegiatan Belajar Mengajar (KBM) di Pesantren Siber Bandung dimulai sekitar pukul sembilan pagi, alhamdulillah pada pukul tersebut kami sudah berkumpul didalam kelas. KBM pada sesi pertama ini diisi oleh Kang Ihsan, pada pertemuan kali ini beliau membahas tentang server dan tutorial cara menginstalasi linux. Pertama-tama beliau membahas definisi server pada komputer yaitu suatu sistem komputer yang menyediakan jenis layanan (service) tertentu dalam sebuah jaringan komputer. Beliau juga membahas fungsi server, contoh OS server, tugas & tanggung jawab seorang admin server. Selanjutnya Kang Ihsan mengajarkan kepada kami cara menginstalasi OS Linux melalui Vmware, OS linux yang diinstall pada pertemuan ini adalah lubuntu. Proses instalasi ini memakan waktu hingga menjelang waktu dzuhur dikarenakan membutuhkan waktu yang cukup lama sehingga Kang Ihsan menutup KBM setelah proses instalasi selesai.
                Setelah istirahat siang, KBM diisi oleh Kang Basyir melanjutkan pembahasan materi pada Java. Pada pertemuan sebelumnya kami telah mempelajari materi tentang metoda, untuk pertemuan kali ini Kang Basyir melanjutkan pembahasan materi tentang OOP (Object Oriented Programming). OOP sendiri merupakan sebuah paradigma / teknik pemrograman yang berorientasikan objek atau bisa dibilang metoda pemrograman yang merepresentasikan hal-hal yang ada disekitar kita sebagai objek. Objek yang dimaksud merupakan bagian terkecil dari sebuah representasi benda yang memiliki atribut, sifat, dan memiliki keterkaitan satu sama lain antar objek.
                Pada konsep OOP terdapat beberapa hal yang perlu diperhatikan seperti class, enkapsulasi, instansiasi, atribut, tingkah laku/fungsi, hak akses, dll. Class/Kelas yang dimaksud pada OPP merupakan sebuah blueprint, -yakni- definisi dari objek yang sejenis yang didalamnya mendefinisikan atribut (variabel) dan behavior (method/function/operation). Struktur kelas pada OOP terdiri dari : Nama/Objek, Variabel/Atribut, Method. Berikut adalah contohnya :

package dasaroo;

public class Buah {
       String nama;
       String deskripsi;
       double harga;
       String rasa;
       String jenis;
       String warna;
      
       public String getNama() {
              return this.nama;
       }
       public void setNama(String nama) {
              this.nama = nama;
       }
Kode diatas merupakan contoh struktur kelas pada OOP dimana Nama/Object-nya adalah Buah, Variabel/Atributnya adalah nama, deskripsi, harga, rasa, jenis, dan warna, lalu yang selanjutnya adalah method. Selanjutnya ada Instances yaitu perwujudan atau realisasi dari sebuah kelas yang kita buat, instances dilakukan dengan membuat class “main” -terpisah dari kelas sebelumnya- berikut contoh sederhananya :


package dasaroo;

public class Main {
       public static void main(String[] args) {
              Buah buah = new Buah();
              buah.nama = "pisang";
              System.out.println(buah.nama);
       }
}
Pada instances ini kita membuat suatu variabel -contoh pada kode diatas adalah buah- dengan menggunakan tipe data dari nama kelas yang sebelumnya telah kita buat -contoh pada kode diatas adalah Buah- lalu mengisi & menggunakan variable tersebut -cara mengisinya sama seperti mengisi variabel biasa-.
Selanjutnya ada konstruktor, konstruktor ini merupakan special method yang pertama kali dijalankan ketika kelas di instances -biasanya digunakan untuk memberikan nilai default diawal-. Ketika kita membuat konstruktor maka namanya pun harus sama dengan nama kelas. Konstruktor sendiri terbagi menjadi dua macam yaitu : tidak berparameter –contoh:  public Buah() {}-  & berparameter -contoh: public Buah(String nama, double harga) {}-. Parameter disini seperti syarat ketika kita melakukan instances sehingga untuk konstruktor yang berparameter apabila kita tidak mengisi sesuai parameternya maka program tidak akan berjalan/terjadi error. Pada sebuah kelas kita bisa membuat lebih dari satu konstruktor (disebut multi constructor).
Pada sebuah kelas juga terdapat dua jenis variabel yaitu : Class Variable & Local Variable (untuk lokal biasanya letaknya ada didalam konstruktor atau method). Biasanya variabel kelas nilainya sesuai dengan variabel lokal, oleh karena itu kita perlu menggabungkan keduanya yaitu dengan menggunakan “this” -berfungsi untuk merepresentasikan / merujukkan sesuatu ke sesuatu yang lain- misalnya : public Buah(String nama) {this.nama = nama;} maka nama pertama-yang berwarna biru- dirujukkan ke nama varibel kelas, sedangkan nama kedua adalah variabel lokal.
Pada OOP sebuah variabel tidak bisa melakukan perubahan dengan sendirinya, dibutuhkan pihak lain dalam melakukan perubahan. Oleh karena itu, diadakan suatu proses yang namanya Enkapsulasi yakni dengan membuat atribut memiliki dua buah metoda yaitu : Setter (digunakan untuk merubah nilai data) & Getter (digunakan untuk mengambil nilai data). Enkapulasi sendiri merupakan sebuah proses dimana method dan juga atribut dibungkus didalam program. Pada enkapsulasi terdapat tiga jenis yaitu: Public (kode pada method atau konstruktor bisa diakses oleh pihak luar selama masih dalam satu project), Protected (kode pada method atau konstruktor bisa diakses oleh pihak luar selama masih dalam satu package), dan Private (kode pada method atau konstruktor hanya bisa diakses melalui kelas yang sama).
Itulah beberapa hal yang saya pelajari hari ini, semoga Allah senantiasa menerima amalan-amalan yang selama ini kita kerjakan dan menjadikannya penolong untuk kehidupan kita di akhirat kelak...Aamiin

Istifadah KBM 22 Pesantren Siber Bandung

Istifadah KBM 22 Pesantren Siber Bandung

1/05/2020 Add Comment

Kamis, 19 September 2019

                Alhamdulillah....Hari ini merupakan hari ke-25 sejak Kegiatan Belajar Mengajar (KBM) dimulai, sekitar pukul sembilan pagi kami semua sudah berkumpul didalam kelas. KBM hari ini diisi oleh Kang Basyir melanjutkan pembahasan pemrograman java -artinya aplikasi yang kami gunakan hari ini adalah Eclipse for Java Developer-. Pada pertemuan sebelumnya kami telah mempelajari tentang array yaitu suatu himpunan dari data-data yang dimiliki. Pada pertemuan kali ini, Kang Basyir melanjutkan pembahasan tentang fungsi atau metoda.
                Kang Basyir menjelaskan bahwa metoda -yang juga sering disebut fungsi- adalah kumpulan kode/perintah yang akan berjalan ketika dipanggil. Asal mula adanya metoda/fungsi ini berasal dari prinsip pada matematika. Ketika pelajaran matematika kita sering melihat seperti ini : y = (x + 2) * x yang mana y = f(x) maka berubahlah menjadi f(x) = (x + 2) * x. Jika kita masukan angka 10 maka akan menjadi f(10) = (10 + 2) * 10 , hasilnya adalah 120. Nah prinsip seperti ini lah yang dipakai dalam metoda, karena poin penting pada angka-angka diatas adalah bagian ini : f(x) = (x + 2) * x.  Dengan adanya f(x) tadi akan memudahkan penulisan penghitungan kedepannya karena nantinya tidak perlu ada pengulangan tulisan lagi. Nah begitu pula pada pemrograman, kita sering melakukan penulisan perintah/kode yang sama secara berulang-ulang dan untuk menjadikannya efektif tanpa harus diulang-ulang maka dibuatlah metoda ini. Tujuan utama penggunaan metoda adalah agar kita bisa mendefinisikan satu kode yang dapat digunakan berkali-kali secara berulang ketika dipanggil tanpa harus mengulang penulisan, metoda juga membuat koding menjadi lebih rapih dan enak dilihat.
                Metoda ini diawalai dengan penulisan dua buah modifier yaitu : Access Modifier & Acces Non-Modifier. Access modifier terdiri dari Public (kode pada metoda dapat dipanggil selama masih dalam satu project), Protected (kode pada metoda dapat dipanggil selama masih dalam satu package), Private (kode pada metode hanya dapat dipanggil jika masih dalam satu class), dan default/tidak diisi (maka secara otomatis akan teratur ke Private alias hanya bisa dipanggil dalam satu class). Adapun  access non-modifier terdiri dari final, abstract, static, dll. Kang Basyir mengatakan bahwa istilah-istilah ini akan ditemukan dalam konsep OOP.
                Tipe data metoda pada java terdapat dua jenis yaitu tipe data void & non-void (Semua tipe data dapat digunakan pada metoda). Untuk tipe data non-void, nantinya harus memberikan kembalian “return”. Adapun standar penulisan nama method pada java adalah dengan diawali hurup kecil jika terdapat lebih dari satu kata maka menggunakan cara penulisan camel case (Tidak memakai spasi dan awal huruf kata selanjutnya adalah Kapital) contoh : tampilNama(), iniHanyaSebuahContoh(). Dalam membuat metoda, kita dapat memasukan parameter yang nantinya nilai yang dimasukan kedalam parameter akan digunakan sebagai variabel yang dikirimkan dari pemanggil metoda. Sebagai contoh -pada metoda- kita memasukan parameter: hitungLuas(int panjang, int lebar), maka saat kita membuat pemanggil kita menulis : hitungLuas(100, 50) -dimana angka 100 adalah panjang & 50 adalah lebar(sesuai apa yang ada pada metoda)-. Adapun penulisan return digunakan sebagai cara metoda memberikan hasil & menghubungkannya kepada pemanggil metoda (ini khusus untuk tipe data non-void). Berikut ini contoh pemanggilan metoda tipe data non-void :

package coba.coba;

public class CobaMetoda {
       public static void main(String[] args) {
              CobaMetoda persegiPanjang = new CobaMetoda();
              int panjang = 200;
              int lebar = 100;
              System.out.println("Panjang: " + panjang);
              System.out.println("Lebar: " + lebar);
              System.out.println("Luas: " + persegiPanjang.hitungLuas(panjang, lebar));
              System.out.println("Keliling: " + persegiPanjang.hitungKeliling(panjang, lebar));
      
       }
       int hitungLuas(int panjang, int lebar) {
              int luas = panjang*lebar;
              return luas;
       }
       int hitungKeliling(int panjang, int lebar) {
              int keliling = (panjang*2) + (lebar*2);
              return keliling;
              }
}

Lalu berikut ini contoh pemanggilan metoda tipe data void :

package coba.coba;

public class Metoda {
       public static void main(String[] args) {
              Metoda metoda = new Metoda();
              metoda.tampilHai();
              metoda.tampilNama("Mohammad Salah");
       }
       void tampilNama(String nama) {
              System.out.println(nama);
       }
       void tampilHai() {
              System.out.println("Hai");
       }
}

      Itulah beberapa hal yang saya pelajari hari ini, semoga Allah senantiasa menjadikan kita orang yang lisannya selalu basah untuk melantunkan Al-Qur’an dan berdzikir kepada-Nya....Aamiin