0% menganggap dokumen ini bermanfaat (0 suara)
208 tayangan363 halaman

Introduce Software Engineering PDF

Dokumen tersebut membahas tentang perbedaan pekerjaan yang berkaitan dengan pengembangan perangkat lunak, yaitu coder, programmer, pengembang perangkat lunak, dan insinyur perangkat lunak. Secara garis besar, coder bekerja pada bagian kode kecil, programmer mampu membuat program lengkap, pengembang perangkat lunak menerapkan prinsip-prinsip rekayasa perangkat lunak, sedangkan insinyur perangkat lunak menerapkan prinsip-pr

Diunggah oleh

Marifatun Sadiyah
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
208 tayangan363 halaman

Introduce Software Engineering PDF

Dokumen tersebut membahas tentang perbedaan pekerjaan yang berkaitan dengan pengembangan perangkat lunak, yaitu coder, programmer, pengembang perangkat lunak, dan insinyur perangkat lunak. Secara garis besar, coder bekerja pada bagian kode kecil, programmer mampu membuat program lengkap, pengembang perangkat lunak menerapkan prinsip-prinsip rekayasa perangkat lunak, sedangkan insinyur perangkat lunak menerapkan prinsip-pr

Diunggah oleh

Marifatun Sadiyah
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 363

Apa itu Insinyur Perangkat Lunak

Rekayasa Perangkat Lunak


