Memulai Dasar Pemrograman untuk Menjadi Pengembang Software

Memahami Kebutuhan Aplikasi



User Requirement Specification (URS) adalah dokumen yang menyimpan informasi mengenai kebutuhan pengguna yang dibuat sebelum proses pengembangan suatu software. Dokumen ini bertujuan agar ketika ada yang membaca dokumen ini maka akan mendapatkan pemahaman yang sama akan kebutuhan user pada aplikasi.

Dokumen User Requirement Specification tidak boleh menggunakan jargon teknis yang hanya dipahami oleh kelompok tertentu, melainkan harus menggunakan bahasa yang bisa dipahami oleh seluruh stakeholder (pemegang kepentingan), seperti manajer, developer, customer, dan user. 

Beberapa teknik requirement gathering yang bisa kita gunakan adalah:

1. Interview, proses wawancara yang berupa tanya jawab

2. User Stories, menuliskan kebutuhan user sesuai dengan role dan keinginannya 

3. Straw Man, menyampaikan ide tanpa menggunakan kode

4. Prototyping, membuat sampel program yang hanya memiliki fitur-fitur utamanya saja

Spesifikasi Teknis Aplikasi yakni dokumen yang menyimpan informasi detail mengenai fungsionalitas dari sistem/aplikasi, servis, dan juga limitasi-limitasinya.

Beberapa prinsip yang perlu diperhatikan ketika membuat spesifikasi teknis aplikasi seperti berikut:

1. Clear (jelas)

2. Unambiguous (tidak ambigu)

3. Mudah dipahami

4. Complete (lengkap)

5. Consistent (konsisten)


Dalam proses pembuatan spesifikasi teknis aplikasi kita perlu mempertimbangkan kebutuhan dari berbagai macam stakeholder. Berikut pandangan beberapa stakeholder terkait spesifikasi teknis:

1. Developer
Dari sisi developer tentunya yang diperlukan ada kedetailan dan kejelasan spesifikasi. Karena merekalah yang akan mengimplementasinya ke dalam aplikasi.

2. Client/User
Dari sisi client meskipun spesifikasi teknis lebih mengarah ke teknis akan tetapi mereka berharap tetap bisa dimengerti. Dalam artian istilah teknis yang dipakai harus bisa dibuat semudah mungkin untuk dimengerti.

3. Legal
Karena spesifikasi teknis ini bisa menjadi kontrak, maka perlu memasukkan acceptance criteria dengan jelas juga. Acceptance criteria adalah klausul kriteria yang berisi apakah suatu fitur sudah berjalan dengan baik. Jika aplikasi yang dibuat lulus semua acceptance criteria maka seharusnya tidak ada masalah dari sisi kontrak/legal.

Dalam mengembangkan aplikasi, sebaiknya disiapkan juga plan B atau contingency plan. Contingency plan adalah suatu tindakan alternatif yang dipersiapkan ketika tindakan utama yang direncanakan untuk melakukan sesuatu gagal atau terhambat oleh berbagai faktor.


Perencanaan Modifikasi Aplikasi

Spesifikasi Kebutuhan Perangkat Lunak

  • Spesifikasi Kebutuhan Aplikasi Perangkat Lunak adalah sebuah dokumen yang dibuat sebelum mengembangkan sebuah aplikasi perangkat lunak. Dokumen ini menjelaskan cara kerja dan kebutuhan fungsional maupun non-fungsional dari aplikasi yang digunakan pengguna nantinya.

  • Beberapa keuntungan yang didapatkan dari pembuatan dokumen Spesifikasi Kebutuhan Aplikasi Perangkat Lunak:

    • Desainer dalam tim baik dari sisi UI/UX akan mendapat gambaran sehingga mereka dapat mencocokkan desain dengan kebutuhan aplikasi.

    • Tim penguji aplikasi (tester) akan mendapatkan panduan untuk membuat studi kasus untuk melakukan proses pengujian aplikasi.

    • Pengguna (end user) akan mendapatkan gambaran umum terkait aplikasi yang akan dibuat.

    • Pihak investor juga akan mendapatkan gambaran umum terkait fitur apa saja yang ada di dalam aplikasi. Sehingga membantu mereka untuk mengambil keputusan untuk investasi atau tidak.

  • Cakupan elemen yang ada dalam dokumen Spesifikasi Kebutuhan Perangkat Lunak:

    • Tujuan dari aplikasi

    • Deskripsi umum mengenai aplikasi

    • Kebutuhan fungsional dan non fungsional dari aplikasi

    • Performa aplikasi dalam proses produksi

    • Antarmuka eksternal atau bagaimana sebuah aplikasi berinteraksi dengan perangkat keras atau perangkat lunak lainnya.

    • Batasan dari sistem aplikasi yang akan dibuat.

  • Kebutuhan fungsional menggambarkan bagaimana sistem membantu menyelesaikan tugas atau kebutuhan pengguna ketika menggunakan aplikasi yang kita buat. Kebutuhan fungsional ini sama halnya dengan fitur yang ditawarkan aplikasi untuk pengguna. Tanpa terpenuhinya kebutuhan fungsional dalam dokumen SKPL, sama halnya dengan Anda meniadakan fungsi atau fitur dari sebuah aplikasi.

  • Kebutuhan non fungsional mendukung kebutuhan fungsional yang sudah ada. Tanpa adanya persyaratan non fungsional, sistem aplikasi masih akan tetap bisa berjalan untuk memenuhi kebutuhan yang diinginkan pengguna. Walaupun begitu, kebutuhan non fungsional juga tetap harus diperhatikan karena dapat mempengaruhi pengalaman pengguna (user experience) ketika menggunakan aplikasi. Biasanya persyaratan non fungsional ini, meliputi kinerja, keandalan, keamanan, dan kegunaan dari aplikasi itu sendiri.

