|
3.1 |
Pembangunan Algoritma |
|
|
- Algoritma ialah satu set langkah-langkah yang perlu dilaksanakan untuk menghasilkan output yang dikehendaki.
- Algoritma digunakan oleh pengaturcara untuk membangunkan set aturcara yang telah dirancang.
- Algoritma juga salah satu teknik penyelesaian masalah.
- Algoritma boleh diwakili dengan pembinaan pseudokod dan carta alir.
- Pembangunan algoritma merupakan satu teknik pengitlakan yang mengandungi langkah-langkah untuk menyelesaikan masalah.
- Algoritma dibangunkan untuk membantu memahami proses yang perlu dilakukan oleh komputer, melakukan penambahbaikkan kepada algoritma dan menulis algoritma dengan teratur, cekap dan mudah difahami.
|
|
Ciri-ciri search (linear, binary) dan sort (bubble, bucket)
|
|
Search |
|
Linear search
|
Binary search
|
Satu teknik untuk mendapatkan item dalam satu senarai linear
|
Satu teknik yang menggunakan proses carian dwipilihan
|
Pencarian bermula dari item pertama dan diikuti dengan item berikutnya
|
Item dalam senarai akan diisih dalam urutan menaik
|
Sekiranya item yang dicari tiada dalam senarai, maka carian akan ditamatkan
|
Proses carian akan dimulai dari ditengah-tengah senarai item
|
Item tidak perlu diisih mengikut urutan
|
Jika carian telah ditemui, maka proses carian akan ditamatkan
|
Teknik ini kurang efesien
|
Teknik ini akan membandingkan item ditengah-tengah dengan item yang bersebelahan dengannya
|
Teknik ini menggunakan masa yang panjang untuk memproses senarai yang panjang
|
Teknik ini lebih efesien kerana tidak perlu menyemak semua senarai dan sesuai untuk item yang banyak
|
|
|
Sort |
|
- Sort ialah proses mengisih atau menyusun item-item dalam suatu senarai linear mengikut urutan tertentu
- Jenis Sort adalah seperti berikut:
|
|
Bubble sort
|
Bucket sort
|
Teknik ini mengisihkan item-item mengikut urutan menaik atau menurun
|
Teknik ini mengasingkan item-item dalam
senarai tertentu ke dalam baldi
|
Teknik ini akan bermula dengan mengisihkan dua item pertama dalam senarai
|
Item-item di dalam baldi akan diisih
|
Item pertama dan kedua akan bertukar tempat dan menyusunnya mengikut urutan menaik atau menurun
|
Item-item disusun semula ke dalam senarai
|
Perbandingan dengan item bersebelahan akan berterusan sehingga satu set susunan akan dihasilkan samada secara menaik atau menurun
|
Bilangan baldi yang digunakan bergantung kepada bilangan pengaturcara dan bilangan item-item dalam senarai yang perlu diisih
|
|
|
Perbandingan antara Search dan Sort |
|
Persamaan
- Memerlukan senarai
- Memerlukan algoritma
- Linear search dan bubble sort sesuai digunakan untuk senarai item yang sedikit
- Binary search dan bucket sort sesuai untuk item yang banyak
|
|
Perbezaan
- Search- Mencari item tertentu dalam senarai
- Sort - Mengisih item-item dalam senarai mengikut urutan menaik atau menurun
|
|
Pseudokod dan carta alir: (i) linear search dan (ii) binary search
|
|
Linear search
|
|
- Algoritma ialah satu set langkah yang teratur untuk dilakukan bagi mencapai sesuatu hasil
- Algoritma boleh diwakili oleh pseudokod dan carta alir
- Pseudokod ialah perwakilan algoritma dalam bahasa yang boleh difahami
- Carta alir adalah perwakilan algoritma dalam bentuk grafik
- Algoritma memudahkan seseorang untuk mengesan ralat yang ada pada output yang diperoleh dan dapat memastikan output yang dihasilkan adalah output yang diingini
- Algoritma bagi proses linear search dirumuskan seperti berikut:
|
|
|
|
|
|
Simbol-simbol bagi carta alir |
|
|
|
|
|
Binary search
|
|
- Algoritma perlu dibina bagi memudahkan proses binary search
- Algoritma bagi binary search adalah seperti berikut:
|
|
|
|
|
|
|
|
Pseudokod dan carta alir: (i) bubble sort dan (ii) bucket sort
|
|
Bubble sort
|
|
- Penyusunan data seperti nama, nombor, rekod dan fail dalam tertib tertentu
- Data yang telah diisih menjadikan carian lebih cekap, percantuman lebih efisien dan memudahkan pemprosesan data dalam susunan yang dikehendaki
- Proses carian akan menjadi dengan adanya penghapusan dan pencatuman data yang berulang
- Algoritma bagi bubble sort menggunakan struktur kawalan ulangan untuk memproses setiap item
|
|
|
|
|
|
|
|
Bucket sort
|
|
- Algoritma bagi bucket sort ialah suatu isihan yang menyusun item-item dalam suatu senarai mengikut kategori dan menyusunnya semula mengikut susunan yang betul
- Item-item dalam senarai akan diisih sebanyak dua kali supaya item-item berada dalam urutan yang betul
- Isihan pertama dibuat apabila item-item dalam senarai diisih mengikut saiz baldi
- Isihan kedua dibuat apabila item-item dalam setiap baldi diisih mengikut urutan
- Algoritma bagi bucket sort adalah seperti berikut:
|
|
|
|
|
|
|
|
Mengesan dan membaiki ralat dalam pseudokod dan melukis carta alir
|
|
- Apabila terdapat ralat dalam suatu algoritma, ia akan menyebabkan aturcara yang dibangunkan itu tidak dapat menghasilkan output yang dikehendaki.
- Pengesanan ralat dalam algoritma adalah penting supaya proses pembaikian kod aturcara dapat dilakukan.
- Semakan meja dan semakan langkah demi langkah merupakan dua jenis pengesanan ralat dalam algoritma.
Pengesanan ralat melalui semakan meja ialah:
- Output perlu bergantung kepada pembolehubah semasa algoritma papar dipanggil.
- Kesahihan output algoritma ditentukan dengan membandingkan output dijangka.
- Output dijangka ditentukan dengan hitungan manual.
- Output akan bersamaan dengan output algoritma jika algoritma adalah betul.
Pengesanan ralat melalui langkah demi langkah ialah:
- Jadual pembolehubah boleh digunakan untuk mengesan perubahan algoritma yang mengumpuk dan mengubah nilai pembolehubah.
- Perubahan pada pembolehubah mungkin berlaku pada setiap baris algoritma.
Tujuan pengujian dan pembaikan ralat ialah:
- Untuk pembaikian algoritma
- Memastikan algoritma betul sebelum ditulis sebagai kod computer
- Untuk memastikan logik algoritma adalah betul supaya pembaikiannya lebih senang
Ciri-ciri ralat algoritma adalah seperti berikut:
- Berfungsi dan menjimatkan proses pengekodan
- Mudah difahami
- Berdasarkan kriteria reka bentuk
- Memenuhi keperluan untuk menyelesaikan masalah
Terdapat dua jenis ralat dalam algoritma iaitu:
- Ralat Logik
- Output yang dihasilkan adalah tidak tepat sebagaimana yang sepatutnya akibat kesilapan menulis formula, jenis data yang tidak sesuai atau nilai umpukan yang tidak betul
- Ralat Sintaks
- Tidak ada semasa penulisan algoritma kerana ia hanya wujud jika ada kesilapan semasa menggunakan bahasa pengaturcaraan
|
|
Langkah-langkah pengujian ralat dalam algoritma adalah seperti berikut:
|
|
|
|
Membandingkan algoritma search dan sort melalui pengecaman corak
|
|
- Pengecaman corak adalah penting dalam proses pembangunan algoritma kerana para pengatur cara boleh mengenal pasti dan memahami corak masalah yang harus diselesaikan.
- Pengecaman corak merupakan salah satu teknik untuk mengenal pasti ciri-ciri, struktur, bentuk input serta output yang terdapat dalam sesuatu masalah algoritma.
- Kaedah pengecaman corak boleh digunakan untuk membandingkan masalah-masalah yang hendak diselesaikan dengan masalah-masalah lain yang seiras dan telah mendapat penyelesaiannya.
- Jika corak masalahnya adalah seiras, maka pengaturcara boleh menggunakan bentuk penyelesaian sedia ada untuk membina algoritma penyelesaian bagi masalah yang hendak diselesaikan.
Berikut adalah persamaan dan perbezaan di antara ciri-ciri algoritma search dan sort:
|
|
Algoritma Search |
Algoritma Sort |
Persamaan |
Menggunakan senarai |
Menggunakan gelung |
Perbezaan |
Membandingkan item carian dengan item tertentu dalam senarai |
Isihan akan tamat jika semua item berada dalam urutan yang betul |
Mencari suatu item dalam senarai |
Mengisih item-item dalam senarai mengikut urutan menaik atau menurun |
Boleh digunakan untuk senarai yang telah diisih atau belum |
Digunakan untuk senarai yang belum diisih |
|
|
Menghasilkan algoritma melibatkan gabungan teknik search dan sort
|
|
Gabungan algoritma search dan sort diperlukan untuk mempercepatkan dan memudahkan proses penyelesaian sesuatu masalah.
Selain itu, gabungan juga boleh dibuat diantara algoritma jenis search iaitu linear search dan binary search atau bubble sort dan bucket sort.
Gabungan teknik search dan sort akan membantu pengaturcara untuk menyelesaikan sesuatu masalah dengan mudah.
Selain itu, ia juga membolehkan pengaturcara mendapat output yang dikehendaki.
|