11 menit membaca
Software engineer adalah salah satu profesi di bidang teknologi
informasi. Seorang software engineer akan bertugas untuk melakukan analisa,
membuat rekayasa, menyusun spesifikasi, mengimplementasikan dan
memvalidasi suatu rancangan sistem perangkat lunak untuk menjawab suatu
permasalahan yang ada.
Software Engineer (sumber: https://idstesting.com/ )
Perekayasa perangkat lunak akan merancang dan membuat sistem komputer
yang sesuai dengan kebutuhan sehingga sistem komputer itu dapat
menyelesaikan masalah yang ada. Dalam merancang dan membuat sistem,
seorang insinyur perangkat lunak terlebih dahulu akan mendesain sistem
dasar-dasar, memberikan perintah kepada pemrogram , dan
sebagainya. Setelah sistem selesai dibuat, perekayasa perangkat lunak akan
melakukan uji coba untuk meningkatkan akurasi sistem dan memastikan
sistem berjalan sesuai dengan apa yang diharapkan.
Namun sebagian besar orang di luar sana, masih sering kali tidak bisa
membedakan software engineer dengan judul pekerjaan yang terlihat serupa,
misalnya programmer , software developer dan coder . Padahal semua
pekerjaan itu punya perbedaan yang mendasar. Secara lebih lengkap
pembedanya akan kita bahas lebih Lanjut pada sesi selanjutnya.
Tingkat Pekerjaan Terkait Kode yang Berbeda
pembuat kode
Coder adalah title yang biasanya digunakan untuk menyebut orang yang
bekerja dengan kode secara umum . Apa yang dikerjakan oleh
seorang coder biasanya dalam ruang lingkup sangat kecil, bisa jadi itu
merupakan potongan script dari sebuah aplikasi, atau bahkan hanya
sebuah script sederhana untuk mengerjakan sesuatu.
Bahkan ketika sudah bisa membuat "Hello World" dengan menggunakan
suatu bahasa pemrograman, maka bisa menyebut dirinya seorang coder.
Coder Debuging (sumber: https://i.pinimg.com/ )
Pada level ini, seorang coder tidak perlu sampai sangat mahir dalam
menggunakan suatu bahasa pemrograman, yang terpenting adalah coder tahu
bagian mana yang dibutuhkan untuk menyelesaikan problem -nya dan
membuat kode yang bekerja untuk menyelesaikan problem tersebut.
Programmer
Programmer adalah title yang biasa digunakan untuk menyebut orang yang
sudah bisa membuat program/ software dari awal sampai dengan bisa
digunakan untuk menyelesaikan suatu masalah .
Untuk menjadi seorang programmer , maka paling tidak harus menguasai 1
buah bahasa pemrograman. Programmer sudah mulai mempelajari dan
memahami secara dalam bagaimana cara kerja dari suatu syntax di dalam
bahasa pemrograman.

Programmer (sumber: https://www.nesabamedia.com/ )


Yang menjadi ciri khas seorang programmer lainnya adalah,
program/ software yang dihasilkan tidaklah melalui proses yang sistematis
seperti adanya perancangan, dokumentasi dan pengujian.
Pengembang perangkat lunak
Software Developer merupakan title yang diberikan kepada orang yang
mempunyai kemampuan dan cara berpikir yang lebih dalam membuat
program atau software . Biasanya seorang software developer akan
membuat software /program sesuai dengan prinsip-prinsip desain dan
implementasi rekayasa perangkat lunak.
Beberapa hal yang sudah menjadi pertimbangan seorang software
developer dalam membuat software /program, seperti:

 Kinerja
 Pemeliharaan
 Skalabilitas
 Ketahanan
 Keamanan

Bukan hanya itu, seorang pengembang perangkat lunak juga akan


memutuskan masalah-masalah perangkat lunak /program dan memastikan
kualitas dari perangkat lunak /program yang mereka buat telah memenuhi
syarat.
Pengembang perangkat lunak akan melakukan pengujian terlebih dahulu
sebelum peluncuran perangkat lunak /program ke publik dan digunakan
oleh pengguna , demi mengetahui apakah produk sudah efisien dan berjalan
sebagaimana yang diharapkan.
Ketika seorang software developer akan membuat software /program, ada
beberapa tahapan software development yang akan dilaluinya. Tahapan-
tahapan ini biasa disebut dengan Software Development Life Cycle (SDLC) .
Insinyur Perangkat Lunak
Software engineer adalah gelar untuk seorang software developer yang ketika
membuat software /aplikasi tidak hanya melalui tahapan-tahapan SDLC,
namun juga sudah mengaplikasikan beberapa prinsip dalam software
engineering itu sendiri. Pada penjelasan selanjutnya akan dibahasa apa saja
prinsip-prinsip yang akan digunakan oleh seorang software engineer .
Prinsip Praktis Rekayasa Perangkat Lunak
 Memiliki Alasan Yang Jelas (Alasan Semuanya Ada)
o Sebuah sistem perangkat lunak harus mempunyai satu alasan, yaitu untuk
memberikan nilai kepada penggunanya. Inilah dasar dari segalanya.
o Sebelum memulai segala sesuatu dalam pembuatan perangkat lunak,
pertanyaan “Apakah ini menambah nilai nyata untuk sistem ?” jika
jawabannya “No” maka jangan lakukan.
o Prinsip-prinsip yang lain akan mendukung prinsip yang satu ini.
 Sederhana (Keep It Simple)
o Software desain bukanlah proses yang serampangan. Ada banyak faktor yang
perlu diperhatikan dalam pembuatan desain.
o Desain elegan biasanya lebih sederhana, namun bukan berarti cepat dan
kotor.
o Software desain tidak hanya pada interface tetapi juga termasuk
dalam coding aplikasi.
“Semua desain harus sesederhana mungkin, tetapi tidak boleh lebih
sederhana”
 Mempertahankan Visi (Pelihara Visi)
o Memiliki visi yang jelas kedepannya.
o Hal ini sangat penting untuk keberhasilan suatu proyek perangkat lunak.
 Apa Yang Kamu Buat, Orang Lain Yang Memakai (What You Produce,
Other Will Consume)
o Selalu menentukan, merancang, dan mengimplementasikan, sehingga orang
lain mengetahui apa yang sedang kita lakukan.
o Tentukan software yang ingin dibuat menggunakan kaca mata pengguna, hal
ini juga termasuk desain, informasi, dan lain sebagainya.
o Ingat bawa konsumen adalah faktor perkembangan perangkat lunak yang
berpotensi besar.
“Terbukalah pada target yang ingin dituju, apabila perlu gunakan survey
untuk mengetahui > apa yang sedang mereka butuhkan atau
permasalahkan” .
 Terbuka Kepada Masa Depan (Be Open To The Future)
o Sebuah sistem akan memiliki nilai lebih apabila memiliki umur yang panjang
bahkan seumur hidup.
o Sistem harus siap beradaptasi dengan perubahan atau lainnya. Dan sistem
yang dapat melakukan hal ini adalah sistem yang telah dirancang dengan cara
ini dari awal.
o Selalu bertanya “Apa jika…” dan menghindari kemungkinan jawaban yang
ada. Ini sangat memungkinkan penggunaan kembali ke seluruh sistem.
 Rencanakan Kedepan Untuk Digunakan Kembali
o Penggunaan kembali kode dan desain berarti telah memproklamirkan sebagai
manfaat utama penggunaan teknologi pemrograman berbasis objek (object
oriented programming) .
o Ada banyak teknik untuk mewujudkan penggunaan kembali di setiap tingkat
proses pengembangan sistem.
“Penggunaan kembali dapat mengurangi biaya, menghemat waktu
pembuatan perangkat lunak lain, dan > menambah usaha yang
dikeluarkan untuk proses pembuatan” .
 Berpikir (Berpikir)
o Selalu berpikir dengan jelas dan lengkap sebelum menentukan tindakan,
karena akan selalu menghasilkan hasil yang lebih baik.
o Prinsip 6 prinsip pertama disertai dengan pemikiran yang intens, yang
berpotensi dengan ketidakseimbangan yang besar.

Pengetahuan dan Keahlian


Menjadi seorang insinyur perangkat lunak bukanlah sesuatu yang bisa dicapai
dengan instan, ada beberapa hal yang harus diketahui dan di kuasai oleh
seorang insinyur perangkat lunak , di antaranya :
 Kemampuan Untuk Berpikir Logis & Algoritma
Semua perintah dalam bahasa pemrograman akan dieksekusi oleh komputer,
tugas seorang software engineer adalah salah satunya membuat algoritma
untuk menyelesaikan suatu permasalahan, dan sebelum membuat algoritma
tersebut, seorang software engineer perlu berfikir secara logis untuk
menentukan algoritma seperti apa yang cocok untuk menyelesaikan suatu
permasalahan.
 Kemampuan Melakukan Analisa
Ketika menemukan suatu permasalahan, seorang software engineer diwajibkan
untuk bisa melakukan analisa. Solusi yang akan diberikan oleh
seorang software engineer harus sudah melewati proses analisa, sehingga
solusi yang nantinya akan dituangkan ke dalam software atau aplikasi benar-
benar bisa menyelesaikan permasalahan tersebut.
 Penguasaan Bahasa Asing
Tidak hanya pandai berbahasa Indonesia, menjadi software
engineer diwajibkan untuk bisa berbahasa asing, minimal adalah bahasa
Inggris. Sebagian besar dokumentasi teknis terhadap sesuatu yang
berhubungan dengan dunia software engineering biasanya ditulis dalam
bahasa Inggris. Sangat merepotkan jika seseorang insinyur perangkat
lunak tidak bisa bahasa Inggris sehingga tidak bisa membaca dan memahami
dokumentasi tersebut.
Peran dan Tanggung Jawab
Seorang software engineer ketika bekerja akan selalu berhubungan dan
bertanggung jawab dengan hal-hal berikut:

 Bekerja dengan pengguna untuk mengetahui kebutuhan mereka mengenai


perangkat lunak.
 Merancang, membangun, dan juga mengetes sebuah sistem atau aplikasi
berdasarkan spesifikasi yang diminta oleh pengguna .
 Bekerja sama dengan developer untuk membuat kode yang sesuai untuk
sistem atau aplikasi dengan menggambarkan model atau diagram.
 Mendokumentasikan semua sistem atau aplikasi secara detil sebagai bentuk
pertanggungan jawaban saat melakukan maintenance .
 Mengelola aplikasi atau software secara berkala serta memperbaiki kesalahan
yang terjadi.
 Merekomendasikan software update untuk aplikasi atau sistem yang sudah
ada.
 Berkolaborasi dengan developer dan engineer lainnya untuk
menciptakan software .

Jenjang karir
Dalam kesehariannya, secara umum seorang software engineer akan
digolongkan menjadi beberapa level jenjang karir sebagai berikut:

 Insinyur Perangkat Lunak Junior


 Insinyur Perangkat Lunak
 Insinyur Perangkat Lunak Senior
 Arsitek/Insinyur Perangkat Lunak Utama

Level career path di atas bukanlah career path yang pasti di setiap perusahaan,
karena belum ada regulasi yang mengatur mengenai profesi software
engineer . Secara umum jalur karir software engineer pada suatu perusahaan
akan ditentukan dari beberapa faktor yang dikuasai oleh seroang software
engineer , atau biasa disebut dengan rubrik software engineering .
Rubrik Rekayasa Perangkat Lunak

 Kemampuan membuat sebuah perangkat lunak /aplikasi:


o Pemecahan masalah .
o Pemahaman terhadap bahasa pemrograman .
o Kemampuan untuk bekerja dengan panduan minimal .
 Pengetahuan ilmu komputer dasar .
 Desain sistem .
 Kemampuan untuk belajar dan mengajar.

Ulangan
1.
Dalam pembuatan sebuah perangkat lunak piranti lunak, hal-hal yang perlu
menjadi pertimbangan seorang software engineer adalah

Ketahanan, keamanan, sulit dirubah

Kinerja baik, kuat, aman.

Terpelihara, cepat, skala microservices

Mudah dirawat, aman dari serangan, kinerja cepat


2.
Apa saja tugas-tugas dari seorang insinyur perangkat lunak?

Menganalisa, membuat spesifikasi dan mengimplementasi sebuah sistem


piranti lunak.
Menguasai beberapa bahasa pemrograman.

Memiliki pengetahuan ilmu komputer dasar.

Memahamami bagaimana kode dalam sebuah sistem perangkat lunak bekerja.


3.
Kemampuan yang perlu dikuasai oleh seorang insinyur perangkat lunak
adalah

Mampu melupakan ilmu komputer dasar orang lain

Menciptakan kode dengan flowchart bahasa

Mampu melakukan analisa masalah dan membuat algoritma

Bisa berpikir dengan bahasa asing


Hari ke hari
Rekayasa Perangkat Lunak
6 menit membaca
Dalam kesehariannya, seorang software engineer akan melakukan
beberapa tugas . Task-task tersebut sebagian besar akan berhubungan erat
dengan code , namun beberapa task lainnya akan membutuhkan skill yang
tidak berhubungan dengan code , seperti mengolah
kebutuhan, communication skill , dan lain-lain.
Berikut adalah gambaran umum keseharian seorang software engineer :
Program Perencanaan dan Desain

(sumber: https://www.scnsoft.com/ )
Seorang software engineer dalam kesehariannya tidak lepas dari
proses perencanaan dan desain . Contohnya melakukan analisa terhadap
kebutuhan bisnis, mencari akar permasalahan dan kemudian merancang suatu
sistem berdasarkan hasil analisa. Dengan melakukan planning dan design ,
diharapkan software yang dibuat akan benar-benar cocok dengan kebutuhan
dan bisa menyelesaikan permasalahan yang ada.
Menulis dan Menguji Program

(sumber: https://www.softwaretestingmagazine.com/ )
Selanjutnya selain melakukan tahapan perencanaan dan desain ,
seorang software engineer juga akan mengerjakan program write and
test . Pada tahapan ini, rancangan yang dihasilkan pada tahapan sebelumnya
mulai dikerjakan. Software engineer mungkin tidak melakukan tahapan ini
sendiri, namun bisa dibantu oleh software developer dan bisa juga
mendelegasikan tugas ini ke programmer .
Tinjau dan Tulis Ulang Program
(sumber: https://miro.medium.com/ )
Setelah kode selesai ditulis, saatnya seorang software engineer melakukan
review. Review ini untuk memastikan bahwa software yang dihasilkan sudah
sesuai dengan apa yang di rencanakan sebelumnya. Jika ada beberapa bagian
yang dianggap masih belum sesuai dengan apa yang diharapkan, software
engineer bisa kembali ke tahapan planning ataupun langsung
melakukan rewrite hingga bisa menjadi software yang sesuai dengan harapan.
Memperbaiki Kesalahan Pengodean
(sumber: https://www.gustavwengel.dk/ )
Dalam proses yang berhubungan dengan kode , mungkin saja akan
menemui error . Hal ini sangat normal dalam keseharian seorang software
engineer . Berdasarkan error yang ditemukan, seorang software engineer akan
mencoba memperbaiki error tersebut sehingga software yang dihasilkan akan
terbebas dari error ketika digunakan.
Error dalam proses coding bisa disebabkan oleh beberapa
faktor. Mungkin error terjadi karena kesalahan penulisan sintaks ( Syntax
Error ), atau error terjadi karena ada kesalahan logika yang dikerjakan ( Logical
Error ).
Seorang software engineer harus bisa membedakan error ini, sehingga bisa
memperbaiki error dengan cepat dan tepat. Hal ini disebut
dengan keterampilan debugging .
Referensi mengenai error yang biasanya terjadi dalam proses coding bisa kita
lihat pada link-link berikut:

 https://www.parkersoftware.com/blog/the-most-common-coding-errors
 https://textexpander.com/blog/the-7-most-common-types-of-errors-in-
programming-and-how-to-avoid-them

Keamanan cyber
(sumber: https://ids.ac.id/ )
Software yang dibuat oleh seorang software engineer diharapkan tidak hanya
dapat digunakan dan menyelesaikan masalah yang ada, namun juga
diharapkan software ini tidak menimbulkan masalah baru terkait dengan cyber
security .
Software engineer harus memastikan bahwa software yang dihasilkan akan
aman dari serangan cyber . Untuk hal ini maka seorang software
engineer harus melakukan update mengenai cyber security dan mencoba
mengimplementasikannya di setiap tahapan pembuatan software .
Misalnya, jika seorang insinyur perangkat lunak akan membuat perangkat
lunak berbasis situs web , maka insinyur perangkat lunak harus
menerapkan keamanan standar untuk situs web sesuai dengan panduan yang
ada. Dalam hal ini, standar keamanan aplikasi website bisa
mengikuti guide dari OWASP
Konsultasi Dengan Stakeholder

(sumber: https://www.geneca.com/ )
Pada tahapan ini, seorang insinyur perangkat lunak harus dapat
berkomunikasi dengan pemangku kepentingan (pembuat
keputusan). Komunikasi yang dilakukan oleh software
engineer dan stakeholder ini berguna untuk memastikan semua tahapan
akan sesuai dengan proses bisnis yang ada sehingga software yang dihasilkan
benar-benar bisa menyelesaikan problem stakeholder .
Konsultasi ini akan berlangsung di beberapa tahapan, seperti
tahapan planning and design , review, implementasi cyber security , dan ketika
tahapan implementasi software .
Keterampilan komunikasi sangat berperan penting dalam kegiatan konsultasi
ini, seperti bagaimana cara mengemukakan ide/gagasan, serta bagaimana
cara mendapatkan ide/gagasan dari orang lain.
Ulangan
1.
Dalam kesehariannya, seorang software engineer perlu memiliki

Melakukan konsultasi, merencanakan keamanan cyber, membuat coding error

Kemampuan perencanaan, menguasai bahasa pemrograman untuk menulis


dan menguji program, mampu berkomunikasi.

error dari program, menulis program, memperbaiki program.

Mampu membuat desain dengan Photoshop, menggambar flowchart,


menguji program.
2.
Skill yang langsung berhubungan dengan penulisan kode adalah

Menulis dan Menguji Program, Meninjau dan Menulis Ulang Program,


Memperbaiki Kesalahan Pengkodean, Berkonsultasi dengan Stakeholder

Merencanakan dan Merancang Program, Menulis dan Menguji Program,


Meninjau dan Menulis Ulang Program, Mengoreksi Kesalahan Coding

Kesalahan Pengkodean yang Benar, Keamanan Siber, Program Perencanaan


dan Desain, Program Tulis dan Uji

Perbaiki Kesalahan Pengodean, Tinjau dan Tulis Ulang Program, Keamanan


Siber, Tulis dan Uji Program
3.
Kemampuan seorang insinyur perangkat lunak untuk memperbaiki kesalahan
disebut

Keterampilan pengkodean

Kesalahan logika

Keterampilan men-debug

Kesalahan sintaks
Teknis
Rekayasa Perangkat Lunak
12 menit membaca
Menjadi seorang software engineer tentunya tidak bisa secara
instan. Perlu usaha dan waktu untuk menguasai berbagai macam keterampilan
teknis . Semua keterampilan teknis ini wajib dikuasai, sehingga dapat
menghasilkan program/ perangkat lunak dengan kualitas yang baik.
Berikut ini adalah beberapa technical skill yang wajib dikuasai oleh
seorang software engineer :
Algoritma dan Struktur Data

(sumber: https://pandorafms.com/ )
Apa itu Algoritma
Algoritma merupakan sekumpulan instruksi atau langkah-langkah yang
dituliskan secara sistematis dan digunakan untuk menyelesaikan
masalah/persoalan logika dan matematika dengan bantuan komputer. Untuk
menjadi seorang software engineer sangat diperlukan pemahaman tentang
algoritma, sehingga rancangan solusi yang ditawarkan akan lebih efektif dan
sistematis.
Fungsi Algoritma
Pada dasarnya fungsi utama dari algoritma adalah untuk memecahkan suatu
masalah. Algoritma memainkan peran penting dalam proses coding . Dengan
membuat algoritma bisa menjamin bahwa komputer menyelesaikan tugas
dengan cara yang paling optimal (efesien dan tepat). Selain itu algoritma akan
mempermudah ketika akan melakukan suatu hal yang baru, sehingga bisa
melakukan hal baru tersebut dengan urutan yang tepat.
Dari fungsinya tersebut, algoritma adalah hasil dari pemikiran yang terkonsep
sehingga perintah dalam algoritma dapat dilaksanakan oleh komputer melalui
bahasa pemrograman. Beberapa yang perlu diketahui terkait fungsi algoritma
adalah sebagai berikut:

 Membantu memecahkan suatu permasalahan dengan logika dan sistematis.


 Memudahkan dalam membuat suatu program untuk penyelesaian masalah
tertentu.
 Membuat sebuah program yang rumit dan besar menjadi sederhana, dengan
cara memecah permasalahan yang kompleks menjadi hal yang lebih kecil.
 Mengatasi permasalahan yang ada dengan urutan yang tepat.
 Memudahkan dalam tracking kesalahan karena alur kerjanya yang jelas.
 Memudahkan membuat program yang lebih rapi dan terstruktur sehingga
lebih mudah dipahami dan dikembangkan.
 Memudahkan dalam memodifikasi program tanpa harus merubah dan
mengganggu modul lainnya.

Fitur Algoritma
Menurut Donald E. Knuth , algoritma harus memiliki lima ciri penting yang
saling berhubungan satu dengan lainnya. Adapun pembatasan algoritma ini di
antaranya sebagai berikut:

 Finiteness (keterbatasan) Algoritma harus berhenti setelah mengerjakan


beberapa langkah terbatas, dengan kata lain ada tujuan akhir yang dicapai,
sehingga suatu program akan berhenti ketika tujuan akhir telah
tercapai. Program yang tidak pernah berhenti menunjukkan bahwa program
tersebut berisi algoritma yang salah.
 Kepastian (kepastian) Setiap langkah harus didefinisikan dengan tepat dan
tidak berarti-dua (ambigu). Ada intruksi-intruksi yang jelas dan juga tidak
ambigu, sehingga tidak terjadi kesalahan dalam menghasilkan output .
 Input (masukan) Input ini merupakan suatu permasalahan yang dihadapi
serta akan dicarikan solusinya. Algoritma ini mempunyai nol atau lebih input ,
yaitu besaran yang diberikan kepada algoritma untuk diproses.
 Keluaran (keluaran) Algoritma memiliki nilai nol atau lebih keluaran
( output ). Output ini tentunya harus berupa solusi atau penyelesaian dari
suatu masalah. Output dapat berupa pesan atau besaran yang berhubungan
dengan input .
 Efektifitas (keefektivitasan) Algoritma harus sangkil (efektif), setiap urutan
atau langkah harus mematikan, sehingga dapat dikerjakan dalam jumlah
waktu yang masuk akal.

Struktur data
Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan,
penyusunan dan pengaturan data di dalam media penyimpanan komputer
sehingga data tersebut dapat digunakan secara efisien.
Di antara struktur data yang perlu diketahui oleh seorang software engineer
adalah sebagai berikut:

 Himpunan
 Daftar Tertaut
 Rekam (Tupple/Struk)
 Obyek

Penjelasan mendalam mengenai struktur data akan dibahas pada materi di


dalam bahasa pemrograman masing-masing.
Bahasa Pemrograman
(sumber: https://gowithcode.com/ )
Apa itu Bahasa Pemrograman
Menguasai salah satu bahasa pemrograman adalah kewajiban bagi
seorang software engineer . Dengan menguasai sebuah bahasa pemrograman
secara mendalam, maka software engineer dapat memberikan solusi yang
lebih tepat terhadap sebuah permasalahan, sehingga software /aplikasi yang
dihasilkan menjadi sangat efektif dalam menyelesaikan sebuah permasalahan.
Bahasa Pemrograman Populer
Untuk bahasa pemrograman apa yang harus dikuasai sebenarnya tidak ada
batasan, tergantung dari ketertarikan pribadi terhadap ruang lingkup tertentu.
Misalnya seorang software engineer lebih tertarik membuat aplikasi mobile
platform Android, maka dia harus menguasai bahasa pemrograman
Java/Kotlin, jika lebih tertarik membuat aplikasi mobile platform iOS maka dia
harus menguasai bahasa pemrograman Swift.
Begitupun jika seorang software engineer lebih tertarik membuat solusi dalam
bentuk website, maka perlu menguasai bahasa pemrograman yang digunakan
untuk membuat website seperti PHP & Javascript.
Referensi bahasa pemrograman yang populer bisa dilihat pada beberapa link
berikut:

 https://www.tiobe.com/tiobe-index/
 https://pypl.github.io/PYPL.html
 https://insights.stackoverflow.com/survey/2019#technology

Basis data
(sumber: https://gmedia.net.id/ )
Database sangat diperlukan pada sebuah software /aplikasi. Database ini
berguna sebagai tempat penyimpanan data.
Ada banyak sekali jenis database yang tersedia, dan seorang software
engineer wajib untuk menguasai salah satunya. Misalnya ada MySQL dan
PostgreSQL untuk varian database SQL dan ada MongoDB dan Redis
untuk varian database noSQL.
Sistem Kontrol Versi

(sumber: https://www.thatcompany.com/ )
Biasa juga disebut dengan Source Code Management
(SCM) merupakan tool yang digunakan untuk mengelola
kode . Skill menggunakan suatu VCS sangat perlu dikuasai oleh
seorang software engineer .
Pada saat ini skill coding saja tidak cukup untuk menjadi software
engineer yang handal, karena seorang software engineer perlu berkolaborasi
dengan software developer dan software engineer lainnya. Penggunaan Version
Control System ini akan sangat memudahkan proses kolaborasi tersebut.
Beberapa Version Control System yang populer adalah Git dan SVN. Untuk
platform Git online yang paling populer adalah Github dan Gitlab.
Sistem operasi

(sumber: https://codinghero.ai/ )
Menguasai sistem operasi komputer merupakan salah satu technical skill yang
diperlukan oleh seorang software engineer . Dengan mengetahui bagaimana
mengoperasikan sebuah sistem operasi, maka akan lebih mudah
menggunakan beberapa tools yang dibutuhkan ketika membuat
suatu software /aplikasi, seperti bagaimana cara meng- install database dan
lain sebagainya.
Jaringan komputer
(sumber: https://systemzone.net/ )
Di era industri 4.0 ini sebagian besar sistem komputer tersambung secara
global melalui jaringan komputer. Sangat penting sekali seorang insinyur
perangkat lunak memahami bagaimana jaringan komputer bekerja.
Seperti apa transmisi data dari suatu titik ke titik lainnya? Bagaimana dengan
sistem keamanan ketika data tersebut ditransmisikan? Mungkin itu adalah
beberapa pertanyaan yang wajib ditanyakan oleh seorang Software
Engineer ketika membuat sebuah software atau aplikasi yang tersambung
dengan jaringan komputer.
Men-debug
(sumber: https://redbubble.net/ ))
Apa itu Debugging?
Debugging adalah proses untuk mencari dan menghapus suatu bug dalam
sebuah program atau sistem. Yang dimaksud bug adalah suatu error atau
cacat yang dapat menyebabkan program atau sistem tidak berjalan dengan
sempurna. Biasanya suatu program dibuat dengan penulisan kode yang
sangat rumit dan kompleks, sehingga satu kesalahan kecil saja akan
berpengaruh besar pada keseluruhan program.
Sejarah singkat Debugging
Kata debugging ini berasal dari kata “bug” yang berarti serangga. Kata tersebut
diambil dari kejadian yang cukup unik. Pada tanggal 9 September 1947
seorang ilmuwan komputer asal Amerika yang bernama Grace Brewster
Murray Hopper , menemukan serangga yang terjebak di dalam relay
komputer. Hal itu menyebabkan operasi dari komputer tersebut terhambat.
Setelah kejadian tersebut kata debugging menjadi kata yang sering
digunakan. Pada tahun 1945 kata debugging digunakan dalam istilah
penerbangan yang dapat diartikan sebagai pengujian mesin pesawat. Lalu
pada tahun 1963 istilah debugging menjadi umum digunakan di kalangan
programmer untuk mengistilahkan proses pencarian dan perbaikan kesalahan
pada program atau sistem.
Mengapa Debugging Dibutuhkan?
Setelah mengetahui penjelasan dan sejarah dari debugging , sekarang kita
akan membahas mengapa debugging ini perlu
dilakukan. Debugging sebenarnya adalah hal yang pasti dilakukan oleh para
programmer saat membuat sebuah program.
Tujuan utama dari debugging sendiri adalah untuk menghilangkan bug atau
masalah yang ada. Debugging ini juga memiliki manfaat lain, beberapa di
antaranya:

 Mendeteksi kesalahan lebih cepat.


 Mempercepat proses perbaikan.
 Mengurangi resiko program disusupi malware .

Langkah-langkah Debug
Debugging merupakan kemampuan yang harus dikuasai oleh
programmer. Berikut ini langkah-langkah yang dapat kamu ikuti untuk
melakukan debugging :

1. Penyebab Error Hal yang pertama dilakukan adalah mengidentifikasi


kesalahan atau error yang terjadi pada program. Hal ini dilakukan agar tidak
membuang banyak waktu dan memperbaiki sasaran dengan tepat.
2. Menemukan Sumber Bug Setelah meminta dilakukan dengan baik,
selanjutnya adalah menemukan sumber atau lokasi dari kode yang error .
3. Menganalisis Bug Pada tahap ini, programmer harus menganalisis baris kode
yang menimbulkan error atau kesalahan. Hal tersebut dilakukan untuk
memastikan apakah bug tersebut akan mempengaruhi fungsi yang lain. Selain
itu, analisis ini diperlukan untuk mengantisipasi melonjaknya jumlah serangga .
4. Membuktikan Hasil Analisis Setelah analisis selesai,
seorang programmer perlu menemukan kemungkinan kesalahan yang lain
pada program. Tahap ini dapat dilakukan secara otomatis
menggunakan pengujian otomatis .
5. Bug Tahap terakhir adalah memperbaiki bug yang sudah ditemukan. Setelah
perbaikan selesai, program akan diperiksa kembali untuk memastikan tidak
ada kesalahan yang terjadi setelah perbaikan.

Ulangan
1.
Bagaimana kita tahu bahwa sebuah algoritma sudah dibuat dengan baik ?

Memiliki input, output, keterbatasan dan berperan penting dalam coding

Memiliki sifat keterbatasan, input, output, kepastian, dan efektif

Memiliki input, output, pembuktian hasil analisis, program lebih rapi dan
terstruktur

Memiliki struktur, input, output, mudah digambar dan dicerna


2.
Skill yang langsung berhubungan dengan penulisan kode adalah
Menulis dan Menguji Program, Meninjau dan Menulis Ulang Program,
Memperbaiki Kesalahan Pengkodean, Berkonsultasi dengan Stakeholder

Merencanakan dan Merancang Program, Menulis dan Menguji Program,


Meninjau dan Menulis Ulang Program, Mengoreksi Kesalahan Coding

Perbaiki Kesalahan Pengodean, Tinjau dan Tulis Ulang Program, Keamanan


Siber, Tulis dan Uji Program

Kesalahan Pengkodean yang Benar, Keamanan Siber, Program Perencanaan


dan Desain, Program Tulis dan Uji
3.
Keterampilan teknis yang paling dibutuhkan oleh seorang software engineer
untuk memecahkan masalah secara sistematis adalah

Sistem Operasi dan Jaringan Komputer

Bahasa pemrograman dan basis data

Algoritma dan struktur data

Sistem Kontrol Versi dan Debugging


Perkenalan
Rekayasa Perangkat Lunak
6 menit membaca
Tema WSL (sumber: chimerarevo.com )
Pada pembahasan materi terminal akan dibutuhkan Sistem Operasi berbasis
Linux. Tapi jangan khawatir, untuk pengguna Windows kita bisa install
WSL (Windows Subsystem for Linux) agar kita bisa
menggunakan terminal berbasis Linux meskipun menggunakan Sistem
Operasi Windows.
Apa itu WSL?
WSL adalah fitur opsional Windows yang memungkinkan program Linux
berjalan secara native di Windows. Hal yang dapat kita lakukan dengan
menggunakan WSL adalah:

 Memilih distribusi GNU/Linux dari Microsoft Store.


 berbicara command line tools yang umum seperti ls -la, touch, grepatau
perintah Linux lainnya.
 Berbatasan dengan aplikasi terminal base GNU/Linux termasuk tools text
editor : vimdan nano.
 Install package manager tambahan menggunakan distribusi GNU/Linux.

Apa itu WSL2?


WSL 2 adalah versi terbaru dari WSL yang bertujuan menambahkan
kompatibilitas sistem pemanggilan. Perbandingannya dengan WSL 1 dapat
kita lihat pada halaman resminya di docs.microsoft.com
Prasyarat
Untuk update ke WSL 2, kita harus menggunakan Windows 10 .

 Untuk sistem x64: Versi 1903 atau yang lebih baru, dengan Build 18362 atau
yang lebih baru.
 Untuk sistem ARM64: Versi 2004 atau yang lebih baru, dengan Build 19041
atau yang lebih baru.

atau menggunakan Windows 11 .


info: Build yang lebih rendah dari build 18362 tidak mendukung WSL 2.
Untuk memeriksa versi dan nomor build kita, tekan tombol logo Windows + R,
ketik winver, pilih OK.
Langkah demi Langkah Menginstal WSL
Untuk menginstall WSL secara simple , sebenarnya bisa
menggunakan command wsl --install . Namun di sini kita coba penginstalan
manual agar kita mengetahui apa saja yang harus diaktifkan untuk
menjalankan WSL.
 Langkah 1 - Diperkenalkan Windows Subsystem untuk Linux
Buka PowerShell sebagai Administrator (tekan Windows > ketik
"PowerShell"> klik kanan > pilih Run as administrator ) dan masukkan
perintah ini:
dism.exe /online /enable-feature /featurename:Microsoft-
Windows-Subsystem-Linux /all /norestart
 Langkah 2 - Ditampilkan fitur Mesin Virtual
Buka PowerShell sebagai Administrator dan jalankan:
dism.exe /online /enable-feature
/featurename:VirtualMachinePlatform /all /norestart
Restart komputer untuk menyelesaikan penginstalan dan pembaruan ke WSL
2.
 Langkah 3 - Unduh paket pembaruan kernel Linux
o Unduh paket terbaru : Paket pembaruan kernel WSL2 Linux untuk mesin x64
o Jalankan update package yang sudah di download. ( Double-click untuk run,
maka kita akan dimintai permissions , pilih 'yes' untuk menyetujui
penginstalan)
 Langkah 4 - Tetapkan WSL 2 sebagai versi default
Buka PowerShell dan jalankan perintah ini:
wsl --set-default-versi 2
 Langkah 5 - Instal distribusi Linux
o Buka Microsoft Store dan pilih distribusi Linux.
Toko Microsoft (sumber: docs.microsoft.com )
o Kita akan menginstal Ubuntu 22.04 LTS
o Dari halaman distribusi, klik tombol "Get".
Toko Ubuntu (sumber: docs.microsoft.com )
Pertama kali menjalankan distribusi Linux yang baru diinstal, kami akan
diminta untuk menunggu satu atau dua menit agar file mendekompres dan
disimpan di PC kita.
Kemudian kita perlu membuat username dan password untuk distribusi Linux.

Instalasi Ubuntu (sumber: docs.microsoft.com )


SELAMAT! Kamu berhasil menginstall WSL yang sepenuhnya terintegrasi
dengan sistem operasi Windows!
Cara menggunakan WSL 2
Pada distribusi Ubuntu yang baru diinstal, kita akan diterima
dengan terminal Linux! Coba jalankan beberapa perintah Linux:
 Melihat jalur posisi kita saat ini
[ pengguna@localhost ] $ pwd
/home/aditira/RG
 Pindah posisi folder:
[ pengguna@localhost ] $ cd GIT/repositori-git/
 Melihat daftar isi dari folder termasuk file tersembunyi
[ pengguna@localhost ] $ ls -la
drwxr-xr-x 3 aditira root 4096 18 Juli 15 :35 .
drwxr-xr-x 4 aditira root 4096 Jul 18 15 :13 ..
drwxr-xr-x 8 aditira aditira 4096 Jul 18 15 :37 .git
-rw-r--r-- 1 aditira aditira 13 Jul 18 14 :44 README.md
 Membuat file kosong bernamaindex.html
[ pengguna@localhost ] $ sentuh index.html
[ pengguna@localhost ] $ ls -la
drwxr-xr-x 3 aditira root 4096 18 Juli 15 :35 .
drwxr-xr-x 4 aditira root 4096 Jul 18 15 :13 ..
drwxr-xr-x 8 aditira aditira 4096 Jul 18 15 :37 .git
-rw-r--r-- 1 aditira aditira 13 Jul 18 14 :44 README.md
-rw-r--r-- 1 aditira aditira 13 Jul 18 14 :48 index.md
 Perbarui paket Linux
pembaruan apt sudo

Dokumentasi
Rekayasa Perangkat Lunak
2 menit membaca
help
Jika kita tidak tahu cara menggunakan command tertentu, cukup
ketik command yang ingin kita ketahui di terminal dengan opsi -hatau --
helpsetelah spasi dan tekan enter . Maka dengan begitu kita akan
mendapatkan penggunaan lengkap dari perintah tersebut seperti yang
ditunjukkan di bawah ini.
man <command name>
mandigunakan ketika kita ingin mendapatkan user manual
page atau dokumentasi dari suatu command . Cukup tulis mandi terminal dan
setelah spasi tulis nama command yang rinciannya manual -nya kita mau dan
tekan enter . Misal kita ingin
mendapatkan dokumentasi dari command mkdir yang bisa kita jalankan man
mkdir. Command ini bekerja seperti yang ditampilkan di bawah ini.
tldr <command name>
Sering kali kita tidak perlu mengetahui secara mendalam
detail perintah tertentu. memperkaya kita hanya ingin tahu cara penggunaan
yang sering digunakan dan sample command parameter -nya. tldr bisa
membantu mempercepat itu.
Untuk menggunakan tldr, bisa mengikut dokumentasi instalasi
di https://tldr.sh/ .
System Info
Software Engineering
3 min read
date
Kita dapat mencari informasi terkait tanggal dan waktu hari ini
menggunakan terminal dengan menjalankan command date seperti contoh
di bawah ini

Command date mengikuti kofigurasi yang ada di OS kita. Seperti zona waktu,
bahasa yang digunakan dan lainnya. Contoh di atas adalah informasi tanggal
dengan konfigurasi zona waktu GMT +7 atau WIB dan bahasa indonesia.
cal
Untuk menampilkan calendar bulan ini pada terminal kita dapat
menjalankan command cal.
uptime
Command uptime dapat memberi tahu kita berapa lama sistem Linux telah
berjalan.
w
Command w menunjukkan siapa yang logged on dan apa yang mereka
lakukan termasuk waktu aktif.
whoami
Command whoami digunakan untuk menampilkan username pengguna saat
ini.
uname -a
Untuk mengetahui seluruh informasi terkait sistem yang kita miliki, kita dapat
menjalankan command uname -a yang akan menampilkan informasi
terkait system name, hostname, karnel-version, kernel release, machine
hardware name, kita.
cat /proc/cpuinfo
cat /proc/cpuinfo menampilkan jenis prosesor yang dijalankan sistem
kita, termasuk jumlah CPU yang ada. Berikut di bawah ini adalah
contoh output dari cat /proc/cpuinfo.
cat /proc/meminfo
cat /proc/meminfo digunakan oleh untuk menampilkan jumlah memori
yang kosong dan yang digunakan (baik fisik maupun swap) pada sistem
serta shared memory dan buffer yang digunakan oleh kernel.
df -h
Secara default, command df menunjukkan disk space dalam blok 1-kilobyte
dan ukuran disk space yang digunakan dan tersedia dalam kilobyte. Untuk
menampilkan informasi tentang disk drive dalam format yang dapat dibaca
manusia (kilobyte, megabyte, gigabyte, dan sebagainya),
jalankan command df dengan opsi -h:
free
Gunakan command free untuk menunjukkan jumlah total free dan used
physical (RAM) dan swap memory di sistem Linux. Ini juga
menampilkan buffer dan cache yang digunakan oleh kernel:
Quiz
1.
Untuk mengetahui seluruh informasi dari sistem sebuah komputer, perintah
apakah yang kita gunakan di sebuah terminal ?

whoami

uname -a

cat /proc/cpuinfo

uname --help
2.
Apabila kita ingin mengetahui opsi apa saja yang tersedia dari sebuah
perintah (command) di terminal, maka kita bisa menambahkan opsi

<command> -a

<command> -V

man <command>

<command> --help
3.
Perintah date digunakan untuk

Menampilkan informasi dari sistem komputer di terminal

Menampilkan kalender di terminal

Menampilkan tanggal dan jam hari ini di terminal

Menampilkan username pengguna di terminal

File Management
Software Engineering
5 min read
ls
Command ls adalah command yang digunakan untuk menampilkan konten
daftar file atau folder (direktori) yang ada dalam direktori aktif saat ini.
Misalnya, untuk menampilkan daftar semua konten di direktori home, kita
akan menjalankan command ls dari direktori home.
ls -a
Ketika menampilkan daftar file dan kita ingin menyertakan hidden files (file
tersembunyi) di dalam daftar tersebut, maka bisa kita tambahkan
opsi command -a. Opsi ini akan menampilkan hidden files yang dimulai
dengan tanda titik (.) seperti yang ditunjukkan di bawah ini.
ls -la
Selain menampilkan hidden file dengan opsi -a, kita bisa menggunakan
opsi -l untuk menampilkan daftar file dalam bentuk list. Opsi -l adalah
singkatan dari listing dan mencetak informasi tambahan seperti file
permissions, user, group, file size, dan date of creation.
Opsi ini bisa digabung dengan opsi -a, sehingga bisa kita ketik dengan la.
Jika dijalankan command ls -la maka akan tampil sebuah list detail
beserta hidden files.
cd <directory name>
Command cd merupakan singkatan dari change directory, merupakan
suatu command yang digunakan untuk berpindah atau menavigasi direktori
aktif sekarang ke direktori lain. Misalnya, untuk menavigasi dari direktori aktif
sekarang ke path folder /Documents, jalankan command cd Documents.
touch
Command touch digunakan untuk membuat file pada sistem
Unix/Linux. Syntax command-nya seperti berikut : touch filename.
Misalnya, untuk membuat file file1.txt, jalankan command touch
file1.txt. Untuk mengecek apakah file berhasil dibuat, kita bisa
jalankan command ls dan lihat apakah file yang baru kita buat ada di
dalam list file.
clear
Mari kita asumsikan terminal kita penuh dengan
perintah/command dan output seperti yang ditunjukkan di bawah ini
Jalankan command clear, maka layar terminal akan dibersihkan seperti yang
ditunjukkan di bawah ini.
mv
Command atau perintah mv adalah command yang cukup serbaguna.
Bergantung pada cara penggunaannya, di mana command ini dapat
mengganti nama file atau memindahkannya dari satu lokasi ke lokasi lain.
Untuk memindahkan file, gunakan command mv diikuti dengan nama file yang
akan dipindahkan kemudian lokasi tempat file dipindahkan mv filename
/path/to/destination/. Contoh, kita akan memindahkan file1.txt
ke folder /Videos, jalankan command mv file1.txt ../Videos. Untuk
mengonfirmasi pemindahan file, jalankan command ls ../Videos.
Untuk mengganti nama file, gunakan command mv filename1
filename2. Command ini menghapus nama file asli dan menetapkan
argumen kedua sebagai nama file baru.
Note: Perhatikan penggunaan ../ di depan sebuah folder, ini berarti kita akan
mundur satu direktori.
cp
Command cp, kependekan dari copy, menyalin file dari satu lokasi ke lokasi
lainnya. Berbeda
dengan command mv, command cp mempertahankan file asli di lokasinya
saat ini dan membuat salinan/duplikat di direktori yang berbeda. Misalnya,
untuk menyalin file file2.txt dari direktori saat ini ke direktori /Documents,
kita bisa jalankan perintah cp file2.txt ../Documents
rm
Command rm (remove) digunakan untuk menghapus file. Sintaksnya cukup
mudah rm filename. Misalnya, untuk menghapus file file.txt, jalankan
perintah rm file2.txt
Kita juga dapat menggunakan command rm -r untuk menghapus
sebuah file, yang membedakan dengan command rm adalah jika argumen
yang diberikan kepada command rm -r adalah sebuah direktori, maka sistem
akan menghapus direktori tersebut beserta semua file dalam direktori dan
juga subdirektori jika ada.
rmdir
Command rmdir menghapus sebuah direktori. Misalnya, untuk menghapus
direktori "folder1", kita bisa jalankan command rm folder1
open
Untuk membuka file apa pun dari command line dengan aplikasi default,
cukup ketik open diikuti dengan nama file/path. Misal, kita ingin membuka
file1.txt, maka jalankan command open file1.txt.
`
Quiz
1.
Perintah untuk menghapus sebuah direktori adalah

rmdir

cp

rm

mv
2.
Perintah untuk berpindah ke direktori lain adalah

rmdir <dirname>

mv <dirname>

ls <dirname>

cd <dirname>
3.
Perintah untuk menampilkan isi dari direktori aktif saat ini adalah

rm

mv

cp

ls
4.
Untuk membuat sebuah file kosong yang baru, kita gunakan perintah

cp <filename>
open <filename>

touch <filename>

mv <filename>
5.
Perintah untuk memindahkan file adalah

ls

rm

mv

cp

Nano
Software Engineering
8 min read
Saat bekerja menggunakan command line, aktivitas membuat atau
mengedit file teks merupakan sesuatu yang akan sering dilakukan. Bagi kamu
yang membutuhkan text editor terminal yang sederhana dan mudah untuk
digunakan, nano adalah solusinya.
What is nano text editor?
GNU nano adalah teks editor terminal yang mudah digunakan untuk
OS Unix dan Linux. Nano mencakup semua fungsi dasar yang diharapkan
dari teks editor biasa seperti penyorotan sintaks, multiple
buffer, search dan replace dengan dukungan reguler expression, periksa
ejaan, UTF-8 encoding, dll.
How to Use Nano
Untuk mengecek ketersediaan dan versi Nano di sistem operasi yang dimiliki,
jalankan command atau perintah di bawah ini:
nano --version
Biasanya akan muncul output seperti ini:
GNU nano, version 2.9.3
(C) 1999-2011, 2013-2018 Free Software Foundation, Inc.
(C) 2014-2018 the contributors to nano
Email: [email protected] Web: https://nano-editor.org/
Jika versi Nano tidak muncul, kita bisa mengikuti langkah-
langkah install berikut ini:
 Install Nano di Ubuntu dan Debian:
sudo apt-get install nano
 Install Nano di CentOS dan Fedora:
sudo yum install nano
Untuk membuka file yang ada atau membuat file baru,
ketik nano di terminal Linux diikuti dengan nama file:
nano filename
Misalnya kita ingin membuka file yang diberi nama demo.txt.
Maka command nya akan terlihat seperti ini:
nano demo.txt
Kita bisa membuka berbagai jenis file, seperti .txt, .php, .html, dll.
Untuk membuka file demo.txt yang disimpan di folder /home/aditira/folder.
Kita bisa menjalankan
nano /home/aditira/folder/demo.txt
atau bisa juga dengan masuk ke folder tersebut dahulu:
cd /home/aditira/folder
nano demo.txt
Jika file tidak ditemukan, maka Nano akan membuatkan file tersebut.
Jika command nano dijalankan tanpa menambahkan nama file yang spesifik
(hanya mengetik nano) maka Nano akan menampilkan editor file yang kosong
dan tidak bernama. Ketika akan keluar dari editor kita akan diminta untuk
memberi nama pada file tersebut.
Berikut adalah tampilan interface Nano text editor setelah command di atas
dijalankan. Gunakan tombol bertanda anak panah di keyboard untuk
menggerakkan cursor pada Nano.
Di bagian bawah jendela terdapat shortcut yang dapat digunakan pada
Nano text editor. Tanda "^"(caret) menunjukkan untuk menekan tombol CTRL
(Windows) atau control (macOS). Berikut beberapa contohnya:

 Tekan tombol CTRL + O untuk menyimpan perubahan yang dibuat


di file dan melanjutkan proses editing.
 Tekan tombol CTRL + X untuk keluar dari editor.

Cara Mencari dan Mengganti Teks


Tekan tombol CTRL + W untuk mencari teks. Masukkan value dan tekan Enter.
Jika masih ingin mencari teks yang sama, tekan tombol ALT + W.
Untuk mencari dan mengganti teks, tekan tombol CTRL + W. Setelah itu, tekan
tombol CTRL + R untuk menambahkan teks yang akan dicari dan teks yang
akan menggantikannya. Lalu kita akan diarahkan ke instance pertama dari teks
yang dituju. Tekan tombol Y untuk mengganti satu teks atau A untuk
mengganti semua instance.
Jika ingin kembali ke keadaan awal setelah mengetikkan shortcut, gunakan
CTRL + C untuk membatalkan proses saat ini.
Cara Edit Teks
Berikut adalah shortcut yang sering digunakan pada saat mengedit teks di
Nano.

 Untuk memilih teks, arahkan kursor ke depan teks yang diinginkan dan tekan
tombol ALT + A. Shortcut ini akan menandai teks yang dikehendaki. Gerakkan
kursor di sekitar teks dengan menggunakan tombol bertanda anak panah.
 Tekan tombol ALT + 6 untuk menyalin dan meletakkan teks yang dipilih
ke clipboard.
 Tekan tombol CTRL + K untuk memotong teks yang dimaksud.
 Untuk meletakkan (paste) teks, navigasi ke baris yang dituju dan tekan tombol
CTRL + U.

Shortcut Nano
Berikut adalah tabel yang berisikan command yang sering dibutuhkan saat
menggunakan Nano text editor.
COMMAND PENJELASAN
CTRL + A Pindah ke awal baris
COMMAND PENJELASAN
CTRL + E Pindah ke akhir baris.
CTRL + Y Scroll ke bawah halaman.
CTRL + V Scroll ke atas halaman.
Jendela Bantuan (Help) akan muncul dan menampilkan semua command yang bisa
CTRL + G
digunakan.
CTRL + J Untuk merapikan paragraf yang ada saat ini.
CTRL + C Untuk menampilkan posisi kursor di teks (baris/kolom/karakter).
Untuk keluar dari editor. Command ini akan menampilkan permintaan untuk
CTRL + X
menyimpan atau tidak menyimpan perubahan yang dilakukan di file.
CTRL + \ Untuk mengganti string atau regular expression.
CTRL + T Untuk mengaktifkan tool pemeriksa ejaan, jika tersedia.
CTRL + _ Pindah ke baris dan nomor kolom yang spesifik.
Selengkapnya kita bisa lihat di dokumentasi Shortcut nano
Why use Nano
Jika kita berbicara soal penyuntingan atau pengeditan teks via command line,
Nano adalah salah satu tool yang dapat diandalkan. Karena kemudahan
penggunaannya, Nano sangat populer sebagai basic text editor terutama
untuk para pengguna Linux.
Meskipun terkesan simpel, Nano memiliki beberapa keunggulan di antaranya
yaitu memperbolehkan kita untuk menyalin, meletakkan, memilih, dan mencari
teks. Juga ada bar di bagian bawah editor yang menampilkan
berbagai shortcut fungsional dari Nano. Nano dapat digunakan baik
oleh user pemula maupun yang sudah berpengalaman.
Dokumentasi selengkapnya mengenai Nano text editor, bisa kita explorasi
sendiri pada dokumentasi nano-editor.org

Admin
Software Engineering
3 min read
What is Administration role?
Admin berdasarkan Cambridge Dictionary adalah kependekan dari
administrasi atau sebuah kegiatan yang terlibat dalam mengelola atau
mengatur bisnis atau organisasi lain. Dalam Linux sendiri, Administrator Linux
memiliki peran aktif dalam patching, compiling, securing, and troubleshooting
Linux. Administrator Linux dapat melakukan pembaruan sistem dan
melakukan konfigurasi sistem.
Sudo
Perintah sudo memungkinkan kita untuk menjalankan program sebagai
pengguna lain, secara default pengguna root. Jika kita sering dan terbiasa
menggunakan command line, sudo adalah salah satu perintah yang akan
sering kita gunakan.
Menggunakan akun sudo lebih aman daripada root, karena kita dapat
memberikan hak administratif terbatas kepada pengguna individu tanpa
mereka tahu kata sandi root.
Package sudo biasanya sudah diinstal pada sebagian besar distribusi Linux.
Untuk memeriksa apakah package sudo diinstal pada sistem,
buka terminal Linux, kemudian ketik sudo, dan tekan Enter. Jika sudo sudah
terinstall di sistem, maka terminal akan menampilkan output berupa pesan
bantuan singkat.
Jika belum terinstal, kita akan melihat output seperti sudo command not
found. Kita dapat dengan mudah
menginstal package sudo menggunakan distro package manager dengan
menjalankan perintah berikut.
apt install sudo
How to use the sudo Command
Syntax
Sintaks untuk perintah sudo adalah sebagai berikut:
sudo OPTION.. COMMAND
Perintah sudo memiliki banyak opsi yang mengontrol behavior-nya, tetapi
biasanya sudo digunakan dalam bentuknya yang paling basic, tanpa opsi apa
pun.
Untuk menggunakan sudo, cukup awali perintah dengan sudo:
sudo command
Di mana command adalah perintah yang ingin kita lakukan dengan hak sudo.
sudo akan membaca file /etc/sudoers dan memeriksa apakah user yang
meminta hak sudo ada di file sudoers. Pertama kali kita menggunakan sudo,
kita akan diminta memasukkan kata sandi pengguna dan perintah itu akan
dieksekusi sebagai root.
Sebagai contoh, untuk mendaftar semua file di direktori /root , kita dapat
menggunakan perintah berikut :
sudo ls /root
[sudo] password for linuxid:
. .. .bashrc .cache .config .local .profile
Examples of sudo in Linux
Contoh basic penggunaan sudo adalah ketika kita ingin
melakukan update package repository dengan menjalankan perintah di bawah
ini:
apt-get update
Kita akan melihat error message dikarenakan kita tidak memiliki izin yang
diperlukan untuk menjalankan perintah.
Sekarang kita akan mencoba kembali menjalankan perintah yang sama
dengan sudo:
sudo apt-get update
Masukan password saat diminta dan sistem akan menjalankan perintah dan
memperbarui package repository.
Quiz
1.
Mengapa kita perlu belajar perintah sudo ?

sudo adalah perintah untuk menghapus file pengguna dengan hak akses
terbatas

sudo adalah perintah admin yang lebih tinggi dari root

sudo adalah perintah yang memungkinkan pengguna mengakses file dengan


hak akses terbatas

sudo adalah pengganti root


2.
Saat kita menggunakan perintah sudo, maka akan diminta memasukkan
sebuah password, password siapakah yang diminta ?

Password dari internet banking

Password dari pengguna tujuan

Password dari root

Password dari pengguna aktif


3.
Untuk mengetahui deskripsi/penjelasan lengkap dari perintah sudo, maka kita
bisa memanggil di terminal, perintah

man sudo

sudo --help

sudo --man

help sudo

Pengantar Kontrol Versi


Rekayasa Perangkat Lunak
11 menit membaca
Sebelum Sistem Kontrol Versi
Saat kita mengerjakan pekerjaan, kita sering sekali melakukan revisi. Misalnya
saat membuat dokumen proposal atau skripsi.

 Contoh saat membuat skripsi:


o Biasanya kita membuat � (folder) misalnya dengan nama "skripsi"
 Lalu kita mulai menulis di dalam � (file) skripsi.docx
 Ketika ada revisi biasanya kita akan membuat file dengan versi baru �
skripsi_revisi-1.docx
 Ketika ada revisi selanjutnya, kami membuat � skripsi_revisi-3.docx
 Selanjutnya � skripsi_revisi-4.docx
 � skripsi_revisi-5.docx
 � skripsi_revisi-6.docx
 ... dan seterusnya
 Sampai mungkin pada akhirnya: � skripsi_final_siap_sidang.docx �
 Mengapa kita melakukan hal tersebut? Tentu saja agar kita mengetahui
perubahan yang terjadi antar revisi dokumen. Jika sewaktu-waktu kita perlu
menggunakan revisi yang sebelumnya, kita dapat menggunakannya dengan
mudah.
 Sebagai seorang pengembang perangkat lunak ( developer ), sangatlah wajar
jika merevisi kode yang sangat banyak, mungkin bisa puluhan bahkan ratusan
baris. Dan revisi kode ini biasanya dilakukan lebih dari satu file .
 Dengan menggunakan VCS untuk mengelola versi pada file, kita cukup
melakukannya di dalam satu file saja (� skripsi.docx), namun di
dalam file tersebut terdapat perubahan dari versi sebelumnya.
 Bayangkan jika kita sudah melakukan revisi puluhan file dan menambahkan
fitur pada kode kita, tapi tak lama kemudian kita diminta untuk membatalkan
fitur tersebut. Ini akan dikalahkan bila tanpa VCS. Oleh karena itu, mari kita
berkenalan dengan VCS lebih jauh.

Apa itu Sistem Kontrol Versi?


Version Control System (VCS) adalah sistem yang merekam perubahan-
perubahan dari sebuah file atau sekumpulan file program aplikasi ( software )
atau source code dari waktu ke waktu sehingga kita dapat melihat kembali
versi lama suatu saat nanti.
VCS memungkinkan kita untuk mengembalikan file-file ke keadaan
sebelumnya, mengembalikan seluruh proyek kembali ke keadaan sebelumnya,
membandingkan perubahan-perubahan di setiap waktu, melihat siapa yang
terakhir mengubah sesuatu yang mungkin menimbulkan masalah dan masih
banyak lagi.
Singkat kata, dengan VCS, jika kita melakukan kesalahan atau menghapus file ,
kita dapat dengan mudah memulihkannya.
Garis Waktu VCS
Timeline VCS (Sumber: initialcommit.com )
Sejarah Kontrol Versi
1. Generasi Pertama (Perangkat Lunak Kontrol Versi Lokal)
VCS generasi pertama dimaksudkan untuk melacak
perubahan file individu dan file hanya dapat diedit secara lokal oleh satu
pengguna. Biasanya digunakan karena sederhana dan tidak
membutuhkan server , karena semua riwayat dan perubahan disimpan di
komputer lokal.
 Alur dari Perangkat Lunak Kontrol Versi Lokal:
Aliran Sistem Kontrol Versi Lokal (Sumber: git-scm.com )
 Contoh dari Perangkat Lunak Kontrol Versi Lokal:
o SCCS (Sistem Kontrol Kode Sumber)
o RCS (Sistem Kontrol Revisi)

2. Generasi Kedua (Alat Kontrol Versi Terpusat)


Masalah yang terjadi pada Kontrol Versi Lokal adalah: jika komputer rusak,
maka seluruh data bisa hilang. Selain itu, sangat sulit untuk berkolaborasi
dengan pengguna lain jika file hanya ada di satu komputer. Untuk mengatasi
masalah ini, maka lahirlah VCS generasi kedua yaitu Centralized Version
Control.
Sistem Kontrol Versi Terpusat (Sumber: miro.medium.com )
Di sini sudah mulai memperkenalkan jaringan yang mengarah ke repositori
yang ditentukan pada server yang berisi versi dari setiap file . Kontrol Versi
Terpusat memungkinkan banyak pengguna untuk checkout dan bekerja
dengan kode pada saat yang sama , tetapi mereka semua
akan memperbarui kembali ke pusat repositori yang sama. Maka akses
jaringan diperlukan untuk membuat komit .
Kekurangannya adalah, jika pengguna offline , mereka tidak bisa melihat file
riwayat karena semua riwayat hanya ada di Server dan jika Server down , maka
seluruh pengguna tidak bisa melakukan perubahan dan melihat file revisi
 Aliran dari Sistem Kontrol Versi Terpusat:

Aliran Sistem Kontrol Versi Terpusat - File (Sumber: git-scm.com )


Versi Terpusat Mengontrol Alur Sistem - Aktivitas
(Sumber: miro.medium.com )
Dari flow di atas terlihat bahwa setiap pengguna dapat mengekstrak atau
memperbarui workstation mereka dengan data yang ada di server
repositori atau dapat mengubah data di server repositori . Setiap operasi
dilakukan langsung di repositori.
Namun di sini juga terlihat beberapa kekurangan yaitu:

o Repositori tidak tersedia secara lokal, jadi kita harus selalu terhubung ke
jaringan untuk melakukan tindakan apa pun.
o Karena semuanya terdiri, ketika pusat server mengalami kerusakan, maka akan
mengakibatkan hilangnya seluruh proyek data.
 Contoh dari Sistem Kontrol Versi Terpusat:
o CVS (Sistem Versi Bersamaan)
o SVN (Subversi Apache)
o Perforce Helix Core

3. Generasi Ketiga (Sistem Kontrol Versi Terdistribusi)


Sistem Kontrol Versi Terdistribusi (Sumber: miro.medium.com )
Dengan menggunakan Distributed Version Control Systems (DVCS), setiap
pengguna (kontributor) memiliki pemecahan lokal ( clone ) dari repositori
utama. Hal ini memungkinkan setiap kontributor memelihara repositori lokal
mereka sendiri yang berisi semua file yang ada di repositori utama.
Dari sini kita bisa melihat beberapa keunggulan dibandingkan Centralized
Version Control System (CVCS) yaitu:

 Developer dapat melakukan dan memperbarui repositori lokal tanpa


gangguan apa pun.
 Developer dapat memperbarui repositori lokal dengan data baru
dari server dengan operasi yang disebut pulldan melakukan perubahan pada
repositori utama dengan operasi yang disebut pushdari repositori lokal.

Kontrol versi terdistribusi benar-benar membuka pintu ke solusi kontrol versi


open source , karena pengembang perangkat lunak di seluruh dunia dapat
dengan mudah berkolaborasi dan berbagi kode tanpa pusat otoritas untuk
mengaktifkan interaksi mereka.
Sedangkan CVCS seperti CVS, SVN dan lainnya memerlukan otoritas pusat
untuk mengakses source code yang ada di pusat server . Ini berarti bahwa
proyek yang dikembangkan adalah proyek internal
perusahaan swasta . Sangat sulit berkolaborasi dengan developer lain di
seluruh dunia untuk membuat proyek menjadi open source .
Jadi apa sih pentingnya open source ? � Software open source berdasarkan
gagasan bahwa dengan berbagi kode kita dapat membuat software yang lebih
baik. Selengkapnya bisa dilihat di sini: About the Open Source Initiative
Oleh karena itu, saat ini umumnya developer menggunakan DVCS untuk
berkolaborasi antar developer di seluruh dunia. Lebih lengkapnya mengapa
kita harus menggunakan DVCS bisa dilihat di sini: Why you must move from
centralized version control to distributed version control
 Aliran dari Sistem Kontrol Versi Terdistribusi:
Aliran Sistem Kontrol Versi Terdistribusi - File (Sumber: git-scm.com )
Versi Terdistribusi Mengontrol Alur Sistem - Aktivitas (Sumber: git-scm.com )
 Contoh dari Sistem Kontrol Versi Terdistribusi:
o Git
o Lincah
o BitKeeper
o Darcs (Sistem Kontrol Revisi Lanjutan Darcs)
o Nada datar
o Pasar

Mengapa menggunakan Kontrol Versi


Sistem kontrol versi memungkinkan kita ber-kolaborasi dalam tim, tanpa
kehilangan atau menimpa pekerjaan siapa
pun. Setelah pengembang membuat serangkaian perubahan pada kode di
satu atau beberapa file , mereka memberi tahu VCS untuk menyimpan
representasi dari perubahan tersebut.
Dengan cara ini, riwayat perubahan kode atau versi dibuat seiring dengan
proses dari pengembangan aplikasi. Riwayat ini disimpan agar
semua pengembang , bahkan jika mereka bekerja di lokasi yang berbeda,
memiliki akses ke riwayat proyek yang konsisten dan terkini.
Manfaat Kontrol Versi
 Melacak Semua Modifikasi yang Dilakukan pada Kode
Tim yang mengerjakan proyek terus menghasilkan kode sumber baru dan
terus melakukan perubahan kode. Perubahan ini dicatat untuk referensi di
masa mendatang dan dapat digunakan jika diperlukan di masa mendatang
untuk menemukan akar penyebab masalah tertentu.
 Membandingkan Versi Kode Sebelumnya
Karena semua kode versi disimpan, ini memungkinkan pengembang untuk
kembali kapan saja dan membandingkan versi kode sebelumnya untuk
membantu memperbaiki kesalahan dan sekaligus mengurangi gangguan pada
semua anggota tim.
Terakhir, mari kita lihat beberapa Sistem Kontrol Versi terbaik yang tersedia
saat ini:

VCS terbaik di pasaran (Sumber: simplilearn.com )


Ulangan
1.
Cara kerja dari sebuah Version Control System adalah

Merekam sebuah proyek menjadi satu file.

Menambahkan informasi versi ke file atau kumpulan file dari sebuah proyek.

Mengembalikan file-file ke keadaan sebelumnya.

Merekam perubahan-perubahan yang terjadi pada file atau kumpulan file dari
sebuah proyek.
2.
Berikut adalah keuntungan menggunakan version control, kecuali

Bisa berkolaborasi dengan developer lain di seluruh dunia.

Bisa membandingkan dengan file riwayat sebelumnya.

Semua file riwayat perubahan tersimpan dengan rapi.

Bisa menjadi software open source.


3.
Mengapa proyek Open Source menggunakan Distributed Version Control
(DVCS) ?

Karena Developer hanya punya repositori lokal saja sehingga tidak butuh
server, karena semua riwayat dan perubahan disimpan di komputer lokal.

Karena Developer memiliki repositori lokal sendiri dan tetap dapat melakukan
interaksi dengan repositori pusat jika diperlukan.
Karena memerlukan otoritas pusat untuk mengakses source code yang ada di
pusat server.

Karena setiap operasi dilakukan langsung di pusat repositori.

Introduction Git
Software Engineering
8 min read
Git dibuat oleh Linus Torvalds. Beliau adalah bapak dari Linux dan beliau
membuat Git untuk membantu pengembangan dari Linux. Git sama seperti
Linux merupakan software yang free dan open source.
Alasan Linus Torvalds membuat Git sebagai Distributed Version Control adalah
karena Linux memiliki lebih dari 12 ribu coder! Bisa dibayangkan jika
menggunakan Centralized Version Control, seberapa
sibuknya server jika coder sebanyak itu terhubung. Dan juga,
banyak coder yang tidak bisa selalu online tentunya itu bisa mengakibatkan
mereka kesulitan untuk berkerja.
What is Git?
Git adalah sebuah Version Control System (VCS) terdistribusi untuk
mengelola file di dalam folder (Repository/Repo). Riwayat
perubahan file disimpan menggunakan serangkaian commit.
Tanpa menggunakan Git:

 � skripsi (folder)
o � skripsi-revisi-1.docx
o � skripsi-revisi-2.docx
o � skripsi-revisi-3.docx
o � skripsi-revisi-4.docx
o � skripsi-revisi-5.docx
o � skripsi-final.docx

Dengan menggunakan Git:

 � skripsi (repository)
o ⬇�: "Mulai mengerjakan BAB 1" (commit)
o ⬇�: "Mengembangkan latar belakang" (commit)
o ⬇�: "Memperbaiki analisis" (commit)
o ⬇�: "Menghapus teori yang tidak Relevan" (commit)
o ⬇�: "Menambahkan Reverensi" (commit)
o ⬇�: ...
o � skripsi.docx

Dengan menggunakan Git kita bisa membuat beberapa versi perubahan


dari file tanpa menduplikasi file yang ada atau Save As. Contoh pada
pemrograman misalnya kita membuat fitur login. Biasanya kita akan
membuat file programnya di dalam folder � login dan folder tersebut berada
di dalam repository:

 � aplikasi (repository)
o ⬇�: "feat: inisialisasi project" (commit)
o ⬇�: "feat: menambahkan view untuk login dan register" (commit)
o ⬇�: "feat: membuat controller user" (commit)
o ⬇�: "fix: memperbaiki error pada format input email" (commit)
o ⬇�⟼ Mengintip informasi yang disimpan:
 Commit: 6bebc5658521d98f3eeadb42362e43bc072f0273
 Author: User [email protected]
 Date: Tue Jun 28 2022 18:53:48 GMT+0700 (Western Indonesia Time)
 Messages: feat: membuat model authentication dan authorization
o ⬇�: ...
o � login

Terlihat bahwa folder login telah dipantau dan perubahannya disimpan


sebagai serangkaian komitmen (commit) oleh Git seiring berjalannya
perubahan/revisi. Serangkaian commit tersebut adalah versi dari setiap
perubahan yang terjadi (snapshot). Jika kita buka salah satu titik commit,
maka kita akan melihat beberapa informasi penting saat kita melakukan
perubahan pada setiap versi yaitu:

 Commit: hash/ID sebagai penanda untuk setiap commit agar bisa dilacak.
 Author: orang yang melakukan commit (ini akan berguna ketika kita bekerja
bersama tim).
 Date: waktu saat melakukan commit
 Messages: pesan dari setiap commit, ini sangat penting karena akan
memberitahu apa yang sudah dilakukan pada setiap commit

Berikut adalah beberapa hal yang membedakan Git dengan VCS lainnya:
Snapshots, Not Differences
Secara konsep, kebanyakan VCS menyimpan serangkaian perubahan berbasis
file atau biasanya disebut sebagai version control berbasis delta
Deltas (Sumber: git-scm.com)
Namun, Git tidak menyimpan datanya dengan cara ini. Git menganggap
datanya seperti serangkaian snapshot. Jadi, setiap kali
melakukan commit pada proyek, Git akan mengambil snapshot dari
semua file dan menyimpannya. Jika file tidak berubah, Git tidak akan
menyimpan file tersebut lagi, hanya akan dihubungkan ke file yang identik
dengan file sebelumnya yang telah disimpannya. Hal ini akan
menciptakan aliran snapshot. Jadi melakukan satu commit itu artinya kita
membuat satu snapshot
Snapshots (Sumber: git-scm.com)
Ini adalah perbedaan penting antara Git dengan VCS lainnya. Ini membuat Git
lebih seperti sistem file mini dengan beberapa tools bukan sekedar VCS biasa.
Nearly Every Operation Is Local
Git memiliki seluruh riwayat proyek di local disk, hal ini menjadikan sebagian
besar operasi pada Git menjadi sangat cepat. Bagaimana itu bisa terjadi? �
Misalnya, untuk menelusuri history (riwayat) perubahan dari proyek, Git tidak
perlu pergi ke server untuk mendapatkan history dan menampilkannya, Git
cukup membacanya langsung dari local database. Ini berarti
melihat history dari proyek hampir seketika.
Hal yang menarik adalah banyak yang dapat dilakukan ketika offline.
Contoh, ketika naik pesawat atau kereta api dan ingin melakukan sedikit
pekerjaan, kita dapat berkomitmen (commit) dengan mudah sampai kita
mendapatkan koneksi internet dan mengunggahnya ke server.
Git Has Integrity
Kita tidak akan kehilangan informasi apapun saat transit atau
mendapatkan file corrupt tanpa terdeteksi oleh Git karena mekanisme yang
digunakan Git untuk checksumming adalah hash SHA-1. Ini adalah string 40
karakter yang terdiri dari karakter heksadesimal (0–9 dan a–f) dan dihitung
berdasarkan konten file atau struktur direktori di Git. Contoh hash:
24b9da6552252987aa493b52f8696cd6d3b00373
Kita akan melihat nilai hash ini di semua tempat di Git. Faktanya, Git
menyimpan semua yang ada di databasenya berdasarkan nilai hash-nya.
Git Generally Only Adds Data
Saat melakukan aktivitas di Git, hampir semuanya hanya menambahkan data
ke database Git. Seperti VCS lainnya, Git dapat kehilangan atau merusak
perubahan yang belum di commit, tetapi setelah kita melakukan commit ke
Git, sangat sulit untuk kehilangannya, terutama jika secara teratur
mengunggahnya ke repository yang ada di server,
misalnya Github atau Gitlab.
The Three States
Hal utama yang perlu diingat yaitu, Git memiliki 3 status
tempat file berada: modified, staged, dan committed:

 Modified artinya kita mengubah (menambah, mengedit, menghapus) file,


namun belum disimpan secara permanen ke repositori
 Staged artinya kita menandai modifikasi yang kita lakukan terhadap file akan
disimpan secara permanen ke repositori
 Committed artinya data sudah aman dan disimpan di repositori

Ini membawa kita ke tiga bagian utama dari proyek Git: Working
tree, Staging area, dan Git directory.
Areas (Sumber: git-scm.com)

 Secara sederhana, setiap perubahan akan kita lakukan di working directory.


 Jika ada yang mau kita siapkan untuk disimpan secara permanen, kita akan
bawa perubahan tersebut ke staging area.
 Selanjutnya, kita bisa melakukan penyimpanan versi baru secara permanen ke
repositori (.git directory) dengan melakukan commit.

Quiz
1.
Apakah yang dimaksud dengan snapshot ?

Saat melakukan commit, cukup membacanya langsung dari local database.

Saat melakukan commit, yang disimpan hanyalah perubahan dari file, jika file
tidak berubah maka file tidak disimpan hanya akan dihubungkan ke file identik
sebelumnya.
Saat melakukan commit, hanya menambahkan data ke database berdasarkan
nilai hash-nya.

Saat melakukan commit, yang disimpan hanyalah hubungan ke file


sebelumnya.
2.
Apa yang membuat Git berbeda dengan DVCS lain ?

Git dibuat oleh Linus Torvalds.

Git menyimpan rangkaian perubahan dari file dalam proyek dalam sebuah
snapshot.

Git adalah sebuah Version Control System (VCS) terdistribusi untuk mengelola
file di dalam folder (Repository/Repo).

Git menyimpan serangkaian perubahan berbasis file atau biasanya disebut


sebagai version control berbasis delta.
3.
The Three States of Git adalah

Local, Integrity, Only add data

Working tree, Staging area, dan Git directory

Modified, Staged, dan Committed

Checkout, Stage, Commit

Konfigurasi Dasar
Rekayasa Perangkat Lunak
4 menit membaca
Instal Git
Mac Dan Linux
Untuk Mac dan beragam distro dari Linux, biasanya Git telah terinstall secara
otomatis. Kamu bisa mengeceknya dengan menjalankan git --
versiondi terminal .
Jika kamu tidak menemukan Git di distro Linux kamu, silahkan cek ke
link ini untuk panduan install sesuai dengan distro yang kamu gunakan.
Windows
Untuk Windows, kamu bisa menginstal Git dengan mengunduh instalasinya di
sini .
Setelah menginstall kamu bisa menggunakan Git Bash ataupun Command Line
Window untuk menggunakan Git.
Konfigurasi Dasar
Pengaturan Git Pertama Kali
Setelah installasi Git selesai, kita bisa melakukan beberapa hal untuk
menyesuaikan environment pada Git. Tool ini bernama git configyang
memungkinkan kita mengatur konfigurasi variabel ( setting ) semua aspek
tampilan dan pengoperasian Git. Di antaranya:
 ~/.gitconfigfile: Ini spesifik hanya untuk pengguna yang
bersangkutan. Kita dapat membuat Git membaca dan menulis pada file ini
secara spesifik dengan memberikan opsi --global.
 config file pada direktori git ( .git/config) atau repositori manapun yang
sedang digunakan: Ini spesifik hanya pada repositori itu
saja. Setiap config pada level yang terdekat dengan kode ( source code ) akan
selalu menimpa config yang telah ditetapkan pada level atasnya.
Kita dapat melihat semua pengaturan dan dari mana asalnya menggunakan
perintah:
[ pengguna@localhost ] $ git config --list --show-origin
pengaturan global git
Hal pertama yang harus dilakukan setelah menginstal Git adalah
mengatur nama pengguna dan alamat email . Ini penting karena
setiap commit dengan Git akan menggunakan informasi ini.
[ user@localhost ] $ git config --global user.name "Aditira
Jamhuri"
[ user@localhost ] $ git config --global user.email "
[email protected] "
Editor
Sekarang setelah identitas diatur, kita dapat mengonfigurasi default editor
teks yang akan digunakan saat Git membutuhkannya. Jika tidak dikonfigurasi,
Git akan menggunakan editor default . Jika ingin menggunakan editor
teks yang berbeda, seperti VSCode, kita dapat melakukan perintah:
[ pengguna@localhost ] $ git config --global core.editor "kode
--tunggu"
Selengkapnya untuk setting text editor ada di sini
Nama cabang default
Secara default Git akan membuat cabang bernama mastersaat kita membuat
repositori baru dengan git init. Dari Git versi 2.28 dan seterusnya, kita
dapat membangun nama cabang awal yang berbeda. Sebagai contoh kita bisa
mengubah nama branch awal menjadi main:
[ user@localhost ] $ git config --global init.defaultBranch
main
Memeriksa Pengaturan Anda
Jika ingin memeriksa pengaturan , kita dapat menggunakan perintah git
config --listuntuk melihat daftar semua pengaturan yang ada:
[ pengguna@localhost ] $ git config --daftar
user.name = Aditira
email pengguna = [email protected]
warna.status = otomatis
warna.cabang = otomatis
color.interaktif = otomatis
color.diff = otomatis
.. .
Kita juga dapat melihat nilai dengan kata kunci tertentu, dengan
mengetikkan git config <key>, contoh:
[ user@localhost ] $ git config nama pengguna
Aditira

init
Rekayasa Perangkat Lunak
6 menit membaca
Git init

Aliran lokal Git


(Sumber: s3.ap-south-1.amazonaws.com )
Perkenalan
Dalam alur kerja saat menggunakan Git di local , langkah pertama yang harus
dilakukan adalah inisialisasi Git di folder , agar Git bisa merekam setiap
perubahan yang terjadi di dalam folder tersebut. Perintahnya yaitu:
git init
git initdapat mengubah direktori(� folder) apa pun menjadi repositori
Git . Mari kita pelajari lagi git initlebih jauh.
Apa yang git initDilakukan?
Untuk memulai proyek baru dan menginisialisasi sebuah repositori dengan
Git, kita bisa menggunakan perintah git init. Git membuat direktori
tersembunyi bernama .gitdan direktori inilah yang memisahkan folder biasa
dengan repositori Git.
Cara Penggunaangit init
Penggunaan dan opsi umum untukgit init

 git init: Mengubah direktori saat ini menjadi repositori Git.


 git init <directory>: Membuat folder dan mengubahnya menjadi
repositori Git.
Kita dapat melihat semua opsi git initpada dokumentasi git-scm .
Contohgit init
Mungkin saja kita sudah memiliki proyek aplikasi secara lokal, namun belum
terintegrasi dengan Git , maka git initadalah perintah yang tepat. Ini
hanya dijalankan sekali, bahkan jika kolaborator lain ingin berkontribusi pada
proyek kita. Contohnya perhatikan perintah Git di bawah ini:

Git init
(Sumber: amazonaws.com )
Lihat di atas untuk memeriksa apakah folder my-cool-repo sudah menjadi
repositori Git atau belum, maka bisa menggunakan perintah git
status. Setelah terlihat bahwa folder tersebut bukan repositori Git, maka kita
bisa menggunakan perintah git init.
Sekarang folder my-cool-repo sudah menjadi repositori Git. Sehingga
perubahan apapun di dalam folder tersebut akan direkam oleh Git. Sehingga
selanjutnya, kita bisa melakukan aktifitas menggunakan Git yaitu:

 git add: Memilih file dan menambahkannya ke staging area untuk persiapan
dalam pembuatan versi.
 git commit: Merekam file pada staging area secara permanent
sebagai version history .
 git push: Unggah semua komit lokal ke server.

Berikut adalah Flow dari aktifitas Git:


Git init flow (Sumber: miro.medium.com )
Git initFolder yang Ada
Secara default git initadalah mengubah direktori saat ini menjadi
repositori Git. Agar proyek yang ada menjadi repositori Git, navigasikan ke
direktori root yang ditargetkan. Kemudian, lari git init.
Atau, kita dapat membuat repositori baru di direktori di path saat
ini. Gunakan git init <directory>dan tentukan direktori mana yang
akan diubah menjadi repositori Git, contoh :git init ./Downloads/my-
cool-repo
Git initMenjadi salah
dibatasi git initdi tempat yang salah akan membuat repositori yang tidak
diharapkan. Maksudnya apa? � Nested git initadalah contoh yang paling
umum:
�repositori ( git init )
| _ �.git
| _ �file
| _ �file
| _ �repositori ( git init )
| _ �.git
| _ �file
| _ �repositori ( git init ) < - ANDA DI SINI !
| _ �.git
| _ �file
Melakukan hal di atas akan membuat duplikasi informasi dari tracking versi
pada setiap sub-direktori dan membuat root .git tidak bisa melacak
perubahan pada sub-direktori karena di sub-direktori memiliki .gitnya
sendiri. Menduplikasi informasi versi pada sub-direktori akan menciptakan
situasi yang tidak normal yang akan mengakibatkan inkonsistensi cepat atau
lambat.
Untuk memperbaikinya, kita harus melacak direktori mana saja yang
merupakan repositori yang tidak diinginkan. Gunakan git statusuntuk
melihat apakah direktori saat ini dirahasiakan oleh Git. Jika ya, kita dapat
menjalankan ls -aldan mencari .gitdirektori tersembunyi.
Jika tidak terlihat, navigasikan satu tingkat ke atas dalam struktur direktori
dengan cd ... Lalu gunakan git statuslagi dengan kombinasi ls -
al. Ulangi sampai menemukan direktori .gityang ingin dihapus
Setelah menemukan direktori .git, dan yakin bahwa kita tidak ingin itu
menjadi repositori Git, gunakan rm -rf .git. Ini akan menghapus
direktori .git, secara efektif membatalkan inisialisasi repositori yang tidak
diinginkan.

Namun bagaimana kalau sudah terjadi struktur seperti itu, tapi kita sudah
melakukan beberapa history commit di dalamnya dan tidak ingin
menghapusnya? � Solusinya adalah kita bisa memindahkan direktori
bersarang yang ada .gitke direktori terpisah dan menghapus direktori
repositori sebelumnya. sebagai contohnya berikut:
�repositori ( git init )
| _ �.git
| _ �file
�repositori2 ( git init )
| _ �.git
| _ �file
menjadi
�repositori ( git init )
| _ �.git
| _ �file
�repositori2 ( git init ) < - [ HAPUS ]
| _ �.git < - [ HAPUS ]
| _ �file < - [ HAPUS ]

�repositori2 ( git init )


| _ �.git
| _ �file
Cara di atas bisa dilakukan sebagai langkah perbaikan.
Kami tahu struktur direktori yang akan kami gunakan saat kami
menginisialisasi sebuah proyek repositori Git. Hindari nested directory karena
akan sangat membingungkan.

Memotret
Rekayasa Perangkat Lunak
6 menit membaca
Pengantar Git Snapshot
Kita telah mempelajari sebelumnya bahwa Git menggunakan
metode snapshot yang akan mengambil situasi dan kondisi dari repositori
pada saat kita menyimpan perubahan menggunakan perintah-perintah Git.
Dengan metode snapshot maka Git hanya akan menyimpan perubahan yang
terjadi baik di file maupun folder ke dalam snapshot saat
itu. Sedangkan file maupun folder yang tidak diubah akan disimpan sebagai
referensi ke snapshot sebelumnya.
Kita ulang sedikit materi "Introduction to Git", khususnya "The Three
States" dan tiga bagian utama dari proyek Git:
"Tiga Negara" adalah:

 Modifikasi : Kita melakukan perubahan pada file , namun belum direkam di


repositori.
 Staged : Kita menemukan perubahan pada file yang akan kita rekam ke
repositori.
 Committed : Perubahan pada file sudah disimpan di repositori.

Sedangkan tiga bagian utama dari proyek Git:

 Working Directory : Area kerja utama kita di mana kita melakukan


perubahan.
 Staging Area : Area penyimpanan untuk file - file yang sudah kita rubah dan
siap untuk kita rekam ke repositori. Bersifat sementara, sehingga kita masih
bisa membatalkan perubahan kembali ke Working Directory .
 Git Directory ( Repository ) : Area penyimpanan rekaman dari perubahan di
repositori. Yang merupakan tempat penyimpanan utama dan permanen.

Silahkan baca kembali materi "Introduction to Git" untuk penyegaran materi


Git.
Mari kita belajar bersama bagaimana sebuah snapshot Git dibuat:
Catatan: Sebelum menjalankan perintah Git di bawah, pastikan sudah berada
di dalam repositori Git , jika belum, maka gunakan perintah git initterlebih
dahulu.
Tahap file di Git
File-file di dalam repositori Git, akan ada di dalam tiga tahap yang berbeda:

 Tidak dipentaskan
 Dipentaskan
 Berkomitmen
Bekerja, pementasan, dan komit (Sumber: axosoft.com )
Tidak Dipentaskan
Folder yang sedang kita kerjakan sekarang kita sebut sebagai working
directory .
Ketika kita membuat atau mengubah file di working directory ,
maka file tersebut berada di not stage .
Saat kita mengerjakan sebuah tugas, akan ada file yang kita rubah maupun
yang kita biarkan apa adanya. Nah untuk file yang kita rubah, untuk
menyimpannya ke dalam Git, kita perlu memindahkannya ke staging area .
Caranya adalah dengan perintah git add <pattern nama file>
> sentuh file1.txt
> sentuh file2.txt
Di atas kita memiliki 2 file . Misalnya perubahan di file1.txtingin kita
simpan di dalam Git:
> git tambahkan file1.txt
Kita bisa melihat hasilnya dengan commandgit status
> status git
Perubahan yang harus dilakukan:
file baru: file1.txt
Perubahan tidak dilakukan untuk komit:
file baru: file2.txt
Di atas kita bisa melihat bahwa file1.txtsudah dimasukkan ke dalam area
staging , namun file2.txtbelum.
Dipentaskan
Jadi proses bertahap akan memilih file mana saja yang nanti ingin
kita commit. Ketika file-file tersebut sudah terkumpul, kita bisa menyimpan
dan memindahkannya ke tahap commit dengan perintah git commit.
> git commit -m "Tambahkan file1.txt"
Kita bisa melihat hasilnya dengan commandgit status
> status git

Perubahan tidak dilakukan untuk komit:


file baru: file2.txt
Kita lihat bahwa file1.txtsudah tidak ada staging area . file1.txtitu
sudah dicommit ke Git.
Berkomitmen
Rangkaian commitmenjadi sejarah dari proyek kita dari awal sampai akhir,
setiap commitdapat dilihat di git logdan dengannya kita bisa melihat
seluruh sejarah proyek kita dari awal repositori git kita diinisiasi.
> catatan git
komit 4eec9fcf80e20d664e4c1fc824d5b72e2d2a7f4d ( HEAD - >
master )
Author: Aditira Jamhuri < [email protected] >
Tanggal: Kamis 21 Juli 06:12:52 2022 +0700

Tambahkan file1.txt
Mari kita perhatikan rangkaian snapshot sebuah project open source
yaitu Bootstrap . Di sini kita bisa melihat seluruh sejarah dari proyek ini:
Perintah untuk memeriksa status dan riwayat repositori saat ini
Adapun perintah Git yang sangat bermanfaat untuk melihat status dari
repositori yang sedang kita kerjakan dan sering digunakan adalah:
 git status: keadaan menampilkan direktori kerja dan staging area agar
kita bisa melihat file mana yang belum dipentaskan dan mana
yang dipentaskan . Selengkapnya di sini
 git log: menampilkan komit-komit yang dilakukan. Selengkapnya di sini
Untuk melihat praktek langsung dari Git Snapshot, kita perhatikan video
berikut:
Pengenalan Github Snapshot (Sumber: Imam Assidiqqi - Youtube )
Ulangan
1.
Untuk melihat seluruh sejarah komit dari sebuah repositori, kita menggunakan
perintah

sejarah git

status git

git komit

log git
2.
Perbedaan antara git add dan git commit adalah

git commit menyimpan file ke repositori, git add menyimpan file ke staging
area.

git add menyimpan file ke repositori, git commit menyimpan file ke staging
area.

git add menyimpan file ke staging area, git commit menyimpan file ke
working directory.
git commit menyimpan file ke staging area, git add menyimpan file dari
working directory.
3.
Untuk melakukan pengecekan status dari file di sebuah repositori Git, kita
menggunakan perintah

pertunjukan git

bantuan git

git komit

status git
4.
Untuk menambahkan file yang kita kerjakan ke dalam repositori Git, perintah
yang kita gunakan adalah

git tambahkan

git komit

git lokal

git push
5.
Perintah apa yang kita gunakan untuk membuat folder aktif menjadi sebuah
repositori Git ?

git buat

konfigurasi git

git komit

git init
Git add
Software Engineering
4 min read

Git add visualization (sumber: img-bc.icode.best)


Perintah git add berfungsi untuk menambahkan file baru atau file yang
diubah di working directory ke staging area
How to Use git add
Penggunaan dan opsi umum untuk git add

 git add <file>: Menambahkan file tertentu


 git add .: Menambahkan semua file

Kita dapat melihat opsi-opsi lain git add dengan tldr git add atau git
add -h
Cara paling aman untuk menggunakan git add adalah dengan
menunjuk file atau direktori tertentu yang ingin kita tambahkan ke staging
area. Contoh:

 git add login/: Menambahkan semua perubahan pada file di


dalam folder login
 git add README.md: Menambahkan semua perubahan
pada file README.md

git add All Files


Jika kita ingin menambahkan ke staging area semua file, ada beberapa
perintah yang bisa digunakan, yaitu:
NEW MODIFIED DELETED
COMMAND DESCRIPTION
FILES FILES FILES
Menambahkan seluruh file secara
git add . ✔ ✔ ✔
rekursif di folder saat ini
Menambahkan seluruh file yang
git add -u ✔ ✔
sebelumnya sudah ditrack di Git.
Sumber: stackoverflow.com
Menyimpan semua file ke staging area memiliki beberapa resiko, yaitu:

 Membuat commit yang terlalu besar mungkin berisi perubahan yang tidak
ada kaitannya dengan yang sedang dikerjakan.
 Mungkin ada file yang berisi informasi sensitif yang tidak sengaja
kita commit seperti password, token, dll.

Kita bisa mencegah kemungkinan 2 poin di atas dengan cara memastikan


setiap commit hanya mengandung perubahan yang berhubungan dan sesuai
dengan deskripsi commit-nya.
Undo Added Files
Misalnya kita memiliki file hello.txt dan world.txt di repository dan
keduanya sudah kita tambahkan ke staging area
> git status
On branch main

No commits yet

Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: hello.txt
new file: world.txt
Lalu kita lakukan perintah git reset pada file hello.txt untuk
mengembalikannya ke working directory
> git reset hello.txt
> git status
On branch main

No commits yet

Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: world.txt

Untracked files:
(use "git add <file>..." to include in what will be
committed)
hello.txt
Maka bisa kita lihat bahwa file hello.txt sudah pindah ke working
directory. Jika kita melakukan git commit, hanya world.txt yang akan
dicommit. Dengan cara ini kita bisa memastikan file yang dicommit
hanya file yang yang kita inginkan.

Git commit
Software Engineering
6 min read
Git Commit Flow (Sumber: cspsprotocol.com)
How to use git commit
Perintah git commit berfungsi untuk menyimpan dan
memindahkan file di staging area ke committed stage.
Pada saat menyimpan kita wajib memberikan sebuah commit message yang
berisi catatan perubahan yang terjadi di file atau kumpulan file yang
kita commit.
Commit Message Best Practice
Commit message harus singkat dan mendeskripsikan tentang perubahan yang
dilakukan. Mengapa harus begitu? � Karena pada saat melihat riwayat
dari project, kita akan dipandu oleh commit message, sehingga commit
message tersebut idealnya menceritakan sebuah kisah dari awal
sejarah project kita sampai akhir.
Commit message harus berbentuk present tense dan menjelaskan secara
jelas & singkat tentang perubahan yang dilakukan seperti contoh berikut:

 git commit -m "create file structure for Git guides"


 git commit -m "translate Git cheat sheet into German"
 git commit -m "update broken URL to Git resources"
Kita juga bisa menambahkan semantic commit message agar
setiap commit message memiliki kategori tersendiri (feat: feature, fix:
perbaikan, docs: penambahan dokumen):

 git commit -m "feat: create file structure for Git


guides"
 git commit -m "fix: translate Git cheat sheet into
German"
 git commit -m "docs: update broken URL to Git resources"

Dengan memastikan commit message kita bisa dibaca dengan mudah, kita
akan bisa me-rollback (mengembalikan status project kita)
ke commit manapun.
Checkout
Perintah git checkout adalah perintah yang sering digunakan, salah
satunya yaitu untuk berpindah antar commit sehingga kita bisa melihat
kembali isi konten commit tertentu.
Misalnya kita punya repositori yang memiliki beberapa commit dan kita
melakukan checkout ke salah satu commit.
Dengan perintah git log --oneline akan menampilkan commit per-
baris dan memiliki output singkat berupa tujuh karakter pertama dari
id commit-nya (contoh: 7ba2a60) dan commit message. Gunakan
id commit tersebut untuk berpindah commit:

> git log --oneline


c21091a6 (HEAD -> master) docs: add note to snapshot and git
add
e2eea3ae docs: add ideation
> git checkout e2eea3ae
> git log --oneline
d82c536 (HEAD) docs: add ideation

Maka terlihat bahwa dengan melakukan checkout kita bisa berpindah


ke commit dengan id d82c536. Jika kita ingin kembali bekerja setelah
melihat isi commit ini, kita bisa menjalankan perintah: git checkout -
> git checkout -
> git log --oneline
7ba2a60 (HEAD -> master) docs: add note to snapshot and git
add
d82c536 docs: add ideation

Maka, terlihat bahwa commit telah berpindah ke posisi sebelumnya.


How To Undo A Commit With git revert
git revert adalah cara yang sangat direkomendasikan dan cara teraman
untuk meng-undo sebuah commit.
> git log --oneline
47d87b4 (HEAD -> master) docs: minor typo fix
c21091a docs: add note to snapshot and git add
e2eea3a docs: add ideation
Misalnya kita ingin melakukan undo commit "docs: add note to snapshot and
git add", kita bisa melakukan perintah berikut:
> git revert c21091a
git revert akan membuat commit baru yang isinya adalah kebalikan
(inverse) dari commit yang kita ingin undo. Jika kita panggil git log lagi:
> git log --oneline
562560e (HEAD -> master) Revert "docs: add note to snapshot
and git add"
47d87b4 docs: minor typo fix
c21091a docs: add note to snapshot and git add
e2eea3a docs: add ideation

Maka git revert akan menjadi commit baru yang akan membatalkan
seluruh perubahan yang telah kita lakukan sebelumnya:

 Jika kita telah menambahkan file git revert akan menghapusnya


 Jika kita melakukan perubahan pada sebuah file perubahan tersebut akan
dibatalkan
 Jika kita menghapus sebuah file git revert akan menambahkannya
kembali.
Git revert (sumber: cloudinary.com)
Updating Commits With Git Commit Amend
Misal kita telah melakukan sebuah commit dan kita menyadari bahwa ternyata
ada kesalahan yang terjadi di commit tersebut - entah kita terlupa untuk
mengedit beberapa baris file atau salah dalam memberikan commit message -
kita bisa melakukan git commit --amend, di mana seluruh
file staging sekarang akan ditaruh di commit sebelumnya.
Warning: jangan lakukan git commit --amend jika commit sebelumnya
sudah di push

Git rm
Software Engineering
2 min read
Git Remove (Sumber: s3.ap-south-1.amazonaws.com)
Ada 2 cara penggunaan git rm:

 Digunakan untuk menghapus file dari staging area dan working directory
 Digunakan untuk membatalkan (menghapus) file dari staging area kembali
ke working directory. Bisa dibilang ini kebalikan dari perintah git add.

Di sini kita akan fokus ke penggunaan kedua, yaitu


membatalkan file dari staging area kembali ke working directory. Untuk itu kita
akan menggunakan git rm --cached.
How to use git rm for staged files
Perintah git rm --cached kita pakai untuk memindahkan sebuah file
dari staging ke working directory. Misalnya, kita
memiliki file bernama hello.txt yang sudah berada di staging area.
[user@localhost]$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: hello.txt
Maka kita bisa memindahkan file hello.txt dari staging area ke working
directory tanpa menghapusnya dari file system dengan cara:
[user@localhost]$ git rm hello.txt --cached
rm 'hello.txt'
[user@localhost]$ git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be
committed)
hello.txt
nothing added to commit but untracked files present (use "git
add" to track)
Maka terlihat bahwa file hello.txt tidak lagi berada di staging area namun
berpindah ke working directory.
Note: Ingat untuk menggunakan opsi --cached. Tanpa opsi --cached,
maka file akan terhapus dari staging area dan working directory.
Git diff
Software Engineering
3 min read

Git Banner (Sumber: luciano.com.ar)


What is git diff?
git diff digunakan untuk menginspeksi perubahan yang kita lakukan
ketika bekerja pada suatu repositori Git. Cara kerjanya adalah
membandingkan file yang ada di working directory dengan file yang ada
di commit dalam repositori.
Example
Kita tambahkan sebuah file di repository yang telah diinisiasi untuk
mencoba git diff
> touch diff_test.txt
> echo "this is a git diff test example" > diff_test.txt
> git add diff_test.txt
> git commit -am "add diff test file"
[main (root-commit) 6f77fc3] add diff test file
1 file changed, 1 insertion(+)
create mode 100644 diff_test.txt
Misal sekarang kita ubah seluruh isi konten pada file diff_test.txt.
> echo "this is a diff example" > diff_test.txt
Dengan mengeksekusi git diff, kita akan membandingkan perubahan
yang baru saja dilakukan (merubah konten dari file diff_test.txt)
dengan commit sebelumnya, yang akan menghasilkan output sebagai berikut:
> git diff
diff --git a/diff_test.txt b/diff_test.txt
index 6b0c6cf..b37e70a 100644
--- a/diff_test.txt
+++ b/diff_test.txt
@@ -1 +1 @@
-this is a git diff test example
+this is a diff example
Berikut penjelasan dari output di atas:
1. Comparison input
diff --git a/diff_test.txt b/diff_test.txt
a/diff_test.txt adalah file yang berada di commit yang tengah kita
bandingkan dengan file yang ada di working directory, yang di sini ditulis
sebagai b/diff_test.txt.
2. Markers for changes
--- a/diff_test.txt
+++ b/diff_test.txt
Baris-baris ini adalah simbol yang diberikan ke setiap input source. Perubahan
dari a/diff_test.txt ditandai dengan simbol --- dan perubahan
dari b/diff_test.txt ditandai dengan simbol +++.
3. Diff content
-this is a git diff test example
+this is a diff example
Tanda - menandakan bahwa baris ini dihapus dan tidak ada di file yang
sekarang berada di working directory. Tanda + menandakan bahwa baris ini
ditambahkan di file yang sekarang dan tidak ada di file yang kita commit di
repositori.
Bila tanda - dan tanda + berada berdekatan, biasanya ini menandakan bahwa
terjadi pergantian (replace) di baris tersebut. Dalam contoh di atas, baris this
is a git diff test example digantikan dengan this is a diff
example. Dan memang itu yang kita lakukan di contoh tersebut.

git remote add


Software Engineering
13 min read
Remote
Remote Repo (Sumber: amazonaws.com)
Pada kegiatan software development biasanya melibatkan banyak orang
atau tim programmer dan tentunya kita tidak akan menyimpan proyek
repositori-nya sendiri-sendiri. Semua tim yang terlibat dalam
proses development akan menyimpan repositori di lokal komputernya masing-
masing namun nantinya akan dilakukan penggabungan ke repository yang ada
di remote server.
Pertanyaannya, di mana menyimpan repository remote-nya? �
Jawabannya, bisa di server kantor atau bisa juga menggunakan layanan seperti
Github, Gitlab, Bitbucket, dll. Namun Github adalah layanan yang paling
populer untuk menyimpan repository secara remote. Banyak proyek open
source tersimpan di sana.

Github Distributed (Sumber: sfdctechie.files.wordpress.com)


About remote repositories
Remote URL adalah cara Git untuk mengatakan "tempat di mana source code
kita disimpan". Remote URL menjadi repositori lain yang berbeda dengan
repositori lokal kita yaitu repositori yang ada di server. Ada dua jenis remote
URL yang bisa kita tambahkan pada konfigurasi Git:

 URL HTTPS seperti https://github.com/user/repo.git


 URL SSH, seperti [email protected]:user/repo.git

Git menghubungkan remote URL dengan sebuah nama dan defaultnya


adalah origin. Ini disimpan di file config pada folder .git di root
directory. di dalam file tersebut akan terlihat seperti ini:
[remote "origin"]
url = https://github.com/user/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
Add remote repositories to local git
Kita dapat menggunakan perintah git remote add untuk menghubungkan
nama dengan remote URL , contoh:
git remote add origin <REMOTE_URL>
Ini artinya origin akan terhubung dengan REMOTE_URL. Kita dapat
menggunakan perintah git remote set-url untuk mengubah remote
URL. Untuk cara pembuatan remote repository kita bisa lihat lebih lanjut di
pembahasan materi github
Managing list remote repositories in local git
 Adding a remote repository
Untuk menambahkan remote baru, gunakan perintah git remote
add pada terminal di repositori Git. Perintah git remote
add membutuhkan dua argumen yaitu:

o Remote Name, misalnya, origin


o Remote URL, misalnya, https://github.com/user/repo.git

Contoh:
[user@localhost]$ git remote add origin
https://github.com/user/repo.git
# Set a new remote

[user@localhost]$ git remote -v


# Verify new remote
> origin https://github.com/user/repo.git (fetch)
> origin https://github.com/user/repo.git (push)
 Troubleshooting: Remote origin already exists
Error ini berarti kita telah mencoba menambahkan remote dengan nama yang
sudah ada di local repository.
[user@localhost]$ git remote add origin
https://github.com/octocat/Spoon-Knife.git
> fatal: remote origin already exists.
Untuk mengatasinya:

o Gunakan nama yang berbeda untuk remote baru.


o Ganti nama remote repositori yang ada sebelum menambahkan remote baru.
o Hapus remote repositori yang ada sebelum menambahkan remote baru.
 Changing a remote repository's URL
Perintah git remote set-url akan mengubah remote repositori URL yang
sudah ada.
Tip: Untuk informasi tentang perbedaan antara HTTPS dan SSH URLs, lihat
"About remote repositories."

o Nama remote yang ada. Misalnya, origin atau upstream adalah dua pilihan
yang umum.
o URL baru untuk remote, contoh:
 Jika kita mengubah remote menjadi HTTPS maka URL akan terlihat seperti ini:
https://github.com/USERNAME/REPOSITORY.git
 Jika kita mengubah remote menjadi SSH maka URL akan terlihat seperti ini:
[email protected]:USERNAME/REPOSITORY.git
 Switching remote URLs from SSH to HTTPS

1. Buka Terminal.
2. Ubah working directory saat ini ke tempat repositori proyek kita berada.
3. Tampilkan remote yang ada untuk mendapatkan remote name yang akan
diubah.
[user@localhost]$ git remote -v
> origin [email protected]:USERNAME/REPOSITORY.git (fetch)
> origin [email protected]:USERNAME/REPOSITORY.git (push)
4. Ubah remote URL dari SSH ke HTTPS dengan perintah git remote set-
url.
[user@localhost]$ git remote set-url origin
https://github.com/USERNAME/REPOSITORY.git
5. Verifikasi bahwa remote URL telah berubah.
[user@localhost]$ git remote -v
# Verify new remote URL
> origin https://github.com/USERNAME/REPOSITORY.git (fetch)
> origin https://github.com/USERNAME/REPOSITORY.git (push)
 Setelah melakukan aktifitas git pull (untuk menarik perubahan dari
remote), atau git push (untuk mengirim perubahan dari local repository ke
remote), kita akan diminta username dan password GitHub. Saat Git
meminta password, masukkan personal access token (PAT). Atau kita dapat
menggunakan Git Credential Manager. Otentikasi berbasis password untuk Git
telah dihapus demi metode otentikasi yang lebih aman. Untuk informasi lebih
lanjut, lihat Creating a personal access token
 Kita dapat menggunakan credential helper sehingga Git akan
mengingat username GitHub dan personal access token setiap kali
berhubungan dengan GitHub.
 Switching remote URLs from HTTPS to SSH

1. Buka Terminal.
2. Ubah working directory saat ini ke tempat repositori proyek kita berada.
3. Tampilkan remote yang ada untuk mendapatkan remote name yang akan
diubah.
[user@localhost]$ git remote -v
> origin https://github.com/USERNAME/REPOSITORY.git (fetch)
> origin https://github.com/USERNAME/REPOSITORY.git (push)
4. Ubah remote URL dari HTTPS ke SSH dengan perintah git remote set-
url.
[user@localhost]$ git remote set-url origin
[email protected]:USERNAME/REPOSITORY.git
5. Verifikasi bahwa remote URL telah berubah.
[user@localhost]$ git remote -v
# Verify new remote URL
> origin [email protected]:USERNAME/REPOSITORY.git (fetch)
> origin [email protected]:USERNAME/REPOSITORY.git (push)
 Troubleshooting: No such remote '[name]'
Error ini berarti remote yang kita coba ubah tidak tersedia:
[user@localhost]$ git remote set-url sofake
https://github.com/octocat/Spoon-Knife
> fatal: No such remote 'sofake'
Solusinya: coba periksa apakah kita telah mengetik remote name dengan
benar.
 Renaming a remote repository
Gunakan perintah git remote rename untuk mengganti
nama remote yang ada. Perintah git remote rename akan membutuhkan
dua argumen yaitu:

o Remote name yang tersedia, misalnya, origin


o Remote name yang akan diperbaharui, misalnya, destination

Contoh:
[user@localhost]$ git remote -v
# View existing remotes
> origin https://github.com/OWNER/REPOSITORY.git (fetch)
> origin https://github.com/OWNER/REPOSITORY.git (push)

[user@localhost]$ git remote rename origin destination


# Change remote name from 'origin' to 'destination'

[user@localhost]$ git remote -v


# Verify remote's new name
> destination https://github.com/OWNER/REPOSITORY.git (fetch)
> destination https://github.com/OWNER/REPOSITORY.git (push)
 Removing a remote repository
Gunakan perintah git remote rm untuk menghapus remote URL dari
repositori. Perintah git remote rm membutuhkan satu argumen
yaitu remote name, misalnya, destination
Note: Menghapus remote URL dari repositori akan memutuskan hubungan
antara repositori local dengan remote. Itu tidak akan menghapus repositori
remote.
Contoh:
[user@localhost]$ git remote -v
# View current remotes
> origin https://github.com/OWNER/REPOSITORY.git (fetch)
> origin https://github.com/OWNER/REPOSITORY.git (push)
> destination https://github.com/FORKER/REPOSITORY.git
(fetch)
> destination https://github.com/FORKER/REPOSITORY.git (push)

[user@localhost]$ git remote rm destination


# Remove remote
[user@localhost]$ git remote -v
# Verify it's gone
> origin https://github.com/OWNER/REPOSITORY.git (fetch)
> origin https://github.com/OWNER/REPOSITORY.git (push)
Example Multiple Remotes
Adding multiple remotes
Kita bisa menambahkan lebih dari satu remote repository ke proyek kita. Masih
ingat dengan perintah git remote add origin di atas ? Syntax asli
untuk git remote add adalah seperti ini (text setelah tanda # adalah
komentar):
# Syntax to add a git remote
[user@localhost]$ git remote add REMOTE-NAME REMOTE-URL
Contoh kita akan menambahkan beberapa remote pada repository kita
dengan origin sebagai remote utama:
# Add remote 1: GitHub.
[user@localhost]$ git remote add origin
[email protected]:jigarius/toggl2redmine.git
# Add remote 2: BitBucket.
[user@localhost]$ git remote add upstream
[email protected]:jigarius/toggl2redmine.git
# Add remote 3: Gitlab.
[user@localhost]$ git remote add aditira
[email protected]:jigarius/toggl2redmine.git
Dalam contoh di atas, kita menambahkan remote repository dari sebuah
proyek bernama Toggl 2 Redmine di GitHub. Kita bisa menggunakan perintah
di atas untuk menambahkan satu atau lebih remote repository, namun
pastikan setiap repositori memiliki nama yang berbeda,
yaitu origin, upstream dan aditira pada contoh di atas.
 Configure primary remote
Meskipun kita dapat menambahkan beberapa remote, biasanya,
setiap branch pada proyek dapat dikonfigurasi untuk melacak satu remote.
Kita dapat mengatur branch untuk melacak remote dengan contoh sebagai
berikut:
# Change local branch.
[user@localhost]$ git checkout BRANCH
# Configure local branch to track a remote branch.
[user@localhost]$ git branch -u origin/BRANCH
Di sini, BRANCH adalah nama remote branch, yang biasanya sama dengan
local branch kita.
 Change remote URL
Jika kita ingin mengubah URL yang sudah terhubung dengan remote yang
telah ditambahkan, sama seperti dijelaskan di atas, kita gunakan perintah git
remote set-url, di mana syntax aslinya adalah:
# The syntax is: git remote set-url REMOTE-NAME REMOTE-URL
[user@localhost]$ git remote set-url upstream
[email protected]:jigarius/toggl2redmine.git
List all remotes
Untuk melihat semua remote, cukup gunakan perintah berikut:
[user@localhost]$ git remote -v
origin [email protected]:jigarius/toggl2redmine.git (fetch)
origin [email protected]:jigarius/toggl2redmine.git (push)
upstream [email protected]:jigarius/toggl2redmine.git
(fetch)
upstream [email protected]:jigarius/toggl2redmine.git
(push)
aditira [email protected]:jigarius/toggl2redmine.git (push)
aditira [email protected]:jigarius/toggl2redmine.git (push)
Remove a remote
Jika ada remote repository yang tidak lagi diperlukan di lokal Git, kita dapat
menghapusnya dengan perintah:
# The syntax is: git remote remove REMOTE-NAME
[user@localhost]$ git remote remove upstream
Quiz
1.
Ada 2 jenis remote URL yang bisa digunakan untuk perintah git remote, yaitu
HTTP dan HTTPS

HTTPS dan SSH

HTTP dan SSH

URL dan SSH


2.
Dengan DVCS, setiap developer memiliki repositori masing-masing,
bagaimana cara mereka berkolaborasi ?

Sepakat menggunakan VCS kantor.

Sepakat menggunakan sebuah repositori Git bersama.

Sepakat menggunakan Git remote.

Tidak bisa berkolaborasi.


3.
Perintah git remote add memerlukan 2 parameter, yaitu

REMOTE NAME dan REMOTE URL

REMOTE ORIGIN dan REMOTE GIT

REMOTE NAME dan REMOTE SSH

ORIGIN dan GITHUB

Basic branch and merge


Software Engineering
6 min read
Git Branch sumber: sitepoint.com
Branch concept
Ketika kita membuat sebuah repository baru, secara otomatis
sebuah branch utama akan terbuat yang bisa kita lihat dengan
menjalankan git status.
> git init
> git status

On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to


track)
Dalam contoh ini kita lihat bahwa branch utama yang otomatis terbuat
setelah git init adalah branch master.
Dengan membuat sebuah branch baru saat kita berada di branch utama, maka
kita akan otomatis memiliki seluruh commit sebelumnya yang ada
di branch master, yang dengannya kita bisa membuat
beragam commit yang independen dari yang ada di master, dan kelak kita
bisa menggabungkan seluruh commit kembali dengan konsep merging.
Dengan kemampuan untuk memisahkan diri dari branch utama, dan kelak
menggabungkannya kembali, kita bisa membuat sebuah fitur secara individual
terlebih dahulu sebelum kita memutuskan untuk menaruhnya
di branch utama.
Creating a New Branch
Sebelum membuat branch baru, kita coba tambahkan sebuah commit dulu
agar kelak kita bisa mempelajari git log-nya.
> git add .
> git commit -m "Adding authentication"
[master (root-commit) c0e5bfa] Adding authentication
1 file changed, 1 insertion(+)
create mode 100644 auth.sh
> git log
commit c0e5bfa0259090c4919b5604c86bbd1e5fa45eaa (HEAD ->
master)
Author: Imam Assidiqqi <[email protected]>
Date: Tue Aug 2 14:14:22 2022 +0700

Adding authentication
Selanjutnya kita akan belajar bagaimana cara kita membuat branch baru . Kita
melakukannya dengan perintah git checkout -b <nama branch>, di
mana command ini akan membuat sebuah branch baru, dan kita
otomatis checkout ke branch tersebut:
> git branch
* master
> git checkout -b fix-authentication-bug
Switched to a new branch 'fix-authentication-bug'
> git branch
* fix-authentication-bug
master
Kita lihat bahwa kita telah memiliki branch baru, yang jika kita bandingkan
dengan branch master, akan memiliki history yang sama dengan history yang
ada di master.
> git log
commit c0e5bfa0259090c4919b5604c86bbd1e5fa45eaa (HEAD -> fix-
authentication-bug, master)
Author: Imam Assidiqqi <[email protected]>
Date: Tue Aug 2 14:14:22 2022 +0700

Adding authentication

> git log master


commit c0e5bfa0259090c4919b5604c86bbd1e5fa45eaa (HEAD -> fix-
authentication-bug, master)
Author: Imam Assidiqqi <[email protected]>
Date: Tue Aug 2 14:14:22 2022 +0700

Adding authentication
Sekarang kita tambahkan commit baru di branch ini.
> git add .
> git commit -m "Fixing bug in auth"
> git log
commit c2507da9d997be98873c14095205dbc430078874 (HEAD -> fix-
authentication-bug)
Author: Imam Assidiqqi <[email protected]>
Date: Tue Aug 2 14:21:46 2022 +0700

Fixing bug in auth

commit c0e5bfa0259090c4919b5604c86bbd1e5fa45eaa (master)


Author: Imam Assidiqqi <[email protected]>
Date: Tue Aug 2 14:14:22 2022 +0700

Adding authentication

> git log master


commit c0e5bfa0259090c4919b5604c86bbd1e5fa45eaa (master)
Author: Imam Assidiqqi <[email protected]>
Date: Tue Aug 2 14:14:22 2022 +0700

Adding authentication
Maka dapat dilihat bahwa fix-authentication-bug akan memiliki
satu commit yang berbeda dengan master.
Kemudian juga kita dapat simpulkan di atas bahwa HEAD adalah sebuah posisi
yang menunjuk ke branch yang kita berada di dalamnya sekarang.
How To Move Between Branches & Merging
Merging adalah proses menyatukan commit-commit dari dua branch yang
berbeda. Contoh yang umum adalah ketika kita ingin
menyatukan branch master dengan branch berisi fitur baru yang kita
kerjakan.
Merging bisa dilakukan dengan menjalankan git merge <nama branch
yang akan di merge>.
Untuk melakukan merge terhadap repositori yang telah kita kerjakan
sebelumnya di atas, kita perlu masuk dulu ke branch yang akan
kita merge terhadapnya dengan git checkout master, lalu jalankan git
merge fix-authentication-bug.
> git branch
* fix-authentication-bug
master

> git checkout master


Switched to branch 'master'

> git merge fix-authentication-bug


Updating c0e5bfa..c2507da
Fast-forward
auth.sh | 1 +
1 file changed, 1 insertion(+)

> git log


commit c2507da9d997be98873c14095205dbc430078874 (HEAD ->
master, fix-authentication-bug)
Author: Imam Assidiqqi <[email protected]>
Date: Tue Aug 2 14:21:46 2022 +0700

Fixing bug in auth

commit c0e5bfa0259090c4919b5604c86bbd1e5fa45eaa
Author: Imam Assidiqqi <[email protected]>
Date: Tue Aug 2 14:14:22 2022 +0700
Adding authentication
Maka kita akan lihat bahwa sekarang commit-commit yang ada di fix-
authentication-bug, akan ada juga di master.
Git Merge Conflict Resolution
Proses merge di-handle otomatis oleh Git, namun ada kalanya merge yang kita
lakukan gagal, hal ini dinamakan Git Merge Conflict. Untuk itu kita perlu
melakukan pengecekan dan perubahan secara manual. Untuk lebih jelasnya,
kita simak video berikut:
Sumber: Git Merge Conflict Resolution
Quiz
1.
Cara yang benar untuk melakukan git merge adalah

Lakukan git merge <branch_name> dimana branch name adalah nama branch
yang menjadi tujuan dari working directory.

Pindah ke branch utama yang akan menyimpan hasil akhir, ketik perintah git
merge master.

Pindah ke branch utama yang akan menyimpan hasil akhir, ketik perintah git
merge <branch_name> dimana branch name adalah nama branch yang
menjadi sumber.

Tidak perlu pindah, langsung lakukan git merge <branch_name> dimana


branch name adalah nama branch yang menjadi sumber.
2.
Untuk berpindah antar branch, kita menggunakan perintah

git change <branch_name>

git checkout -b <branch_name>

git checkout <branch_name>

git commit <branch_name>


3.
Untuk membuat branch baru kita menggunakan perintah

git checkout -b <branch_name>

git commit -b <branch_name>

git branch <branch_name>

git checkout <branch_name>

.gitignore
Rekayasa Perangkat Lunak
5 menit membaca
Mengajukan.gitignore
Git Abaikan (Sumber: wpforthewin.com )
Apa itu .gitignore?
Saat membagikan kode kita dengan orang lain, seringkali ada file atau bagian
dari proyek yang tidak ingin dibagikan. Atau bisa juga file tersebut tidak cocok
untuk ditrack di Git (seperti binary files )
Contoh umumnya yaitu:

 File log
 Basis data
 Berkas sementara
 File tersembunyi
 File pribadi
 dll

Git dapat menentukan file atau bagian mana dari proyek yang harus diabaikan
oleh Git menggunakan file .gitignore . Git tidak akan
melacak file dan folder yang ditentukan dalam .gitignorenamun
file .gitignoreitu sendiri akan melindunginya oleh Git.
Aturan saat menggunakan .gitignore
Berikut beberapa aturan umum untuk melacak pola dalam file .gitignore:
POLA PENJELASAN CONTOH
Semua nama file dan
nama /name.log atau /name/file.txt atau /lib/name.log
nama folder di folder manapun
nama yang di akhiri
dengan /akan menentukan pola
/name/file.txt atau /name/log/name.log tidak
nama/ untuk folder . Ini mencocokan
cocok: /name.log
semua file dan folder di dalam
nama folder tersebut
*.mengajukan Semua file dengan ekstensi .file /nama.file atau /lib/nama.file
Untuk melihat aturan yang lebih lengkap dari .gitignorebisa dilihat di sini
Contoh.gitignore
Untuk membuat file .gitignore, buka root dari repositori Git dan
buat file tersebut:
Linux atau Mac:
sentuh .gitignore
Jendela:
ketik nul > .gitignore
Sekarang buka file menggunakan editor teks dan kita bisa menambahkan
dua aturan sederhana:

 Abaikan file apa pun dengan ekstensi.log


 Abaikan semua yang ada di direktori/ folder mana pun yang bernamatemp

Berikut adalah isi dari file .gitignore dengan mengimplementasikan aturan


di atas (text setelah tanda #adalah komentar):
# Abaikan SEMUA file .log
*.catatan
# Abaikan SEMUA file di direktori APAPUN bernama temp
suhu/
Sekarang semua file dan folder.log apa pun akan diabaikan oleh Git. temp
Note: Di sini, kita menggunakan satu .gitignoreyang berlaku untuk seluruh
repositori.
Dimungkinkan juga untuk memiliki file .gitignoretambahan di
subdirektori. Ini hanya akan berlaku untuk file atau folder dalam direktori
tersebut, contoh:

Penjelasan dari gambar di atas:


 Perhatikan bahwa .gitignoreberada pada sub-direktori bukan di root
repository dan di dalamnya memiliki aturan agar Git
mengabaikan file documentation.md dan sub-documentation.md.
 Saat kita melakukan git statusterlihat
bahwa file documentation.md dan folder sub-directory/ masih
terlacak. Ingat lah bahwa Git akan melacak file .gitignore .
 Loh, namun kalau diperhatikan ada yang aneh, di sana terlihat
bahwa file documentation.md masih terlacak oleh Git. Ini tidak boleh terjadi
karena kita sudah mendaftarkannya di dalam file .gitignore . Mengapa itu
bisa terjadi ya? �
 Yup, ini membuktikan bahwa .gitignorepada sub-direktori hanya
berpengaruh terhadap file yang ada di dalamnya, sedangkan di
luar folder tidak akan berpengaruh.
Selengkapnya bisa disimak video berikut ini:

Github
Rekayasa Perangkat Lunak
4 menit membaca
Github
Github (Sumber: github.githubassets.com )
Apa itu Github?
GitHub adalah platform khusus developer yang dibuat karena terinspirasi dari
cara bekerja para programmer. Dari open source ke bisnis, kami dapat
meninjau sebuah kode, mengelola proyek, dan membangun perangkat
lunak bersama 56 juta lebih pengguna di seluruh dunia.
Gampangnya, GitHub merupakan project management , version control
system (VCS), sekaligus platform jaringan sosial bagi para developer di seluruh
dunia.
Mengapa kita membutuhkan Github?
1. Memudahkan Proyek Kolaborasi Pengerjaan
Fungsi Github yang paling utama adalah untuk memudahkan kolaborasi
secara online saat mengerjakan suatu proyek.
Kolaborasi Github (Sumber: cloudfront.net )
Dengan kontrol versi terdistribusi , semua pengembang atau anggota tim dapat
mengelola kode di satu tempat. Misalnya, melakukan review kode bersama,
diskusi perbaikan bug , dan sebagainya.
Selain itu, GitHub juga menyediakan fitur project management berbentuk
papan Kanban seperti Trello (lebih lengkapnya tentang Kanban di sini . Fitur
ini tentu sangat berguna bagi yang mempunyai banyak proyek. Sebab, kita
bisa lebih mudah menentukan prioritas kerja , mengatur workflow , hingga
melihat progress proyek .
Portofolio Github (Sumber: docs.github.com )
2. Sebagai Pengembang Portofolio Bagi
Github juga berfungsi sebagai portofolio bagi developer .
Portofolio Github (Sumber: camo.githubusercontent.com )
Di GitHub, kita dapat mengatur proyek yang dikerjakan untuk ditampilkan
secara publik. Hal ini akan menunjukkan kemampuan kita sebagai seorang
profesional.
Dengan begitu, calon klien atau perusahaan incaran bisa langsung melihat
karya dan kontribusi kita ke berbagai proyek sesuai keahlian kita.
Buat Akun Github
Kita bisa membuat akun Github secara gratis di sini . langkah Ikuti-langkahnya
dan kita siap membahas lebih jauh tentang Github.
Daftar Github (sumber: github.com )
Ulangan
1.
Apa itu Organisasi di Github?

Repository bersama yang bisa diakses oleh anggota tim.

Tempat untuk membicarakan proyek kita kedepannya.

Akun untuk membuat project yang tidak akan bisa diakses oleh publik.

Akun bersama tempat bisnis dan proyek open source berkolaborasi dengan
banyak proyek sekaligus.
2.
Mengapa kita membutuhkan Github?

Memudahkan kita dalam menyelesaikan error.

Agar semua dapat melihat perbedaan antar proyek.

Agar kita mudah berkolaborasi untuk pengerjaan project.

Sarana untuk hiburan bagi para developer di seluruh dunia.


3.
Apa perbedaan antara remote repository dengan local repository?

Repositori lokal adalah repositori Git yang disimpan di komputer kita,


sedangkan Repositori jarak jauh adalah repositori Git yang disimpan di server.

Repositori lokal adalah repositori Git yang disimpan di server github,


sedangkan Remote repository adalah repositori Git yang disimpan di server
gitlab.

Repositori lokal adalah repositori Git yang disimpan di server, sedangkan


Remote repository adalah repositori Git yang disimpan di komputer kita.
Keduanya sama saja.

Perkenalan
Rekayasa Perangkat Lunak
6 menit membaca
Tema WSL (sumber: chimerarevo.com )
Pada pembahasan materi terminal akan dibutuhkan Sistem Operasi berbasis
Linux. Tapi jangan khawatir, untuk pengguna Windows kita bisa install
WSL (Windows Subsystem for Linux) agar kita bisa
menggunakan terminal berbasis Linux meskipun menggunakan Sistem
Operasi Windows.
Apa itu WSL?
WSL adalah fitur opsional Windows yang memungkinkan program Linux
berjalan secara native di Windows. Hal yang dapat kita lakukan dengan
menggunakan WSL adalah:

 Memilih distribusi GNU/Linux dari Microsoft Store.


 berbicara command line tools yang umum seperti ls -la, touch, grepatau
perintah Linux lainnya.
 Berbatasan dengan aplikasi terminal base GNU/Linux termasuk tools text
editor : vimdan nano.
 Install package manager tambahan menggunakan distribusi GNU/Linux.

Apa itu WSL2?


WSL 2 adalah versi terbaru dari WSL yang bertujuan menambahkan
kompatibilitas sistem pemanggilan. Perbandingannya dengan WSL 1 dapat
kita lihat pada halaman resminya di docs.microsoft.com
Prasyarat
Untuk update ke WSL 2, kita harus menggunakan Windows 10 .

 Untuk sistem x64: Versi 1903 atau yang lebih baru, dengan Build 18362 atau
yang lebih baru.
 Untuk sistem ARM64: Versi 2004 atau yang lebih baru, dengan Build 19041
atau yang lebih baru.

atau menggunakan Windows 11 .


info: Build yang lebih rendah dari build 18362 tidak mendukung WSL 2.
Untuk memeriksa versi dan nomor build kita, tekan tombol logo Windows + R,
ketik winver, pilih OK.
Langkah demi Langkah Menginstal WSL
Untuk menginstall WSL secara simple , sebenarnya bisa
menggunakan command wsl --install . Namun di sini kita coba penginstalan
manual agar kita mengetahui apa saja yang harus diaktifkan untuk
menjalankan WSL.
 Langkah 1 - Diperkenalkan Windows Subsystem untuk Linux
Buka PowerShell sebagai Administrator (tekan Windows > ketik
"PowerShell"> klik kanan > pilih Run as administrator ) dan masukkan
perintah ini:
dism.exe /online /enable-feature /featurename:Microsoft-
Windows-Subsystem-Linux /all /norestart
 Langkah 2 - Ditampilkan fitur Mesin Virtual
Buka PowerShell sebagai Administrator dan jalankan:
dism.exe /online /enable-feature
/featurename:VirtualMachinePlatform /all /norestart
Restart komputer untuk menyelesaikan penginstalan dan pembaruan ke WSL
2.
 Langkah 3 - Unduh paket pembaruan kernel Linux
o Unduh paket terbaru : Paket pembaruan kernel WSL2 Linux untuk mesin x64
o Jalankan update package yang sudah di download. ( Double-click untuk run,
maka kita akan dimintai permissions , pilih 'yes' untuk menyetujui
penginstalan)
 Langkah 4 - Tetapkan WSL 2 sebagai versi default
Buka PowerShell dan jalankan perintah ini:
wsl --set-default-versi 2
 Langkah 5 - Instal distribusi Linux
o Buka Microsoft Store dan pilih distribusi Linux.
Toko Microsoft (sumber: docs.microsoft.com )
o Kita akan menginstal Ubuntu 22.04 LTS
o Dari halaman distribusi, klik tombol "Get".
Toko Ubuntu (sumber: docs.microsoft.com )
Pertama kali menjalankan distribusi Linux yang baru diinstal, kami akan
diminta untuk menunggu satu atau dua menit agar file mendekompres dan
disimpan di PC kita.
Kemudian kita perlu membuat username dan password untuk distribusi Linux.

Instalasi Ubuntu (sumber: docs.microsoft.com )


SELAMAT! Kamu berhasil menginstall WSL yang sepenuhnya terintegrasi
dengan sistem operasi Windows!
Cara menggunakan WSL 2
Pada distribusi Ubuntu yang baru diinstal, kita akan diterima
dengan terminal Linux! Coba jalankan beberapa perintah Linux:
 Melihat jalur posisi kita saat ini
[ pengguna@localhost ] $ pwd
/home/aditira/RG
 Pindah posisi folder:
[ pengguna@localhost ] $ cd GIT/repositori-git/
 Melihat daftar isi dari folder termasuk file tersembunyi
[ pengguna@localhost ] $ ls -la
drwxr-xr-x 3 aditira root 4096 18 Juli 15 :35 .
drwxr-xr-x 4 aditira root 4096 Jul 18 15 :13 ..
drwxr-xr-x 8 aditira aditira 4096 Jul 18 15 :37 .git
-rw-r--r-- 1 aditira aditira 13 Jul 18 14 :44 README.md
 Membuat file kosong bernamaindex.html
[ pengguna@localhost ] $ sentuh index.html
[ pengguna@localhost ] $ ls -la
drwxr-xr-x 3 aditira root 4096 18 Juli 15 :35 .
drwxr-xr-x 4 aditira root 4096 Jul 18 15 :13 ..
drwxr-xr-x 8 aditira aditira 4096 Jul 18 15 :37 .git
-rw-r--r-- 1 aditira aditira 13 Jul 18 14 :44 README.md
-rw-r--r-- 1 aditira aditira 13 Jul 18 14 :48 index.md
 Perbarui paket Linux
pembaruan apt sudo
Oke, sekarang kita siap mengikuti materi-materi selanjutnya. �

Dokumentasi
Rekayasa Perangkat Lunak
2 menit membaca
help
Jika kita tidak tahu cara menggunakan command tertentu, cukup
ketik command yang ingin kita ketahui di terminal dengan opsi -hatau --
helpsetelah spasi dan tekan enter . Maka dengan begitu kita akan
mendapatkan penggunaan lengkap dari perintah tersebut seperti yang
ditunjukkan di bawah ini.
man <command name>
mandigunakan ketika kita ingin mendapatkan user manual
page atau dokumentasi dari suatu command . Cukup tulis mandi terminal dan
setelah spasi tulis nama command yang rinciannya manual -nya kita mau dan
tekan enter . Misal kita ingin
mendapatkan dokumentasi dari command mkdir yang bisa kita jalankan man
mkdir. Command ini bekerja seperti yang ditampilkan di bawah ini.
tldr <command name>
Sering kali kita tidak perlu mengetahui secara mendalam
detail perintah tertentu. memperkaya kita hanya ingin tahu cara penggunaan
yang sering digunakan dan sample command parameter -nya. tldr bisa
membantu mempercepat itu.
Untuk menggunakan tldr, bisa mengikut dokumentasi instalasi
di https://tldr.sh/ .

Admin
Rekayasa Perangkat Lunak
3 menit membaca
Apa peran Administrasi?
Admin berdasarkan Cambridge Dictionary adalah kependekan dari
administrasi atau sebuah kegiatan yang terlibat dalam mengelola atau
mengatur bisnis atau organisasi lain. Di Linux sendiri, Administrator Linux
memiliki peran aktif dalam menambal, mengkompilasi, mengamankan, dan
mengatasi masalah Linux . Administrator Linux dapat melakukan pembaruan
sistem dan melakukan konfigurasi sistem.
Sudo
Perintah sudomemungkinkan kita untuk menjalankan program sebagai
pengguna lain, secara default pengguna root. Jika kita sering dan terbiasa
menggunakan command line , sudoadalah salah satu perintah yang akan
sering kita gunakan.
Gunakan akun sudolebih aman daripada root, karena kita dapat memberikan
hak administratif terbatas kepada pengguna individu tanpa mereka tahu kata
sandi root.
Package sudobiasanya sudah diinstal pada sebagian besar distribusi Linux.
Untuk memeriksa apakah package sudo terinstal pada sistem,
buka terminal Linux, kemudian ketik sudo, dan tekan Enter. Jika sudosudah
terinstall di sistem, maka terminal akan menampilkan output berupa pesan
bantuan singkat.
Jika belum terinstal, kita akan melihat output seperti sudo command not
found. Kita dapat dengan mudah
menginstal package sudo menggunakan distro package manager dengan
menjalankan perintah berikut.
apt install sudo
Cara menggunakan Perintah sudo
Sintaksis
Sintaks untuk perintah sudoadalah sebagai berikut:
PILIHAN sudo .. PERINTAH
Perintah sudomemiliki banyak opsi yang mengontrol perilaku -nya, tetapi
biasanya sudodigunakan dalam bentuk yang paling dasar , tanpa opsi apa
pun.
Untuk menggunakan sudo, cukup awali perintah dengan sudo:
perintah sudo
Di mana commandadalah perintah yang ingin kita lakukan dengan hak sudo.
sudoakan membaca file /etc/sudoersdan memeriksa apakah user yang
meminta hak sudo ada di file sudoers. Pertama kali kita menggunakan sudo,
kita akan diminta memasukkan kata sandi pengguna dan perintah itu akan
dieksekusi sebagai root.
Sebagai contoh, untuk mendaftar semua file di direktori /root, kita dapat
menggunakan perintah berikut :
sudo ls /root
[ sudo ] kata sandi untuk linuxid:
. .. .bashrc .cache .config .local .profile
Contoh sudo di Linux
Contoh penggunaan dasarsudo adalah ketika kita ingin
melakukan update package repository dengan menjalankan perintah di bawah
ini:
pembaruan apt-get
Kita akan melihat pesan kesalahan dikarenakan kita tidak memiliki izin yang
diperlukan untuk menjalankan perintah.
Sekarang kita akan mencoba kembali menjalankan perintah yang sama
dengan sudo:
sudo apt-get pembaruan
Masukkan kata sandi saat diminta dan sistem akan menjalankan perintah dan
memperbarui repositori paket .
Gudang
Rekayasa Perangkat Lunak
2 menit membaca
Repositori Jarak Jauh
Repositori lokal adalah repositori Git yang disimpan di komputer kita,
sedangkan Repositori jarak jauh adalah repositori Git yang disimpan
di server . Untuk pembelajaran kita sekarang, kita akan menaruh remote
repository kita di server Github.
Buat repositori di github
Kita dapat membuat remote repository baru di Github kita dengan cara:
Masuk ke halaman github.com dan klik ╋ drop-down menu di sudut kanan
atas, lalu pilih New repository
Kita akan diarahkan ke halaman Create a new repository , lalu isi informasi
yang diminta. Berikut adalah contohnya:
Jika sudah selesai klik tombol Create repository . Maka repositori Github kita
telah selesai dibuat dan siap digunakan untuk menyimpan proyek dan
berkolaborasi dengan tim kita.
Menghapus repositori
Kita dapat menghapus repositori dengan cara sebagai berikut:

1. Di github.com , arahkan ke halaman utama repositori.


2. e Settings .

Pengaturan tindakan repo ( docs.github.com )


3. Di bawah kategori Danger Zone , klik Delete this repository , dan isi
konfirmasi bahwa kamu ingin menghapus repositori tersebut.
Zona berbahaya ( docs.github.com )

Organisasi
Rekayasa Perangkat Lunak
3 menit membaca
Organisasi Github (sumber: repository-images.githubusercontent.com )
Apa itu organisasi di github?
Organisasi pada Github adalah akun bersama tempat bisnis dan proyek open
source berkolaborasi dengan banyak proyek
sekaligus. Pemilik dan Administrator dapat mengelola akses anggota ke data
dan organisasi dengan fitur keamanan dan administrasi yang canggih.
Setiap orang yang menggunakan GitHub bisa menggunakan akun pribadi
mereka untuk membuat organisasi. Berapapun jumlah akun pribadi yang
menjadi anggota akan dapat berkolaborasi dengan bergabung ke organisasi
akun yang sama. Organisasi ini meliputi:

 Keanggotaan tanpa batas dengan berbagai peran yang memberikan berbagai


tingkat akses ke organisasi dan datanya
 Kemampuan untuk memberi anggota berbagai izin akses ke repositori di
organisasi
 Membuat tim untuk mencerminkan struktur perusahaan atau grup dengan
izin akses yang berjenjang

Semua organisasi dapat memiliki repositori baik publik maupun privat dalam
jumlah yang tidak terbatas dan kita dapat menggunakan organisasi ini
secara gratis .
Buat organisasi di github
Cara membuat organisasi cukup mudah, kita bisa ikuti langkah-langkah
berikut ini:
1. Di pojok kanan atas halaman mana pun, klik foto profil, lalu klik Setting .
Pengaturan Akun
(sumber: docs.github.com )

2. Di bagian "Access" pada sidebar , klik Organizations .


3. Di bagian "Organisasi", klik Organisasi baru .

Tombol Org Baru (sumber: docs.github.com )


4. Ikuti petunjuk untuk membuat organisasi. Selengkapnya bisa dilihat pada link
berikut ini: " GitHub's products "
Mengakses setelan organisasi Anda
Pada halaman pengaturan akun di organisasi menyediakan beberapa cara
untuk mengelola akun, seperti penagihan , keanggotaan tim , dan pengaturan
repositori .
1. Di pojok kanan atas GitHub.com, klik foto profil, lalu klik Organisasi Anda .

Organisasi Anda (sumber: docs.github.com )


2. Di samping organisasi, klik Settings .
Tombol Pengaturan (sumber: docs.github.com )
Di sana terdapat beberapa informasi yang dapat ditambahkan untuk
Organisasi.

Autentikasi Github
Rekayasa Perangkat Lunak
5 menit membaca
Auth Github (sumber: gitguardian.com )
Untuk menjaga keamanan akun Github, kita harus mengautentikasi sebelum
kita dapat mengakses resource tertentu di Github. Github memiliki beberapa
mode otentikasi yang berbeda, yaitu:

 kunci SSH
 Token akses pribadi
 Nama pengguna dan kata sandi dengan autentikasi dua faktor

Di sini kita akan mengenal lebih jauh tentang otentikasi dengan kunci SSH
Kunci SSH
SSH (Secure Shell) adalah protokol transfer yang memungkinkan penggunanya
untuk mengontrol sebuah perangkat secara remote atau dari jarak jauh
melalui koneksi internet secara aman.
Jadi kita dapat terhubung ke Github untuk mengakses dan mengatur
repositori kita tanpa memberikan username dan personal access token di
setiap perintah Git yang dijalankan.
Hasilkan kunci SSH

1. Buka terminal Linux atau WSL untuk pengguna Windows.


2. Ikuti perintah di bawah ini:
> ssh-keygen -t ed25519 -C " [email protected] "
#PENTING: Ganti dengan email kamu
Membuat pasangan kunci algoritme publik/pribadi.
Masukkan file untuk menyimpan kunci (
/home/user/.ssh/id_ed25519 ) : # [Tekan enter]
Masukkan kata sandi ( kosongkan jika tidak ada kata sandi ) :
# [Ketikkan kata sandi]
Masukkan kata sandi yang sama lagi: # [Ketik kata sandi lagi]
Menambahkan kunci SSH Anda ke ssh-agent
ssh-agentadalah program yang mengelola SSH key dan
mengingat password kita. Jadi kita tidak perlu memasukkan
kembali password setiap kali menggunakan SSH key , caranya ikuti langkah-
langkah di bawah ini:
1. Buka terminal Linux atau WSL untuk pengguna Windows.
2. langkah-langkah Ikuti-langkah di bawah ini:
> eval " $( ssh-agent -s ) " # memastikan ssh-agent berjalan
Agen pid 59566
> ssh-add ~/.ssh/id_ed25519 # menambahkan kunci SSH kita ke
ssh-agent
Masukkan kata sandi untuk /home/user/.ssh/id_ed25519: # [Ketik
kata sandi kunci SSH]
Identitas ditambahkan: /home/user/.ssh/id_ed25519 (
[email protected] )
Tambahkan kunci SSH ke Github
Agar Github bisa menerima koneksi dari komputer kita, kita perlu
menambahkan SSH key yang di generate tadi ke akun Github.
1. Salin kunci publik SSH ke clipboard.
> clip < ~/.ssh/id_ed25519.pub # Salin content dari file
id_ed25519.pub file ke clipboard
Note : Jika cliptidak berfungsi, baca isi file -nya dengan perintah cat
~/.ssh/id_ed25519.publalu salin isi file tersebut.
2. Di pojok kanan atas halaman mana pun, klik foto profilmu, lalu klik Setting .
Pengaturan akun userbar
(sumber: docs.github.com )
3. Di bagian "Access" pada sidebar , klik � SSH and GPG keys .
4. Klik New SSH key atau Add SSH key .

Tambahkan kunci ssh (sumber: docs.github.com )


5. Di bidang " Judul ", tambahkan judul ke kunci baru. Judul ini dapat diisi
dengan nama perangkat Anda atau bantuan lain yang mudah untuk
dibedakan.
6. Paste key yang sudah di generate ke bidang " Key ".
Tempel kunci ssh (sumber: docs.github.com )
7. Klik Tambahkan kunci SSH .

Ssh add key (sumber: docs.github.com )


8. Jika diminta, konfirmasikan password Github-mu.
Munculan konfirmasi kata
sandi (sumber: docs.github.com )
Menguji koneksi SSH Anda
1. Buka terminal Linux atau WSL untuk pengguna Windows.
2. Masukkan perintah ini:
> ssh -T [email protected]
Kita mungkin akan melihat peringatan seperti ini:
Keaslian host 'github.com (IP ADDRESS)' tidak dapat dibuat.
Sidik jari kunci RSA adalah
SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Apakah Anda yakin ingin melanjutkan koneksi ( ya/tidak ) ?
3. Verifikasi bahwa key sudah benar lalu ketik yesdan tekan Enter
> Hai nama pengguna ! Anda berhasil mengautentikasi, tetapi
Github tidak
> menyediakan akses bash .
4. Test SSH kita telah berhasil jika menampilkan username -mu.

Dorongan
Rekayasa Perangkat Lunak
4 menit membaca
Ilustrasi tarik dorong (sumber: readthedocs.io )
Apa git pushdan git pull?
git pushadalah perintah untuk mengunggah semua commitdi cabang
lokal ke cabang jauh .
Sedangkan git pullperintah untuk mengambil seluruh commityang ada
di cabang jauh dan melakukan penggabungan pada setiap komit tersebut
dengan cabang lokal .
Secara default , git pushdan git pullhanya melakukan
operasi branchyang sedang digunakan. Jadi sebaiknya, gunakanlah
perintah git statusuntuk melihat di branchmana kita berada sebelum
melakukan git pushatau git pull.
Cara Penggunaangit push
Disarankan untuk menjalankan perintah git pullsebelum memulai
melakukan perubahan. Ini akan memperbarui cabang lokal kita dengan
semua commityang baru yang mungkin dilakukan oleh kontributor lain.
Perintah git pushyang umum digunakan adalah:
 Tekan ke remote dan branchtertentu
> git push < nama jarak jauh > < nama cabang >
Contoh:
> git push asal utama
Kita juga bisa memastikan setiap kali melakukan pushselalu mengarah
ke remote yang sama , dengan cara menjalankan perintah:
git push -u < nama jarak jauh > < nama cabang >
Sehingga setelah kita menjalankan git pushdengan opsi -u, kita cukup
menjalankan git pushtanpa harus memberikan nama remote dan branch-
nya lagi.
Contoh:
> git push -u asal utama
> git push # di sini kita tidak perlu memberikan nama remote
dan branch lagi
 Dorong semuabranch
> git push --all
Contoh penggunaangit push

Commit yang ada di remote repositori sebelum di-push


> git log --oneline
a144815 ( HEAD - > main ) docs: tambahkan catatan panduan
71efdaa ( Origin/main ) docs: tambahkan ide
Dokumen 5dfaf0b: tambahkan README.md
Kita lihat antara screenshot dan log di atas, ada satu commit yang belum ada
di remote ("docs: add guide notes").
Sekarang coba lakukan perintah git push.
> git push
> git log --oneline
a144815 ( HEAD - > main, origin/main ) docs: add guide notes #
sekarang commit ini sudah ada di remote repository
71efdaa docs: tambahkan ide
Dokumen 5dfaf0b: tambahkan README.md

Terlihat commitkita telah berhasil masuk pushke remote repositori.


Cara Penggunaangit pull
Perintahnya git pulladalah:
> git tarik
Contoh penggunaangit pull
Misalnya di komputer lain yang memiliki repositori yang sama, belum
mendapatkan update commit dengan message "docs: add guide notes" yang
sudah kita miliki pushsebelumnya.
> git log --oneline
71efdaa ( HEAD - > main, Origin/main ) docs: tambahkan ide
Dokumen 5dfaf0b: tambahkan README.md
Maka lakukanlah git pulluntuk mendapatkan update tersebut:
> git tarik
> git log --oneline
a144815 ( HEAD - > main, origin/main ) docs: tambahkan catatan
panduan
71efdaa docs: tambahkan ide
Dokumen 5dfaf0b: tambahkan README.md
Maka terlihat ada penambahan commitdengan message "docs: add guide
notes".
Jadi begitulah cara kita berkolaborasi menggunakan repositori jarak jauh .

Klon
Rekayasa Perangkat Lunak
2 menit membaca
Git clone (sumber: s3.ap-south-1.amazonaws.com )
Apa itu git clone?
Perintah git clonedigunakan untuk membuat pemulihan repositori tertentu
dari repositori jarak jauh ke komputer lokal kita.
Kloning akan menyalin seluruh repositori jarak jauh, termasuk semua
file, commitdan branch.
Cara Penggunaangit clone
Cara melakukan kloning adalah:
1. Di GitHub.com, arahkan ke halaman utama repositori yang akan di- cloning .
2. Di atas daftar file, klik ⤓ Code .

3. Pilih tab SSH untuk menyalin url repositori dan melakukan clone repositori
dengan protokol SSH:
4. Buka terminal Linux atau WSL pada Windows.
5. Ubah folder saat ini ke tempat kita akan menyimpan kloning .
6. Ketik git clone, lalu paste remote URL yang disalin sebelumnya dan
tekan Enter .
> git clone [email protected] :ruang-guru/playground.git
Mengkloning ke ` taman bermain` .. .
jarak jauh: Menghitung objek: 10 , selesai.
jarak jauh: Mengompresi objek: 100 % ( 8/8 ) , selesai.
hapus: Total 10 ( delta 1 ) , gunakan kembali 10 ( delta 1 )
Membongkar objek: 100 % ( 10 /10 ) , selesai.
7. Kita dapat melihat remote url yang di clone dengan perintah git remote -
v:
> git jarak jauh -v
asal [email protected] :ruang-guru/playground.git ( ambil )
origin [email protected] :ruang-guru/playground.git ( push )
8. Perhatikan bahwa sekarang kita memiliki clone repositori yang berada
di folder playground : bash > ls playground README.md frontend
introduction-to-programming ...
Sekarang kita dapat menggunakan repositori di komputer lokal dan
memodifikasinya sesuai kebutuhan.

Kolaborasi
Rekayasa Perangkat Lunak
7 menit membaca

Kolaborasi (sumber: miro.medium.com )


Model pengembangan kolaboratif dibagi menjadi 2 yaitu:
1. Fork and pull model : kita tidak perlu izin ke pemilik repositori untuk
melakukanpushdan mengubah diajukan dengan membuat pull
request dariforkke repositori aslinya.
2. Shared repository model : kolaborator diberikan aksespushke satu repositori
danbranchdibuat ketika perubahan perlu dilakukan, pull request dibuat
untuk meninjau perubahan yang telah dilakukan.
Aliran Git
Kolaborasi kompleks Git dan Github (sumber: livablesoftware.com )
Dengan berkolaborasi di Github, mengajak kita berdiskusi dengan orang lain
untuk setiap perubahan yang terjadi. Biasanya journey -nya sebagai berikut:

 Create a branch : membuat branchagar kita dapat melakukan perubahan


tanpa mengganggu flow dari main branch .
 Make changes : melakukan commitdan pushpada perubahan yang
dilakukan branchsampai siap untuk meminta feedback .
 Create a Pull Request : untuk meminta feedback dari kolaborator tentang
perubahan yang kita lakukan.
 Address review comments : reviewer membuat pertanyaan , komentar ,
dan saran atas perubahan yang dilakukan dan terus
melakukan commitdan pushsebagai tanggapan dari hasil review.
 Merge your Pull Request : setelah Pull Request disetujui ,
lakukanlah penambahan Pull Request yang kita buat.
 Delete your branch : menunjukkan bahwa pekerjaan di branchtelah selesai.

Tarik Permintaan
Ulasan Github (sumber: i0.wp.com )
PR (Pull Request) adalah pengajuan penambahan perubahan di Github. Saat
membuat PR, buatlah ringkasan perubahan dan isu yang akan ditransfer, bisa
menggunakan gambar, link, atau tabel.
Badan Humas (sumber: docs.github.com )
Kita juga dapat menambahkan komentar ke baris tertentu untuk menunjukkan
sesuatu kepada reviewer .

Komentar PR (sumber: docs.github.com )


Membuat permintaan tarik
 Kita dapat membuat PR (Pull Request) dengan mengikuti
dokumentasi: Membuat pull request .
 Kita juga bisa membuat PR forkdengan mengikuti dokumentasi: Creating a
Pull Request from a Fork .
Tinjauan Humas
Review circle (sumber: miro.medium.com )
Review adalah aktivitas untuk mengomentari perubahan yang diusulkan,
menyetujui perubahan, atau meminta perubahan sebelum PR digabungkan.

Review dengan komentar (sumber: docs.github.com )


Tinjau Status
Sebuah review memiliki tiga kemungkinan status , yaitu:
 Komentar : beri umpan balik tanpa menyetujui perubahan atau meminta
perubahan tambahan.
 Menyetujui : memberi umpan balik dan menyetujui penggabungan
perubahan yang diusulkan.
 Permintaan perubahan : memberi umpan balik yang harus ditangani
sebelum perubahan dapat digabungkan.

Status PR (sumber: ocs.github.com )


Kita dapat melihat semua review di tab Conversation timeline , dan kita dapat
melihat ulasan oleh kolaborator di kotak gabungan Pull Request .
Percakapan (sumber: docs.github.com )
Review di kotak gabungan (sumber: docs.github.com )
Menyelesaikan percakapan
Kita dapat menyelesaikan percakapan untuk menunjukkan bahwa file telah
selesai diubah , kita bisa mengklik Resolve conversation pada bar comment .
Tombol selesaikan percakapan (sumber: docs.github.com )
Seluruh percakapan akan diciutkan dan ditandai sebagai terurai, sehingga
lebih mudah untuk menemukan percakapan yang masih perlu ditangani.

Percakapan terselesaikan (sumber: docs.github.com )


Menemukan dan menavigasi percakapan
Kita dapat menemukan dan menavigasi ke semua percakapan menggunakan
menu Conversations yang ditampilkan pada tab Fileschanges .
Dari tampilan ini, kita dapat melihat percakapan mana yang belum
terselesaikan , terselesaikan , dan ketinggalan jaman . Ini memudahkan kita
untuk menemukan dan menyelesaikan percakapan.
Menu percakapan (sumber: docs.github.com )
Meminta peninjauan kembali
Kita dapat meminta review ulang setelah kita membuat perubahan. Caranya,
pada tab sidebar Conversation , klik (ikon) .

Untuk lebih detail bagaimana cara kita mengomentari PR kita bisa lihat di
dokumentasi: Commenting on a pull request .
Ulangan
1.
Apa itu Permintaan Tarik?

Pengajuan commit ke Github.

Pengajuan penghapusan repositori di Github.

Pengajuan pembuatan cabang di Github.

Pengajuan penambahan perubahan di Github.


2.
Apa itu menarik?

Perintah untuk menduplikasi remote repository.

Perintah untuk menghapus cabang jarak jauh.

Perintah untuk mengirim seluruh komit yang ada di cabang lokal ke remote.

Perintah untuk mengambil seluruh commit yang ada di remote branch.


3.
Ulasan apa itu?

Aktivitas untuk menyatakan perubahan yang diusulkan, menyetujui


perubahan, atau meminta perubahan sebelum PR digabungkan.

Aktivitas untuk memperbaiki kode yang rusak.

Aktivitas untuk membuat perubahan pada remote repository.

Aktivitas untuk melakukan coding bersama.


4.
Apa itu mendorong?
Perintah untuk mengunduh sebagian komit di cabang lokal ke cabang jauh.

Perintah untuk mengunduh semua komit di cabang lokal ke cabang jauh.

Perintah untuk mengunggah sebagian komit di cabang lokal ke cabang jauh.

Perintah untuk mengunggah semua komit di cabang lokal ke cabang jauh.


5.
Apa itu tiruan?

Perintah untuk mengambil seluruh commit yang ada di remote branch.

Digunakan untuk mengambil seluruh komit yang ada di cabang terpencil.

Digunakan untuk mengirim seluruh repositori yang ada di cabang lokal ke


remote.

Digunakan untuk membuat pemulihan repositori tertentu dari repositori jarak


jauh ke komputer lokal kita.
Kirim

IDE
Rekayasa Perangkat Lunak
4 menit membaca
Apa itu Lingkungan Pengembangan Terpadu (IDE)
Integrated Development Environment (IDE) adalah sebuah aplikasi yang
memfasilitasi kita dalam melakukan pengembangan aplikasi lain. IDE
dirancang untuk mencakup semua tugas pemrograman dalam satu
aplikasi. Salah satu manfaat utama IDE adalah mereka
menawarkan interface dengan berbagai macam tools yang
dibutuhkan developer , di antaranya:
 Code editor : Dirancang untuk menulis dan mengedit kode yang kita
miliki, editor ini dibedakan dari text editor karena berfungsi untuk memfasilitasi
atau meningkatkan proses penulisan dan pembuatan kode untuk developer .
 Compiler : Compiler berguna untuk mengubah source code yang ditulis dalam
bahasa yang dapat dibaca/ditulis manusia dalam bentuk yang dapat
dijalankan oleh komputer.
 Debugger : Debugger digunakan selama pengujian dan dapat
membantu developer men- debug program aplikasi mereka.
 Build automation tools : Build automation tools dapat membantu
mengotomatiskan tugas developer yang lebih umum untuk menghemat
waktu.

Sejarah IDE
Sebelum adanya IDE, programmer menulis program yang mereka buat di
sebuah editor teks . Hal ini mencakup dari mulai menulis dan menyimpan
aplikasi di editor teks sebelum akhirnya menjalankan Compiler ,
mencatat pesan error , dan kemudian kembali ke editor teks untuk
merevisi kode mereka.
Baru pada tahun 1983 Borland Ltd. memperoleh kompiler Pascal dan
menerbitkannya sebagai TurboPascal, yang
menampilkan editor dan kompiler terintegrasi untuk pertama kalinya.
TurboPascal mungkin telah melahirkan ide dari lingkungan pengembangan
terintegrasi , tetapi banyak yang percaya bahwa Microsoft Visual Basic (VB),
yang diluncurkan pada tahun 1991, sebenarnya adalah IDE pertama dalam
sejarah. Dibangun dalam bahasa BASIC yang dikenal lebih lama, Visual Basic
adalah bahasa pemrograman yang populer hingga tahun 1980-an. Munculnya
Visual Basic berarti bahwa pemrograman malah dapat dianggap dalam istilah
grafis , dan pentingnya produktivitas menjadi lebih jelas.
Manfaat Menggunakan IDE
Integrated Development Environment bekerja untuk meningkatkan
produktivitas pengembang . IDE ini meningkatkan produktivitas dengan
mempersingkat waktu setup , meningkatkan kecepatan tugas pengembangan ,
membuat developer selalu mengetahui bagaimana best practice dan
ancaman terbaru, dan menstandardisasi proses pengembangan .
 Pengaturan lebih cepat : Programmer perlu meluangkan waktu untuk
mengonfigurasi beberapa alat pengembangan tanpa antarmuka IDE . Dengan
integrasi IDE, programmer dapat memiliki rangkaian kemampuan yang sama
di satu tempat tanpa perlu berpindah alat terus-terusan .
 Tugas pengembangan yang lebih cepat : Melakukan integrasi tugas
pengembangan yang lebih berpengaruh terhadap peningkatan
produktivitas pengembang . Misalnya, developer dapat mengurai kode dan
melakukan pengecekan sintaks saat mengedit, yang memungkinkan
memberikan feedback dengan instan saat terjadi kesalahan
sintaks. Programmer tidak perlu lagi beralih antar aplikasi untuk
menyelesaikan tugas -nya. Selain itu, tool dan fitur IDE membantu
programmer mengatur resource , mencegah kesalahan, dan
mengimplementasikan shortcut .
 Pembelajaran berkelanjutan : Manfaat lain adalah kemampuan untuk
tetap up to date . Misalnya, topik bantuan IDE akan terus diperbarui secara
terus-menerus, juga dengan templat proyek dan banyak lagi. Developer yang
tetap mengikuti best practice kemungkinan besar akan menambah nilai bagi
tim dan perusahaan mereka, sehingga dapat meningkatkan produktivitas.
 Standardization : Hal ini juga mengatur proses development ,
membantu programmer bekerja sama dengan seamless .
Ulangan
1.
Berikut adalah fitur yang membedakan IDE dengan text editor biasa, kecuali

Memiliki fitur build automation tools.

Memiliki fitur compiler build-in.

Memiliki fitur load dan save file.

Memiliki fitur debugger build-in.


2.
Sebelum ada IDE, maka developer perlu melakukan hal-hal ini secara manual
diluar text editor, kecuali

Mencatat pesan error.

Membuka terminal.

Melakukan revisi kode mereka.

penyusun garis keras.


3.
Mengapa kita perlu menggunakan IDE ?
Sudah memiliki fitur unggulan auto save.

Sudah lengkap dengan warna warni yang menarik secara acak.

Sudah memiliki banyak tools dan fitur yang build-in untuk analisa algoritma
sehingga lebih cepat bekerja dengan kode.

Sudah memiliki banyak tools dan fitur yang built-in untuk software
development sehingga lebih cepat bekerja dengan kode.

Memulai dengan VSCode


Rekayasa Perangkat Lunak
6 menit membaca
VS Code adalah salah satu code editor yang ringan, powerful dan dapat
berjalan di berbagai macam sistem operasi seperti macOS, Linux, dan
Windows.
Instal VSCode
Linux Ubuntu
Cara termudah untuk menginstal Visual Studio Code untuk Debian/Ubuntu
adalah dengan mengunduh dan menginstal package .deb (64-bit) , baik
melalui graphical software center , atau melalui command line berikut ini:
sudo apt install ./ < file > .deb

# Jika kita menggunakan distribusi Linux yang lebih lama, kita


harus menjalankan perintah di bawah ini sebagai gantinya:
# sudo dpkg -i <file>.deb
# sudo apt-get install -f # Instal dependensi
Selain itu kita juga dapat melakukan instalasi menggunakan Snap
Store dengan cara:
sudo snap install --classic code # atau code-insiders
Perlu diperhatikan bahwa sebelumnya kita perlu melakukan instalasi Snap
Store terlebih dahulu jika belum tersedia.
macOS
Untuk melakukan instalasi pada macOS kita dapat mengikuti alur berikut:
1. Unduh Kode Visual Studio untuk macOS
2. Buka daftar download browser dan cari aplikasi atau archive yang di-
download .
3. Jika file dalam bentuk archive , ekstrak isi archive . Gunakan double-click untuk
beberapa browser atau pilih ikon 'kaca pembesar' dengan Safari.
4. Drag Visual Studio Code.app ke folder Aplikasi, sehingga membuatnya
tersedia di Launchpad macOS.

Windows
Untuk melakukan instalasi pada Windows kita dapat mengikuti alur berikut:

1. Unduh penginstal Visual Studio Code untuk Windows.


2. Setelah didownload, jalankan installer (VSCodeUserSetup-{version}.exe).
3. Secara default, VS Code diinstal di pada
path C:\Users\{Username}\AppData\Local\Programs\Microsoft
VS Code.

Untuk pengguna Windows, karena kedepannya kita akan sering


menggunakan command Linux dalam setiap pembelajaran. Jadi disarankan
agar kita menggunakan WSL sebagai terminal untuk menjalankan setiap baris
perintah Linux pada VSCode. Caranya dengan menginstal extension Remote
Development pada VSCode:

1. Arahkan kursor ke menu di paling kanan dari jendela VSCode


2. Pilih menu Extensions (Ctrl+Shift+x)
3. Pada input pencarian, ketik "Remote Development" lalu pilih Extention teratas
dari hasil pencarian
4. Klik tombol Instal
Untuk melihat bagaimana cara menggunakannya kita
bisa menjelajahi dokumentasi Berkembang di WSL
Antarmuka pengguna
Seperti banyak code editor lainnya, VS Code mengadopsi user interface yang
umumnya digunakan dan layout dari explorer terdapat di sebelah kiri, yang
mana akan menampilkan semua file dan folder yang dapat diakses, dan editor
di sebelah kanan yang akan menampilkan konten file yang telah dibuka.
Tata Letak Dasar
VS Code hadir dengan layout sederhana dan intuitif, memaksimalkan ruang
yang disediakan untuk editor sambil menyisakan banyak ruang untuk
menelusuri dan mengakses folder atau proyek konteks lengkap yang dimiliki.
UI VS Code dibagi menjadi lima area:

 Editor
o Area utama untuk mengedit file yang dimiliki. Kita dapat
membuka editor sebanyak yang kita suka secara berdampingan secara vertikal
dan horizontal.
 Bilah Samping
o Berisi tampilan berbeda seperti Explorer untuk membantu kita saat
mengerjakan proyek.
 Status bar
o Informasi tentang proyek yang dibuka dan file yang kita edit.
 Bilah Aktivitas
o menampilkan di sisi paling kiri, bilah aktivitas memungkinkan untuk beralih di
antara tampilan dan memberi tambahan indikator khusus konteks , seperti
jumlah perubahan keluar saat Git diaktifkan.
 Panel
o kita dapat menampilkan panel yang berbeda di bawah
wilayah editor untuk output atau informasi debug , error dan warnings ,
atau terminal terintegrasi . Panel juga dapat dipindahkan ke kanan untuk
ruang yang lebih vertikal.

Setiap kali kita memulai VS Code, VS Code terbuka dalam kondisi yang sama
seperti saat terakhir kali kita menutupnya. Folder , layout , dan file yang dibuka
akan dipertahankan.
File yang terbuka di setiap editor ditampilkan dengan tab header (Tab) di
bagian atas wilayah editor .
Pengeditan berdampingan
Kita dapat membuka editor sebanyak yang kita suka secara berdampingan,
baik secara vertikal maupun horizontal. Jika kita sudah membuka satu editor ,
ada beberapa cara untuk membuka editor lain di samping editor yang sudah
ada:

 Altklik pada file di Explorer.


 Ctrl+\untuk membagi editor aktif menjadi dua.
 Buka ke Sisi ( Ctrl+Enter) dari menu konteks Explorer pada file.
 Klik tombol Split Editor di kanan atas editor .
 Drag and drop file ke sisi mana pun dari wilayah editor .
 Ctrl+Enter(macOS: Cmd+Enter) dalam daftar file Buka Cepat ( Ctrl+P).
Peta mini
Minimap memberi kita ikhtisar tingkat tinggi tentang kode sumber yang kita
miliki, yang berguna untuk navigasi cepat dan pemahaman
kode. File minimap ditampilkan di sisi kanan editor . kita dapat mengklik atau
menyeret area yang diarsir untuk melompat dengan cepat ke berbagai
bagian file kita.

Pengeditan Dasar
Rekayasa Perangkat Lunak
3 menit membaca
Pengeditan Multi Kursor
VS Code mendukung banyak kursor untuk pengeditan cepat secara
bersamaan . Kita dapat menambahkan kursor sekunder
dengan Alt+Click. Cara umum untuk menambahkan beberapa
kursor adalah dengan Shift+Alt+Downatau Shift+Alt+Upmenyisipkan
kursor di bawah atau di atas.

Ctrl+Dmemilih kata yang sama pada kursor.

Pindah Baris Atas / Bawah


Pada VS Code jika kita meletakan kursor pada sebuah baris code kita dapat
memindahkan baris tersebut ke bagian atas atau bawah dengan Shift +
Alt + ↑atau Shift + Alt + ↓.

Salin Baris Atas / Bawah


Selain memindahkan kursor baris, kita juga dapat menyalin baris yang
diinginkan. Jika kita ingin menyalin baris ke baris di atasnya, tekan Shift +
Alt + ↑. Jika kita ingin menyalin baris ke baris di bawahnya, tekanShift +
Alt + ↓

Beralih Komentar
Kita akan menggunakan fitur ini terutama jika kita ingin
melakukan Commenting-out code atau untuk menambahkan informasi ke
program kita yang akan membantu diri kita dan rekan kerja kita untuk
memahami proses apa yang dilakukan pada sebuah baris kode . Pertama,
tempatkan kursor di tempat kita ingin menambahkan komentar. Kemudian,
gunakan shortcut Ctrl + /.

Kita juga dapat melakukan Commenting-out code lebih dari 1 baris dengan
memilih beberapa baris kode yang ingin di comment kemudian tekan Ctrl +
Shift + A.

 Pergi:
 Js:

Cari dan Ganti


VS Code memungkinkan kita menemukan teks dan menggantinya dengan
cepat di file yang sedang kita buka. kita dapat menekan Ctrl+Funtuk
membuka Find Widget di editor, hasil pencarian akan di highlight di
editor, overview ruler dan minimap . Jika ada lebih dari satu hasil yang cocok
dalam file yang dibuka saat ini, kita dapat
menekan Enterdan Shift+Entermenavigasi ke hasil berikutnya atau
sebelumnya.
Kita juga dapat melakukan Search and Replace di seluruh file . Perluas widget
Pencarian untuk menampilkan Ganti kotak teks .

Saat kita mengetik teks ke dalam Replace text box , kita akan melihat tampilan
yang berbeda dari perubahan yang tertunda . Kita dapat mengganti
semua file dari Replace text box , ganti semua dalam satu file , atau ganti satu
perubahan.
Palet Perintah
Rekayasa Perangkat Lunak
3 menit membaca
Perintah memicu serangkaian tindakan dalam VS Code. Jika kita pernah
mengonfigurasi suatu keybinding , maka bisa dibilang kita telah menggunakan
sebuah command . Perintah juga digunakan oleh ekstensi untuk mengekspos
fungsionalitas kepada pengguna, mengikat aksi di UI VS Code, dan
mengimplementasikan logika internal . Terdapat beberapa perintah yang biasa
digunakan dan dapat meningkatkan produktivitas kita sebagai programmer .
Tampilkan Semua Perintah
Dengan bantuan command palette , kita dapat menampilkan
seluruh perintah dan mengakses perintah kita sesuai dengan konteks kita saat
ini. Kita hanya perlu mengetikkan kata
kunci yang berhubungan dengan perintah dan menemukannya. Di sini, kita
juga dapat menemukan kata kunci yang relevan dengan setiap perintah .
Terdapat 2 cara dalam mengakses seluruh perintah . Yang pertama yaitu
dengan menggunakan Help > Show All Commands.

Atau kita juga dapat menggunakan shortcut Ctrl + Shift + P , jika


di keyboard mac menggunakan shortcut Command + Shift + P
Hapus Riwayat Palet Perintah
Kita dapat menggunakan command palette untuk menghapus command
palette history dengan mengikuti petunjuk di bawah ini:

1. Buka VS Code dan tekan Ctrl + Shift + Puntuk membuka command


palette .
2. Ketik "clear" dan pilih Clear Command History . Maka dengan
begitu command palette history yang kita miliki sekarang kosong.

Ubah Pengaturan Riwayat Palet Perintah


Kode VS memungkinkan kita untuk membatasi berapa banyak perintah
terbaru yang akan disimpan atau dinonaktifkan.

1. Buka VS Code dan tekan Ctrl + Shift + Puntuk membuka command


palette .
2. Ketik "settings" dan pilih Preferences: Open Settings (UI).
3. Cari "palet". Setelah melihat Workbench > Command Palette: History , kita
dapat mengaturnya ke angka lain dari command history yang ingin VS Code
simpan. Atau, dapat mengatur nilai ke 0 untuk menonaktifkan Command
Palette History .

4. Kita juga dapat mencentang kotak Workbench > Command Palette:


Preserve Input pada pengaturan untuk mengisi command palette dengan
perintah yang terakhir digunakan. Fitur ini sangat menghemat waktu,
terutama ketika kita harus menggunakan satu perintah secara berulang-ulang.

Navigasi File/Folder
Rekayasa Perangkat Lunak
3 menit membaca
Perkenalan
Sangat bagus untuk kita dapat melakukan navigasi antar file saat melakukan
eksplorasi pada sebuah proyek yang sedang dikerjakan. Terkadang kita perlu
berpindah antar satu file/folder ke file/folder lain dengan cepat di antara
kumpulan file/folder . Selain berkemampuan dengan
menggunakan explorer, kita juga bisa navigatedengan shortcut sehingga
kita bisa navigasi file/folder hanya menggunakan keyboard .
Navigasi File
VS Code menyediakan dua perintah untuk kita dapat melakukan navigasi di
dalam dan di seluruh file dengan key binding yang mudah
digunakan. Tahan Ctrldan tekan Tabuntuk melihat daftar semua file yang
terbuka di grup editor . Untuk membuka salah satu file ini, gunakan Tablagi
untuk memilih file yang ingin kita navigasikan, lalu lepaskan Ctrluntuk
membukanya.

Kita dapat menggunakan Ctrl + Alt + -dan Ctrl + Shift + -untuk


bernavigasi di antara file dan mengedit lokasi. Jika kita melompat di antara
baris yang berbeda dari file yang sama, pintasan ini memungkinkan kita
menavigasi di antara lokasi tersebut dengan mudah.
Tepung roti
Editor memiliki bar navigasi yang disebut Breadcrumbs . Ini menunjukkan
lokasi saat ini dan memungkinkan kita dapat dengan cepat melakukan
navigasi antara folder , file , dan simbol.
Memilih Breadcrumbs pada path akan menampilkan dropdown sehingga kita
dapat dengan cepat menavigasi ke folder dan file lain.
Kita dapat mematikan Breadcrumbs melalui toggle View > Show
Breadcrumbs atau dengan pengaturanbreadcrumbs.enabled
Navigasi keyboard remah roti
Untuk berinteraksi dengan Breadcrumb , gunakan perintah Focus
Breadcrumbs atau tekan Ctrl + Shift + ..
Kita juga dapat berinteraksi dengan dropdown Breadcrumb . Tekan untuk
memfokuskan elemen terakhir, gunakan dan untuk navigasi, dan
gunakan untuk membuka elemen di editor .Ctrl + Shift +
;LeftRightSpasi
Pergi ke Definisi
Jika kita menekan Ctrldan mengarahkan kursor ke simbol,
deklarasi pratinjau akan muncul:
Tip: Kita juga dapat melompat ke definisi dengan Ctrl + Klikatau
membuka definisi ke samping dengan Ctrl + Alt + Klik.
Pergi ke Simbol
Kita dapat menavigasi simbol di dalam file dengan Ctrl + Shift +
O. Dengan mengetik :simbol akan dinilai berdasarkan
kategori. Tekan Upatau Downdan arahkan ke tempat yang kita inginkan.

Buka simbol dengan nama


Beberapa bahasa mendukung jumping ke simbol di seluruh file dengan Ctrl
+ T. Ketik huruf pertama dari jenis yang ingin kita navigasikan, terlepas
dari file mana yang memuatnya, dan tekan Enter.
Pengikatan tombol dan Pintasan
Rekayasa Perangkat Lunak
7 menit membaca
Ikatan Kunci
VS Code menyediakan pengalaman mengedit keyboard shortcuts yang mudah
menggunakan keyboard shortcuts editor . Di sini terdapat semua perintah yang
tersedia dengan dan tanpa kata kunci dan kita dapat dengan mudah
mengubah / menghapus / mengatur ulang kata kunci mereka
menggunakan tindakan yang tersedia. kita dapat membuka editor ini dengan
masuk ke menu File > Preferences > Keyboard Shortcuts.
Atau dengan menggunakan shortcut Ctrl + K dilanjutkan dengan Ctrl +
S.
Cari Pengikatan Kunci dengan Perintah
Ketika kita ingin mengubah/menghapus/mengatur ulang keyword pada
halaman editor terkadang kita mengalami kesulitan untuk
menemukan command nama yang kita cari, pada bagian ini terdapat search
box di bagian atas yang membantu kita menemukan command atau keyword .
Ubah Pengikatan Kunci
Semua shortcut keyboard di VS Code dapat dikonfigurasi. Untuk
mengonfigurasi shortcut keyboard seperti yang kita inginkan, buka menu di
bawah File > Preferences > Keyboard Shortcuts. Ini akan
membuka shortcuts Keyboard Default lalu kita
bisa mengarahkan shortcuts yang ingin kita ganti dan akan muncul ikon
"pensil" di sisi sebelah kiri, jika kita klik ikon tersebut maka akan
memunculkan pop-up untuk kita mengganti shortcuts dan untuk menyimpan
kita bisa menekan Enter .
Konflik Pengikatan Kunci
Jika kita memiliki banyak ekstensi yang terpasang atau kita telah
menyesuaikan pintasan keyboard kita, terkadang kita dapat mengalami konflik,
di mana pintasan keyboard yang sama di map ke beberapa perintah. Hal ini
dapat mengakibatkan perilaku yang membingungkan , terutama
jika keybinding yang berbeda masuk dan keluar dari scope saat kita
menggunakan editor . Editor Keyboard Shortcuts memiliki perintah context
menu Show Same Keybindings , yang akan mem-
filter keybindings berdasarkan shortcut keyboarduntuk menampilkan konflik.
Apa itu jalan pintas?
Shortcut adalah fitur yang disediakan oleh komputer/program kepada
pengguna dengan memberikan cara cepat untuk mengurangi proses atau
langkah-langkah dalam suatu tugas. VS Code sendiri manawarkan kemudah
tersebut dengan memberikan banyak opsi shortcut yang dapat kita gunakan.
Shortcut yang sering digunakan
Buka Cepat
Dengan bantuan shortcut Ctrl + P di Windows atau Cmd + Pdi MacOS,
kita dapat membuka file dengan cepat. Kita hanya perlu menggunakan panah
bawah dan atas pada keyboard kita untuk menemukan file yang perlu kita
buka. Ketika kita menemukannya, tekan tombol panah kanan. Actions ini akan
membantu kita membuka file yang dipilih, yang akan berada
di background sementara kita dapat terus membuka file baru.

Buka Jendela Baru


Saat menulis kode, mungkin akan ada momen di mana kita perlu membuka
kode dari proyek yang berbeda. Untuk memudahkan hal tersebut kita dapat
menggunakan shortcut Ctrl + Shift + N pada Windows atau Cmd +
Shift + Npada MacOS.
Tutup jendela
Untuk menutup window yang sedang dibuka kita dapat
menggunakan shortcut Ctrl + Shift + W pada Windows atau Cmd +
Shift + Wpada MacOS. Cara ini dapat membantu kita lebih cepat
menutup window yang sedang dibuka tanpa perlu mengarahkan kursor ke
tombol close di pojok atas.
Alihkan Bilah Samping
Terkadang saat menulis kode, kita ingin menggunakan bagian text
editor dengan tampilan yang lebih luas tanpa terganggu oleh bagian lain
seperti bagian sidebar . Untuk menyembunyikan atau menampilkan side
bar dengan cepat, kita dapat menggunakan shortcut Ctrl + B di Windows
atau Cmd + Bdi MacOS.
Alihkan Terminal
Jika kita ingin membuka terminal untuk menjalankan
suatu perintah di terminal , kita bisa menggukan shortcut Ctrl + ` pada
Windows atau Cmd + ` pada MacOS untuk membuka terminal secara cepat.
Perbesar
Seringkali ketika membuka VS Code, tampilan yang diberikan terlalu kecil dan
membuat kita kesulitan untuk membaca kode yang kita buat. Untuk
memperbesar tampilan dari VS Code dengan melakukan zoom in kita dapat
menggunakan shortcut Ctrl + + di Windows atau Cmd + +di MacOS.
Perkecil
Untuk memperkecil atau memperkecil tampilan yang ditampilkan kita dapat
menggunakan shortcut Ctrl + - di Windows atau Cmd + -di MacOS,
dengan begitu tampilan yang terlihat akan menjadi lebih kecil.
Tampilkan Referensi
Selama dalam proses development , terkadang kita perlu memeriksa kode lain
yang berhubungan, namun perlu lebih ringkas dengan cara tidak
membuka file baru. Di sini, kita dapat menggunakan peeked editors dan pergi
ke referensi melalui shortcut Shift + F12 . kita dapat dengan cepat
memeriksa berbagai referensi dan memodifikasinya melalui shortcut ini saja.
Tata letak editor kisi
Secara default, grup editor diletakkan di kolom vertikal (misalnya saat kita
membagi editor untuk membukanya ke samping). kita dapat dengan mudah
mengatur grup editor dalam layout apa pun yang kita suka, baik secara
vertikal maupun horizontal:
Terdapat beberapa set layout editor yang telah ditentukan sebelumnya di
menu View > Editor Layouts :
Berikut adalah beberapa shortcut keyboard yang berguna untuk melakukan
navigasi dengan cepat antara editor dan grup editor .

 Ctrl+PageDownpergi ke editor di sebelah kanan.


 Ctrl+PageUppergi ke editor di sebelah kiri.
 Ctrl+Tabmembuka editor sebelumnya di daftar MRU grup editor .
 Ctrl+1pergi ke grup editor paling kiri.
 Ctrl+2pergi ke grup editor tengah.
 Ctrl+3pergi ke grup editor paling kanan.
 Ctrl+Wtutup editor aktif.
 Ctrl+K Wtutup semua editor di grup editor .
 Ctrl+K Ctrl+Wtutup semua editor .

Mengelola terminal
Rekayasa Perangkat Lunak
2 menit membaca
VS Code menyertakan terminal yang terintegrasi dan berfitur lengkap yang
mudah digunakan pada root workspace kita. Fitur terminal ini terintegrasi
dengan editor untuk mendukung fitur seperti link dan error detection .

Cara menjalankan editor kode terminal di


Terminal tab UI berada di sisi kanan
tampilan terminal . Setiap terminal memiliki entri dengan name , icon , color ,
dan group decoration (jika ada).
Buka terminal baru
Terdapat beberapa cara untuk kita bisa membuka terminal yang terdapat
pada VS Code, di antaranya:

 Gunakan shortcut keyboard Ctrl + ` dengan karakter backtic .


 Gunakan perintah menu View > Terminal .
 Dari Command Palette ( Ctrl+Shift+P), perintah View: Gunakan Toggle
Terminal .
 Kita dapat membuat terminal baru melalui
menu Terminal dengan Terminal > Terminal Baru .
Terminal terpisah
Kita dapat melakukan split terminal dengan cara:

 Saat mengarahkan kursor, pilih tombol pemisah sebaris.


 Klik menu konteks kanan dan pilih opsi menu Split .
 Altklik pada tab, tombol "+".
 Memicu perintah Ctrl + Shift + 5 .

Tutup terminal
Untuk menghapus terminal dengan cara berikut:

 Mengarahkan tab dan memilih tombol Trash Can .


 Memilih tab item dan menekan Hapus
 Menggunakan Terminal: Bunuh Instance Terminal Aktif
 Melalui menu konteks klik kanan.
Cuplikan dalam Kode Visual Studio
Rekayasa Perangkat Lunak
4 menit membaca
Apa itu Cuplikan?

Code snippets adalah template yang memudahkan untuk memasukkan pola


kode secara berulang, sepertiloopatauconditional-
statements. Dengan snippet , kita dapat membuat file boilerplate , dan
menyisipkan blok teks yang biasa kita gunakan secara cepat.
Cara menggunakan cuplikan dalam kode VS
Di VS Code ada banyak snippet yang sudah di implement secara default dan
bisa langsung digunakan. VS Code juga memungkinkan kita
membuat snippet versi kita sendiri yang akan bisa kita gunakan di
semua project , atau membuat snippet yang hanya bisa digunakan
untuk project tertentu serta dapat diakses oleh semua tim project , atau
mengimpor snippet dari ekstensi.
Buka terminal baru
Terdapat beberapa cara untuk kita bisa membuka terminal yang terdapat
pada VS Code, di antaranya:bahasa pemrograman , bahasa scripting ,
ataupun bahasa markup seperti: JavaScript, TypeScript, Markdown, HTML dan
PHP.
Kita dapat melihat list snippet yang tersedia untuk suatu bahasa dengan
menjalankan perintah Insert Snippet di Command Palette . Output -nya akan
ditampilkan list snippet untuk bahasa dari file yang sedang dibuka saat ini.
Namun perlu diingat bahwa daftar ini juga menyertakan snippet yang telah
kita tentukan , dan snippet apa pun yang disediakan oleh ekstensi yang telah
kita pasang.
Instal cuplikan dari Marketplace
Banyak extension di VS Code Marketplace yang merupakan kumpulan
dari snippets . Kita dapat menelusuri extensions yang berisi snippets di
tampilan extensions ( Ctrl+Shift+X)
menggunakan filter @category:"snippets" .

Jika kita menemukan ekstensi yang ingin kita gunakan, instal , lalu mulai
ulang VS Code dan cuplikan baru akan tersedia.
Buat cuplikan Anda sendiri
Kita dapat dengan mudah membuat snippet versi kita sendiri. Untuk membuat
atau mengedit snippets kita sendiri, pilih User Snippets pada
menu File > Preferences , lalu pilih bahasa (berdasarkan pengenal bahasa)
yang akan menampilkan snippets , atau opsi New Global Snippets file jika
kita ingin snippets tersebut muncul untuk semua bahasa.
File snippets ditulis dalam JSON, mendukung C-style comments, dan dapat
men- define jumlah snippets yang tidak terbatas. Snippets mendukung
sebagian besar TextMate syntax untuk behavior yang dinamis,
memformat whitespace berdasarkan insertion context , dan memungkinkan
pengeditan multiline yang mudah. Sintaks TextMate sendiri yaitu format daftar
properti dalam bentuk XML di mana ekstensi file -nya adalah .tmLanguage.
Di bawah ini adalah contoh for cuplikan loop untuk JavaScript:
// dalam file 'Kode/Pengguna/cuplikan/javascript.json'
{
"Untuk Putaran" : {
"awalan" : [ "untuk" , "untuk-const" ] ,
"body" : [ "untuk (const ${2:element} dari ${1:array}) {"
, "\t$0" , "}" ] ,
"dekripsi" : "Sebuah untuk loop."
}
}
Berikut di bawah ini penjelasan dari snippet di atas:

 "For Loop" adalah nama dari snippet yang kita buat.


 prefixmendefinisikan satu atau beberapa kata yang me- trigger yang akan
menampilkan snippet di IntelliSense. Substring matching dilakukan
pada prefixes , jadi dalam kasus ini, "fc" bisa cocok dengan "for-const".
 bodyadalah satu atau lebih baris dari sebuah konten, yang akan digabungkan
menjadi beberapa baris saat disisipkan. Baris baru dan tab yang disematkan
akan diformat sesuai dengan konteks penyisipan snippet .
 descriptionadalah opsional deskripsi dari snippet yang ditampilkan oleh
IntelliSense.

Menggunakan Kontrol Versi dalam Kode VS


Rekayasa Perangkat Lunak
3 menit membaca
Perkenalan
VS Code memiliki Source Control Management (SCM) yang sudah terintegrasi
dan menyertakan dukungan Git yang siap kita pakai. Misalnya, kita dapat
membuka beberapa repositori Git dan bekerja di seluruh proyek yang kita
miliki.
Untuk mengaktifkan tampilan Source Control Management, pilih menu
tambahan pada tampilan Source Control ( Ctrl+Shift+G), arahkan kursor
ke Views , dan pastikan Repositori Source Control di tandai dengan tanda
centang.
Tampilan Source Control Providers menampilkan provider dan repositori
yang terdeteksi, dan kita dapat mengatur tampilan perubahan kita dengan
memilih provider tertentu.
Ikon Source Control di Activity Bar di sebelah kiri juga akan selalu
menunjukkan tentang berapa banyak perubahan yang kita miliki saat ini di
repositori kita. Memilih ikon akan menunjukkan detail perubahan repositori
kita saat ini: CHANGES , STAGED CHANGES dan MERGE CHANGES .
Kita juga dapat menemukan indikator status repositori kita di sudut kiri bawah
VS Code: current branch , dirty indicator , dan jumlah dari incoming dan
outgoing commits . kita dapat checkout branch mana pun di repositori kita
dengan mengklik indikator status itu dan memilih referensi Git dari daftar.
Cara Penggunaan
Menambahkan
Pertama-tama, klik Source Control di menu sidebar, atau bisa
menggunakan shortcut Ctrl + shift + G . Tambahkan file yang baru saja
kita ubah dengan mengklik "+".

Melakukan
Pada text box tulis di pesan commit kita. Kemudian klik tanda centang. Di Git
sendiri, hal ini sama dengan git commit -m"Updated project links".

Dorongan
Untuk melakukan push dari file yang sudah di commit, klik icon More
Options , lalu pilih “Pu ”.
Menarik
Untuk memperbarui data pada file proyek yang kita miliki, kita bisa
melakukan pull dari remote repository project , dengan cara klik icon More
Options , lalu pilih “Pu ”.
Terpencil
Agar kita dapat terintegrasi dengan remote repository ,kita perlu
mendaftarkan remote repository tersebut ke local Git. VS Code memberikan
kemudahan dengan memberikan fitur tersebut.
Untuk menambahkan remote Git klik icon More Options , pilih “Re e” lalu
pilih “Add Re e”. Setelah itu maka akan muncul pop-up di mana kita bisa
memasukan url dari repository.
Perkenalan
Rekayasa Perangkat Lunak
2 menit membaca
Apa ekstensi dalam vscode?
VS Code secara default sebenarnya sudah memiliki fitur yang sangat lengkap
dan siap digunakan untuk mengembangkan aplikasi, baik web
maupun platform yang lain. Akan tetapi, setiap orang memiliki gaya dan
kebiasaan tersendiri sehingga kadang-kadang semua itu belum cukup.
Maka hadirlah extension-extension yang spesifik untuk memenuhi kebutuhan
tersebut. Mulai dari sekedar untuk memperindah, mengingatkan hal-hal yang
repetitif sampai dengan spesifik untuk framework tertentu.
Extension merupakan kumpulan plugin yang dapat diinstal ke editor teks
untuk membuatnya lebih powerfull . Ekstensi VS Code memungkinkan kita
menambahkan languages , debugger , dan tools ke instalasi kita untuk
mendukung development workflow kita. Kita dapat membuka Extension
dengan tekan cmd + shift + X(macOS) atau ctrl + shift +
x(Windows) atau kita juga dapat membukanya melalui sidebar dengan klik
ikon di bawah ini

Perpanjangan Pasar
Extension Marketplace merupakan sebuah tempat di mana kita dapat mencari
berbagai macam plugin yang kita butuhkan untuk membantu kita dalam
proses development . Terdapat berbagai macam pluginyang tersedia mulai
dari formaters, debugger, theme, snippetshingga language
packsyang dapat kita instal ke dalam VS Code.
Cara pasangnya cukup mudah, kita hanya perlu klik tombol installdari
salah satu extension yang mau dipasang. Anti, jika ingin menghapus cukup
klik tombol uninstall. Pastikan selalu mengecek update versi dari ekstensi
yang sudah dipasang agar tidak terjadi error dan gangguan lainnya.
Ekstensi vscode yang paling umum digunakan
Rekayasa Perangkat Lunak
6 menit membaca
Seperti yang kita ketahui bahwa VS Code memiliki marketplace -nya
sendiri. Ada beberapa ekstensi yang sering digunakan dan disarankan untuk
menginstal demi membantu proses pembelajaran kedepannya. Berikut
beberapa ekstensinya, antara lain :
Lensa Git

GitLens adalah sebuah ektensi pada VS Code yang dapat kita gunakan untuk
visualisasi dan melihat history /riwayat git commit pada kode dalam sebuah
proyek. Keuntungan jika menggunakan GitLens akan memudahkan kita dan
tim untuk melihat siapa yang merubah kode setiap baris dalam proyek, misal
kita menemukan bug , kita dan tim akan segera bisa menangani dan
memperbaiki bug yang ada karena ter tracking dengan jelas siapa yang
terakhir mengubah kode tersebut.

Sejarah Git
Menggunakan Git History kita dapat mengakses git log dengan grafik dan
detail. Seperti namanya, kita dapat melihat dan mencari sejarah dan kita juga
dapat membandingkan cabang , komit , dan file di seluruh komit bersama
dengan banyak fitur lain.
Lebih cantik

Dengan extension ini, kita dapat merapikan kode secara cepat tanpa perlu
diubah satu per satu. Prettier akan merapikan kode kita berdasarkan
pengaturan default -nya atau kita dapat mengatur sendiri panjang baris
maksimal atau membungkus kode bila perlu. Extension ini mendukung bahasa
pemrograman JavaScript, TypeScript, Flow, JSX, JSON, CSS, SCSS, Less, HTML,
Vue, Angular, GraphQL, Markdown, dan YAML.

Klien REST
REST Client memiliki nama yang paling jelas untuk tool dan deskripsi pasar VS
Code meringkas persis apa yang dilakukannya: "REST Client memungkinkan
kita untuk mengirim permintaan HTTP dan melihat respons dalam Visual
Studio Code secara langsung." Sesederhana itu, pada dasarnya, REST Client
adalah HTTP tools yang ada di dalam VS Code.
Server Langsung

Live Server adalah salah satu plugin di VS Code yang dapat digunakan untuk
melihat secara langsung hasil dari halaman HTML selama kita
melakukan development .
Ekstensi satu ini memungkinkan kita untuk melakukan live reload aplikasi pada
saat proses development . Ketika kita melakukan perubahan pada IDE maka
secara otomatis kita bisa melihat perubahannya tanpa perlu
melakukan reload manual.

Bagikan Langsung
Apa itu berbagi langsung?
Live share adalah plugin di dalam VS Code yang memungkinkan kita membuat
suatu proyek ramai-ramai di VS Code. Misal kita mengalami sedikit masalah
dengan kode yang sedang kita buat dan membutuhkan bantuan dari rekan
satu tim untuk membantu kita menyelesaikan masalah yang dihadapi
langsung pada VS Code kita secara online .
Mengapa kita perlu berbagi langsung?
Ekstensi VSCode Live Share memungkinkan kita dan orang lain
mengedit file yang sama, men-debug aplikasi yang sama, dan bahkan
menjalankan perintah di konsol yang sama secara bersamaan.
Kita dan rekan tim kita harus menginstal ekstensi Live Share terlebih dahulu
untuk mulai berkolaborasi. Setelah itu, kita harus melakukan Sign In . Kita
dapat memilih untuk melakukan Sign In dengan akun Microsoft atau
GitHub. Untuk melakukan Sign In , gunakan tombol Sign In yang terdapat
pada status bar bawah dengan icon orang.
Cara membuka sesi

1. Di host machine , mulai sesi kolaborasi dengan cara berikut:

 Tekan CTRL+SHIFT+Pdi VSCode untuk membuka palet perintah .


 Masuk ke Start Collaboration Session dan pilih liveshare.start dari daftar.
 Klik OK ketika kita mendapatkan pesan pop-up untuk menerima port yang
tidak diblokir di firewall kita. Dengan melakukan hal tersebut, memungkinkan
VSCode untuk berinteraksi dengan mesin tamu secara real-time .

Secara default, kedua peserta dalam sesi kolaborasi akan memiliki


hak editor dan dapat membuat perubahan pada file yang sama.
2. Selanjutnya, izinkan akses kolaborator kita dan buat tautan undangan ke sesi
kolaborasi dengan cara:

 Klik Make read-only mode di kanan bawah, untuk membatasi kolaborator kita
dengan akses read-only .
 Klik Copy lagi untuk menyalin link undangan ke clipboard kita.
 Kirim link undangan ke tamu . Kita dapat menggunakan email atau chat
tool seperti Slack atau Discord.

Cara bergabung dengan sesi


Setelah kita mendapatkan link undangan kita dapat membuka link tersebut
dari web browser untuk bergabung dalam sesi kolaborasi. Atau kita juga dapat
melakukannya dengan klik File > Join Collaboration Session . lalu paste
di link undangan yang kita dapat dan tekan Enteruntuk mengonfirmasi.
HTTP
Rekayasa Perangkat Lunak
3 menit membaca
Apa itu HTTP
Hypertext Transfer Protocol atau lebih dikenal dengan
singkatan HTTP adalah protokol jaringan lapis aplikasi ( application layer )
yang dikembangkan untuk membantu proses pertukaran data/informasi antar
komputer. Khususnya data/informasi hypermedia seperti dokumen, file ,
gambar, dan video.
Protokol
Protokol merupakan media yang digunakan untuk komunikasi antara dua
buah entitas. Contohnya komunikasi antara dua orang yang membutuhkan
bahasa atau grammar yang sama agar bisa saling memahami informasi yang
disampaikan. Di dunia komputer, ketika dua aplikasi ingin saling
berkomunikasi dengan cara yang sama, maka dibutuhkan kumpulan aturan-
aturan yang disebut protokol.
Fungsi
Fungsi utama HTTP yaitu mengatur format dan bagaimana data
ditransmisikan. Ketika kita memasukkan URL domain di browser , maka URL
yang masuk menjadi sebuah perintah ke dalam web server untuk memberikan
data atau informasi website yang dituju. HTTP juga berfungsi untuk mengatur
bagaimana web server dan browser memproses berbagai macam perintah
yang masuk.
HTTPS
Hurus "S" di HTTPS adalah secure , sehingga secara fungsi sama dengan HTTP
namun lebih aman dibandingkan HTTP. Data yang diproses dengan HTTPS
akan dienkripsi terlebih dahulu. Dalam HTTPS, protokol komunikasi dienkripsi
menggunakan Transport Layer Security TLS atau Secure Sockets
Layer SSL. Protokol ini memungkinkan adanya perlindungan akses dan
kerahasiaan data selama proses pertukaran data. Tujuannya untuk melindungi
serangan man in the middle (lebih lengkapnya di sini ) atau serangan cyber
attack lainnya.
bagaimana cara kerjanya
HTTP saat ini sering digunakan untuk melakukan akses ke sebuah situs
web. Proses yang terjadi di belakang layar secara sederhana adalah sebagai
berikut :
1. Sebuah HTTP client atau juga dikenal dengan user agent akan memulai
permintaan dengan membuat hubungan ke URL tertentu di server web
hosting .
2. Server web merespons dan menyimpan data, ini disebut dengan server asal .
3. Server akan mengirim kembali data yang diminta ke client , selama proses ini
HTTP client akan menunggu.
4. Ketika data berhasil diterima oleh HTTP client , data tersebut akan ditampilkan
di web browser dan memutus koneksi dengan server .
Gambar 1. Visualisasi Sederhana HTTP Works (Sumber: hackernoon.com )

Alamat IP
Rekayasa Perangkat Lunak
6 menit membaca
Apa itu Alamat IP

Alamat IP (Sumber: airsquirrels.com )


IP Address adalah kependekan dari Internet Protocol Address dengan berisi
rangkaian angka dan menjadi identitas perangkat komputer yang terhubung
ke internet atau infrastruktur jaringan lainnya.
Fungsi
Saat kita mengunjungi sebuah website, perangkat yang kita gunakan perlu
menemukan lokasi data website tersebut untuk kemudian mengambil datanya
dan menyajikannya kepada kita. IP address diumpamakan seperti nomer
rumah atau alamat dan berfungsi sebagai penanda sehingga dapat
memastikan apakah terhubung ke alamat yang tepat atau tidak.
Fungsi lain dari IP address adalah sebagai alamat pengiriman data ke
perangkat kita. Ketika kita mengakses sebuah situs, sebenarnya ada proses
pengunduhan data yang di kirim dari situs tersebut. Proses tersebut
dimungkinkan berkat alamat IP.
bagaimana cara kerjanya
Cara kerja alamat IP (Sumber: airsquirrels.com )
Pertama, komputer terhubung ke jaringan router yang biasanya disediakan
oleh penyedia layanan internet (ISP/Internet Service
Provider). Kemudian, router akan berkomunikasi dengan server tempat website
disimpan untuk mengakses file yang perlu di kirim kembali ke komputer Anda.
Komputer, router , dan server memiliki alamat IP tertentu yang dapat dikenal
satu sama lain. Oleh karena itu, dengan alamat inilah masing-masing
perangkat dapat berkomunikasi, mengambil data, dan mengirimkannya.
Lebih jelasnya dapat melihat video di bawah ini :
ip-address-works-vid Apa itu alamat IP (Sumber: youtube.com )
Versi: kapan
IPv4
IPv4 adalah versi paling lama semenjak internet mulai digunakan secara
komersil. IPv4 menggunakan 32 bit dan terdiri dari 4 kumpulan angka yang
dipisah oleh titik untuk menentukan alamat IP. Setiap kumpulan angka
tesebut adalah representasi desimal dari 8 bit angka biner (0-255).
Satu bagian terdiri dari 8 bit angka biner tersebut disebut
sebagai oktet . Setiap oktet bernilai maksimal 255. Jadi IPv4 memiliki rentang
alamat IP dari 0.0.0.0 sampai 255.255.255.255.
Contoh alamat IP yang benar adalah:
8.8 .8.8
162.168 .1.1
172.16 .254.1
IPv6
IPv6 adalah versi IP address yang lebih baru untuk menggantikan IPv4 karena
alamat IP dengan IPv4 sudah banyak digunakan dan kapasitasnya yang mulai
menipis.
Kalau IPv4 memiliki panjang 32 bit, panjang IPv6 mencapai 128 bit. Artinya,
ada sekitar 340 undecillion (angka yang diikuti dengan 36 nol di belakangnya)
alamat IPv6 yang berbeda.
IPv6 ditulis dalam rangkaian digit heksadesimal 16 bit dan huruf, dipisahkan
oleh titik dua. Jadi, pada jenis IP address ini kita akan menjumpai huruf dari A
sampai F.
Salah satu contoh alamat IPv6 adalah
2001 :cdba:0000:0000:0000:0000:3257:9652
Namun, kumpulan yang hanya terdiri dari angka nol biasanya tidak ditulis
agar praktis. Lalu, bagian yang dihilangkan ditunjukkan dengan adanya dua
tanda titik dua seperti berikut :
2001 :cdba::3257:9652
Publik vs Pribadi

IP Publik vs Pribadi (Sumber: avg.com )


IP address dimasukkan dalam 2 jenis yaitu IP public dan IP private . IP
public adalah alamat IP yang dapat diakses melalui jaringan internet. Oleh
karena itu, alamat IP publik dimiliki oleh segala perangkat yang diperuntukkan
khalayak umum. Salah satu contoh perangkat yang menggunakan IP
publik adalah server website , server email dan router Wi-Fi.
IP private adalah jenis IP address yang digunakan untuk berkomunikasi dalam
jaringan lokal, misalnya melalui LAN. Salah satu contoh device yang
menggunakan IP private adalah laptop , handphone atau komputer yang
terkoneksi ke jaringan kampus/kantor/rumah. Jadi, jenis IP address ini tidak
bisa digunakan untuk jaringan Internet. Versi IP ini tersedia gratis untuk
digunakan.
Dinamis vs Statis
Dynamic IP atau IP dinamis adalah IP yang sifatnya berubah-ubah, yang
diberikan oleh penyedia layanan internet kepada pelanggannya. Alamat ini
biasanya digunakan karena alasan keamanan. Sifatnya yang berubah-ubah
dimaksudkan untuk mempersulit para hacker mengakses antarmuka jaringan.
IP dinamis selalu berganti setiap kali perangkat baru ditambahkan ke jaringan,
saat konfigurasi jaringan berubah, atau saat perangkat dinyalakan ulang. Jadi,
jika Anda menggunakan layanan internet dari suatu penyedia, IP di rumah
Anda pun tidak selalu sama.
Static IP atau IP statis adalah kebalikan dari jenis IP dinamis, dengan alamat IP
yang tetap dan tidak berganti-ganti. Jenis protokol ini akan tetap sama,
kecuali ada perubahan pada administrasi jaringan. Contohnya, perangkat
seperti printer bersama harus memiliki IP statis agar orang-orang di kantor
bisa terhubung dengan mudah untuk menggunakannya. Public web
server juga umumnya memiliki IP statis agar mudah diakses oleh publik.
Pelabuhan
Rekayasa Perangkat Lunak
6 menit membaca
Apa itu Pelabuhan
Ilustrasi pelabuhan (Sumber: freepik.com )
Port adalah mekanisme yang memungkinkan komputer terhubung dengan
beberapa sesi koneksi dengan komputer dan program lainnya dalam
jaringan. Port dapat meng-identifikasi aplikasi dan layanan yang
menggunakan koneksi di dalam jaringan TCP/IP. Sehingga, port juga
mengidentifikasikan sebuah proses tertentu di mana sebuah server dapat
memberikan sebuah layanan kepada klien atau bagaimana seorang klien
dapat mengakses sebuah layanan yang ada di dalam server .
Port Logis dan Fisik
Jika dilihat dari terminologinya, jenis port dibedakan menjadi dua, yaitu port
logis (port non fisik) dan port fisik (port fisik).
Port logis adalah jalur yang digunakan oleh aplikasi untuk menghubungkan
dengan komputer lain melalui jaringan TCP/IP. Salah satu contohnya adalah
mengkoneksikan komputer dengan internet. Port ini berperan penting dalam
jaringan komputer.
Port fisik adalah soket, slot atau jack koneksi yang memungkinkan kabel dapat
dihubungkan dengan komputer, router, modem, USB, dan perangkat
lainnya. Masing-masing soket memiliki bentuk fisik dan fungsi yang berbeda
pula. Beberapa port jaringan fisik terdapat pada perangkat keras jaringan
komputer.
Penomoran Pelabuhan
Dilihat dari penomorannya, logical port terbagi menjadi tiga jenis. Ada jenis
port yang terdaftar di Internet Assigned Numbers Authority (IANA) , dan ada
yang tidak, berikut pembagiannya:
 Pelabuhan terkenal : berkisar dari 0 – 1023. Ini merupakan pelabuhan yang
dikenal atau sistem pelabuhan. Port ini selalu merepresentasikan layanan
jaringan yang sama dan ditetapkan oleh IANA.
 Registered port : berkisar dari 1024 – 49151. Port ini diketahui dan terdaftar
di IANA tetapi tidak diisolasi secara permanen, sehingga dapat menggunakan
nomor port yang sama.
 Dynamicallyassigned port : berkisar dari 49152 – 65535. Port ini ditetapkan
oleh sistem operasi atau aplikasi yang digunakan untuk melayani permintaan
dari pengguna sesuai dengan kebutuhan.
Berikut ini beberapa contoh logical port yang sering digunakan beserta
fungsinya :
1. Pelabuhan 20 & 21 (FTP)
Port 20 dan 21 merupakan port untuk FTP atau File Transfer Protocol. FTP
adalah protokol yang berguna dalam mentransfer data di dalam suatu
jaringan.
2. Pelabuhan 22 (SSH)
Port 22 adalah port standar untuk SSH (Secure Shell). Port ini berfungsi
mengirimkan data melalui jaringan dalam bentuk terenkripsi. Dapat digunakan
untuk menjalankan fungsi atau tugas yang bisa diakses dari jarak jauh,
misalnya menghubungkan ke host atau server .
3. Pelabuhan 23 (TELNET)
Port 23 TELNET adalah port untuk menghubungkan komputer dan server jarak
jauh. Fungsinya mirip dengan SSH, hanya saja port 23 TELNET tidak
menggunakan enkripsi pada koneksinya.
4. Pelabuhan 25 (SMTP)
Port 25 berfungsi untuk SMTP (Simple Mail Transfer Protocol) yang berfungsi
memastikan pengiriman email melalui jaringan yang dikomunikasikan dengan
aman antara sesama server SMTP.
5. Porta 53 (DNS)
Port 53 adalah jenis port untuk DNS yang berfungsi sebagai penerjemah
nama domain menjadi alamat IP pada setiap host . Port ini menjual
nama domain yang dapat dibaca manusia dengan alamat IP yang dapat
dibaca mesin. Jadi, kamu tak perlu mengetik alamat IP dalam bentuk angka
ketika hendak mengunjungi website (lebih lengkapnya akan dibahasa pada
materi DNS).
6. Porta 80 (HTTP/Server Web)
Port 80 berfungsi untuk HTTP, yakni memungkinkan browser terhubung ke
halaman web. Port ini akan menerima permintaan koneksi dari klien,
kemudian setelah koneksi berhasil dibuat, kamu akan mendapat akses ke
berbagai halaman web di internet. HTTP/ web server juga memiliki port
alternatif, yaitu port 8080 dan 80.
7. Porta 443 (HTTPS)
Hampir mirip dengan port 80, port 443 berguna untuk menghubungkan klien
ke internet, namun dengan fitur keamanan tambahan yang tidak dimiliki port
HTTP 80. Port 443 mengenkripsi paket jaringan sebelum mentransfernya.
8. Pelabuhan 1433 (MS SQL)
Port 1433 adalah port yang digunakan untuk menghubungkan komputer ke
database Microsoft SQL Server. Lebih lengkapnya tentang Microsoft SQL
dapat dilihat di sini .
9. Porta 3306 (MySQL)
Port 3306 adalah port yang digunakan untuk menghubungkan komputer ke
database MySQL. Lebih lengkapnya tentang MySQL bisa dilihat di sini .
10. Porta 5432 (PostgreSQL)
Port 5432 adalah port yang digunakan untuk menghubungkan komputer ke
database PostgreSQL. Lebih lengkapnya tentang PostgreSQL bisa dilihat di
sini .
11. Pelabuhan 8000 * 8080
Port 8000 atau 8080 adalah port yang sering digunakan untuk web Cache port
Server proxy web. Atau bisa juga digunakan untuk menjalankan aplikasi yang
ada di dalam server / localhost. Lebih lengkapnya tentang proxy web bisa
dilihat di sini .
Dan masih banyak lagi, kita bisa melihat seluruh list logical port di internet
atau di sini .

DNS
Rekayasa Perangkat Lunak
5 menit membaca
Apa itu DNS
DNS (Sumber: binus.ac.id )
Domain Name Server atau DNS adalah sebuah sistem yang
menghubungkan Uniform Resource Locator (URL) dengan Internet Protocol
Address (IP Address). Biasanya, untuk mengakses internet, kita perlu
mengetikkan IP Address sebuah website. Cara ini cukup merepotkan, sebab
kita perlu daftar lengkap IP Address website yang ingin dikunjungi dan
memasukkannya secara manual. DNS akan memudahkan pekerjaan kita
dengan cara cukup memasukkan nama domain / URL kemudian DNS akan
menerjemahkannya ke dalam IP Address yang tepat.
Fungsi
Dari penjelasan di atas, sebenarnya sudah jelas apa fungsi utama dari
DNS. Supaya lebih jelas, berikut beberapa fungsi dari DNS :

1. kesulitan informasi IP address sebuah website berdasarkan nama domain atau


URL.
2. Mencari server yang tepat untuk mengirimkan email .
3. Melakukan pencarian di data cache untuk mempercepat bantuan alamat
dari domain yang dikunjungi sebelumnya.

bagaimana cara kerjanya


Prinsip dasar cara kerja DNS adalah dengan cara melacak nama komponen
URL dengan komponen alamat IP . Setiap URL dan Alamat IP memiliki bagian-
bagian yang saling menjelaskan satu sama lain. Proses pencocokan ini disebut
dengan query .
Jika sulit dibayangkan, kami anggap seperti kegiatan mencari buku di
perpustakaan. Ketika kita mencari buku di perpustakaan, biasanya kita akan
diberi kode yang menjelaskan letak buku tersebut. Kode buku perpustakaan
tersebut dinamakan Dewey Decimal System (DDS). Biasanya terdiri atas kode
topik buku, kode nama belakang penulis, dan kode tahun buku
diterbitkan. Nah, konsep tersebut sama juga diterapkan dalam DNS. Untuk
memahaminya lebih dalam, kita perlu mengetahui bagian-bagian URL yang
tersusun dalam hirarki DNS. Sama seperti kode buku perpustakaan, setiap
bagiannya menjelaskan bagian domain .
Satu perbedaan yang paling mencolok adalah kode perpustakaan mulai dari
depan, sedangkan DNS dimulai dari belakang. Maka dari itu, kita akan
menjalankan bagian-bagian DNS ini dari belakang. Berikut penjelasan
lengkapnya :
Skema DNS (Sumber : niagahoster.co.id )

 Root-Level Domain merupakan bagian tertinggi dari hirarki DNS. Biasanya


berwujud tanda titik (.) di bagian paling belakang sebuah URL.
 Top-Level Domain adalah ekstensi yang berada di bagian depan root-level
domain . Terdapat dua jenis TLD yang umumnya dipakai. Keduanya,
yaitu Generic Top-Level Domain (GTLD) dan Country Code Top-Level
Domain (CCLTD).
o GTLD menunjukkan sifat dari website tersebut, seperti comuntuk
komersial, eduuntuk pendidikan dan edukasi, govuntuk pemerintahan, dan
sebagainya.
o CCLTD menunjukkan situs web asal negara pemilik , seperti iduntuk situs web
Indonesia, ukuntuk Inggris, dan seterusnya
 Second-Level Domain adalah nama lain untuk domain itu sendiri. Ia sering
digunakan sebagai identitas institusi atau branding . Dalam kasus
URL en.wikipedia.org, yang dimaksud SLD adalah wikipedia.
 Third-Level Domain atau subdomain merupakan bagian dari domain utama
yang berdiri sendiri. Apabila domain diibaratkan sebagai
rumah, subdomain adalah salah satu ruang khusus di rumah itu sendiri.

Setelah memahami cara kerja DNS di dalamnya, maka yang terjadi ketika kita
menggunakan DNS adalah :

1. DNS server meminta informasi domain atau nama situs web yang akan
dikunjungi.
2. DNS server kemudian menutup nama tersebut dengan angka berupa alamat
IP.
3. DNS lokal kemudian akan mencari alamat IP tersebut di cache lokal yang
tersimpan di komputer.
4. Jika situs web pernah dibuka sebelumnya, maka data IP address dari DNS
cache akan digunakan dan meneruskan request ke IP address tersebut.
5. Jika alamat IP tidak ditemukan di cache lokal komputer, maka DNS akan
meminta data dari rekursif DNS dan jika alamat IP ditemukan maka komputer
akan meneruskan request ke alamat IP tersebut.
6. Namun, jika alamat tidak ada di server DNS rekursif, maka DNS akan
mencarinya di server DNS lainnya (protocol ini disebut DNS otoritatif).
7. Setelah alamat IP ditemukan, situs web akan ditampilkan dan cache akan
disimpan ke dalam DNS lokal.

Url
Rekayasa Perangkat Lunak
9 menit membaca
Apa itu URL
URL adalah singkatan dari Uniform Resource Locator . URL merupakan sebuah
alamat yang digunakan untuk mengidentifikasi sebuah resource di
internet. Secara teori, URL akan mengidentifikasi sebuah resource atau sumber
daya di internet, namun dalam praktiknya, URL juga digunakan untuk
mengidentifikasi sebuah resource di dalam sebuah jaringan komputer.
Sumber daya tersebut biasanya berupa sebuah halaman web,
sebuah layanan atau bisa juga sebuah file seperti dokumen, gambar, dll.
Berikut contoh URL:
https://www.google.com/search?q = google+penelusuran
https://www.ruangguru.com
https://developer.mozilla.org/en-US/docs/Learn/
Secara anatomi, URL terdiri dari beberapa bagian. Terdapat bagian yang wajib
dan bagian yang opsional.
Bagian dari URL (Sumber: developer.mozilla.org )
Skema / protokol

URL Skema (Sumber: developer.mozilla.org )


Bagian pertama dari URL adalah protokol yang digunakan untuk
mengakses resource /sumber daya tersebut. Protokol ini digunakan untuk
menentukan cara mengakses sumber daya tersebut. Protokol yang sering
digunakan adalah httpdan https.
Namun, terdapat juga protokol lain yang sering dipakai seperti mailtountuk
mengirim email, ftpuntuk mengakses file, dll.
mailto: [email protected]
Otoritas

URL Otoritas (Sumber: developer.mozilla.org )


Wewenang adalah bagian yang mengidentifikasi sumber daya /sumber daya
tersebut. Bagian ini terdiri dari dua bagian, yaitu domain dan port .
Pemisah antara Schema dan Authority adalah ://.
https://www.google.com
https://www.ruangguru.com
Domain
Domain adalah sebuah alamat yang digunakan untuk mengidentifikasi
sebuah resource / sumber daya. Domain ini bisa berupa sebuah
nama domain atau sebuah IP address .
www.google.com
www.ruangguru.com
Terdapat beberapa jenis domain :

 Top Level Domain (TLD) : TLD juga dikenal sebagai ekstensi domain . Dalam
contoh URL di atas “. g” berperan sebagai TLD.
 Second Level Domains (SLD) : SLD merupakan nama domain yang kita
daftarkan yaitu “c ”.
 Third Level Domain (3LD) : Third Level Domain merupakan bagian dari
nama domain atau alamat situs web yang muncul sebelum SLD. Bagian ini
juga dikenal sebagai subdomain . Pada contoh URL di atas, maka “ ”
adalah Third Level Domain atau subdomain website Anda.
Subdomain
Subdomain merupakan bagian dari domain utama yang berdiri sendiri. Bisa
dibilang subdomain ini seperti “ ” dari domain utama. Ia memang bagian
yang terpisah dari domain , tetapi tidak akan ada tanpa domain utama itu
sendiri.
Umumnya subdomain digunakan untuk dua hal. Pertama, subdomain dipakai
untuk melakukan staging dan testing sebuah website . Langkah ini akan
memudahkan Anda dalam tracking dan menyimpan perubahan
dalam website .
Kedua, subdomain juga sering digunakan untuk dipisahkan
antara website yang berbeda. Misalnya, Anda memiliki sebuah website yang
memuat konten yang berbeda dengan website lainnya. Anda bisa memisahkan
konten tersebut dengan menggunakan subdomain .
Subdomain ditulis di depan domain utama, dipisahkan dengan tanda titik (.)
dan diikuti dengan nama subdomain .
Contoh subdomain :
https://support.google.com
https://maps.google.com
Contoh di atas
adalah subdomain dari domain google.com yaitu supportdan maps.
Pelabuhan
Port sudah dijelaskan sebelumnya. Port ini biasanya dihilangkan dari URL
karena umumnya menggunakan port HTTP (80) dan HTTPS (433), namun
jika port tidak dihilangkan, maka port akan dituliskan setelah host dengan
menggunakan tanda titik dua (:) sebagai pemisah.
www.google.com:80
www.ruangguru.com:443
Jalur

URL Jalur (Sumber: developer.mozilla.org )


Bagian ini juga merupakan bantuan sumber daya / sumber daya. Bedanya
dengan Authority , bagian ini mengidentifikasi resource / sumber daya secara
spesifik. Bagian ini juga sering disebut sebagai path .
Path mengacu pada lokasi yang tepat dari halaman, posting, file , atau aset
lainnya. Path setelah berada nama tuan rumah dan dipisahkan oleh garis
miring ( /). Path juga terdiri dari ekstensi file asset, seperti gambar (.jpg atau
.png, dll.), dokumen (.pdf atau .docx), dan masih banyak lagi.
Contoh jalur:
https://www.example.com/path/to/file.html
https://www.ruangguru.com/beasiswa/bkk
Parameter

URL Kueri (Sumber: developer.mozilla.org )


Bagian ini digunakan untuk mengirimkan data ke resource /sumber daya. Data
yang di kirimkan biasanya berupa parameter berisi key dan value yang
digunakan untuk melakukan query ke resource / sumber daya tersebut. Biasa
di awali dengan tanda tanya ?dan setiap parameter dipisahkan dengan tanda
ampersand &.
Parameter juga dapat diatur secara dinamis di sebuah jalur sebagai nilai yang
dipisahkan oleh garis miring /dan karakter lain (bergantung pada sistem yang
digunakan dan bagaimana penerapannya). Parameter biasanya digunakan
untuk tracking dan analytics serta encoding informasi tertentu untuk
digunakan dalam situs web dan aplikasi.
https://www.google.com/search?q = google+search & hl = id
Contoh URL di atas berisi kueri q dengan nilai google
searchdan kueri hl dengan nilai id.
Contoh lain URL dengan parameter:
https://www.example.com/solutions?user = 123 & warna = biru
https://www.example.com/solutions/user/123/color/blue
Jangkar
(sumber: https://developer.mozilla.org/ )
Anchor digunakan di situs web untuk menerapkan "bookmark" dan elemen
navigasi halaman internal. Ini dapat digunakan untuk menyediakan tautan ke
lokasi tertentu dalam halaman. Anchor akan segera ditempatkan
setelah file/path URL (jika ada).
Cara mengakses URL/perubahan
Kita dapat mengakses URL dengan memasukkan URL tersebut ke
dalam browser . Kita cukup mengetik URL tersebut di dalam address
bar browser dan tekan tombol Enter .

Kita juga dapat mengakses URL dengan menggunakan command


line menggunakan perintah curldan diikuti alamat URL.
> curl https://www.google.com/search?q = google+search & hl =
id
localhost
http://localhost
Localhost adalah sebuah domain khusus yang digunakan untuk
mengakses resource / sumber daya yang berada di lokal komputer
kita. Localhost juga dapat kita akses menggunakan alamat IP 127.0.0.1.
Keterbatasan localhost adalah URL ini memerlukan sebuah server yang sudah
kami persiapkan sebelumnya. Selain itu domain localhost hanya bisa diakses
dari komputer kita sendiri, tidak bisa diakses oleh komputer lain meskipun
terhubung ke jaringan yang sama.
Apa Fungsi dari Localhost?
Bagi seorang developer , localhost berperan sangat penting dalam pembuatan
dan pengembangan aplikasi berbasis internet maupun sebuah website .
Di mana localhost digunakan untuk mengakses website maupun aplikasi
secara lokal atau offline . Sehingga developer dapat melakukan pengujian
maupun melihat langsung tampilan dari website atau aplikasi sebelum
dipublikasikan di internet.
Setelah aplikasi berjalan dengan baik kita dapat mempublikasikan aplikasi
/ website tersebut ke internet menggunakan
sebuah hosting / server dan domain yang kita miliki.

Terminal
Rekayasa Perangkat Lunak
11 menit membaca
ping
Package Internal Grapher atau PING, adalah perintah yang digunakan untuk
memeriksa status konektivitas antar jaringan. Dengan command ping , kita
dapat menghitung durasi waktu yang dibutuhkan ketika client mengirim
pesan ke host dan client menerima respon dari host dalam sebuah
jaringan. PING bekerja dengan cara client mengirim pesan Internet Control
Message Protocol (ICMP) ke target host dan client akan menerima response
Echo dari target host kemudian dihitung selisih waktunya.
Installping
Kita dapat mengecek ketersediaan pingdengan perintah :
ping -h
atau
ping -v
Jika tidak ada ping yang terinstal, bisa menginstal dengan menggunakan :
apt-get update && apt-get install -y iputils-ping
Fungsi
Seperti yang dijelaskan sebelumnya, ping digunakan untuk memeriksa status
konektivitas antar jaringan. Kita bisa coba langsung dengan mengecek
konektivitas ke google.com.
ping ke www.google.com
Ping www.google.com
Jika konektivitas jaringan kita normal, maka akan muncul pesan berulang
seperti gambar di atas.
whoisdomain
Whois adalah layanan internet yang memberikan informasi tentang
sebuah domain . Informasi ini sering disebut whois recordatau data
whois. Informasi itu meliputi nama lengkap pemilik, alamat, nomor telepon,
email, dan sebagainya.
Beberapa informasi yang diberikan adalah :

1. Informasi kontak, berupa nama pendaftar / admin / teknisi, nama organisasi,


alamat rumah, nomor telepon, email, dan fax.
2. Informasi registrasi, berisi nama Whois servernya, URL, registrar , IANA
ID, Abuse contact phone , dan Abuse contact email .
3. Kontak Billing, yang berisi tentang tagihan dan pembayaran yang dilakukan
selama pembelian domain .
4. Status, berupa informasi apakah domain sudah diperbarui (updated), banned ,
atau expired .
5. Tanggal penting, berisi informasi seputar tanggal update,
tanggal pembuatan domain , tanggal penyebaran domain
6. Nama server, ini hanya berisi domain server URL

Kita bisa mencobanya dengan command whois ke domain ruangguru.com.


whois ruangguru.com
digdomain
Domain Information Groper atau dig adalah perintah yang digunakan untuk
mengambil informasi tentang domain name server atau DNS.
Installdig
Pastikan dulu apakah dig sudah terinstal dengan menggunakan command :
menggali -v
Outputnya akan berupa informasi versi dari dig yang terinstall.
Jika tidak ada dig yang terinstal, bisa menginstal dengan menggunakan :
sudo apt install dnsutils
Lihatlah
Penggunaan yang paling dasar adalah melihat informasi DNS
dari domain yang kita inginkan. Kita coba langsung dengan mengecek
ke domain ruangguru.com .
digPencarian keluaran
Hasilnya kita akan mendapatkan daftar informasi seperti gambar di atas. Kita
cukup fokus ke bagian ANSWER SECTION, karena bagian itu adalah hasil
dari query lookup yang dilakukan oleh dig.
Output yang diperoleh dapat diseleksi dengan hanya memunculkan
bagian ANSWER SECTIONsaja dengan menambah
option +noalldan +answer.

digJawaban keluaran
Kita dapat memodifikasi hasil keluaran dengan menambahkan opsi +shortdi
belakangnya.
Keluaran digpendek
Informasi yang didapat hanya berupa IP server dari domain yang kita
masukkan.
Server nama kueri khusus
Secara default jika tidak ada name server yang ditentukan, command dig akan
menggunakan server yang terdaftar di file internal /etc/resolv.conf .
Untuk menentukan name server yang akan dijalankan query , dapat
menggunakan simbol @(at) dan diikuti dengan alamat IP name
server atau hostname .
Misal kita mencari informasi DNS dari domain ruangguru.comdengan
menggunakan name server google (8.8.8.8).
sekilas tidak ada yang berbeda, tetapi di bagian SERVERsudah
menggunakan name server google (8.8.8.8).
gali -x tuan rumah
Terdapat option -xyang digunakan untuk mengambil informasi
menggunakan host name . Kita dapat langsung mencobanya dengan host
name berikut 172.217.14.238(google.com).
digTuan rumah keluaran
wgetmengajukan
Wget adalah perintah yang digunakan untuk mengunduh file dari
internet. Nama wget adalah gabungan kata dari WWW (World Wide Web) dan
get sehingga tool ini disupport menggunakan protokol FTP, SFTP, HTTP dan
HTTPS.
Installwget
Kita dapat memastikan wgetsudah terinstal atau tidak dengan command :
wget --bantuan
Perintah atau command tersebut untuk melihat seluruh
informasi command yang tersedia sekaligus memastikan apakah wgetsudah
terinstall atau belum. Jika belum terinstal dapat menggunakan command :
apt-get instal wget
Penggunaan dasar
Kita bisa langsung mencoba
mendownload file dengan command wget kemudian diikuti dengan
URL file yang ingin kita unduh/ download .
Keluaran wgetdasar
Contoh di atas adalah hasil download file gambar dari
URL http://www.google.com/images/srpr/logo3w.png. File tersebut
akan disimpan ke direktori aktif di terminal .
Agar dapat mengatur posisi file ke direktori yang kita inginkan, kita dapat
menggunakan opsi -Pdan diikuti dengan nama direktori.
Keluaran wgetdengan opsi-P
Hasilnya, file akan disimpan ke direktori Downloads.
Atau dapat juga mengubah nama file yang dihasilkan dengan opsi -Odan
diikuti dengan nama file yang kita inginkan.

Keluaran wgetdengan opsi-O


Nama yang awalnya adalah logo3w.pngakan berubah menjadi new-
logo.pngketika sudah berhasil didownload ke direktori kita.
wget -cmengajukan
Seringkali kita menghadapi kondisi koneksi internet tidak stabil atau tiba-tiba
listrik padam. Masalah ini akan menyebabkan proses download file menjadi
mandek. Kita dapat menggunakan command wget -c untuk
melanjutkan file yang sudah didownload sebelumnya.
Keluaran wgetdengan opsi-C
Jika kita tidak menggunakan option -C , maka file akan didownload
ulang. Akibatnya akan terdapat file baru dengan ditambah nama .1di
belakangnya karena sebelumnya file dengan nama yang sama sudah ada.
curl
CURL atau singkatan dari Client URL adalah tool yang digunakan untuk
menangani berbagai hal yang berhubungan dengan URL (uniform rsource
locator). CURL mendukung banyak protokol yang umumnya adalah HTTP, FTP,
SSH, dan lainnya. Kita dapat mengecek versi dari curl
menggunakan command curl --version .
curlVersi keluaran
Selain informasi versi, kita juga dapat mengetahui daftar protokol yang
didukung oleh curl yang terpasang.
Sintaks Curl Perintah Dasar
Sintaks dasar dari curl adalah sebagai berikut :
curl [ OPSI ] [ URL ]
Kegunaan curlyang paling sederhana adalah untuk menampilkan konten dari
sebuah halaman web. Kita bisa coba melihat konten
dari https://www.google.com.
Keluaran curldasar
Karena kita mengakses konten dari URL, maka outputnya akan berupa text
saja atau lebih tepatnya HTML . Kita akan belajar HTML di materi terpisah.
Opsi Perintah Curl Berkas
Curl dapat mengunduh file dari lokasi jarak jauh menggunakan opsi -O(o
besar).
curl -O http://www.google.com/image/srpr/logo3w.png
Hasil download akan disimpan ke direktori aktif dari terminal dengan
nama file yang sama. Kita dapat mengubah nama file yang ingin didownload
dengan opsi -o(o kecil).
curl -o logo-baru.png
http://www.google.com/image/srpr/logo3w.png
Terdapat juga opsi yang bisa digunakan untuk melanjutkan unduhan yang
terganggu menggunakan opsi -C -.
curl -C - -O http://www.google.com/image/srpr/logo3w.png
Terakhir, jika ingin mengunduk beberapa file langsung dapat dilakukan
satu command curl , seperti contoh berikut :
curl -O http://www.google.com/image/srpr/logo3w.png -O
http://www.google.com/image/srpr/logo-new.png
Perintah Curl untuk HTTP
CURL juga dapat digunakan ketika ada sebuah proxy server . Kita dapat
menggunakan opsi -xuntuk menentukan server proxy .
curl -x proxy.example.com:8080 -U nama pengguna:kata sandi -O
http://www.google.com/image/srpr/logo3w.png
Contoh di atas adalah bentuk akses ke proxy . Kita dapat menggunakan opsi -
Uuntuk menentukan username dan password untuk proxy server .
Tajuk
permintaan ke HTTP akan selalu berisi header . Header HTTP mengirim
informasi tambahan tentang jarak server web jauh dengan
permintaannya. Sementara melalui browser development tool , kita bisa
melihat informasi header .
Kita dapat mengambil informasi header dari sebuah web menggunakan opsi -
I.
curlTajuk keluaran
Metode GET dan POST
Secara default curlmenggunakan method GET HTTP untuk mengakses
sebuah URL. Materi tentang method HTTP akan dijelaskan secara terpisah,
tapi command curl dapat menggunakan method POST untuk mengirim data
ke server .
curl –data "teks = Halo" https://myDomain.com/firstPage.jsp
atau
curl -X POST –data "teks = Halo"
https://myDomain.com/firstPage.jsp
Perintah atau perintah di atas berisi permintaan POST yang diikuti oleh
permintaan GET ke URL https://myDomain.com/firstPage.jsp.
Kita juga dapat menentukan beberapa metode HTTP dalam satu perintah curl
. Lakukan ini dengan menggunakan opsi --next, seperti ini :
curl –data “teks = Halo” https://myDomain.com/firstPage.jsp --
berikut https://myDomain.com/displayResult.jsp
Contoh di atas adalah mengirimkan data ke
URL https://myDomain.com/firstPage.jspdan kemudian mengambil
data dari URL https://myDomain.com/displayResult.jsp.

Algoritma Dasar
Rekayasa Perangkat Lunak
7 menit membaca
Apa itu Algoritma?
Banyak dari kita pernah mendengar kata ini dari beberapa Youtuber yang
membahas "algoritma Youtube" atau beberapa selebriti yang membahas
yahoo dari beberapa media sosial. Tapi apa sebenarnya algoritma itu?
Dikutip dari beberapa sumber, algoritma berasal dari kata " algoris " dan
" ritmis " yang pertama kali diperkenalkan oleh Abu Ja'far Muhammad Ibn
Musa Al Khwarizmi pada 825 M di dalam buku Al-Jabr Wa-al
Muqabla. Dalam bidang pemrograman, algoritma didefinisikan sebagai
metode yang terdiri dari rangkaian langkah-langkah yang terstruktur dan
sistematis untuk menyelesaikan masalah dengan bantuan komputer. Dari
sumber lain menjelaskan bahwa algoritma adalah sekumpulan instruksi atau
langkah-langkah yang dituliskan secara sistematis dan digunakan untuk
menyelesaikan masalah/persoalan logika dan matematika dengan bantuan
komputer.
Jika kita coba ambil poin penting dari beberapa penjelasan di atas, maka kita
bisa mengambil 3 hal. Pertama adalah " langkah-langkah ", kedua
" terstruktur atau sistematis " dan terakhir " menyelesaikan masalah ", jadi
kita dapat menyimpulkan sebagai berikut :
“A g adalah metode atau langkah yang direncanakan secara tersusun
dan berurutan untuk menyelesaikan atau memecahkan permasalahan dengan
sebuah instruksi atau eg ”
Berikut contoh sebuah algoritma yang sangat sederhana " Proses membuat
sebuah kue "

1. Mulai
2. hubungkan tempat adonan dan oven
3. bantuan bahan - bahan: telur, tepung terigu, gula, dan air
4. memasang toping dan hiasan
5. Mencampur semua bahan menjadi adonan
6. Memasukkan adonan ke dalam tempat adonan
7. Masukkan tempat adonan ke oven
8. Kue dikeluarkan dari oven dan diberi toping dan hiasan
9. Selesai

Mengapa kita harus belajar algoritma?


Pemahaman dasar algortima sangat penting bagi seseorang yang ingin belajar
pemrograman. Dalam mempelajari pemrograman, kita akan berkomunikasi
dengan komputer. Sedangkan komputer tidak secerdas manusia. kita perlu
memberikan instruksi yang jelas dan tepat untuk komputer sehingga dapat
menyelesaikan suatu permasalahan.
Dalam mempelajari algoritma kita akan belajar untuk berpikir secara runtut,
kreatif, dan logis. Kita berusaha mencari solusi dari suatu masalah dengan se-
efisien mungkin. Karena program akan semakin baik apabila dia berjalan
dengan langkah-langkah yang efisien. Dalam hal ini algoritma akan
mendeskripsikan solusi dari masalah yang kami tangani dan kami akan
mengetahui data-data apa saja yang kami perlukan dalam menyelesaikan
suatu masalah.
Selain itu, mempelajari algoritma dapat memudahkan kita agar tidak bingung
di tengah jalan karena sudah menggambarkan konsep pemrograman yang
akan kita buat sebelumnya. Hal ini juga dapat mengoptimalkan waktu kita
dalam membuat suatu program.

Berikut ada contoh video menarik tentang pentingnya belajar algoritma :


Algoritma karakteristik
Terbatas
Algoritma yang baik harus memiliki akhir dan jumlah yang terbatas atau
minimal menghasilkan sebuah keluaran, karena algoritma tidak akan
menyelesaikan semua permasalahan. Tapi fokus menyelesaikan sebuah
permasalahan sampai selesai.
Jelas
Algoritma tidak boleh menggunakan instruksi yang tidak jelas /
membingungkan, seperti "beberapa", "kemungkinan", "sebagian". Kita harus
mendefinisikan algoritma yang pasti dan jelas.
Contoh : "ambil beberapa bilangan positif kemudian bagi dengan 5", bisa
diubah menjadi "ambil lima bilangan positif kemudian bagi dengan 5"
Memiliki masukan dan keluaran
Algoritma harus menghasilkan minimal 1 output dan boleh memiliki atau
tidak memiliki input. Artinya setiap langkah yang kita buat harus menghasilkan
suatu output sampai ke langkah terakhir.
Efektif
Langkah - langkah dalam algortima harus efektif dan melarang
mungkin. Sehingga proses penyelesaian masalah diperoleh dengan langkah
yang paling sederhana dan paling cepat . Algoritma sangat mendukung
istilah “ u bisa gampang kenapa harus e ” bukan “ u bisa ribet
kenapa harus g g”.
Algoritma struktur dasar
Urutan (sekuensial)
Pada bentuk struktur ini, langkah-langkah dijalankan secara berurutan dari
tingkat awal sampai akhir. Pada dasarnya semua algoritma menggunakan
proses sekuensial seperti ini.

Alur berurutan
Contoh "Membuat jus jeruk" :

1. Mulai .
2. sebanyak 2 buah jeruk.
3. bantu alat jeruk.
4. Kupas semua kulit jeruk.
5. Masukkan jeruk ke alat perasan.
6. Tampung hasil perasan ke gelas.
7. Selesai .

Pemilihan (seleksi)

Alur percabangan
Setiap langkah akan melalui suatu percabangan, proses langkah akan diseleksi
pada suatu kondisi tertentu yang sudah ditetapkan. Struktur ini memungkinan
hasil keluaran lebih dari 1.
Contoh :

1. Mulai .
2. Melihat hasil nilai ujian.
3. Apakah nilai ujian kurang dari 70?
o Jika ya, maka harus belajar lagi.
o Jika tidak, maka bisa bermain game.
4. Selesai .
Perulangan

Alur perulangan
Dalam struktur ini terdapat sebuah proses yang akan diulangi ke langkah
sebelumnya (perulangan) apabila tidak memenuhi kondisi yang
diinginkan. Proses ini menggunakan pemilihan atau seleksi sebagai penanda
bahwa proses perulangan akan dihentikan atau dihentikan.
Contoh "Membuat kopi" :

1. Mulai .
2. rekor bubuk kopi, gula dan air panas.
3. sebanyak gelas.
4. Tuangkan bubuk kopi, gula dan air panas di dalam gelas.
5. Aduk semua bahan.
6. Jika belum larut, ulangi langkah sebelumnya sampai larut.
7. Selesai .

Contoh
Tambahkan dua angka
Contoh ini adalah algoritma urutan untuk menghitung penjumlahan dua
bilangan.

1. Mulai .
2. Masukkan angka pertama.
3. Masukkan angka kedua.
4. Lakukan penjumlahan dengan menambah angka pertama dengan angka
kedua.
5. Tampilkan hasil penjumlahan.
6. Selesai .

Angka ganjil dan kejadian


Contoh ini adalah algoritma yang melakukan pengecekan apakah suatu
bilangan merupakan bilangan ganjil atau bilangan genap.

1. Mulai .
2. Masukkan angka berupa bilangan bulat positif.
3. Lakukan pengecekan angka yang dimasukkan.
4. Melakukan pengecekan angka dengan pembagian angka 2.
o Jika sisa pembagian sama dengan 0, maka angka tersebut adalah bilangan
genap.
o Jika sisa pembagian tidak sama dengan 0, maka angka tersebut adalah
bilangan ganjil.
5. Tampilkan hasil pemeriksaan.
6. Selesai .

Ulangan
1.
Berikut adalah tiga kata kunci dari definisi algoritma, kecuali

Terstruktur atau sistematis.

Langkah-langkah.

Menyelesaikan masalah.
Berasal dari kata algoris dan ritmis.
2.
Berikut adalah struktur dasar sebuah algoritma, kecuali

Percabangan.

Perulangan.

Berurutan atau berurutan.

Struktur data.
3.
Berikut adalah alasan kita perlu membuat atau memikirkan sebuah algoritma
sebelum memulai pembuatan program, kecuali

Agar tidak bingung di tengah jalan karena sudah menggambarkan konsep


pemrograman yang akan kita buat.

Efisiensi waktu.

Kita perlu memberikan instruksi yang jelas dan tepat untuk komputer
sehingga dapat menyelesaikan suatu permasalahan.

Komputer otomatis mengerti apa yang kita pikirkan.

Flow chart
Rekayasa Perangkat Lunak
3 menit membaca
Apa itu Flowchart
Flowchart adalah gambaran langkah-langkah atau prosedur dari sebuah
algoritma, alur kerja atau proses. Flowchart umumnya digambarkan dengan
simbol dalam berbagai bentuk (persegi panjang, oval, jajar genjang, dll) untuk
merepresentasikan sebuah langkah dan dihubungkan dengan garis panah.
Contoh flowchart (Sumber: visual-paradigm.com )
Mengapa kami menggunakan Flow Chart ?
Berikut adalah beberapa keuntungan yang bisa di dapat jika
menggunakan flowchart :

1. Dapat menjelaskan secara mudah bagaimana algoritma tersebut berjalan.


2. Mempermudah pemahaman atau penalaran jika bertemu dengan algoritma
yang kompleks.
3. Membantu anggota atau tim agar mendapatkan pemahaman yang sama
tentang algoritma yang dibuat.
4. apakah hipotesa algoritma yang dibuat sudah efisien dan optimal. Seperti
apakah ada duplikasi proses, proses yang tidak dibutuhkan, bahkan dapat
mengurangi biaya yang berlebih.

Simbol Diagram Alir


Terminator

Simbol terminator umumnya digambarkan dengan lingkaran oval yang


berwarna merah. Simbol ini menunjukkan titik awal atau akhir dari alur.
Proses

Simbol proses umumnya digambarkan dengan kotak. Simbol ini adalah proses
pertunjukan atau langkah yang akan dilakukan.
Dokumen

Dokumen simbol biasanya mewakili hasil proses (cetak data) seperti dokumen
atau laporan.
Keputusan

Simbol ini mewakili proses percabangan atau pengambilan keputusan. Garis-


garis yang keluar dari simbol keputusan menunjukkan kemungkinan situasi
yang berbeda, yang mengarah ke sub-proses yang berbeda.
Data

Simbol ini mewakili data yang akan masuk atau keluar dari suatu proses.
Keterlambatan atau Kemacetan

Simbol ini mewakili sebuah proses yang tertunda atau terhambat. Biasanya
proses ini akan menunggu waktu yang lebih lama untuk dilakukan. Contoh
seperti ada proses yang perlu menunggu berjam-jam dalam langkah
tertentu. Atau ada proses yang tidak diinginkan sehingga mengakibatkan
proses lainnya menjadi terhambat.
Mengalir

Disimbolkan dengan sebuah garis yang menghubungkan setiap alur


di flowchart .
Contoh Flowchart
Kita coba membuat flowchart dari contoh algoritma sebelumnya.
Tambahkan dua angka

Tambahkan dua angka (Sumber: visual-paradigm.com )


Angka ganjil dan genap
Ulangan
1.
Alur hubungan dari sebuah algoritma digambarkan dalam flowchart dengan
simbol

Panah

Kotak

Bulat
Ketupat
2.
Sebuah proses digambarkan dalam flowchart dengan simbol

Kotak

Panah

Bulat

Ketupat
3.
Sebuah algoritma dapat divisualisasikan dengan menggambar

data diagram

Menggambar bebas

Flow chart

Kode semu

Pseudocode
Software Engineering
12 min read
What is Pseudocode?
Pseudocode adalah cara penulisan algoritma yang hampir menyerupai bahasa
pemrograman, namun pseudocode ditulis dengan lebih sederhana
menggunakan bahasa baku yang mudah dipahami oleh manusia. Kita dapat
menggunakan bahasa apapun dalam membuat pseudocode, namun karena
kita nantinya akan menggunakan bahasa pemrograman yang umumnya
berbahasa Inggris, maka di materi ini akan
menggunakan pseudocode dalam bahasa Inggris.
Contoh bentuk pseudocode sederhana : Menghitung luas persegi panjang
PROGRAM AreaRectangle

READ AND WRITE "width" with number


READ AND WRITE "height" with number
READ AND WRITE "total" with number
STORE "total" with CALCULATE "width" multipy by "height"
PRINT "total"
NOTE : Jangan terpaku dengan contoh, karena dalam pseudocode tidak harus
menggunakan kata tertentu. Selama pseudocode dapat dipahami oleh
pembaca, berarti sudah benar.
Variable and data type
Kita tidak asing dengan istilah variable dan data, apalagi saat pelajaran
matematika. Namun apa sih kedua hal tersebut ?
Mari kita analogikan dengan contoh sehari hari. Jika kita memegang sebuah
minuman es jeruk, maka penampung atau gelas air jeruk tersebut adalah
sebuah variable, sedangkan tipe data adalah air jeruknya.

Kita bisa menggunakan analogi lain untuk mencontohkan data type.

Bentuk gelasnya sama tapi di gelas A diisi dengan kopi, gelas B diisi dengan
air jeruk, dan gelas C diisi dengan susu. Hal ini menunjukkan
bahwa variable dapat diisi dengan tipe data berbeda tapi dalam jenis yang
sama (air).
Variable
Variable adalah suatu pengenal (identifier) yang digunakan untuk mewakili
suatu nilai tertentu di dalam program dan dapat diisi nilai yang bisa dirubah
sesuai kebutuhan. Idealnya dalam penamaan sebuah variable dapat
merepresentasikan kegunaan dari variable tersebut.
Kita dapat menggunakan kata "READ" untuk membaca nilai dari
sebuah variable, dan kata "WRITE" untuk menulis nilai dari sebuah variable.
Data type
Data type atau tipe data adalah jenis data atau nilai yang dapat ditampung
dan diolah oleh sebuah variable. Kita dapat menggunakan "STORE" atau "SET"
untuk mengisi variable dengan tipe data tertentu.
Tipe data dibagi menjadi 2 kelompok besar yaitu tipe data primitif dan tipe
data terstruktur. Tipe data primitif dikelompokkan sebagai berikut :
1. Tipe data bilangan (number), yaitu tipe data yang berisi bilangan bulat,
desimal, atau bilangan pecahan.
Contoh : 10, - 10, 1.5, 200.000.000
2. Tipe data string, yaitu tipe data yang berisi kumpulan karakter karakter,
biasanya dibungkus menggunakan tanda petik (") atau petik satu (').
Contoh : "kamu", "kenangan indah bersamanya", "i love you 3000",
"c3m4ng4t"
3. Tipe data boolean, yaitu tipe data yang hanya berisi nilai true atau false.
Contoh : true, false
Tipe data terstruktur dikelompokkan sebagai berikut :
1. Tipe data array / larik, yaitu kumpulan tipe data yang sama dan
memiliki index yang unik.
Contoh : [1, 2, 3, 4, 5]
2. Tipe data record, yaitu kumpulan tipe data yang berisi data berbeda.
Contoh : {name: "John", age: 30}
3. Tipe data set, yaitu kumpulan tipe data yang tidak memiliki index tapi harus
unik (tidak boleh ada yang duplikat satu sama lain).
Contoh : {1, 2, 3, 4, 5}
Contoh pseudocode menggunakan variable dan data type :
READ AND WRITE "name" with string
READ AND WRITE "age" with number
STORE "name" with "ruangguru"
STORE "age" with 25
PRINT "name"
PRINT "age"
If Condition
Dalam aktivitas sehari hari, kita sering dihadapkan sebuah konidsi untuk
memilih beberapa pilihan dan keputusan tersebut akan menghasilkan hasil
yang berbeda dengan keputusan yang lain.

Sebagai contoh, Pak Budi sedang lapar dan ingin makan ke warung, terdapat 2
menu yaitu makanan A seharga Rp. 25.000 dan makanan B seharga Rp. 19.000
. Saat itu Pak Budi hanya membawa uang Rp. 20.000 dan merasa makanan A
sangat menggiurkan. Maka Pak Budi akan mengecek apakah uang tersebut
cukup untuk membeli makanan A atau tidak, jika cukup maka Pak Budi akan
membeli makanan A, jika tidak maka Pak Budi akan membeli makanan B.
STORE "money" with number 20000
STORE "price_food_A" with number 25000

IF "money" more than or equal "price_food_A"


PRINT "Membeli makanan A"
ELSE
PRINT "Membeli makanan B"
Contoh di atas adalah bentuk condition, kita bisa menggunakan kata "IF"
untuk menentukan apakah kondisi tersebut benar dan kita bisa menggunakan
"ELSE" untuk kondisi yang salah.
Looping
Umumnya kita sering melakukan aktivitas berulang (aktivitas yang sama
berkali-kali. Contohnya seperti membuat kopi. Kita pasti akan mengaduk kopi
yang sudah dituang dengan air panas berulang kali sampai larut. Aktivitas ini
yang kita sebut dengan perulangan / Looping.
WHILE "hungry"
DO "eat"
Pseudocode di atas cukup simple dan mencontohkan kita proses paling
sederhana dalam looping. WHILE adalah standard keyword untuk
menunjukkan sebuah perulangan. Dari contoh di atas dapat diartikan bahwa
selama masih "hungry" maka lakukan "eat".
Biasanya, saat kita membuat looping, ada sebuah proses yang dilakukan untuk
mencapai kondisi tersebut. Kita dapat mengasumsikan kemampuan kita dalam
sekali makan adalah 5 sendok nasi. Kita coba umpamakan kemampuan makan
ini sebagai "hungry level".
STORE "full level" with 0

WHILE "full level" < 5


ADD "full level" by 1

DISPLAY "I'm full!"


Pseudocode di atas menggambarkan kita mulai dari level kenyang kita dari 0,
berarti kita saat ini sangat lapar. Setiap kali kita melakukan proses makan,
tingkat kenyang kita akan bertambah 1. Karena kita hanya kuat makan hingga
5 kali, maka kondisinya adalah "full level" < 5. Contoh ini hampir mendekati
pemahaman bahasa pemrograman. Terdapat awalan
sebelum looping dilakukan dan terdapat kondisi untuk menghentikan looping.
Procedure
Procedure atau prosedur adalah program kecil atau subprogram yang berada
di program utama untuk menyelesaikan masalah khusus dengan
menggunakan atau tidak menggunakan parameter.
Parameter adalah data masukan untuk subprogram yang nantinya akan
diproses lebih lanjut di dalam prosedur.
Kita menggunakan kata "PROCEDURE" diikuti dengan nama prosedur dan
parameter untuk membuat sebuah prosedur, dan kita tutup alur prosedur
dengan "END PROCEDURE". Untuk memanggil prosedur yang sudah dibuat
dapat menggunakan keyword "CALL".
PROCEDURE AddTwoNumber (number1, number2)
STORE "result" with number1 plus number2
PRINT "result"
END PROCEDURE

CALL AddTwoNumber(5, 10)


Pseudocode di atas merupakan bentuk prosedur dengan nama
"AddTwoNumber" atau menambahkan dua buah angka. Terdapat 2 parameter
yaitu "number1" dan "number2" yang nantikan dapat kita isi dengan nilai yang
ingin kita tambahkan dan di dalamnya terdapat proses penambahan
kemudian menampilkan hasil penambahan tersebut.
Function
Sedikit berbeda dengan procedure, function atau fungsi juga digunakan untuk
menyelesaikan masalah khusus, namun dapat mengembalian nilai atau data
yang dapat ditampung oleh variable atau digunakan dalam program utama.
Fungsi dapat dipanggil di dalam prosedur.
Kita bisa menggunakan kata "FUNCTION" diikuti dengan nama fungsi dan
parameter, kemudian ditutup dengan "END FUNCTION". Untuk
mengembalikan nilai atau hasil dari dalam fungsi, kita bisa menggunakan
keyword "RETURN".
FUNCTION AreaRectabgle (side)
STORE "result" with "side" times "side"
RETURN "result"
END FUNCTION

STORE "area" with AreaRectabgle(5)


PRINT "area"
Pseudocode di atas adalah contoh penerapan fungsi dengan nama
"AreaRectangle" atau luar persegi. Terdapat 1 parameter yang bernama "side".
FUngsi ini akan menghitung luas persegi dengan perhitungan "side" kali "side"
dan hasilnya akan dikembalikan, sehingga kita dapat menangkap hasilnya
di variable "area".
Sorting Concept
Sebenarnya kita sangat familiar dengan konsep ini, seperti ketika dikelas kita
pasti diabsen oleh guru dengan urutan nama dari "A" ke "Z", atau
menyebutkan angka dari 1 sampai 10. Jika kalian mahasiswa, pasti kita sering
mengurutkan data acak di sheet dengan menggunakan rumus sehingga
datanya terurut dari terkecil ke terbesar. Contoh tersebut adalah bentuk
konsep sorting atau pengurutan.
Namun karena kita akan membuat sebuah program dan berkomunikasi
dengan komputer, maka kita perlu memahami bagaimana sorting bekerja.
Swapping
Pertama kita perlu paham konsep penukaran atau swapping. Konsep ini adalah
bentuk menukar posisi urutan dari 2 posisi ke posisi yang saling berlawanan.

Kita ambil contoh sebagai berikut, bagaimana caranya kita memindahkan isi
dari Gelas A yang berisi kopi dengan gelas B yang berisi air jeruk. Kalau kita
coba langsung mengisi ke salah satu gelas, maka isinya akan tercampur. Maka
kita dapat menggunakan gelas penampung untuk memindahkan salah satu
gelas agar kosong dan kemudian isinya dipindahkan.

Maka kita berhasil memindahkan isi dari kedua gelas.


Sorting
Alur sorting sebenarnya sangat sederhana, kita cukup membandingkan antara
deretan data yang ingin diurutkan dari awal ke akhir kemudian menukar posisi
data yang tidak sesuai.
Contoh ada urutan angka 3, 2, 1, 4 dengan rincian, angka 3 di urutan 1,

angka 2 di urutan 2, angka 1 di urutan 3, dan angka 4 diurutan terakhir.


Alur pertama yang dilakukan adalah membandingkan angka pertama dan ke-
2. Karena 3 lebih besar dari 2, maka kita akan menukar posisi dari 3 dan 2.
Hasil akhirnya akan menjadi :

Kita lakukan lagi dengan membandingkan angka ke-2 dan 3. Karena 3 lebih
besar dari 1, maka kita akan menukar posisi dari 3 dan 1. Hasil akhirnya akan
menjadi :

Proses terakhir adalah membandingkan angka ke-3 dan terakhir. Karena 3


tidak lebih besar dari 4, maka tidak ada penukaran posisi. Hasil akhir :

Karena data masih belum urut, kita akan mengulangi proses pengecekan dari
urutan awal lagi dan menukar posisi angka yang kurang tepat hingga hasilnya
urut.

Proses sorting sederhana ini disebut dengan istilah bubble sort, kita bisa
melihat visualisasinya di sini. Pseudocode dapat dibuat sebagai berikut :
PROCEDURE Sorting (data)
STORE "swapped" WITH TRUE
WHILE "swapped"
DO
STORE "swapped" WITH FALSE
FOR "i" from 1 in "data" // variabel 'i' sebagai
posisi dari setiap data dengan dimulai pada posisi ke 1
IF "data"["i"] > "data"["i+1"]
STORE "temp" WITH "data"["i"]
STORE "data"["i"] WITH "data"["i+1"]
STORE "data"["i+1"] WITH "temp"
STORE "swapped" WITH TRUE
END FOR
PRINT data
END PROCEDURE
Quiz
1.
Pseudocode digunakan untuk

Membuat bahasa pemrograman.

Dipahami oleh manusia dan komputer.

Menerjemahkan algoritma kedalam bahasa Inggris.

Menjadi jembatan antara bahasa pemrograman dengan bahasa baku yang


mudah dipahami oleh manusia.
2.
Untuk mewakili suatu percabangan atau kondisi, dalam pseudocode, diwakili
oleh kata

READ dan WRITE

WHILE

IF and ELSE

IF dan DO
3.
Untuk mewakili suatu subprogram atau kumpulan instruksi yang saling
berhubungan, dalam pseudocode, diwakili oleh kata

PROCEDURE ATAU FUNCTION

WHILE

READ dan WRITE

IF dan ELSE
4.
Untuk mewakili suatu aktivitas berulang atau looping, dalam pseudocode,
diwakili oleh kata

DO

IF dan ELSE

READ dan WRITE

WHILE
5.
Variable adalah sebuah pengenal ( identifier ) untuk mewakili suatu nilai
tertentu, dalam pseudocode, diwakili oleh kata

WHILE

READ dan STRING

IF dan ELSE

READ dan WRITE

Pengantar SDLC
Rekayasa Perangkat Lunak
7 menit membaca
Apa itu SDLC
(sumber: https://nix-united.com/ )
Software Development Life Cycle (SDLC) adalah proses yang digunakan
untuk merancang, mengembangkan, dan menguji perangkat lunak yang
berkualitas tinggi. Tujuan dari SDLC adalah untuk menyediakan alur
terstruktur dalam membantu organisasi menghasilkan perangkat
lunak berkualitas tinggi yang diselesaikan dengan perkiraan waktu yang
singkat dan biaya yang rendah, namun tetap memenuhi atau melebihi
harapan pelanggan.
Dalam praktiknya, SDLC akan dimulai dengan mengevaluasi sistem yang ada
untuk memenuhi kebutuhan pada sistem yang baru. Baru setelah
itu, software akan dibuat berdasarkan tahapan-tahapan SDLC yang ada. SDLC
akan mengantisipasi kemungkinan adanya kesalahan sehingga dapat
mengurangi kemungkinan pengerjaan adanya ulang atau perbaikan
setelah perangkat lunak selesai dibuat. SLDC juga merupakan metodologi
yang berulang, sehingga kualitas kode yang ada di setiap siklusnya harus
dijaga.
Langkah-langkah Dalam SDLC
Pada dasarnya SDLC menggambarkan alur terstruktur dalam fase
siklus perangkat lunak dan urutan bagaimana fase itu dilaksanakan untuk
membuat perangkat lunak yang berkualitas dalam waktu yang cepat. Setiap
fase atau tahapan akan menghasilkan apa yang dibutuhkan oleh fase
berikutnya dalam life cycle tersebut. Kebutuhan tersebut lalu diterjemahkan ke
dalam bentuk desain. Kode pun kemudian akan diproduksi sesuai dengan
desain tersebut dalam tahap pengembangan.
Setelah pengkodean dan pengembangan, baru kemudian dilakukan tahapan
pengujian untuk memverifikasi apakah hasil yang dihasilkan sudah sesuai
dengan kebutuhan yang ditentukan di awal. Agar semakin paham, simak
penjelasan tahapan-tahapan SDLC secara sederhana berikut ini.
Perencanaan Sistem
Tahap pertama SDLC adalah perencanaan. Pada tahap ini pimpinan
proyek akan mengevaluasi kebutuhan yang ada dalam sebuah proyek. Ini
mencakup menghitung tenaga kerja dan material yang dibutuhkan,
membuat target dan jadwal, membentuk tim serta struktur kepemimpinan
untuk proyek tersebut. Tahap ini juga dapat mencakup pengumpulan umpan
balik dari pemangku kepentingan atau pihak-pihak terkait seperti calon
pelanggan, pengembang , perwakilan tim penjualan, dan pendapat ahli.
Penting untuk diingat agar awal perencanaan harus dapat menjelaskan ruang
lingkup dan tujuan pembuatan perangkat lunak tersebut. Hal ini diperlukan
agar tim dapat membuat perangkat lunak secara efektif tanpa dialihkan dari
tujuan utama.
Analisa sistem
Fase ini terkadang dianggap sebagai bagian dari
tahapan perencanaan . Tujuan fase ini adalah menentukan apa yang
seharusnya perangkat lunak tersebut dibuat dan persyaratan apa yang
dibutuhkan untuk menjalankannya. Contohnya agar software media sosial
dapat berjalan dengan kemampuan yang dibutuhkan di mana dapat
terhubung dengan seorang teman sehingga perlu adanya fitur pencarian
dalam software pengguna tersebut.
Selain itu persyaratan yang dimaksud dalam fase ini juga dimaksudkan untuk
menentukan sumber daya yang dibutuhkan untuk membangun proyek seperti
tim atau material dalam proses pengembangan perangkat lunak tersebut.
Desain sistem
Fase desain dalam SDLC adalah tahapan membuat sebuah model cara
kerja software . Ada beberapa aspek yang diperhatikan dalam tahapan desain,
antara lain:

 Komunikasi. Mendefinisikan metode atau cara software berkomunikasi


dengan aset lainnya seperti pusat server atau software lainnya
 Pemrograman. Tidak hanya menentukan bahasa pemrograman, tetapi juga
termasuk metode pemecahan masalah dan tugas-tugas yang ada
dalam perangkat lunak .
 Arsitektur. Menentukan bahasa pemrograman, praktik dalam industri, desain
keseluruhan dan penggunaan template tertentu
 Antarmuka pengguna. Mendefinisikan bagaimana cara pelanggan
berinteraksi dengan software dan bagaimana software tersebut dapat
merespon input yang ada
 Platform. Mendefinisikan platform di software mana yang akan
dijalankan. Misalnya versi android, ios, linux atau game konsol.
 Keamanan. Mendefinisikan langkah-langkah untuk
mengamankan software . Misalnya membuat proteksi kata sandi, enkripsi lalu
lintas SSL atau membuat penyimpanan kredensial pengguna yang aman.

Membuat prototipe juga dapat menjadi bagian dari tahapan desain dalam
SDLC. Prototipe sendiri menjadi versi awal dari software dalam model
pengembangan software yang berulang. Prototipe akan mendemonstrasikan
ide dasar bagaimana software dapat terlihat dan bekerja. Desain ini dapat
berguna ditunjukkan kepada stakeholder untuk mendapatkan umpan balik
yang dapat meningkatkan kualitas software tersebut.
Pengembangan perangkat lunak
Tahap ini adalah tahap di mana perangkat lunak ditulis. Biasanya jika proyek
tersebut kecil maka software dapat ditulis oleh satu developer . Namun, jika
proyek besar bisa pecah dan dikerjakan oleh beberapa tim. Pada bagian ini
juga dapat digunakan perangkat lunak Access Control atau Source Code
Management untuk membantu pengembang melacak perubahan pada kode
dan memastikan kompatibilitas antar tim yang berbeda agar sesuai dengan
target.
Proses pengkodean tidak hanya dilakukan sebatas menyusun kode
agar perangkat lunak dapat berjalan, tetapi juga mencakup banyak tugas lain
misalnya menemukan dan memperbaiki kesalahan atau gangguan yang
ditemukan, serta penulisan dokumentasi seperti panduan pengguna atau
bantuan FAQ untuk masalah teknis. Tahapan ini termasuk salah satu fase SDLC
yang memakan waktu lebih lama.
Pengujian
Tahapan pengujian sangat penting sebelum perangkat lunak digunakan
pengguna. Beberapa pengujian yang biasanya dilakukan seperti security
testing yang diotomatiskan, atau pengujian untuk penerapan yang
kompleks. Pengujian harus memastikan setiap fungsi dapat bekerja dengan
baik dan lancar sehingga dapat mengurangi kemungkinan adanya
keterlambatan dalam pemrosesan, bug dan gangguan yang ditemui
pengguna.
Penyebaran
Tahapan selanjutnya pada SDLC adalah penerapan. Pada fase
ini software sudah tersedia pada pelanggan untuk digunakan. Meski begitu
tahapan ini bisa jadi lebih rumit. Contohnya mungkin perlu melakukan
pembaruan struktur database ke software yang baru dikembangkan sehingga
memakan lebih banyak waktu dan tenaga.
Operasi dan Pemeliharaan
Pada titik ini sebenarnya software benar-benar sudah selesai dan bisa
digunakan di lapangan. Namun, tahapan operasi dan pemeliharaan masih
dianggap penting. Sebab, dalam tahapan ini pengguna bisa jadi
menemukan bug yang tidak ditemukan selama pengujian sehingga hal
tersebut perlu di atasi. Dari sini bisa jadi akan memunculkan siklus SDLC yang
baru untuk memperbaiki bug , menentukan rencana pengembangan berulang,
atau tambahan fitur dalam rilis mendatang.

SDLC Model
Software Engineering
7 min read
SDLC Model Type
(sumber: https://www.techuz.com/)
Metode SDLC memiliki banyak jenis model pengembangan dengan kelebihan
dan kekurangan masing-masing. Berikut beberapa di antaranya :
Model Sekuensial Linear/Waterfall
(sumber: https://www.techuz.com/)
Model Sekuensial Linear sering juga disebut sebagai pendekatan air terjun
(waterfall). Metode waterfall pertama kali diperkenalkan oleh Windows W.
Royce pada tahun 1970. Waterfall merupakan model klasik yang sederhana
dengan aliran sistem yang linier. Output dari setiap tahap
merupakan input bagi tahap berikutnya (Kristanto, 2004).
Model ini melibatkan penyelesaian satu tahap secara lengkap sebelum
melangkah ke tahap berikutnya. Ketika satu tahap selesai, langsung dilakukan
evaluasi untuk memastikan proyek berjalan sesuai rencana dan layak
diteruskan ke tahap berikutnya. Waterfall Model, disebut juga model klasik,
memiliki beberapa tahap utama, yaitu analisis dan rekayasa sistem,
perancangan, penulisan program, pengujian, dan pemeliharaan.
Kelebihan Model Sekuensial Linear/Waterfall Development Model:

 Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan


prosesnya teratur.
 Cocok digunakan untuk produk software yang sudah jelas kebutuhannya di
awal, sehingga minim kesalahannya.
 Software yang dikembangkan dengan metode ini biasanya menghasilkan
kualitas yang baik.
 Dokumen pengembangan sistem sangat terorganisir, karena setiap fase harus
terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.

Kekurangan Model Sekuensial Linear/Waterfall Development Model:

 Proyek di dunia nyata jarang mengikuti alur sekuensial seperti diusulkan,


sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah
didapatkan tim pengembang harus diubah kembali/iterasi dan sering
menyebabkan masalah baru.
 Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel,
karena komitmen harus dilakukan pada tahap awal proses.
 Sulit untuk mengakomodir perubahan kebutuhan yang diinginkan oleh
pelanggan.
 Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap
per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila
tahap sebelumnya sudah benar-benar selesai.
 Perubahan di tengah-tengah pengerjaan produk akan membuat bingung tim
pengembang yang sedang membuat produk.
 Adanya waktu kosong (menganggur) bagi pengembang (software developer),
karena harus menunggu anggota tim proyek lainnya menuntaskan
pekerjaannya.
Prototype

(sumber: https://www.techuz.com/)
Merupakan suatu paradigma baru dalam metode pengembangan perangkat
lunak di mana metode ini tidak hanya sekedar evolusi dalam dunia
pengembangan perangkat lunak, tetapi juga merevolusi metode
pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa
dikenal dengan nama SDLC atau waterfall development model. Dalam Model
Prototype, prototype dari perangkat lunak yang dihasilkan akan
dipresentasikan kepada pelanggan, dan pelanggan diberikan kesempatan
untuk memberikan masukan sehingga perangkat lunak yang dihasilkan
nantinya betul-betul sesuai dengan keinginan dan kebutuhan pelanggan.
Kelebihan Model Prototype:

 Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil


produk pengembangan akan semakin mudah disesuaikan dengan keinginan
dan kebutuhan pelanggan.
 Penentuan kebutuhan lebih mudah diwujudkan.
 Mempersingkat waktu pengembangan produk perangkat lunak.
 Adanya komunikasi yang baik antara pengembang dan pelanggan.
 Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan
pelanggan.
 Lebih menghemat waktu dalam pengembangan sistem.
 Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang
diharapkannya.

Kekurangan Model Prototype:

 Proses analisis dan perancangan terlalu singkat.


 Biasanya kurang fleksibel dalam menghadapi perubahan.
 Walaupun pelanggan melihat berbagai perbaikan dari setiap versi prototype,
tetapi pelanggan mungkin tidak menyadari bahwa versi tersebut dibuat tanpa
memperhatikan kualitas dan pemeliharaan jangka panjang.
 Pengembang kadang-kadang membuat kompromi implementasi dengan
menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak
efisien.

Agile
(sumber: https://www.techuz.com/)
Model Agile merupakan model pengembangan jangka pendek yang lebih
mengutamakan adaptasi yang cepat terhadap perubahan dalam bentuk
apapun.
Dalam Agile terdapat beberapa poin penting di antaranya :

 Interaksi antar orang lebih penting daripada proses dan alat.


 Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang
lengkap
 Kolaborasi dengan pelanggan lebih penting daripada negosiasi kontrak.
 Sikap tanggap lebih penting daripada mengikuti rencana.

Kelebihan Model Agile:

 Cocok digunakan di proyek dengan ruang lingkup yang tidak pasti. Di mana
sulit untuk mendefinisikan dengan pasti di awal, seluruh kebutuhan dan
desain dari perangkat lunak.
 Tingkat kepuasan pelanggan lebih tinggi berkat keterlibatan pelanggan
selama proses rekayasa perangkat lunak. Di mana pelanggan tidak perlu
menunggu sampai perangkat lunak selesai untuk memberikan masukan
maupun saran perbaikan, sehingga sesuai dengan kebutuhan pelanggan.
 Software dapat lebih cepat digunakan oleh pelanggan karena penggunaan
pengembangan bertahap sehingga sebagian fungsi software dapat digunakan
dahulu tanpa perlu menunggu software selesai 100%.

Kelemahan Model Agile:

 Analisis, desain, dan pengembangan sulit diprediksi sehingga tidak cocok


untuk proyek yang besar dan kompleks.
 Perlunya pelatihan dan kemampuan khusus, bahkan perubahan dalam
organisasi agar dapat melaksanakan Model Agile yang mementingkan
kolaborasi dengan efektif guna mendapatkan hasil maksimal.

Anda mungkin juga menyukai