Struktur Penulisan Dokumen Spesifikasi Kebutuhan Perangkat Lunak (SKPL)

Anda dapat mengacu pada standar IEEE 1998 untuk menulis dokumen Spesifikasi Kebutuhan Perangkat Lunak. Standar ini dapat Anda sesuaikan kembali bergantung pada kebutuhan aplikasi atau perangkat lunak yang ingin dikembangkan. Untuk lebih jelasnya, simak tabel berikut ini:

Bab

Deskripsi

Pengantar

Menjelaskan secara singkat fungsi dari sistem yang dibuat dan cara kerja aplikasi. Selain itu juga menjelaskan tujuan dari aplikasi yang akan dibuat.

Glosarium

Berisi definisi istilah-istilah teknis yang ada dalam dokumen.

Kebutuhan Pengguna

Menjelaskan secara umum layanan yang disediakan sistem untuk pengguna. Deskripsi yang ada bisa menggunakan narasi biasa atau diagram supaya dapat dimengerti.

Sistem Arsitektur

Menjelaskan gambaran tingkat tinggi (high level overview) dari sistem arsitektur yang digunakan dalam aplikasi.

Spesifikasi Kebutuhan Sistem

Menjelaskan secara lebih rinci tentang kebutuhan fungsional dan non fungsional dari aplikasi yang akan dibuat. Selain itu jika sistem memiliki antarmuka dengan sistem atau perangkat keras lain juga dapat ditambahkan di sini.

Model Sistem

Menjelaskan object model, data-flow models, atau semantic data models yang digunakan dalam aplikasi.

Rencana Pengembangan Sistem

Menjelaskan asumsi Anda terkait rencana pengembangan sistem di masa depan. Bagian ini akan berguna bagi desainer aplikasi untuk tidak membatasi idenya untuk kemungkinan pengembangan sistem.

Apendiks

Menjelaskan detail tambahan yang mendukung pengembangan aplikasi


Alur Kerja Aplikasi

  • Bahasa pemrograman tidak bisa langsung berkomunikasi dengan komputer. Komputer hanya bisa memahami bahasa mesin. Oleh karena itu diperlukan jembatan yaitu compiler atau interpreter supaya bahasa pemrograman bisa dipahami oleh komputer. Selengkapnya mengenai perbedaan compiler bisa Anda simak di tabel berikut:

    Kategori Compiler Interpreter

    Penggunaan

    • Source code telah dikonversi menjadi machine code.

    • Waktu eksekusi program lebih singkat.

    • Lebih mudah digunakan untuk pemula yang baru belajar.

    Hasil keluaran

    Menghasilkan aplikasi atau program luaran berupa berkas executable (.exe)

    Tidak menghasilkan aplikasi atau program luaran berupa berkas executable.

    Efektifitas

    Hasil kompilasi dari source code akan berjalan lebih cepat.

    Berjalan lebih lambat ketika dieksekusi.

    Platform

    Spesifik ke platform tertentu (misal .exe tidak dapat dibuka di Mac)

    Cross platform (asalkan memiliki interpreter yang sesuai)

    Alur pembacaan

    • Compiler menampilkan pesan eror ketika terjadi kesalahan kode.

    • Program tidak berjalan atau tidak menghasilkan berkas executable apabila kesalahan kodenya belum diperbaiki.

    • Misal ada kode yang salah di baris ke-5, maka harus diperbaiki dulu.

    • Membaca satu per satu baris kode yang ada. 

    • Jika terdapat kode yang salah, interpreter menampilkan pesan eror dan harus diperbaiki untuk melanjutkan eksekusi baris selanjutnya.

    • Misalnya terdapat eror di baris ke-5, program masih bisa berjalan karena baris pertama sampai keempat tidak ada eror.

    Bahasa Pemrograman

    C, C++, C#, Swift, Java

    JavaScript, Python, PHP, Ruby.


