Metodologi Pemrograman - Panduan Cepat
Ketika program dikembangkan untuk memecahkan masalah kehidupan nyata seperti manajemen inventaris, pemrosesan penggajian, penerimaan siswa, pemrosesan hasil ujian, dll., Program tersebut cenderung menjadi besar dan kompleks. Pendekatan untuk menganalisis masalah kompleks seperti itu, perencanaan untuk pengembangan perangkat lunak dan pengendalian proses pengembangan disebutprogramming methodology.
Jenis Metodologi Pemrograman
Ada banyak jenis metodologi pemrograman yang lazim di kalangan pengembang perangkat lunak -
Pemrograman Prosedural
Masalah dipecah menjadi prosedur, atau blok kode yang masing-masing menjalankan satu tugas. Semua prosedur diambil bersama dari keseluruhan program. Ini hanya cocok untuk program kecil yang memiliki tingkat kerumitan rendah.
Example- Untuk program kalkulator yang melakukan penjumlahan, pengurangan, perkalian, pembagian, akar kuadrat dan perbandingan, masing-masing operasi ini dapat dikembangkan sebagai prosedur terpisah. Dalam program utama, setiap prosedur akan dipanggil berdasarkan pilihan pengguna.
Pemrograman berorientasi objek
Di sini solusinya berkisar pada entitas atau objek yang menjadi bagian dari masalah. Solusi tersebut berkaitan dengan bagaimana menyimpan data yang terkait dengan entitas, bagaimana entitas berperilaku dan bagaimana mereka berinteraksi satu sama lain untuk memberikan solusi yang kohesif.
Example - Jika kita harus mengembangkan sistem manajemen penggajian, kita akan memiliki entitas seperti karyawan, struktur gaji, aturan cuti, dll. Di mana solusi harus dibangun.
Pemrograman Fungsional
Di sini masalah, atau solusi yang diinginkan, dipecah menjadi unit-unit fungsional. Setiap unit melakukan tugasnya sendiri dan mandiri. Unit-unit ini kemudian dijahit untuk membentuk solusi lengkap.
Example - Pemrosesan penggajian dapat memiliki unit fungsional seperti pemeliharaan data karyawan, penghitungan gaji pokok, penghitungan gaji kotor, pemrosesan cuti, pemrosesan pembayaran kembali pinjaman, dll.
Pemrograman Logis
Di sini masalahnya dipecah menjadi unit logis daripada unit fungsional. Example:Dalam sistem manajemen sekolah, pengguna memiliki peran yang sangat ditentukan seperti guru kelas, guru mata pelajaran, asisten lab, koordinator, penanggung jawab akademik, dll. Jadi perangkat lunak dapat dibagi menjadi beberapa unit tergantung pada peran pengguna. Setiap pengguna dapat memiliki antarmuka, izin, dll. Yang berbeda.
Pengembang perangkat lunak dapat memilih satu atau kombinasi dari lebih dari satu metodologi ini untuk mengembangkan perangkat lunak. Perhatikan bahwa dalam setiap metodologi yang dibahas, masalah harus dipecah menjadi unit-unit yang lebih kecil. Untuk melakukan ini, pengembang menggunakan salah satu dari dua pendekatan berikut -
- Pendekatan atas ke bawah
- Pendekatan bottom-up
Pendekatan Top-down atau Modular
Masalahnya dipecah menjadi unit-unit yang lebih kecil, yang selanjutnya dapat dipecah menjadi unit-unit yang lebih kecil. Setiap unit disebut amodule. Setiap modul adalah unit mandiri yang memiliki semua yang diperlukan untuk melakukan tugasnya.
Ilustrasi berikut menunjukkan contoh bagaimana Anda dapat mengikuti pendekatan modular untuk membuat modul yang berbeda sambil mengembangkan program pemrosesan penggajian.
Pendekatan Bottom-up
Dalam pendekatan bottom-up, perancangan sistem dimulai dari komponen level terendah, yang kemudian dihubungkan untuk mendapatkan komponen level yang lebih tinggi. Proses ini berlanjut hingga hierarki semua komponen sistem dibuat. Namun, dalam skenario kehidupan nyata, sangat sulit untuk mengetahui semua komponen level terendah di awal. Jadi pendekatan bottoms up hanya digunakan untuk masalah yang sangat sederhana.
Mari kita lihat komponen program kalkulator.
Proses pengembangan perangkat lunak yang khas mengikuti langkah-langkah ini -
- Pengumpulan kebutuhan
- Definisi masalah
- Desain sistem
- Implementation
- Testing
- Documentation
- Pelatihan dan dukungan
- Maintenance
Dua langkah pertama membantu tim memahami masalah, langkah pertama yang paling penting untuk mendapatkan solusi. Orang yang bertanggung jawab untuk mengumpulkan kebutuhan, mendefinisikan masalah dan merancang sistem dipanggilsystem analyst.
Pertemuan Persyaratan
Biasanya, klien atau pengguna tidak dapat dengan jelas mendefinisikan masalah atau persyaratan mereka. Mereka memiliki gagasan yang tidak jelas tentang apa yang mereka inginkan. Jadi pengembang sistem perlu mengumpulkan persyaratan klien untuk memahami masalah yang perlu diselesaikan, atau apa yang perlu disampaikan. Pemahaman rinci tentang masalah hanya mungkin dengan memahami terlebih dahulu area bisnis yang solusinya sedang dikembangkan. Beberapa pertanyaan kunci yang membantu dalam memahami bisnis meliputi -
- Apa yang dilakukan?
- Bagaimana cara melakukannya?
- Berapa frekuensi tugas?
- Berapa volume keputusan atau transaksi?
- Apa masalah yang dihadapi?
Beberapa teknik yang membantu dalam mengumpulkan informasi ini adalah -
- Interviews
- Questionnaires
- Mempelajari dokumen sistem yang ada
- Menganalisis data bisnis
Analis sistem perlu membuat dokumen persyaratan yang jelas dan ringkas tetapi menyeluruh untuk mengidentifikasi persyaratan SMART - spesifik, terukur, disepakati, realistis dan berbasis waktu. Kegagalan untuk melakukannya mengakibatkan -
- Definisi masalah tidak lengkap
- Tujuan program salah
- Bekerja kembali untuk memberikan hasil yang diinginkan kepada klien
- Meningkatnya biaya
- Pengiriman tertunda
Karena kedalaman informasi yang dibutuhkan, pengumpulan persyaratan juga dikenal sebagai detailed investigation.
Definisi masalah
Setelah mengumpulkan persyaratan dan menganalisisnya, rumusan masalah harus dinyatakan dengan jelas. Definisi masalah harus secara jelas menyatakan masalah atau masalah apa yang perlu dipecahkan. Memiliki pernyataan masalah yang jelas diperlukan untuk -
- Tentukan cakupan proyek
- Jaga agar tim tetap fokus
- Jaga proyek tetap pada jalurnya
- Validasi bahwa hasil yang diinginkan tercapai di akhir proyek
Seringkali, pengkodean seharusnya menjadi bagian paling penting dari setiap proses pengembangan perangkat lunak. Namun, pengkodean hanyalah bagian dari proses dan mungkin benar-benar membutuhkan waktu minimum jika sistem dirancang dengan benar. Sebelum sistem dapat dirancang, solusi harus diidentifikasi untuk masalah yang dihadapi.
Hal pertama yang perlu diperhatikan tentang perancangan sistem adalah bahwa pada awalnya analis sistem dapat menghasilkan lebih dari satu solusi. Tetapi solusi akhir atau produk hanya bisa satu. Analisis mendalam atas data yang dikumpulkan selama fase pengumpulan persyaratan dapat membantu menghasilkan solusi unik. Mendefinisikan masalah dengan benar juga penting untuk mendapatkan solusi.
Ketika dihadapkan pada masalah beberapa solusi, analis menggunakan alat bantu visual seperti diagram alur, diagram aliran data, diagram hubungan entitas, dll. Untuk memahami setiap solusi secara mendalam.
Flowchart
Flowchart adalah proses menggambarkan alur kerja dan aliran data dalam suatu sistem melalui simbol dan diagram. Ini adalah alat penting untuk membantu analis sistem dalam mengidentifikasi solusi untuk masalah tersebut. Ini menggambarkan komponen sistem secara visual.
Ini adalah keuntungan dari diagram alur -
Representasi visual membantu dalam memahami logika program
Mereka bertindak sebagai cetak biru untuk pengkodean program yang sebenarnya
Diagram alir penting untuk dokumentasi program
Diagram alir adalah bantuan penting selama pemeliharaan program
Ini adalah kerugian dari diagram alur -
Logika kompleks tidak dapat digambarkan menggunakan diagram alur
Jika terjadi perubahan logika atau data / alur kerja, diagram alur harus digambar ulang sepenuhnya
Diagram aliran data
Diagram arus data atau DFD merupakan representasi grafis dari arus data yang melalui suatu sistem atau sub sistem. Setiap proses memiliki aliran datanya sendiri dan ada tingkatan diagram aliran data. Level 0 menunjukkan data input dan output untuk keseluruhan sistem. Kemudian sistem dipecah menjadi beberapa modul dan DFD level 1 menunjukkan aliran data untuk setiap modul secara terpisah. Modul selanjutnya dapat dipecah menjadi sub-modul jika diperlukan dan DFD level 2 ditarik.
Pseudocode
Setelah sistem dirancang, kemudian diserahkan kepada manajer proyek untuk diimplementasikan, yaitu pengkodean. Pengkodean sebenarnya dari suatu program dilakukan dalam bahasa pemrograman, yang hanya dapat dipahami oleh pemrogram yang terlatih dalam bahasa tersebut. Namun, sebelum pengkodean yang sebenarnya terjadi, prinsip operasi dasar, alur kerja, dan aliran data program ditulis menggunakan notasi yang mirip dengan bahasa pemrograman yang akan digunakan. Notasi seperti itu disebutpseudocode.
Berikut adalah contoh pseudocode di C ++. Pemrogram hanya perlu menerjemahkan setiap pernyataan ke dalam sintaks C ++ untuk mendapatkan kode program.
Mengidentifikasi Operasi Matematika
Semua instruksi ke komputer akhirnya diimplementasikan sebagai operasi aritmatika dan logis pada tingkat mesin. Operasi ini penting karena -
- Gunakan ruang memori
- Luangkan waktu dalam eksekusi
- Tentukan efisiensi perangkat lunak
- Mempengaruhi kinerja perangkat lunak secara keseluruhan
Analis sistem mencoba mengidentifikasi semua operasi matematika utama sambil mengidentifikasi solusi unik untuk masalah yang dihadapi.
Masalah kehidupan nyata itu kompleks dan besar. Jika solusi monolitik dikembangkan, itu menimbulkan masalah ini -
Sulit untuk menulis, menguji, dan menerapkan satu program besar
Modifikasi setelah produk akhir dikirim hampir tidak mungkin dilakukan
Pemeliharaan program sangat sulit
Satu kesalahan dapat membuat seluruh sistem terhenti
Untuk mengatasi masalah tersebut, solusinya harus dibagi menjadi beberapa bagian yang disebut lebih kecil modules. Teknik memecah satu solusi besar menjadi modul yang lebih kecil untuk kemudahan pengembangan, implementasi, modifikasi, dan pemeliharaan disebutmodular technique pemrograman atau pengembangan perangkat lunak.
Keuntungan Pemrograman Modular
Pemrograman modular menawarkan keuntungan ini -
Memungkinkan pengembangan yang lebih cepat karena setiap modul dapat dikembangkan secara paralel
Modul dapat digunakan kembali
Karena setiap modul akan diuji secara independen, pengujian menjadi lebih cepat dan lebih tangguh
Debugging dan pemeliharaan seluruh program lebih mudah
Modul berukuran lebih kecil dan memiliki tingkat kerumitan yang lebih rendah sehingga mudah dipahami
Mengidentifikasi Modul
Mengidentifikasi modul dalam perangkat lunak adalah tugas yang membingungkan karena tidak ada satu cara yang benar untuk melakukannya. Berikut adalah beberapa petunjuk untuk mengidentifikasi modul -
Jika data adalah elemen terpenting dari sistem, buat modul yang menangani data terkait.
Jika layanan yang diberikan oleh sistem beragam, uraikan sistem menjadi modul fungsional.
Jika semuanya gagal, uraikan sistem menjadi modul logis sesuai pemahaman Anda tentang sistem selama fase pengumpulan persyaratan.
Untuk pengkodean, setiap modul harus dipecah lagi menjadi modul yang lebih kecil untuk kemudahan pemrograman. Ini sekali lagi dapat dilakukan dengan menggunakan tiga tip yang dibagikan di atas, dikombinasikan dengan aturan pemrograman tertentu. Misalnya, untuk bahasa pemrograman berorientasi objek seperti C ++ dan Java, setiap kelas dengan data dan metodenya dapat membentuk satu modul.
Solusi Langkah-demi-Langkah
Untuk mengimplementasikan modul, aliran proses setiap modul harus dijelaskan secara bertahap. Solusi langkah demi langkah dapat dikembangkan menggunakanalgorithms atau pseudocodes. Memberikan solusi langkah demi langkah menawarkan keuntungan berikut -
Siapa pun yang membaca solusinya dapat memahami masalah dan solusinya.
Ini juga bisa dimengerti oleh pemrogram dan non-pemrogram.
Selama pengkodean, setiap pernyataan hanya perlu diubah menjadi pernyataan program.
Ini dapat menjadi bagian dari dokumentasi dan membantu dalam pemeliharaan program.
Detail level mikro seperti nama pengenal, operasi yang diperlukan, dll. Dapat dikerjakan secara otomatis
Mari kita lihat contohnya.
Struktur Kontrol
Seperti yang Anda lihat pada contoh di atas, logika program tidak perlu dijalankan sequentially. Dalam bahasa pemrograman,control structuresmengambil keputusan tentang aliran program berdasarkan parameter yang diberikan. Mereka adalah elemen yang sangat penting dari perangkat lunak apa pun dan harus diidentifikasi sebelum pengkodean dimulai.
Algoritma dan pseudocodes membantu analis dan pemrogram dalam mengidentifikasi di mana struktur kontrol diperlukan.
Struktur kontrol terdiri dari tiga jenis ini -
Struktur Pengendalian Keputusan
Struktur kontrol keputusan digunakan ketika langkah selanjutnya yang akan dijalankan bergantung pada kriteria. Kriteria ini biasanya satu atau lebih ekspresi Boolean yang harus dievaluasi. Ekspresi Boolean selalu dievaluasi menjadi "benar" atau "salah". Satu set pernyataan dijalankan jika kriterianya adalah "benar" dan set lainnya dijalankan jika kriteria bernilai "salah". Misalnya, jika pernyataan
Struktur Kontrol Seleksi
Struktur kontrol pemilihan digunakan ketika urutan program bergantung pada jawaban atas pertanyaan tertentu. Misalnya, program memiliki banyak opsi bagi pengguna. Pernyataan yang akan dieksekusi selanjutnya akan bergantung pada opsi yang dipilih. Sebagai contoh,switch pernyataan, case pernyataan.
Struktur Pengulangan / Kontrol Loop
Struktur kontrol pengulangan digunakan ketika sekumpulan pernyataan di diulang berkali-kali. Jumlah pengulangan mungkin diketahui sebelum dimulai atau mungkin bergantung pada nilai ekspresi. Sebagai contoh,for pernyataan, while pernyataan, do while pernyataan, dll.
Seperti yang Anda lihat pada gambar di atas, struktur pemilihan dan keputusan diimplementasikan dengan cara yang sama dalam diagram alur. Kontrol seleksi tidak lain adalah serangkaian pernyataan keputusan yang diambil secara berurutan.
Berikut adalah beberapa contoh dari program untuk menunjukkan bagaimana pernyataan ini bekerja -
Serangkaian langkah terbatas yang harus diikuti untuk menyelesaikan masalah apa pun disebut algorithm. Algoritma umumnya dikembangkan sebelum pengkodean yang sebenarnya dilakukan. Itu ditulis menggunakan bahasa Inggris sehingga mudah dimengerti bahkan oleh non-programmer.
Terkadang algoritme ditulis menggunakan pseudocodes, yaitu bahasa yang mirip dengan bahasa pemrograman yang akan digunakan. Algoritma penulisan untuk memecahkan masalah menawarkan keuntungan berikut -
Mempromosikan komunikasi yang efektif antara anggota tim
Memungkinkan analisis masalah yang dihadapi
Bertindak sebagai cetak biru untuk pengkodean
Membantu dalam debugging
Menjadi bagian dari dokumentasi perangkat lunak untuk referensi di masa mendatang selama fase pemeliharaan
Ini adalah karakteristik dari algoritma yang baik dan benar -
Memiliki satu set input
Langkah-langkah ditentukan secara unik
Memiliki jumlah langkah yang terbatas
Menghasilkan keluaran yang diinginkan
Contoh Algoritma
Mari kita ambil contoh situasi kehidupan nyata untuk membuat algoritma. Berikut algoritme untuk pergi ke pasar untuk membeli pena.
Langkah 4 dalam algoritme ini dengan sendirinya merupakan tugas yang lengkap dan algoritme terpisah dapat ditulis untuknya. Sekarang mari kita buat algoritma untuk memeriksa apakah suatu angka positif atau negatif.
Flowchartadalah representasi diagram dari urutan langkah-langkah logis dari suatu program. Diagram alir menggunakan bentuk geometris sederhana untuk menggambarkan proses dan panah untuk menunjukkan hubungan dan aliran proses / data.
Simbol Diagram Alir
Berikut adalah bagan untuk beberapa simbol umum yang digunakan dalam menggambar diagram alur.
Simbol | Nama Simbol | Tujuan |
---|---|---|
|
Mulai berhenti | Digunakan di awal dan akhir algoritme untuk menunjukkan awal dan akhir program. |
|
Proses | Menunjukkan proses seperti operasi matematika. |
|
Input output | Digunakan untuk menunjukkan masukan dan keluaran program. |
|
Keputusan | Singkatan dari pernyataan keputusan dalam sebuah program, di mana jawabannya biasanya Ya atau Tidak. |
|
Panah | Menunjukkan hubungan antara berbagai bentuk. |
|
Konektor di halaman | Menghubungkan dua atau lebih bagian dari diagram alur, yang berada di halaman yang sama. |
|
Konektor di luar halaman | Menghubungkan dua bagian diagram alur yang tersebar di halaman berbeda. |
Panduan untuk Mengembangkan Diagram Alir
Ini adalah beberapa poin yang perlu diingat saat mengembangkan diagram alur -
Diagram alir hanya dapat memiliki satu simbol start dan one stop
Konektor pada halaman direferensikan menggunakan angka
Konektor di luar halaman direferensikan menggunakan huruf
Alur proses secara umum adalah dari atas ke bawah atau dari kiri ke kanan
Panah tidak boleh saling bersilangan
Contoh Diagram Alir
Berikut diagram alur untuk pergi ke pasar untuk membeli pulpen.
Berikut adalah diagram alir untuk menghitung rata-rata dua angka.
Seperti yang Anda ketahui, komputer tidak memiliki kecerdasannya sendiri; itu hanya mengikutiinstructions diberikan oleh pengguna. Instructionsadalah blok bangunan dari program komputer, dan karenanya perangkat lunak. Memberikan instruksi yang jelas sangat penting untuk membangun program yang sukses. Sebagai pemrogram atau pengembang perangkat lunak, Anda harus membiasakan diri menulis instruksi yang jelas. Berikut dua cara untuk melakukannya.
Kejelasan Ekspresi
Ekspresi dalam program adalah urutan operator dan operan untuk melakukan perhitungan aritmatika atau logika. Berikut beberapa contoh ekspresi yang valid -
- Membandingkan dua nilai
- Mendefinisikan variabel, objek atau kelas
- Perhitungan aritmatika menggunakan satu atau lebih variabel
- Mengambil data dari database
- Memperbarui nilai dalam database
Menulis ekspresi yang tidak ambigu merupakan keterampilan yang harus dikembangkan oleh setiap programmer. Berikut adalah beberapa hal yang perlu diingat saat menulis ungkapan tersebut -
Hasil yang Jelas
Evaluasi ekspresi harus memberikan satu hasil yang jelas. Misalnya, operator unary harus digunakan dengan hati-hati.
Hindari Ekspresi Kompleks
Jangan mencoba mencapai banyak hal dalam satu ekspresi. Bagi menjadi dua atau lebih ekspresi saat segala sesuatunya mulai menjadi rumit.
Kesederhanaan Instruksi
Bukan hanya untuk komputer Anda perlu menulis instruksi yang jelas. Siapa pun yang membaca program nanti (bahkan Anda sendiri !!) harus dapat memahami apa yang ingin dicapai oleh instruksi tersebut. Sangat umum bagi programmer untuk tidak memahami program mereka sendiri ketika mereka mengunjungi kembali setelah beberapa waktu berlalu. Ini menunjukkan bahwa pemeliharaan dan modifikasi program semacam itu akan cukup sulit.
Menulis instruksi sederhana membantu menghindari masalah ini. Berikut beberapa tip untuk menulis instruksi sederhana -
Avoid clever instructions - Instruksi yang cerdik mungkin tidak akan terlihat begitu pintar nantinya jika tidak ada yang bisa memahaminya dengan benar.
One instruction per task - Mencoba melakukan lebih dari satu hal sekaligus memperumit instruksi.
Use standards- Setiap bahasa memiliki standar, ikuti mereka. Ingatlah Anda tidak bekerja sendirian dalam proyek; ikuti standar proyek dan pedoman untuk pengkodean.
Dalam bab ini, kita akan membahas bagaimana menulis program yang baik. Tetapi sebelum kita melakukannya, mari kita lihat apa saja ciri-ciri program yang baik -
Portable- Program atau perangkat lunak harus berjalan di semua komputer dengan tipe yang sama. Yang kami maksud dengan jenis yang sama adalah perangkat lunak yang dikembangkan untuk komputer pribadi harus berjalan di semua PC. Atau perangkat lunak untuk tablet harus berjalan di semua tablet yang memiliki spesifikasi yang tepat.
Efficient- Perangkat lunak yang melakukan tugas dengan cepat dikatakan efisien. Pengoptimalan kode dan pengoptimalan memori adalah beberapa cara untuk meningkatkan efisiensi program.
Effective- Perangkat lunak harus membantu memecahkan masalah yang dihadapi. Perangkat lunak yang melakukan hal itu dikatakan efektif.
Reliable - Program harus memberikan keluaran yang sama setiap kali rangkaian masukan yang sama diberikan.
User friendly - Antarmuka program, tautan dan ikon yang dapat diklik, dll. Harus ramah pengguna.
Self-documenting - Setiap program atau perangkat lunak yang nama pengenalnya, nama modulnya, dll. Dapat mendeskripsikan dirinya sendiri karena penggunaan nama eksplisit.
Berikut adalah beberapa cara di mana program yang baik dapat ditulis.
Nama Pengenal yang Tepat
Nama yang mengidentifikasi variabel, objek, fungsi, kelas, atau metode apa pun disebut identifier. Memberikan nama pengenal yang tepat membuat program mendokumentasikan sendiri. Ini berarti bahwa nama objek akan memberi tahu apa yang dilakukannya atau informasi apa yang disimpannya. Mari kita ambil contoh dari instruksi SQL ini:
Lihat baris 10. Ini memberitahu siapa pun yang membaca program bahwa ID siswa, nama dan nomor gulungan harus dipilih. Nama-nama variabel membuat ini cukup jelas. Ini adalah beberapa tip untuk membuat nama pengenal yang tepat -
Gunakan pedoman bahasa
Jangan malu memberikan nama yang panjang untuk menjaga kejelasan
Gunakan huruf besar dan kecil
Jangan berikan nama yang sama untuk dua pengenal meskipun bahasa memungkinkan
Jangan memberikan nama yang sama untuk lebih dari satu pengenal meskipun keduanya memiliki cakupan yang saling eksklusif
Komentar
Pada gambar di atas, lihat baris 8. Ini memberi tahu pembaca bahwa beberapa baris kode berikutnya akan mengambil daftar siswa yang rapornya akan dibuat. Baris ini bukan bagian dari kode tetapi diberikan hanya untuk membuat program lebih ramah pengguna.
Ekspresi yang tidak dikompilasi tetapi ditulis sebagai catatan atau penjelasan bagi pemrogram disebut a comment. Lihat komentar di segmen program berikut. Komentar dimulai dengan //.
Komentar dapat disisipkan sebagai -
Prolog ke program untuk menjelaskan tujuannya
Di awal dan / atau akhir blok logika atau fungsional
Catat tentang skenario atau pengecualian khusus
Anda harus menghindari menambahkan komentar yang berlebihan karena dapat terbukti kontraproduktif dengan memutus aliran kode saat membaca. Penyusun mungkin mengabaikan komentar dan lekukan tetapi pembaca cenderung membaca masing-masing.
Lekukan
Jarak teks dari margin kiri atau kanan disebut indent. Dalam program, indentasi digunakan untuk memisahkan blok kode yang dipisahkan secara logis. Berikut contoh segmen program berlekuk:
Seperti yang Anda lihat, program berlekuk lebih mudah dipahami. Aliran kendali darifor loop untuk if dan kembali ke forsangat jelas. Indentasi sangat berguna dalam kasus struktur kontrol.
Memasukkan spasi atau garis kosong juga merupakan bagian dari lekukan. Berikut beberapa situasi di mana Anda dapat dan harus menggunakan indentasi -
Baris kosong antara blok kode logis atau fungsional dalam program
Ruang kosong di sekitar operator
Tab di awal struktur kontrol baru
Mengidentifikasi dan menghapus kesalahan dari program atau perangkat lunak disebut debugging. Debugging idealnya adalah bagian dari proses pengujian tetapi pada kenyataannya itu dilakukan di setiap langkah pemrograman. Pembuat kode harus men-debug modul terkecil mereka sebelum melanjutkan. Ini mengurangi jumlah kesalahan yang muncul selama fase pengujian dan mengurangi waktu dan upaya pengujian secara signifikan. Mari kita lihat jenis kesalahan yang dapat muncul dalam suatu program.
Kesalahan Sintaks
Syntax errorsadalah kesalahan tata bahasa dalam sebuah program. Setiap bahasa memiliki seperangkat aturannya sendiri, seperti membuat pengenal, menulis ekspresi, dll. Untuk menulis program. Jika aturan ini dilanggar, kesalahan dipanggilsyntax errors. Banyak yang modernintegrated development environmentsdapat mengidentifikasi kesalahan sintaks saat Anda mengetik program Anda. Lain, itu akan ditampilkan ketika Anda mengkompilasi program. Mari kita ambil contoh -
Dalam program ini, variabel prod belum dideklarasikan, yang dimunculkan oleh compiler.
Kesalahan Semantik
Semantic errors juga disebut logical errors. Pernyataan tersebut tidak memiliki kesalahan sintaks, sehingga akan dikompilasi dan berjalan dengan benar. Namun, itu tidak akan memberikan keluaran yang diinginkan karena logikanya tidak benar. Mari kita ambil contoh.
Perhatikan baris 13. Di sini programmer ingin memeriksa apakah pembagi adalah 0, untuk menghindari pembagian dengan 0. Namun, alih-alih menggunakan operator pembanding ==, operator penugasan = telah digunakan. Sekarang setiap kali "jika ekspresi" akan mengevaluasi benar dan program akan memberikan output sebagai "Anda tidak dapat membagi dengan 0". Jelas bukan apa yang dimaksudkan !!
Kesalahan logika tidak dapat dideteksi oleh program apapun; mereka harus diidentifikasi oleh pemrogram sendiri ketika keluaran yang diinginkan tidak tercapai.
Kesalahan Waktu Proses
Kesalahan runtime adalah kesalahan yang terjadi saat menjalankan program. Ini menyiratkan bahwa program tidak memiliki kesalahan sintaks. Beberapa kesalahan waktu proses yang paling umum yang mungkin ditemui program Anda adalah -
- Lingkaran tak terbatas
- Divisi oleh '0'
- Nilai yang salah dimasukkan oleh pengguna (katakanlah, string bukan integer)
Optimasi Kode
Metode apa pun di mana kode dimodifikasi untuk meningkatkan kualitas dan efisiensinya disebut code optimization. Code qualitymenentukan masa hidup kode. Jika kode dapat digunakan dan dipertahankan untuk jangka waktu yang lama, dibawa-bawa dari produk ke produk, kualitasnya dianggap tinggi dan masa pakai lebih lama. Sebaliknya, jika sepotong kode dapat digunakan dan dipertahankan hanya untuk jangka waktu yang singkat, katakanlah sampai suatu versi valid, itu dianggap berkualitas rendah dan memiliki masa pakai yang pendek.
Keandalan dan kecepatan kode menentukan code efficiency. Efisiensi kode merupakan faktor penting dalam memastikan kinerja tinggi suatu perangkat lunak.
Ada dua pendekatan untuk pengoptimalan kode -
Intuition based optimization (IBO)- Di sini pemrogram mencoba untuk mengoptimalkan program berdasarkan keahlian dan pengalamannya sendiri. Ini mungkin berhasil untuk program kecil tetapi gagal total karena kompleksitas program tumbuh.
Evidence based optimization (EBO)- Di sini alat otomatis digunakan untuk mencari tahu kemacetan kinerja dan kemudian mengoptimalkan bagian yang relevan. Setiap bahasa pemrograman memiliki seperangkat alat pengoptimalan kode sendiri. Misalnya, PMD, FindBug dan Clover digunakan untuk mengoptimalkan kode Java.
Kode dioptimalkan untuk waktu eksekusi dan konsumsi memori karena waktu langka dan memori mahal. Harus ada keseimbangan antara keduanya. Jikatime optimization meningkatkan beban pada memori atau memory optimization membuat kode lebih lambat, tujuan pengoptimalan akan hilang.
Optimasi Waktu Eksekusi
Mengoptimalkan kode untuk waktu eksekusi diperlukan untuk memberikan layanan yang cepat kepada pengguna. Berikut beberapa tip untuk pengoptimalan waktu eksekusi -
Gunakan perintah yang memiliki pengoptimalan waktu eksekusi bawaan
Gunakan sakelar alih-alih kondisi if
Minimalkan panggilan fungsi dalam struktur loop
Optimalkan struktur data yang digunakan dalam program
Optimasi Memori
Seperti yang Anda ketahui, data dan instruksi menghabiskan memori. Saat kita mengatakan data, itu juga mengacu pada data sementara yang merupakan hasil ekspresi. Kita juga perlu melacak berapa banyak instruksi yang menyusun program atau modul yang kita coba optimalkan. Berikut beberapa tip untukmemory optimization -
Gunakan perintah yang memiliki pengoptimalan memori internal
Jaga penggunaan variabel yang perlu disimpan dalam register minimum
Hindari mendeklarasikan variabel global di dalam loop yang dieksekusi berkali-kali
Hindari menggunakan fungsi intensif CPU seperti sqrt ()
Teks, ilustrasi, atau video tertulis apa pun yang menjelaskan perangkat lunak atau program kepada penggunanya disebut program or software document. Pengguna bisa siapa saja mulai dari programmer, analis sistem dan administrator hingga pengguna akhir. Pada berbagai tahap pengembangan, banyak dokumen dapat dibuat untuk pengguna yang berbeda. Faktanya,software documentation adalah proses penting dalam proses pengembangan perangkat lunak secara keseluruhan.
Dalam pemrograman modular, dokumentasi menjadi lebih penting karena modul yang berbeda dari perangkat lunak dikembangkan oleh tim yang berbeda. Jika ada orang selain tim pengembangan yang ingin atau perlu memahami modul, dokumentasi yang baik dan mendetail akan membuat tugas lebih mudah.
Ini adalah beberapa pedoman untuk membuat dokumen -
Dokumentasi harus dari sudut pandang pembaca
Dokumen harus tidak ambigu
Seharusnya tidak ada pengulangan
Standar industri harus digunakan
Dokumen harus selalu diperbarui
Semua dokumen usang harus dihapus setelah perekaman penghapusan bertahap
Keuntungan Dokumentasi
Ini adalah beberapa keuntungan dari menyediakan dokumentasi program -
Melacak semua bagian perangkat lunak atau program
Perawatan lebih mudah
Pemrogram selain pengembang dapat memahami semua aspek perangkat lunak
Meningkatkan kualitas perangkat lunak secara keseluruhan
Membantu dalam pelatihan pengguna
Memastikan de-sentralisasi pengetahuan, memotong biaya dan upaya jika orang meninggalkan sistem secara tiba-tiba
Contoh Dokumen
Sebuah perangkat lunak dapat memiliki banyak jenis dokumen yang terkait dengannya. Beberapa yang penting termasuk -
User manual - Ini menjelaskan instruksi dan prosedur bagi pengguna akhir untuk menggunakan berbagai fitur perangkat lunak.
Operational manual - Ini mendaftar dan menjelaskan semua operasi yang sedang dilakukan dan antar ketergantungannya.
Design Document- Ini memberikan gambaran umum tentang perangkat lunak dan menjelaskan elemen desain secara rinci. Ini mendokumentasikan detail sepertidata flow diagrams, entity relationship diagrams, dll.
Requirements Document- Memiliki daftar semua persyaratan sistem serta analisis kelayakan persyaratan. Ini dapat memiliki kasus pengguna, skenario kehidupan nyata, dll.
Technical Documentation - Ini adalah dokumentasi dari komponen pemrograman yang sebenarnya seperti algoritma, diagram alur, kode program, modul fungsional, dll.
Testing Document - Mencatat rencana pengujian, kasus pengujian, rencana validasi, rencana verifikasi, hasil pengujian, dll. Pengujian merupakan salah satu tahap pengembangan perangkat lunak yang membutuhkan dokumentasi intensif.
List of Known Bugs- Setiap perangkat lunak memiliki bug atau kesalahan yang tidak dapat dihapus karena ditemukan sangat terlambat atau tidak berbahaya atau akan membutuhkan lebih banyak upaya dan waktu daripada yang diperlukan untuk memperbaikinya. Bug ini terdaftar dengan dokumentasi program sehingga bisa dihapus di kemudian hari. Juga mereka membantu pengguna, pelaksana dan pemeliharaan orang jika bug diaktifkan.
Program maintenance adalah proses memodifikasi perangkat lunak atau program setelah pengiriman untuk mencapai salah satu hasil ini -
- Perbaiki kesalahan
- Meningkatkan kinerja
- Tambahkan fungsionalitas
- Hapus bagian yang sudah usang
Terlepas dari persepsi umum bahwa pemeliharaan diperlukan untuk memperbaiki kesalahan yang muncul setelah perangkat lunak ditayangkan, pada kenyataannya sebagian besar pekerjaan pemeliharaan melibatkan penambahan kemampuan minor atau mayor ke modul yang ada. Misalnya, beberapa data baru ditambahkan ke laporan, bidang baru ditambahkan ke formulir entri, kode yang akan dimodifikasi untuk memasukkan undang-undang pemerintah yang diubah, dll.
Jenis Perawatan
Kegiatan pemeliharaan dapat dikategorikan dalam empat judul -
Corrective maintenance- Di sini kesalahan yang muncul setelah penerapan di tempat diperbaiki. Kesalahan mungkin ditunjukkan oleh pengguna itu sendiri.
Preventive maintenance - Modifikasi yang dilakukan untuk menghindari kesalahan di kemudian hari disebut pemeliharaan preventif.
Adaptive maintenance- Perubahan lingkungan kerja terkadang memerlukan modifikasi pada perangkat lunak. Ini disebut pemeliharaan adaptif. Misalnya, jika kebijakan pendidikan pemerintah berubah, perubahan yang sesuai harus dilakukan dalam modul pemrosesan hasil siswa perangkat lunak manajemen sekolah.
Perfective maintenance- Perubahan yang dilakukan pada perangkat lunak yang ada untuk memasukkan persyaratan baru dari klien disebut pemeliharaan sempurna. Tujuannya di sini adalah untuk selalu up-to-date dengan teknologi terkini.
Alat Perawatan
Pengembang perangkat lunak dan pemrogram menggunakan banyak alat untuk membantu mereka dalam pemeliharaan perangkat lunak. Berikut adalah beberapa yang paling banyak digunakan -
Program slicer - memilih bagian dari program yang akan terpengaruh oleh perubahan tersebut
Data flow analyzer - melacak semua kemungkinan aliran data dalam perangkat lunak
Dynamic analyzer - melacak jalur eksekusi program
Static analyzer - memungkinkan melihat dan meringkas program secara umum
Dependency analyzer - membantu dalam memahami dan menganalisis saling ketergantungan dari berbagai bagian program