Istifadah "Bagaimana Keamanan Sistem pada Platform Pembelajaran Jarak Jauh"

3/19/2020 Add Comment



Kamis, 17 Oktober 2019

                Fenomena pandemi COVID-19 yang terjadi sekarang ini memaksakan pemerintah untuk menghentikan sementara segala aktivitas yang dapat memicu kerumunan manusia guna meminimalisir penyebaran penyakit virus corona ini melalui kontak fisik. Dari banyak aktivitas yang terhenti tersebut, termasuk diantaranya kegiatan belajar mengajar di berbagai lembaga pendidikan. Terhentinya kegiatan belajar mengajar secara kontak langsung ini pun akhirnya menuntut suatu ‘kegiatan baru’ yaitu kegiatan pembelajaran secara online dimana hal ini dilakukan agar keberlangsungan kegiatan belajar mengejar tetap dapat berjalan.

Dari tuntutan untuk tetap mengadakan pembelajaran tanpa kontak secara langsung, munculah berbagai sistem yang dapat menunjang kegiatan pembelajaran secara jarak jauh dengan  beraneka-ragam platform maupun aplikasi yang digunakan. Melihat fonemena tersebut maka munculah sebuah pertanyaan dalam benak kita “Apakah sistem pembelajaran secara jarak jauh ini aman bagi kita?”. Disini saya pun merangkum podcast bertema “Bagaimana Keamanan Sistem pada Platform Pembelajaran Jarak Jauh” yang diselenggarakan Tarbiyah Sunnah Learning dengan Pak Iwan Sumantri sebagai narasumbernya.

Setelah melalui berbagai pembukaan, perkenalan, dan lain sebagainya. Munculah pertanyaan mendasar yang diajukan oleh moderator yang merupakan inti dari tema podcast kali ini yaitu: “Dari sisi security, apakah media yang kita gunakan untuk melakukan pembelajaran jarak jauh ini aman?”. Maka Pak Iwan mencoba menjawab pertanyaan tersebut dengan menjelaskan hal-hal yang perlu dipahami terlebih dahulu mengenai landasan security.

Pak Iwan mengatakan bahwa dalam dunia security suatu sistem dikatakan aman atau tidaknya itu merupakan hal yang relatif. Bisa jadi suatu sistem itu aman bagi seseorang, tapi tidak bagi yang lainnya. Atau bisa jadi suatu sistem itu aman untuk hari ini, tapi tidak untuk hari esoknya. Maka dari itu, tidak ada suatu sistem yang bisa diklaim secara pasti aman atau tidaknya karena semua hal tersebut bergerak secara dinamis.Namun Pak Iwan disini tidak ingin berbicara banyak mengenai penjelasan keamanan sistem secara teknis tersebut, karena hal tersebut merupakan urusan pihak yang terlibat dalam pengembangan sistem yang tidak ada sangkut-pautnya dengan kita sebagai pengguna. Pak Iwan lebih menjawab pertanyaan tersebut dengan menjelaskan mengenai kiat-kiat agar media yang kita gunakan untuk pembelajaran jarak jauh menjadi aman, tentunya dari sisi pengguna. Karena seaman apapun suatu sistem akan dapat menjadi rentan jika pengguna tidak memanfaatkannya dengan bijak.

Kita disini yang bertindak sebagai pengguna suatu platform ataupun aplikasi memiliki andil dalam menjaga sistem tersebut agar tetap aman, utamanya dalam menjaga data pribadi kita. Hal yang paling mendasari yang perlu dilakukan sebagai pengguna adalah bersikap awareness & waspada dalam menggunakan platform ataupun aplikasi tersebut. Jangan kita begitu saja percaya pada suatu platform ataupun aplikasi sehingga bertindak semena-mena tanpa berpikir panjang, walaupun telah dikatakan bahwa platform atau aplikasi tersebut aman. Karena terkadang disitulah seorang attacker atau penyerang beraksi dengan memanfaatkan kelengahan kita. Berikut ini beberapa bentuk kewaspadaan yang dapat kita lakukan sebagai pengguna untuk meminimalisir hal-hal yang tidak diinginkan :

  • Jangan sembarangan mendownload & menginstall suatu aplikasi