Penyelesaian Masalah Menggunakan Cara Berpikir Komputasional

Berikut teknik penyelesaian masalah menggunakan cara berpikir komputasional:

  • Memecah permasalahan yang besar menjadi bagian kecil (decomposition)
    Dengan teknik decomposition tersebut, maka kita tidak lagi melihat sebuah permasalahan sebagai hal yang kompleks. Karena kita telah memecahnya menjadi bagian atau tugas-tugas kecil yang bisa dikerjakan.

  • Pelajari pola dari setiap permasalahan (pattern recognition)
    Pattern Recognition merupakan teknik pemecahan masalah dengan melihat perbedaan atau persamaan pola dari berbagai permasalahan. Sehingga kita dapat memprediksi atau memproyeksikan solusi apa yang harus kita lakukan. Ketika kita dihadapkan dengan banyak permasalahan, kita harus bisa mempelajari polanya supaya dapat menyelesaikan dengan cepat.

  • Mengabstraksikan suatu permasalahan (abstraction)
    Abstraksi merupakan cara berpikir komputasional yang identik dengan penyaringan dan pengumpulan data yang bersifat umum. Selain itu, abstraksi juga akan mengesampingkan detail data yang bersifat khusus atau yang tidak kita perlukan untuk lebih berkonsentrasi terhadap apa yang akan dilakukan.

  • Susun langkah menggunakan algoritma (algorithm)
    Algoritma merupakan sekumpulan alur instruksi yang berurutan untuk menyelesaikan permasalahan. Sehingga kita akan merangkai sekumpulan instruksi tersebut menjadi urutan yang terstruktur, logis, dan mudah dipahami. Algoritma yang dibuat harus memuat beberapa hal yaitu, titik awal, titik akhir, dan serangkaian instruksi yang jelas.

  • Mengevaluasi solusi yang didapatkan (evaluation)
    Proses terakhir yang dapat kita lakukan adalah melakukan evaluasi terhadap solusi yang telah kita dapatkan. Proses ini perlu dilakukan sebelum melangkah ke permasalahan atau tugas yang baru.  


Flowchart

  • Flowchart atau bisa disebut dengan diagram alur merupakan bentuk penggambaran dengan pendekatan visual terkait langkah-langkah dan keputusan untuk melakukan sebuah proses, alur kerja, ataupun algoritma. Beberapa jenis flowchart antara lain, process, workflow, dan program flowchart.

  • Flowchart atau diagram alur memiliki beberapa simbol tertentu untuk mewakili fungsi atau langkahnya dalam sebuah proses. Garis dan panah menunjukkan urutan langkah dan hubungan antar blok diagram. Berikut adalah beberapa simbol yang sering dijumpai pada flowchart:

    Simbol

    Nama

    Fungsi

    202106251317075a3c8f59a143ecc727c30b78942e1c2e.png

    Terminator

    Titik awal atau akhir dari sebuah alur atau proses.

    2021062513171981cf7c336a04717f9e6c49b5ff448e69.png

    Proses

    Menunjukkan proses, aktivitas, atau langkah.

    20210625131731b3220f7a59ebac34e3c40919dd9230dd.png

    Data

    Menunjukkan input dan output.

    20210625131745ca14b2297629bbd10700c915c10d927f.png

    Decision

    Menunjukkan adanya pemilihan keputusan/decision making.

    202106251317510d40f2591b7eb9b484a40258fe0914a4.png

    Arrow

    Menghubungkan dari satu bentuk simbol ke simbol lainnya. Menunjukkan arah proses atau alur.

    20210625131757e892778ee41074b61c092ba2b6d6583d.png

    Database

    Merepresentasikan dari penyimpanan data atau database.

    2021062513180349e5905c7d7c3f53da7342b62d54f3db.png

    Document

    Merepresentasikan bentuk dokumen atau laporan.


Tips Sikap Kerja dalam Kolaborasi Perencanaan Aplikasi dengan Tim

