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