Guna meminimalisir hal-hal yang tidak diinginkan, kita harus memerhatikan semua aplikasi yang kita gunakan & memastikan bahwa aplikasi tersebut aman digunakan (Misal dengan cara mendownload aplikasi tersebut dari sumber yang jelas, memastikan bahwa aplikasi tersebut asli karena banyak pihak-pihak yang tidak bertanggung jawab membuat aplikasi serupa untuk menipu korbannya, memastikan perusahan ataupun pihak yang mengembangkan aplikasi merupakan pihak yang terpercaya, dan lain sebagainya). Sebenarnya bukan hanya aplikasi yang kita perhatikan, semua file yang akan kita download pun harus kita perhatikan baik-baik.

  • Meminimalisir pemberian akses pada aplikasi
Kita sebagai pengguna ketika menginstall suatu aplikasi, seringkali kita menekan “setuju” tanpa membaca ‘apa yang kita setuju’ termasuk didalamnya pemberian akses. Hal ini perlu diperhatikan, karena sering kali suatu aplikasi meminta izin akses pada perkara-perkara yang tidak diperlukan aplikasi tersebut. Misalnya aplikasi belanja online yang meminta akses pada kamera, mikrophone, kontak, dan lain sebagainya. Padahal aplikasi tersebut tidak memerlukan akses tersebut. Kalaupun suatu aplikasi membutuhkan suatu akses maka izinkan ketika kita menggunakan aplikasi tersebut, jika kita sedang tidak menggunakannya maka cabutlah izin tersebut. Mungkin hal ini terdengar sepele & merepotkan, tapi ketahuilah bahwa tindakan yang sering kita sepelekan ini dapat memiliki andil besar dalam mengamankan perangkat yang kita gunakan.

  • Jangan sembarangan mengklik suatu link
Seringkali kita jumpai baik pada SMS, E-mail, iklan,dan lain sebagainya menampilkan suatu link yang mengalihkan kita pada suatu web ataupun aplikasi. Kita perlu memerhatikan dengan baik link-link tersebut karena banyak sekali atacker atau penyerang yang memanfaat hal tersebut untuk melakukan pishing (tindakan memperoleh informasi pribadi seperti User ID, Password dan data-data sensitif lainnya dengan menyamar sebagai orang atau organisasi yang berwenang melalui sebuah email). Misalnya ada suatu pihak yang tidak bertanggung jawab mengatasnamakan dirinya dari pihak bank, mengarahkan korban untuk mengklik suatu link dimana ia dialihkan pada suatu situs untuk dimintai informasi sensitif dengan iming-iming suatu hadiah. Untuk menghindari kejadian seperti ini kita jangan mudah terpengaruh dengan berita yang disampaikan, kita perlu memastikan bahwa link yang diarahkan merupakan link resmi dari pihak terkait, lalu kita juga perlu memastikan konten dari link tersebut merupakan konten yang sama dengan link resmi.
  • Memasang parameter keamanan pada perangkat
Sebagai bentuk upaya mengamankan perangkat, kita perlu menginstall aplikasi yang berguna sebagai parameter keamanan pada perangkat yang kita gunakan seperti antivirus (itupun antivirus yang terjamin & selalu di update). Walaupun sudah memasang antivirus, kita jangan begitu saja percaya pada antivirus tersebut karena banyak juga malware yang dapat menginfeksi suatu perangkat tanpa terdeteksi oleh antivirus.

  • Menggunakan perangkat hardware yang terpercaya
Belakangan ini kita pernah mendengar ataupun mendapatkan suatu statistik dari suatu vendor yang berfokus dalam memonitor traffic internet secara global dan mendapati bahwa ada banyak traffic anomali yang menjurus pada suatu wilayah dimana suatu vendor hardware berasal. Oleh karena itu, kita juga perlu memerhatikan perangkat hardware yang kita gunakan dan memastikannya berasal dari vendor yang terpercaya.

  • Menghindari penggunaan wifi public