Untuk mengetahui tips sikap kerja dalam kolaborasi perencanaan aplikasi dengan tim, simak uraiannya di bawah ini:

  • Efektifkan Komunikasi
    Dalam proses kolaborasi pasti tidak pernah lepas dari diskusi timbal balik alias komunikasi. Komunikasi yang efektif antar anggota tim akan membuat informasi tersampaikan dengan baik. Tanpa adanya komunikasi maka segala informasi akan tak tersampaikan dan kolaborasi pun tidak akan berjalan dengan semestinya.

  • Bertanggung jawab pada tugas yang dikerjakan
    Membangun kepercayaan dalam tim juga berperan penting dalam keberhasilan kolaborasi. Mengapa demikian? Kepercayaan berarti Anda mengandalkan orang lain untuk melakukan sebuah pekerjaan. Anda percaya pada integritas dan kemampuan orang tersebut walaupun ada kemungkinan resiko yang bisa kembali ke diri Anda sendiri. Begitu pula sebaliknya, jika orang lain mengandalkan Anda untuk membantu pekerjaannya, maka orang tersebut percaya pada kemampuan dan integritas Anda.

  • Berikan Semangat Anda
    Kita telah mengetahui pentingnya membangun kepercayaan dalam sebuah proses kolaborasi. Selain itu kita juga harus selalu menunjukkan semangat dan bergairah dalam mengerjakan tugas. Semangat dapat mempengaruhi mental dari tim. Maka dari itu ketika ada anggota tim yang sedang terlihat lesu karena kehilangan semangat atau bahkan hampir putus asa, kita harus menyemangatinya. Mungkin terdengar sepele tetapi hal tersebut akan mempengaruhi psikis anggota tim.

  • Utamakan Diskusi
    Berpikir bersama dalam sebuah diskusi merupakan hal yang sangat penting dalam sebuah tim. Ketika muncul kendala yang cukup besar, diskusi bersama merupakan hal yang tepat untuk diterapkan. Jika rekan tim Anda berusaha menyelesaikan sendiri-sendiri, ajaklah mereka berdiskusi untuk mencapai tujuan bersama. Utarakan pendapat Anda sesuai dengan tujuan yang ingin dicapai. Anda juga harus bisa mendengarkan dan menghargai pendapat orang lain ketika mereka mengemukakan idenya.

  • Hindari Sikap Tidak Tanggap (Slow Response)
    Kondisi tidak tanggap atau slow response ini biasanya sering ditemui ketika bekerja secara jarak jauh. Satu-satunya cara untuk saling berkomunikasi adalah dengan mengirim pesan atau melakukan video call. Sehingga anggota tim yang bekerja secara jarak jauh harus selalu stand by apabila sewaktu-waktu ada hal penting yang harus segera dikerjakan.

  • Menentukan Prioritas
    Kita pasti akan menemui kondisi di mana banyak kerjaan atau todo yang harus kita kerjakan dalam satu waktu. Dan terkadang semua todo adalah hal penting yang memang harus dikerjakan. Nah, dari permasalahan tersebut kita perlu menentukan prioritas terhadap pekerjaan kita.

    Berikut rekomendasi yang bisa Anda ikuti dalam menentukan prioritas pekerjaan:

    • Kumpulan semua todo dalam satu tempat
    • Identifikasi todo yang urgent (harus segera diselesaikan) vs important (penting untuk dikerjakan)
    • Perhitungkan nilai tiap todo
    • Urutkan todo berdasarkan usaha yang harus dikeluarkan
    • Fleksibel dan Mudah Beradaptasi
    • Hapus todo yang bisa dihapus

Mengerti Konsep Dasar Pemrograman

Berikut beberapa ringkasan mengenai materi mengerti konsep dasar pemrograman:

Sintaksis

  • Sintaksis merupakan aturan-aturan yang ada dalam bahasa pemrograman. Sintaksis harus benar-benar dipatuhi aturannya supaya kode kita berjalan dengan baik.

  • Hampir semua bahasa pemrograman saat ini bersifat case sensitive. Artinya, setiap kapitalisasi huruf pada sebuah kode akan berpengaruh. Misalnya jika kita memiliki variabel bernama kucing dan Kucing, keduanya merupakan dua entitas variabel yang berbeda. Sedangkan kode yang bersifat non Case Sensitive berarti sebaliknya. Ia tidak akan terpengaruh dengan penulisan huruf besar atau kecil.

  • Program komputer terdiri dari kumpulan instruksi tunggal yang berkaitan satu sama lain. Instruksi-instruksi itulah yang disebut dengan statement. Dalam beberapa bahasa pemrograman misalnya seperti C, Java, dan sejenisnya, untuk mengakhiri suatu statement biasanya menggunakan tanda semicolon (;) atau titik koma. Kurangnya tanda semicolon (;) akan menyebabkan program gagal/error untuk dijalankan.

  • Tidak semua bahasa pemrograman menggunakan semicolon sebagai penutup statement. Ada juga yang tidak wajib menggunakan semicolon seperti Python, Swift, dan Kotlin.

  • Pseudocode atau kode semu merupakan istilah dalam pemrograman untuk menuliskan sebuah sintaks, statement, algoritma, dan lainnya dalam bahasa yang bisa dipahami oleh manusia. Salah satu fungsi dari pseudocode adalah meningkatkan pemahaman dari pendekatan apa pun. Hal ini merupakan cara terbaik untuk menjelaskan apa yang kita inginkan dan melatih logika dalam pemrograman.

  • Whitespace saat kita mengetik kode biasanya berupa spasi atau tab untuk indentasi. Whitespace memang tidak mempengaruhi berjalannya suatu program. Namun, dalam bahasa pemrograman Python hal ini sangat sensitif dan berpengaruh terhadap berfungsinya suatu program.

  • Keyword merupakan kata kunci yang telah disediakan oleh sebuah bahasa pemrograman. Keyword tidak bisa berdiri sendiri guna membuat sebuah program yang dapat dijalankan. Kita harus mengkombinasikan keyword dengan logika pemrograman yang ada dengan bahasa yang kita pahami.


