Algoritma yang rumit dibagi menjadi beberapa bagian kecil yang disebut modul, dan proses pemisahan dikenal sebagai modularisasi . Modularisasi secara signifikan mengurangi kerumitan merancang suatu algoritma dan membuat prosesnya lebih mudah untuk dirancang dan diimplementasikan. Pemrograman modular adalah teknik merancang dan menulis program dalam bentuk fungsi di mana masing-masing fungsi berbeda satu sama lain dan bekerja secara independen. Konten dalam fungsi bersifat kohesif, dan ada sambungan rendah antara modul.
Grafik perbandingan
Dasar untuk perbandingan | Pendekatan Top-down | Pendekatan Bottom-up |
---|---|---|
Dasar | Memecah masalah besar menjadi submasalah yang lebih kecil. | Memecahkan masalah tingkat rendah yang mendasar dan mengintegrasikannya ke masalah yang lebih besar. |
Proses | Submodules dianalisis secara soliter. | Memeriksa data apa yang akan dienkapsulasi, dan menyiratkan konsep menyembunyikan informasi. |
Komunikasi | Tidak diperlukan dalam pendekatan top-down. | Membutuhkan sejumlah komunikasi tertentu. |
Redundansi | Berisi informasi yang berlebihan. | Redundansi bisa dihilangkan. |
Bahasa pemrograman | Bahasa pemrograman berorientasi struktur / prosedural (yaitu C) mengikuti pendekatan top-down. | Bahasa pemrograman berorientasi objek (seperti C ++, Java, dll.) Mengikuti pendekatan bottom-up. |
Terutama digunakan di | Dokumentasi modul, pembuatan test case, implementasi kode dan debugging. | Pengujian |
Definisi Pendekatan Top-down
Pendekatan top-down pada dasarnya membagi masalah kompleks atau algoritma menjadi beberapa bagian yang lebih kecil (modul). Modul-modul ini selanjutnya didekomposisi hingga modul yang dihasilkan adalah program mendasar yang pada dasarnya dipahami dan tidak dapat didekomposisi lebih lanjut. Setelah mencapai tingkat modularitas tertentu, dekomposisi modul dihentikan. Pendekatan top-down adalah proses bertahap memecah modul program besar menjadi modul yang lebih sederhana dan lebih kecil untuk mengatur dan kode program dengan cara yang efisien. Aliran kontrol dalam pendekatan ini selalu ke arah bawah. Pendekatan top-down diimplementasikan dalam bahasa pemrograman "C" dengan menggunakan fungsi.
Dengan demikian, metode top-down dimulai dengan desain abstrak dan kemudian secara berurutan desain ini disempurnakan untuk menciptakan tingkat yang lebih konkret sampai tidak ada persyaratan penyempurnaan tambahan.
Definisi Pendekatan Bottom-up
Pendekatan bottom-up bekerja dengan cara yang berlawanan dengan pendekatan top-down. Awalnya, itu termasuk merancang bagian paling mendasar yang kemudian digabungkan untuk membuat modul tingkat yang lebih tinggi. Integrasi submodula dan modul ini ke modul level yang lebih tinggi dilakukan berulang kali hingga algoritma lengkap yang diperlukan diperoleh.
Fungsi pendekatan bottom-up dengan lapisan abstraksi. Aplikasi utama dari pendekatan bottom-up adalah pengujian karena setiap modul fundamental pertama kali diuji sebelum menggabungkannya dengan yang lebih besar. Pengujian dilakukan dengan menggunakan fungsi tingkat rendah tertentu.
Perbedaan Utama Antara Pendekatan Top-down dan Bottom-up
- Pendekatan top-down menguraikan tugas besar menjadi subtugas yang lebih kecil sedangkan pendekatan bottom-up pertama-tama memilih untuk menyelesaikan bagian fundamental tugas yang berbeda secara langsung kemudian menggabungkan bagian-bagian tersebut ke dalam keseluruhan program.
- Setiap submodule diproses secara terpisah dalam pendekatan top-down. Sebagai lawan, pendekatan bottom-up mengimplementasikan konsep menyembunyikan informasi dengan memeriksa data yang akan dienkapsulasi.
- Modul berbeda dalam pendekatan top-down tidak memerlukan banyak komunikasi. Sebaliknya, pendekatan bottom-up membutuhkan interaksi antara modul-modul fundamental yang terpisah untuk menggabungkannya nanti.
- Pendekatan top-down dapat menghasilkan redundansi sementara pendekatan bottom-up tidak termasuk informasi yang berlebihan.
- Bahasa pemrograman prosedural seperti Fortran, COBOL dan C mengikuti pendekatan top-down. Sebaliknya, bahasa pemrograman berorientasi objek seperti C ++, Java, C #, Perl, Python mematuhi pendekatan bottom-up.
- Pendekatan bottom-up sebelumnya digunakan dalam pengujian. Sebaliknya, pendekatan top-down digunakan dalam dokumentasi modul, pembuatan test case, debugging, dan sebagainya.
Kesimpulan
Pendekatan top-down dan pendekatan bottom-up adalah metode desain algoritma di mana top-down adalah pendekatan konvensional yang menguraikan sistem dari spesifikasi tingkat tinggi ke spesifikasi tingkat rendah. Di sisi lain, pendekatan bottom-up lebih efisien dan bekerja secara terbalik di mana komponen primitif dirancang pada awalnya kemudian dilanjutkan ke tingkat yang lebih tinggi.
Pendekatan top-down menekankan pada isolasi submodules (menandakan rendahnya kopling antar modul) sementara mengabaikan identifikasi konsep komunikasi dan usabilitas ulang. Sementara dalam pendekatan bottom-up, persembunyian informasi dan penggunaan kembali adalah faktor utama.