Menggunakan wifi public memliki resiko yang cukup rawan & berbahaya. Seorang attacker atau penyerang dapat melakukan man in the middle (tindakan dimana seorang attacker memposisikan dirinya diantara dua belah pihak sehingga dapat memata-matai korban) pada korban yang menggunakan wifi public. Kalaupun mengharuskan menggunakan wifi maka pastikan wifi yang digunakan berasal dari perangkat yg kita kenal (karena terkadang ada attacker yang menyediakan wifi dan menamakan wifi tersebut seolah berasal dari suatu sumber terpercaya), minimalisirkan penggunaannya,hindari untuk penggunaan yang melibatkan informasi sensitif, dan gunakanlah VPN ketika menggunakan wifi.

                Terakhir, untuk mewujudkan suatu sistem yang aman maka perlu adanya andil dari berbagai pihak baik dari developer maupun dari pengguna karena sistem yang aman terwujud oleh developer yang baik & pengguna yang bijak. Oleh karena itu, kita sebagai pengguna harus sadar dan tetap waspada terhadap segala tindakan yang akan kita lakukan. Semua hal tersebut dapat dilakukan dengan adanya ilmu & pengetahuan, maka teruslah belajar dimanapun & kapanpun kita berada, juga bertanyalah sesuatu yang tidak kita ketahui kepada ahlinya baik dalam perkara dunia maupun perkara akhirat. Kita juga berdo’a kepada Allah agar menjadikan ujian dari-Nya ini sebagai perantara yang mendekatkan kita pada-Nya dan mengangkat cobaan yang sedang menimpa dunia ini dengan dihilangkannya wabah yang sedang tersebar ini.

اللهم إني أعوذ بك من البرص والجنون والجذام ومن سيّء الأسقام
“Ya Allah, sesungguhnya aku berlindung pada-Mu dari penyakit belang, gila, kusta, dan dari keburukan segala macam penyakit.”

Istifadah KBM 27 Pesantren Siber Bandung

Istifadah KBM 27 Pesantren Siber Bandung

1/07/2020 Add Comment

Kamis, 26 September 2019

                Biasanya Kegiatan Belajar Mengajar (KBM) di Pesantren Siber Bandung dimulai pukul sembilan pagi, namun terkhusus untuk hari ini -atas arahan dari Pak Iwan-, KBM dimulai setengah jam lebih dini dari biasanya yaitu pada sekitar pukul setengah sembilan pagi. KBM hari ini diisi oleh Pak Iwan, materi yang akan beliau bahas untuk pertemuan kali ini adalah hal-hal yang berkaitan dengan Linux Server. Pak Iwan mengawali pengajarannya dengan memberikan motivasi & nasehat kepada kami untuk terus bersungguh-sungguh & semangat dalam belajar.
                Selanjutnya Pak Iwan membuat sebuah server linux dan membuat user masing-masing dari kami pada server tersebut. Setelah beliau selesai membuat server tersebut, beliau menyuruh kami untuk masuk ke server tersebut melalui SSH menggunakan user yang telah beliau kasih kepada kami. Untuk masuk ke server tersebut, kita bisa menggunakan beberapa cara yaitu : menggunakan aplikasi PuTTY, command prompt, cmder, ataupun terminal. Saya sendiri mengakses dengan menggunakan cmder (caranya sama saja seperti menggunakan command prompt ataupun terminal) yaitu dengan mengetik : ssh username@ipaddress (misal: ssh yunus@192.175.278.13), lalu masukan password dan tekan Enter. Jika ingin mengganti password maka ketik: “passwd username” , masukan password lama selanjutnya masukan password yang baru.
                Selanjutnya Pak Iwan membahas mengenai server, beliau mengatakan bahwa sebenarnya setiap komputer -apapun komputernya- memiliki dua sisi yaitu : sisi server & sisi client. Dalam trafic monitoring, siapapun yang diakses maka dia adalah server begitu pun sebaliknya -siapapun yang mengakses maka dia adalah client-. Dari konsep server & client diatas, maka sangat memungkinkan jika sebuah komputer pada waktu bersamaan menjadi server sekaligus client, itu semua tergantung dari sudut mana kita melihat. Dalam memonitoring network, cara sederhana untuk memonitoring komputer kita adalah dengan menggunakan netstat -oleh karena itu materi tentang netstat ini perlu dipelajari lebih dalam-. Cobalah buka aplikasi command prompt -dan semisalnya seperti cmder-, lalu tekan “netstat -ano” (untuk linux: netstat -a) maka akan muncul seperti ini :