Dasar Pemrograman Secara Umum

  • Variabel dalam pemrograman berfungsi untuk menyimpan nilai dari suatu data. Dalam satu variabel terdapat 3 bagian yaitu nama, tipe data, dan nilai dari variabel tersebut. Beberapa hal yang harus diperhatikan dalam variabel seperti, nama variabel tidak boleh ada spasi dan tidak boleh mengawali nama variabel dengan angka.

  • Operator sama dengan ("=") menyatakan perintah pada komputer untuk melakukan sesuatu atau bisa disebut assignment operator (operator penugasan).

  • Tipe data ada 3 jenis yaitu numerik, boolean, dan teks atau karakter. Contoh tipe data numerik yang sering digunakan adalah int (bilangan bulat) dan float (bilangan desimal). Kemudian untuk tipe data boolean memiliki dua nilai saja yaitu true dan false. Sedangkan tipe data berjenis teks atau karakter ada 2 yaitu char (untuk menampung satu karakter saja) dan string (untuk menampung banyak karakter atau kalimat).

  • Logika pemrograman dasar yang dapat diterapkan dalam pemrograman antara lain, logika perbandingan dan perulangan.

  • Dalam pemrograman, logika perbandingan berguna untuk membandingkan dua hal yang memiliki nilai dengan kondisi tertentu, salah satunya dengan operator ==. Logika perbandingan dapat kita bedakan menjadi sederhana dan kompleks. Untuk logika perbandingan sederhana kita dapat mengecek suatu kondisi menggunakan IF/Else saja. Kemungkinan yang dihasilkan oleh IF/Else ada dua. Jika kondisinya terpenuhi, maka ia akan mengeksekusi statement yang ada di dalam blok kode IF paling awal. Sedangkan jika tidak terpenuhi, ia akan mengeksekusi statement yang berada di dalam kondisi Else.

  • Logika perbandingan kompleks dapat menggabungkan IF/Else dengan AND dan OR. Penggunaan AND mengharuskan dua kondisi yang dibandingkan terpenuhi supaya bernilai true. Sedangkan untuk OR salah satu kondisi saja terpenuhi sudah bisa bernilai true.

  • Supaya tidak mengulangi menulis statement yang berulang kali, kita bisa menggunakan logika perulangan. Untuk membuat perulangan bisa menggunakan while atau for. While digunakan ketika kita tidak mengetahui berapa kali perulangan akan berjalan. Yang terpenting adalah selama kondisinya memenuhi syarat maka perulangan akan terus berjalan. Sedangkan dalam For, nilai perulangan, jumlah perulangan, dan akhiran yang biasanya berupa statement.


Dasar Pemrograman JavaScript

  • JavaScript erat kaitannya dengan pengembangan web yang berfungsi untuk membuat tampilan web terlihat dinamis dan interaktif. Selain itu terdapat beberapa kegunaan dari JavaScript seperti, mengembangkan aplikasi mobile, membuat game berbasis web, dan juga bisa digunakan untuk pengembangan back-end dari sebuah web.

  • Kita dapat menyimpan suatu nilai ke dalam variabel. ES6 mengenalkan dua cara baru untuk mendefinisikan variabel dalam JavaScript, yaitu menggunakan let dan const. Gunakan const untuk menyimpan nilai yang tidak akan berubah setelah diinisialisasi. Gunakan let apabila nilai di dalam variabel bisa berubah atau diinisialisasi ulang.

  • Terdapat 5 tipe data yang sering atau umum digunakan dalam JavaScript, antara lain:

    • Undefined
      Variabel tidak memiliki nilai. Artinya, kita hanya mendeklarasikan nama variabelnya saja tanpa menginisialisasikan nilai di dalamnya.

    • Number
      Nilai dari tipe data number adalah angka.

    • String
      String merupakan sebuah teks. Untuk menetapkan nilai sebagai string pada variabel gunakan tanda petik satu (‘) atau petik dua (“) di antara teksnya.

    • Boolean
      Boolean hanya memiliki dua nilai, yaitu true atau false. Tipe data ini menjadi kunci utama dalam penentuan logika.

    • Null
      Hampir sama dengan undefined, tetapi null perlu diinisialisasikan pada variabel. Null biasa digunakan sebagai nilai sementara pada variabel, tapi sebenarnya nilai tersebut “tidak ada”.

  • Secara umum bahasa pemrograman memiliki 3 konsep dasar yang mirip yaitu,

    • Statement selalu dieksekusi secara berurutan dari atas ke bawah (Sequences)

    • Logika pemilihan keputusan sesuai kondisi yang berlaku, misalnya seperti IF/Else (Selection).

    • Sebuah proses yang dilakukan secara berulang, misalnya seperti For (Looping).

  • Bahasa JavaScript yang telah kita pelajari di materi sebelumnya merupakan salah satu media yang menerapkan 3 konsep dasar pemrograman seperti sequence, selection, dan looping. Ketika kita menggunakan bahasa pemrograman lain misalnya seperti C#, Java, Swift, dan lainnya, akan juga akan memuat 3 konsep dasar pemrograman yang telah disebutkan di atas.


Tips Sikap Kerja untuk Belajar Pemrograman

Berikut beberapa tips yang dapat membantu Anda dalam belajar pemrograman:

  • Mengatur Waktu

    Tidak ada waktu merupakan alasan klasik ketika belajar pemrograman. Untuk mengatasi hal tersebut kita harus memiliki target belajar. Dengan memiliki target dan mengalokasikan waktu, maka Anda akan lebih terarah dan memiliki pencapaian belajar yang lebih terukur.

  • Perhatikan Kondisi Tempat Belajar

    Lingkungan tempat Anda belajar juga mempengaruhi kemampuan kita dalam mempelajari sesuatu. Hal tersebut terjadi karena otak Anda berasosiasi sesuai dengan konteks di mana Anda sedang mempelajari sesuatu. Dalam proses belajar, tempat atau suasana sangat penting supaya informasi yang kita pelajari bisa cepat kita serap.

  • Mulai dari yang Sederhana

    Dalam memulai belajar pemrograman jangan langsung loncat belajar yang sulit. Seperti sebuah pesan bijak, “Sesuatu yang besar dimulai dari langkah yang kecil” maka kita harus mulai melangkah dari yang paling sederhana dulu.

Rangkuman dari Dokumentasi Pemrograman dan Pengembangan Aplikasi Perangkat Lunak

Berikut beberapa ringkasan mengenai materi Dokumentasi Pemrograman dan Pengembangan Aplikasi Perangkat Lunak:

Pengarsipan versi Perangkat Lunak

  • Pengarsipan adalah proses, cara, atau perbuatan mengarsipkan. Sedangkan arsip sendiri adalah tempat penyimpanan berkas (program atau data) sebagai cadangan. Sehingga pengarsipan perangkat lunak dapat diartikan sebagai proses mengarsipkan perangkat lunak atau aplikasi yang telah kita buat.

  • Version Control System merupakan tools untuk mengatur suatu perubahan dan konfigurasi dari suatu aplikasi, termasuk juga source code. Setiap perubahan yang dilakukan akan dicatat, sehingga memperjelas siapa yang telah melakukan perubahan tersebut. Selain itu, version control juga berfungsi sebagai backup files atau pengarsipan.

  • Kita bisa menggunakan Git secara free atau gratis kemudian menyimpannya juga di layanan online yang tersedia seperti GitHub, Bitbucket, dan Gitlab. Namun, salah satu yang cukup populer adalah GitHub.

  • GitHub merupakan layanan hosting repository Git berbasis web yang juga memiliki banyak fitur seperti bug tracking dan task management. Dengan menggunakan GitHub, kita bisa mengarsipkan perangkat lunak atau aplikasi kapan pun dan di mana pun.

  • Semua perubahan yang ada dalam repository Git dapat kita lihat dalam halaman history. Kita juga dapat melihat detail dari perubahan tersebut, seperti bagian mana yang ditambahkan atau dihilangkan.

  • Anda dapat menggunakan commit untuk menyimpan perubahan yang ada dalam Git. Selain itu, Anda juga dapat menggunakan fitur revert untuk kembali ke perubahan atau commit tertentu. 