Proto  Local Address                       Foreign Address               State                     PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING          412
  TCP    0.0.0.0:445             0.0.0.0:0                               LISTENING          4
  TCP    0.0.0.0:902             0.0.0.0:0              LISTENING          1924
  TCP    0.0.0.0:912            0.0.0.0:0                               LISTENING          1924
  TCP    0.0.0.0:1688                          0.0.0.0:0                               LISTENING          3020
  TCP    0.0.0.0:1935          0.0.0.0:0              LISTENING          2136
  TCP    0.0.0.0:5040          0.0.0.0:0              LISTENING          1352
  TCP    0.0.0.0:7955           0.0.0.0:0              LISTENING          2136
  TCP    0.0.0.0:12882                        0.0.0.0:0              LISTENING          2136
  TCP    0.0.0.0:49664                        0.0.0.0:0              LISTENING          704
  TCP    127.0.0.1:1001                      0.0.0.0:0               LISTENING          4
  TCP    127.0.0.1:18936                   0.0.0.0:0              LISTENING          2136
  TCP    127.0.0.1:44430                   0.0.0.0:0              LISTENING          3040
  TCP    127.0.0.1:54140                   0.0.0.0:0              LISTENING          11928
  TCP    127.0.0.1:61034                   127.0.0.1:12882                 TIME_WAIT       0
  TCP    192.168.100.37:139            0.0.0.0:0              LISTENING          4
TCP    192.168.100.37:57446       198.41.30.198:80               CLOSE_WAIT     10760
...
Dari informasi diatas, kita bisa tahu bahwa port-port yang menunjukkan status LISTENING akan berperilaku sebagai server -jika port-port tersebut diakses-. Salah satu cara untuk mengaksesnya adalah dengan menggunakan telnet, bisa juga dengan web service(mengakses dengan web browser) -itupun jika tersedia dan bisa diakses dengan cara tersebut-.
                Selanjutnya Pak Iwan berbicara tentang Editor Text pada Linux yang terdapat beberapa macam seperti : Nano, Pico, Vin, Vi (mirip seperti vin tetapi lebih primitif). Beliau menekankan kami untuk mempelajari editor text linux Vi dan memberikan kami waktu untuk mempelajarinya & melakukan beberapa latihan. Berikut ini beberapa hal yang saya pelajari dari editor text vi :
Untuk membuat suatu file dengan menggunakan editor text Vi, maka ketik : vi nama_file lalu tekan Enter. Didalam editor text Vi, terdapat dua mode yaitu command line & editing/insertion. Pada command line, semua yang kita masukan akan dianggap sebagai perintah. Adapun pada editing, semua yang kita ketikan akan menjadi isi file tersebut. Untuk berpindah ke mode editing maka tekan tombol “i”, lalu kita bisa mulai mengetik isi file. Sedangkan untuk berpindah ke mode command line maka tekan “Esc” lalu masukan perintah.Berikut beberapa perintah yang saya pelajari :
  • -          dd = untuk menghapus sebuah baris yang ada dikanan cursor
  • -          3dd = untuk menghapus 3 baris yang ada dikanan cursor
  • -          u = untuk melakukan undo
  • -          :wq! = (write & quit) untuk menyimpan & keluar dari file
  • -          :q! = untuk keluar dari file tanpa disimpan

  • -          :w! = untuk menyimpan tanpa harus keluar
  • -          :?nama = untuk melakukan pencarian kata/finding “nama”, lalu tekan “n” untuk pencarian kata “nama”  berikutnya
  • -          x = untuk menghapus satu karakter pada posisi cursor
  • -          e = untuk menggeser cursor ke akhir kata
  • -          b = untuk menggerakan cursor ke awal kata

  • -          G = untuk menggerakan cursor ke awal baris terakhir
  • -          ! artinya memaksa perintah

Lalu Pak Iwan membahas Partisi pada Linux, Partisi pada linux sedikit berbeda dengan windows. Jika di windows, partisi akan dibagi berdasarkan drive, C:, D:, E:, dan seterusnya. Adapun di linux, pembagian partisi berada didalam directory root -dengan membuat directory sendiri dibawah root namun partisinya berbeda dengan directory root, adapun directory default yang tidak didefinisikan secara khusus maka akan berada pada partisi root-. Beliau juga memberitahu directory yang berisikan perintah-perintah pada linux yaitu : bin, sbin (perintah yang ada pada pada directory sbin hanya bisa dijalankan oleh user root atau yang setara dengan root seperti : sudo, su root), usr/bin, usr/sbin, usr/local/bin, usr/local/sbin.
                Itulah beberapa hal yang saya pelajari hari ini, semoga ilmu yang saya sampaikan ini bermanfaat dan semoga Allah senantiasa memperteguh hati kita untuk terus berada di jalan yang lurus...Aamiin

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