Style Guide

  • Saat Anda bekerja sebagai software developer, perusahaan tak hanya menginginkan fitur-fitur aplikasi bisa berjalan dengan baik ya. Perusahaan juga menginginkan kode dengan kualitas terbaik dan mampu menjadi pendukung bisnis. Salah satu indikatornya adalah Anda dapat melakukan perubahan dengan mudah pada aplikasi saat terdapat fitur baru. Selain itu, perusahaan dapat melakukan upaya (effort) seminimal mungkin untuk beradaptasi dengan kebutuhan bisnisnya.

  • Kode yang baik tak hanya mudah dibaca oleh komputer saja, namun mudah dibaca oleh manusia. Kenapa demikian? Karena programming kebanyakan tentang membaca, bukan menulis.

  • Style Guide merupakan kumpulan peraturan mengenai bagaimana cara penulisan kode yang baik bagi developer secara individu maupun tim. Pada style guide tertulis secara lengkap aturan yang harus diikuti oleh developer. Seperti penggunaan double atau single quote, indentasi, semicolon, penamaan variabel, dan lainnya.

  • Style guide yang sudah disepakati dan direkomendasikan oleh banyak developer itulah yang disebut dengan Code Convention. Tentunya setiap bahasa pemrograman memiliki berbagai referensi style guide terkenal yang direkomendasikan untuk Anda ikuti. Dalam bahasa JavaScript, Anda dapat mengikuti style guide dari AirBNB JavaScript, Google JavaScript, dan Standard JavaScript.

  • Siebe Hiemstra seorang Engineer dari Belanda berbagi alasan mengapa style guide penting bagi developer:
    • Konsistensi
    • Membantu Proses Onboarding
    • Menambah Wawasan
    • Membantu proses Code Review

  • Selain itu, dengan mengikuti style guide, Anda akan dapat beberapa keuntungan seperti:
    • Memahami dan membaca kode jadi lebih mudah.
    • Memelihara kode jadi lebih mudah untuk dipelihara.
    • Mengurangi kesalahan programmer yang sering terjadi.
    • Mengurangi beban secara kognitif saat memuat kode.
    • Menjadi lebih fokus pada permasalahan logika kode dibandingkan style-nya saat berdiskusi dengan rekan kerja Anda.


Komentar pada Kode

  • Komentar memiliki beberapa macam jenis.
    • Singleline atau satu baris (//)
    • Multiline atau beberapa baris (/* … */)

  • Selain menginformasikan apa yang terjadi dalam baris kode, komentar juga berfungsi untuk menonaktifkan suatu perintah dalam baris kode. Contohnya seperti ini:
    1. print("Congratulations, You Win.");
    2. // playSound("orchestra.mp3");
    3. player.saveScore();

  • Ingat, tak semua kode perlu dikomentari ya. Terlebih jika sebuah hal yang mendasar, seperti perintah print.

  • Walaupun komentar tidak mempengaruhi performa kode, tetapi harus kita pastikan komentar yang dibuat cukup membantu untuk menjelaskan kode yang ada. Oleh karena itu, bijaklah dalam menuliskan komentar dalam kode. Jika dirasa komentar tidak diperlukan, Anda bisa menghapusnya.


Dokumentasi Teknis Aplikasi

  • Dokumentasi adalah deskripsi tertulis yang komprehensif dari perangkat lunak dalam berbagai bentuk dan tingkat perincian yang secara jelas mendefinisikan persyaratan, konten, komposisi, desain, kinerja, pengujian, penggunaan, dan pemeliharaan.

  • Dokumentasi teknis akan menceritakan mengenai produk dengan cara yang mudah untuk digunakan, dibaca, dimengerti, dan tentunya membantu pembaca.

  • Dokumentasi Teknis dibagi menjadi beberapa jenis dan area sesuai kebutuhan, berikut detailnya:
    • End-user support: Dokumen ini biasanya berisi tentang panduan pengguna, sistem bantuan secara online, catatan rilis, panduan pelatihan, panduan cara instalasi, atau prosedur operasional. Intinya adalah apa pun yang mendukung pengguna dengan produk Anda.
    • Marketing support: Dokumen ini fokus pada produk dan digunakan untuk memasarkan perusahaan Anda. Contohnya berupa video pelatihan berbasis komputer, presentasi, bantuan secara online, atau sebuah halaman untuk arahan teknis.
    • Development support: Dokumen ini berisi mengenai segala spesifikasi teknis dan fungsional, panduan pengembangan produk perangkat lunak, glosarium, atau prosedur serta tools untuk membantu tim dalam melakukan pekerjaan mereka.
    • Organization support: Dokumen ini berisi segala informasi mengenai perusahaan seperti struktur organisasi, panduan bekerja, alur kerja, kebijakan-kebijakan, aturan yang ada, dan hal lain yang perlu diketahui karyawan untuk melakukan pekerjaan mereka.

  • Dokumentasi teknis itu sendiri dapat dilakukan secara offline maupun online.

  • Ketika Anda membuat dokumentasi secara online, maka dapat diakses kapan saja dan di mana saja. Tentunya ini akan memudahkan dan tidak memakan waktu lama untuk memahaminya sehingga lebih efisien dan uptodate.

  • Beda cerita jika Anda mendokumentasikan sebuah aplikasi atau produk, namun disimpan dalam bentuk offline seperti catatan atau mungkin dalam bentuk buku. Jika dibutuhkan dalam keadaan terdesak, informasi tersebut tidak bisa langsung didapatkan. Bahkan proses pencariannya juga akan lebih rumit dibandingkan dokumentasi teknis secara online.

  • Manfaat yang akan didapatkan ketika kita mengimplementasikan dokumentasi teknis ketika pembuatan aplikasi.
    • Meningkatkan retensi pengguna.
    • Menghemat waktu dan tenaga.
    • Meningkatkan penjualan produk Anda.

  • Berikut merupakan langkah singkat untuk membangunnya.
    • Tentukan siapa targetnya, apakah untuk rekan tim Anda atau untuk pengguna aplikasi Anda.
    • Pikirkan dengan matang dan jelas apa yang ingin Anda sampaikan ke dalam dokumentasi teknis. 
    • Gunakanlah outline atau kerangka tulisan terlebih dahulu ketika membangunnya.
    • Anda juga dapat menggunakan ilustrasi dan teks dalam dokumentasi tersebut.
    • Terakhir, jika Anda sudah menyelesaikan dokumentasi teknis, maka pastikan kembali. Anda bisa membacanya kembali dan bila ada yang kurang sesuai segera Anda revisi.

  • JSDoc merupakan salah satu tools yang dapat digunakan untuk membuat dokumentasi teknis dari komentar yang diberikan pada berkas program Javascript.

  • Sebelum Anda mengomunikasikan perihal dokumentasi, Anda perlu memperhatikan beberapa hal penting berikut. 
    • Pastikan apa yang sudah Anda tulis dalam dokumentasi sudah benar dan sudah sesuai.
    • Perlu kamu tahu bahwa suatu dokumentasi teknis tidak hanya ditujukan kepada Anda saja melainkan untuk orang lain. 
    • Ketika menyampaikan pun harus dengan adab atau beretika atau sopan santun.. 
    • Pastikan Anda mendokumentasikan teknis aplikasi secara online, serta memikirkan juga siapa saja yang dapat mengaksesnya karena keamanan dokumentasi teknis juga perlu dipikirkan.


Tips Cara Mengomunikasikan Dokumentasi kepada Stakeholders (pemegang kepentingan perusahaan)

Sebelum Anda mengomunikasikan perihal dokumentasi, Anda perlu memperhatikan beberapa hal penting berikut. 

  • Pastikan apa yang sudah Anda tulis dalam dokumentasi sudah benar dan sudah sesuai. Luangkan waktu untuk membaca kembali. Sebab, sebuah typo saja bisa menimbulkan masalah.

  • Dokumentasi ini tidak hanya ditujukan kepada Anda saja. Namun, untuk orang lain. Oleh karena itu, ketika Anda menuliskan dokumentasi teknis jangan terlalu berpikir secara tertutup. Jangan sampai hanya karena Anda merasa baik-baik saja, maka semua itu sudah selesai ya. Pastikan Anda memposisikan sebagai pembaca, baik atasan maupun stakeholder lainnya.

  • Ketika menyampaikan pun harus dengan adab ya. Sebab, sebaik apapun dokumentasi yang dibuat jika Anda menyepelekan masalah adab maka akan menimbulkan masalah. Contohnya, ketika sudah menentukan deadline pembuatan maka Anda harus menepatinya. Kalau dirasa ada yang salah, maka segeralah katakan. Jangan sampai ketika deadline datang, namun Anda justru memberikan seribu alasan karena dokumentasi belum siap.

  • Pastikan Anda mendokumentasikan teknis aplikasi secara online. Seperti yang sudah dijelaskan pada materi sebelumnya, mendokumentasikan secara online akan memberikan banyak manfaat. Namun, Anda perlu memikirkan juga siapa saja yang dapat mengaksesnya karena keamanan dokumentasi teknis juga perlu dipikirkan. Jangan sampai hal yang bersifat rahasia, justru karena keteledoran Anda menjadikan kebocoran informasi.