Algoritma

SAINS KOMPUTER • Tingkatan 4 • Bab 1: Pengaturcaraan

1.2 Algoritma

Setiap atur cara komputer bermula sebagai satu idea penyelesaian. Algoritma ialah set arahan yang menyusun idea itu supaya masalah dapat diselesaikan langkah demi langkah, sebelum ia ditulis sebagai kod dalam bahasa pengaturcaraan.

Objektif Pembelajaran

  • Menyatakan maksud algoritma dan menggunakan analisis IPO untuk menyatakan penyelesaian kepada masalah.
  • Mewakilkan algoritma dalam dua format, iaitu pseudokod dan carta alir, menggunakan simbol piawai yang betul.
  • Membina algoritma dengan menggunakan tiga struktur kawalan, iaitu urutan, pilihan dan pengulangan.
  • Menguji algoritma secara manual serta mengenal pasti dan membaiki ralat dalam algoritma.
  • Mengesan nilai pemboleh ubah pada setiap tahap, menentukan output yang betul, dan menterjemah algoritma ke dalam bahasa pengaturcaraan.

Daripada Input kepada Output: Tiga Struktur Kawalan Algoritma

Setiap perisian komputer menerima input, memprosesnya, dan menghasilkan output. Arahan di dalam proses itu disusun menggunakan tiga struktur kawalan sahaja, iaitu urutan, pilihan dan pengulangan.

Konsep Input – Proses – Output (IPO)

Tiga kotak disusun dari kiri ke kanan dan disambungkan oleh dua anak panah ke kanan. Kotak pertama ialah INPUT, iaitu data yang dimasukkan pengguna. Anak panah membawa data itu ke kotak kedua, iaitu PROSES, yang mengubah data menggunakan ungkapan matematik atau ungkapan logik. Anak panah seterusnya membawa hasil ke kotak ketiga, iaitu OUTPUT, iaitu nilai yang dipaparkan pada skrin. INPUT PROSES OUTPUT

Input: teks, nombor, objek. Proses: ungkapan matematik atau logik. Output: paparan, laporan, jadual, dokumen.

1. Urutan

Carta alir menegak tanpa cabang. Bermula dengan terminal MULA, kemudian anak panah ke bawah kepada nod proses Penyataan 1, seterusnya Penyataan 2, seterusnya Penyataan 3, dan akhirnya anak panah ke terminal TAMAT. Setiap arahan dilaksanakan satu per satu mengikut susunan. MULA Penyataan 1 Penyataan 2 Penyataan 3 TAMAT

Arahan dilaksanakan satu per satu.

2. Pilihan

Bermula dengan terminal MULA, kemudian anak panah ke bawah kepada satu nod syarat berbentuk rombus. Nod syarat mempunyai dua anak panah keluar. Cabang berlabel Benar keluar ke kiri lalu turun ke nod proses Penyataan 1. Cabang berlabel Palsu keluar ke kanan lalu turun ke nod proses Penyataan 2. Kedua-dua cabang bertemu semula di bawah, kemudian satu anak panah menuju ke terminal TAMAT. Hanya satu daripada dua cabang dilaksanakan. MULA Syarat? Benar Palsu Penyataan 1 Penyataan 2 TAMAT

Satu daripada dua cabang dipilih mengikut syarat.

3. Pengulangan

Bermula dengan terminal MULA, kemudian anak panah ke bawah masuk ke nod syarat berbentuk rombus. Cabang berlabel Benar keluar ke kanan kepada nod proses Blok Penyataan, dan dari blok itu satu anak panah berpatah balik ke atas lalu ke kiri, bertemu semula dengan garis masuk di atas nod syarat, supaya blok itu boleh diulang. Cabang berlabel Palsu keluar ke bawah menuju terminal TAMAT. MULA Syarat? Benar Palsu Blok Penyataan TAMAT

Blok penyataan diulang selagi syarat Benar.

Penerangan Ringkas

Maksud algoritma, ciri-cirinya, analisis IPO dan dua format perwakilan algoritma.

Apakah itu algoritma?

Algoritma ialah satu set arahan untuk menyelesaikan masalah. Arahan terperinci yang dapat diikuti sehingga tugasan terlaksana dengan jayanya ialah satu bentuk algoritma dalam kehidupan harian.

Algoritma juga ialah idea atau cara penyelesaian masalah dalam bentuk abstrak berasaskan arahan-arahan asas. Algoritma dapat dihalusi dengan menambahkan butiran.

Algoritma berbanding atur cara

Atur cara komputer ialah algoritma komputer yang ditulis dalam bahasa pengaturcaraan yang boleh dilaksanakan oleh komputer.

Oleh itu algoritma ialah ideanya, manakala atur cara ialah pelaksanaannya. Algoritma berbentuk universal, jadi simbol dan perkataan yang digunakan tidak perlu bersandarkan kepada mana-mana bahasa pengaturcaraan.

Tiga ciri wajib algoritma

  • Butiran jelas — arahan cukup terperinci untuk diikuti tanpa tekaan.
  • Boleh dilaksanakan — setiap arahan benar-benar dapat dijalankan.
  • Mempunyai batasan — mempunyai permulaan dan pengakhiran, dan selesai dalam waktu yang terbatas.

Analisis IPO

Analisis IPO dibuat untuk mengenal pasti data input, proses untuk mengubah nilai data kepada maklumat, dan paparan output maklumat setelah proses.

Input — kenal pasti data yang perlu dibaca daripada pengguna atau persekitaran.
Proses — langkah-langkah ataupun rumusan untuk memproses data input kepada output.
Output — kenal pasti output yang dikehendaki, iaitu apa yang perlu dipaparkan pada skrin di akhir atur cara.

Dua format perwakilan algoritma

Pseudokod

Pseudokod ialah senarai struktur kawalan komputer yang ditulis dalam bahasa pertuturan manusia dan mempunyai nombor turutan.

Pseudokod bukanlah bahasa pengaturcaraan komputer. Setiap arahan diletakkan dalam baris baharu yang diberikan nombor siri.

Carta alir

Carta alir ialah alternatif kepada pseudokod yang menggunakan simbol grafik untuk mewakili arahan-arahan penyelesaian.

Carta alir terdiri daripada nod dan garis penghubung. Anak panah menunjukkan aliran aktiviti.

Jadual 1.1: Simbol-simbol piawai carta alir
Nama nod Bentuk Fungsi
Terminal mula Bujur Permulaan algoritma dalam carta alir.
Terminal tamat Bujur Penamat algoritma dalam carta alir.
Input/Output Jajaran selari Membaca input atau memaparkan output ke skrin.
Proses Segi empat tepat Arahan untuk memproses input dalam bentuk ungkapan, memproses fail dan sebagainya.
Penghubung Bulatan Titik sambungan untuk menyambungkan carta alir yang terpisah.
Syarat Rombus Menguji syarat yang terkandung dalam nod rombus. Terdapat satu anak panah masuk dan dua anak panah keluar, satu bagi syarat yang dipenuhi dan satu lagi bagi syarat yang gagal.
Aliran aktiviti Anak panah Menghubungkan nod-nod untuk menunjukkan aliran proses.

Satu algoritma, dua perwakilan

Pseudokod dan carta alir di bawah mewakili algoritma yang sama, iaitu atur cara yang menerima tahun kelahiran pengguna dan memaparkan umurnya.

Pseudokod
1. MULA
2. INPUT TAHUN_LAHIR
3. UMUR = TAHUN_SEMASA - TAHUN_LAHIR
4. OUTPUT UMUR
5. TAMAT
Carta alir menegak tanpa cabang. Terminal MULA, kemudian nod Input/Output berbentuk jajaran selari yang membaca INPUT tahun_lahir, kemudian nod proses berbentuk segi empat tepat yang mengira umur sama dengan tahun_semasa tolak tahun_lahir, kemudian nod Input/Output yang memaparkan OUTPUT umur, dan akhirnya terminal TAMAT. MULA INPUT tahun_lahir umur = tahun_semasa - tahun_lahir OUTPUT umur TAMAT

Carta alir bagi algoritma yang sama.

Jadual 1.2: Operator-operator aritmetik
Operator Makna
+ Penambahan
- Penolakan
* Pendaraban
/ Pembahagian
( ) Kurungan

Simbol asterisk (*) digunakan untuk pendaraban dan garis sendeng (/) untuk pembahagian kerana tiada simbol darab dan bahagi pada papan kekunci piawai.

Tiga Struktur Kawalan dalam Pengaturcaraan

Proses komputer yang lebih kompleks dicipta dengan menggabungkan penyataan menggunakan struktur kawalan urutan, pilihan dan pengulangan.

1. Struktur kawalan urutan

Struktur kawalan urutan melaksanakan arahan-arahan komputer satu per satu. Urutan arahan yang betul adalah penting kerana urutan yang berlainan boleh memberikan output yang berlainan.

Urutan linear algoritma dipersembahkan sebagai susunan penyataan-penyataan secara linear: input data, memproses data, kemudian output hasil.

Sintaks pseudokod — urutan
MULA
Penyataan 1
Penyataan 2
Penyataan 3
TAMAT

Nilai boleh dimasukkan ke dalam pemboleh ubah melalui dua cara. Input interaktif membaca nilai daripada pengguna, manakala umpukan menyimpan nilai yang sudah ditetapkan. Umpukan menggunakan simbol =, bermakna nilai di sebelah kanan disimpan di dalam pemboleh ubah di sebelah kiri.

Contoh umpukan
tahun_lahir = 1963
umur = 21

Nilai pemboleh ubah yang diumpuk adalah sama setiap kali atur cara dijalankan, berbeza daripada input interaktif.

2. Struktur kawalan pilihan

Struktur kawalan pilihan memberikan perisian komputer keupayaan untuk membuat keputusan berasaskan syarat yang telah ditentukan pengatur cara. Ciri umumnya ialah satu syarat yang menentukan satu daripada dua cabang dipilih. Sekiranya satu urutan sudah terpilih, urutan satu lagi akan diabaikan.

Syarat yang digunakan ialah ungkapan logik. Ungkapan logik menilai data untuk menghasilkan keputusan "Benar" atau "Palsu". Operator hubungan membandingkan nilai dalam pemboleh ubah dengan nilai yang diuji.

Jadual 1.3: Operator-operator hubungan
Operator Makna
< Lebih kecil daripada
<= Lebih kecil daripada atau sama
> Lebih besar daripada
>= Lebih besar daripada atau sama
!= Tidak sama dengan
== Sama dengan
Sintaks pseudokod — pilihan
JIKA SYARAT_BENAR MULA_JIKA
     BLOK PENYATAAN 1
TAMAT_JIKA
JIKA_TIDAK MULA_JIKA_TIDAK
     BLOK PENYATAAN 2
TAMAT_JIKA_TIDAK

Blok penyataan bagi keputusan "Benar" mesti berada di antara MULA_JIKA dan TAMAT_JIKA, manakala blok penyataan bagi keputusan "Palsu" mesti berada di antara MULA_JIKA_TIDAK dan TAMAT_JIKA_TIDAK.

Contoh pilihan: kelayakan memohon lesen memandu

Pseudokod
1. MULA
2. PAPAR "Masukkan umur pemohon:"
3. INPUT umur
4. JIKA umur > 16 MULA_JIKA
       OUTPUT "Anda boleh pohon lesen."
   TAMAT_JIKA
   JIKA_TIDAK MULA_JIKA_TIDAK
       OUTPUT "Anda belum cukup umur."
   TAMAT_JIKA_TIDAK
5. TAMAT
Terminal MULA, kemudian nod Input/Output yang memaparkan arahan Masukkan umur pemohon, kemudian nod Input/Output yang membaca INPUT umur, kemudian nod syarat berbentuk rombus yang menguji sama ada umur lebih besar daripada 16. Cabang berlabel Benar keluar ke kiri lalu turun ke nod Input/Output yang memaparkan Anda boleh pohon lesen. Cabang berlabel Palsu keluar ke kanan lalu turun ke nod Input/Output yang memaparkan Anda belum cukup umur. Kedua-dua cabang bertemu semula di bawah sebelum satu anak panah menuju ke terminal TAMAT. MULA PAPAR "Masukkan umur pemohon:" INPUT umur umur > 16 ? Benar Palsu OUTPUT "Anda boleh pohon lesen." OUTPUT "Anda belum cukup umur." TAMAT

Cabang "Benar" di kiri, cabang "Palsu" di kanan, dan kedua-duanya bertemu semula sebelum TAMAT.

3. Struktur kawalan pengulangan

Struktur kawalan pengulangan mengulang arahan-arahan komputer dalam blok. Ulangan boleh berlangsung sehingga menerima syarat berhenti ataupun mencapai bilangan yang sudah ditetapkan.

Syarat diletakkan selepas kata kunci SELAGI. Tidak seperti kawalan pilihan, kawalan pengulangan menggunakan keputusan syarat "Benar" untuk mengulang arahan-arahan dalam blok penyataan. Perbezaan ketara pada carta alir ialah hala tuju anak panah bagi keputusan "Benar" yang berpatah balik supaya pengulangan boleh dilaksanakan.

Sintaks pseudokod — pengulangan
SELAGI SYARAT MULA_SELAGI
     BLOK PENYATAAN
TAMAT_SELAGI

Contoh pengulangan: memaparkan teks sebanyak 5 kali

Pseudokod
1. MULA
2. pembilang = 0
3. SELAGI pembilang < 5 MULA_SELAGI
       OUTPUT "Saya gembira hadir ke sekolah hari ini."
       pembilang = pembilang + 1
   TAMAT_SELAGI
4. TAMAT
Terminal MULA, kemudian nod proses yang mengumpuk pembilang dengan nilai 0, kemudian garis menegak masuk ke nod syarat berbentuk rombus yang menguji sama ada pembilang lebih kecil daripada 5. Cabang berlabel Benar keluar ke kanan kepada nod Input/Output yang memaparkan teks Saya gembira hadir ke sekolah hari ini, kemudian naik ke nod proses yang menambah pembilang dengan satu, dan dari nod itu satu anak panah berpatah balik ke kiri, bertemu semula dengan garis masuk di atas nod syarat. Cabang berlabel Palsu keluar ke bawah menuju terminal TAMAT. MULA pembilang = 0 pembilang < 5 ? Benar Palsu OUTPUT "Saya gembira hadir ke sekolah hari ini." pembilang = pembilang + 1 TAMAT

Anak panah "Benar" berpatah balik ke laluan masuk nod syarat, dan itulah yang menjadikannya pengulangan.

Menguji dan Membaiki Ralat dalam Algoritma

Algoritma diuji secara manual sebelum ditulis sebagai kod, kerana pembetulan di peringkat kod mengambil masa yang lebih lama dan lebih mahal.

Ciri-ciri algoritma yang telah diuji

Mudah difahami, maka mudah ditulis sebagai atur cara komputer. Lengkap, iaitu memenuhi semua keperluan penyelesaian masalah. Efisien, iaitu berfungsi dengan pantas dan tidak memakan banyak ruang memori. Memenuhi kriteria reka bentuk perisian yang ingin dibangunkan.

Tiga jenis ralat dan hubungannya dengan ralat algoritma
Jenis ralat Penerangan
Ralat sintaks Tidak wujud dalam algoritma. Berlaku kerana menggunakan bahasa pengaturcaraan dengan cuai, dan biasanya ditemui secara automatik oleh perisian kompiler. Ralat algoritma tidak menyebabkan ralat sintaks.
Ralat logik Berlaku kerana perisian yang dihasilkan tidak menjalankan fungsi-fungsi yang sepatutnya, tidak lengkap, ataupun fungsi menghasilkan output yang tidak tepat.
Ralat masa larian Ralat yang timbul apabila atur cara dijalankan, termasuk atur cara yang tidak dapat dimulakan, menjadi sangat perlahan ataupun tidak responsif. Antara puncanya ialah urutan yang tidak betul, pemboleh ubah yang tidak mengandungi nilai, pembahagian dengan sifar, dan syarat pengulangan yang salah sehingga ulangan tidak boleh berhenti.

Empat langkah pengujian algoritma

Pengujian algoritma ialah pemeriksaan secara manual dan teliti. Ia juga dikenali sebagai desk-checking kerana teknik ini menggunakan kertas dan pensel.

Kenal pasti "Output Dijangka" bagi setiap input uji, secara hitungan manual.
Tentukan "Output Diperoleh" dengan menjejak algoritma baris demi baris menggunakan jadual.
Bandingkan "Output Diperoleh" dengan "Output Dijangka".
Analisis dan baiki ralat dalam algoritma, kemudian uji semula.

Bilangan lajur jadual pengujian ialah bilangan pemboleh ubah tambah 2: satu lajur untuk nombor baris, satu lajur bagi setiap pemboleh ubah, dan satu lajur terakhir I/O untuk input pengguna dan output yang diperoleh. Bilangan barisnya pula sama dengan bilangan baris tahap algoritma.

Contoh pengujian: algoritma yang mengandungi ralat

Algoritma sebelum dibaiki
1. MULA
2. INPUT nama
3. PAPAR "Hello "
4. TAMAT
Perbandingan Output Dijangka dengan Output Diperoleh
Input uji Output Dijangka Output Diperoleh
Adam Hello Adam Hello
Zhi-Yi Hello Zhi-Yi Hello
Darshini Hello Darshini Hello

Output Diperoleh tidak sama dengan Output Dijangka bagi ketiga-tiga input uji. Kesimpulannya, algoritma mengandungi ralat, iaitu kegagalan input dipamerkan dalam output. Baris 3 perlu memaparkan nilai pemboleh ubah nama bersama teks "Hello ".

Algoritma selepas dibaiki
1. MULA
2. INPUT nama
3. PAPAR "Hello " + nama
4. TAMAT

Selepas pembaikan, ketiga-tiga input uji menghasilkan Output Diperoleh yang sama dengan Output Dijangka, iaitu Hello Adam, Hello Zhi-Yi dan Hello Darshini.

Mengesan Nilai Pemboleh Ubah dan Output yang Betul

Jadual pemboleh ubah digunakan untuk mengesan nilai pada setiap tahap algoritma, dan output algoritma disahkan dengan membandingkannya dengan output dijangka.

Algoritma mengumpuk dan mengubah nilai sesuatu pemboleh ubah, jadi nilai pemboleh ubah adalah tidak tetap. Setiap baris algoritma mungkin membuat perubahan pada pemboleh ubah tertentu.

Menjejak satu pemboleh ubah

Pseudokod
1. MULA
2. INPUT z = 100
3. z = z/2
4. z = z * 4
5. z = z * 0.25 + z
6. PAPAR z
7. TAMAT
Jadual pengesanan nilai pemboleh ubah z
No z I/O
1 – –
2 100 100
3 50 –
4 200 –
5 250 –
6 250 250
7 – –

Pada baris 2, z diumpuk dengan 100. Baris 3 membahagikannya menjadi 50, baris 4 mendarabkannya dengan 4 menjadi 200, dan baris 5 menambah 25% daripada 200, iaitu 50, kepada nilai asalnya sehingga menjadi 250. Baris 6 memaparkan 250 tanpa mengubahnya, dan pada baris 7 semua nilai dibersihkan kerana algoritma sudah tamat.

Menentukan output yang betul

Membandingkan output algoritma dengan output dijangka merupakan satu-satunya cara untuk menentukan kesahihan output algoritma. Jika output algoritma betul, ia sepatutnya bersamaan dengan output dijangka.

Pseudokod
1. MULA
2. INPUT x
3. INPUT y
4. jumlah = x + y
5. PAPAR jumlah
6. TAMAT
Jadual pengujian bagi input x = 12 dan y = 88
No x y jumlah I/O
1 – – – –
2 12 – – –
3 12 88 – –
4 12 88 12 + 88 = 100 –
5 12 88 100 jumlah = 100
6 – – – –

Bagi input x = 12 dan y = 88, output dijangka ialah 100. Output algoritma juga 100, maka algoritma telah mencapai ketepatan nilai dalam ujian ini. Untuk kepastian, ulang ujian menggunakan nilai input yang berbeza dan tentukan output dijangka bagi setiap satu.

Menterjemah Algoritma ke dalam Bahasa Pengaturcaraan

Setiap baris algoritma yang direka bentuk dapat ditukarkan kepada kod komputer.

Algoritma berbentuk universal, jadi simbol dan perkataan yang digunakan tidak perlu bersandarkan kepada mana-mana bahasa pengaturcaraan. Antara bahasa pengaturcaraan yang sering digunakan ialah Visual Basic (VB), Java dan C#.

Terjemahan setiap baris algoritma kepada kod komputer (Java)
Algoritma Kod komputer (Java)
MULA public static void main(String[] args){
PAPAR "Masukkan nama pengguna:" System.out.print("Masukkan nama pengguna: ");
INPUT nama String nama = new java.util.Scanner(System.in).nextLine();
PAPAR "Hello " + nama System.out.println("Hello " + nama);
TAMAT }

Perhatikan bahawa satu baris algoritma tidak semestinya menjadi satu baris kod yang ringkas. Walaupun begitu, setiap baris algoritma mesti ada padanannya dalam kod supaya tiada arahan tertinggal.

Cuba Jawab Dulu

Cuba jawab sendiri dahulu, kemudian tekan butang untuk menyemak.

Nyatakan tiga ciri wajib bagi sebuah algoritma.

Butiran jelas, boleh dilaksanakan dan mempunyai batasan, iaitu mempunyai permulaan serta pengakhiran dan selesai dalam waktu yang terbatas.

Satu algoritma mengumpuk z = 100, kemudian z = z/2, kemudian z = z * 4. Apakah nilai z selepas baris ketiga itu?

200. Nilai 100 dibahagi dengan 2 menjadi 50, kemudian 50 didarab dengan 4 menjadi 200.

Mengapakah ralat sintaks bukan berpunca daripada ralat algoritma?

Kerana ralat sintaks berlaku akibat kecuaian pengatur cara ketika menulis kod dalam bahasa pengaturcaraan, dan ia biasanya ditemui oleh perisian kompiler. Algoritma pula tidak terikat kepada sintaks mana-mana bahasa pengaturcaraan, jadi ralat algoritma tidak menyebabkan ralat sintaks. Ralat algoritma menyebabkan ralat logik dan ralat masa larian.

Kesalahan Biasa

  • Melukis carta alir dengan anak panah yang tidak bersentuhan dengan nod yang diwakilinya. Carta alir sedemikian dikira sebagai tidak lengkap.
  • Menganggap pseudokod boleh dilaksanakan terus oleh komputer. Pseudokod ditulis dalam bahasa pertuturan harian dan bukan bahasa pengaturcaraan.
  • Menulis syarat pengulangan yang tidak pernah menjadi "Palsu", misalnya terlupa mengemas kini nilai pembilang di dalam blok penyataan, sehingga ulangan tidak boleh berhenti.
  • Menggunakan nama pemboleh ubah yang belum diumpuk atau tidak pernah dibaca sebagai input, sehingga nilainya kekal null dan output menjadi salah.
  • Memaparkan teks sahaja tanpa menggabungkan nilai pemboleh ubah, misalnya menulis PAPAR "Hello " dan bukan PAPAR "Hello " + nama.
  • Menguji algoritma hanya selepas kod ditulis. Pembetulan di peringkat kod mengambil masa yang lebih lama dan lebih mahal daripada pembetulan di peringkat algoritma.
  • Menukar simbol nod carta alir: menggunakan segi empat tepat (Proses) untuk menguji syarat sedangkan syarat mesti menggunakan rombus, atau menggunakan segi empat tepat untuk membaca input sedangkan Input/Output mesti menggunakan jajaran selari. Ingat juga bahawa bujur ialah terminal MULA/TAMAT, manakala bulatan ialah nod Penghubung untuk menyambung carta alir yang terpisah.

Salah Faham Konsep

Salah Faham

Algoritma dan atur cara ialah perkara yang sama.

Fakta Betul

Algoritma ialah idea penyelesaian dalam bentuk abstrak. Atur cara ialah algoritma itu yang sudah ditulis dalam bahasa pengaturcaraan dan boleh dilaksanakan oleh komputer.

Salah Faham

Pseudokod dan carta alir menghasilkan dua algoritma yang berbeza.

Fakta Betul

Kedua-duanya ialah dua format perwakilan bagi algoritma yang sama. Satu menggunakan bahasa pertuturan bernombor, satu lagi menggunakan simbol grafik.

Salah Faham

Ralat sintaks berpunca daripada ralat algoritma.

Fakta Betul

Ralat algoritma tidak menyebabkan ralat sintaks. Ralat sintaks berpunca daripada kecuaian pengatur cara semasa menulis kod, manakala ralat algoritma membawa kepada ralat logik dan ralat masa larian.

Salah Faham

Nod syarat dalam carta alir pengulangan berfungsi sama seperti dalam carta alir pilihan.

Fakta Betul

Dalam pilihan, dua cabang bertemu semula sebelum TAMAT. Dalam pengulangan, cabang "Benar" berpatah balik ke laluan masuk nod syarat supaya blok penyataan boleh diulang.

Salah Faham

Tanda = dan == membawa maksud yang sama.

Fakta Betul

= ialah simbol umpukan, iaitu menyimpan nilai di sebelah kanan ke dalam pemboleh ubah di sebelah kiri. == ialah operator hubungan yang membandingkan dua nilai dan menghasilkan keputusan "Benar" atau "Palsu".

Ringkasan

  • Algoritma ialah satu set arahan untuk menyelesaikan masalah; ciri wajibnya ialah butiran jelas, boleh dilaksanakan dan mempunyai batasan.
  • Analisis IPO mengenal pasti data input, proses yang mengubah data kepada maklumat, dan output yang perlu dipaparkan.
  • Algoritma diwakili dalam dua format, iaitu pseudokod yang bernombor dan ditulis dalam bahasa pertuturan, dan carta alir yang menggunakan nod simbol piawai serta garis penghubung beranak panah.
  • Terdapat tiga struktur kawalan: urutan melaksanakan arahan satu per satu; pilihan memilih satu daripada dua cabang berdasarkan ungkapan logik; pengulangan mengulang blok penyataan selagi syarat "Benar".
  • Umpukan menyimpan nilai di sebelah kanan simbol = ke dalam pemboleh ubah di sebelah kiri, dan nilainya sama setiap kali atur cara dijalankan.
  • Algoritma diuji secara manual (desk-checking) melalui empat langkah: tentukan Output Dijangka, tentukan Output Diperoleh, bandingkan kedua-duanya, kemudian analisis dan baiki ralat.
  • Ralat algoritma membawa kepada ralat logik dan ralat masa larian, tetapi bukan ralat sintaks yang berpunca daripada kecuaian pengatur cara.
  • Jadual pemboleh ubah mengesan nilai pada setiap tahap algoritma, dan output algoritma disahkan dengan membandingkannya dengan output dijangka.
  • Setiap baris algoritma akhirnya diterjemah kepada kod dalam bahasa pengaturcaraan seperti Java.

Aktiviti Ringkas

A. Kuiz Objektif

1 Apakah perbezaan utama antara pseudokod dengan carta alir sebagai perwakilan algoritma?

2 Dalam carta alir struktur kawalan pengulangan, ke manakah aliran bagi keputusan syarat "Benar"?

B. Isi Tempat Kosong

3 Perwakilan algoritma yang menggunakan simbol grafik piawai serta garis penghubung beranak panah disebut .

4 Nod dalam carta alir diwakili oleh simbol rombus dan mempunyai satu anak panah masuk serta dua anak panah keluar.

C. Padankan Nod Carta Alir dengan Fungsinya

Seret nama nod ke fungsi yang betul. Jika menggunakan telefon, tekan pilihan jawapan dahulu, kemudian tekan kotak padanan.

Nama Nod
Terminal
Input/Output
Proses
Syarat
Fungsi
1 Menandakan permulaan dan penamat algoritma dalam carta alir.
2 Membaca input atau memaparkan output ke skrin.
3 Memproses input dalam bentuk ungkapan, termasuk umpukan nilai.
4 Menguji syarat, dengan satu anak panah masuk dan dua anak panah keluar.
 

Kata Kunci

Algoritma Atur Cara Analisis IPO Pseudokod Carta Alir Nod Pemboleh Ubah Umpukan Struktur Kawalan Urutan Struktur Kawalan Pilihan Struktur Kawalan Pengulangan Ungkapan Logik Operator Hubungan Desk-checking Output Dijangka Ralat Logik

Algoritma

SAINS KOMPUTER • Tingkatan 4 • Bab 1: Pengaturcaraan

1.2 Algoritma

Setiap atur cara komputer bermula sebagai satu idea penyelesaian. Algoritma ialah set arahan yang menyusun idea itu supaya masalah dapat diselesaikan langkah demi langkah, sebelum ia ditulis sebagai kod dalam bahasa pengaturcaraan.

Objektif Pembelajaran

  • Menyatakan maksud algoritma dan menggunakan analisis IPO untuk menyatakan penyelesaian kepada masalah.
  • Mewakilkan algoritma dalam dua format, iaitu pseudokod dan carta alir, menggunakan simbol piawai yang betul.
  • Membina algoritma dengan menggunakan tiga struktur kawalan, iaitu urutan, pilihan dan pengulangan.
  • Menguji algoritma secara manual serta mengenal pasti dan membaiki ralat dalam algoritma.
  • Mengesan nilai pemboleh ubah pada setiap tahap, menentukan output yang betul, dan menterjemah algoritma ke dalam bahasa pengaturcaraan.

Daripada Input kepada Output: Tiga Struktur Kawalan Algoritma

Setiap perisian komputer menerima input, memprosesnya, dan menghasilkan output. Arahan di dalam proses itu disusun menggunakan tiga struktur kawalan sahaja, iaitu urutan, pilihan dan pengulangan.

Konsep Input – Proses – Output (IPO)

Tiga kotak disusun dari kiri ke kanan dan disambungkan oleh dua anak panah ke kanan. Kotak pertama ialah INPUT, iaitu data yang dimasukkan pengguna. Anak panah membawa data itu ke kotak kedua, iaitu PROSES, yang mengubah data menggunakan ungkapan matematik atau ungkapan logik. Anak panah seterusnya membawa hasil ke kotak ketiga, iaitu OUTPUT, iaitu nilai yang dipaparkan pada skrin. INPUT PROSES OUTPUT

Input: teks, nombor, objek. Proses: ungkapan matematik atau logik. Output: paparan, laporan, jadual, dokumen.

1. Urutan

Carta alir menegak tanpa cabang. Bermula dengan terminal MULA, kemudian anak panah ke bawah kepada nod proses Penyataan 1, seterusnya Penyataan 2, seterusnya Penyataan 3, dan akhirnya anak panah ke terminal TAMAT. Setiap arahan dilaksanakan satu per satu mengikut susunan. MULA Penyataan 1 Penyataan 2 Penyataan 3 TAMAT

Arahan dilaksanakan satu per satu.

2. Pilihan

Bermula dengan terminal MULA, kemudian anak panah ke bawah kepada satu nod syarat berbentuk rombus. Nod syarat mempunyai dua anak panah keluar. Cabang berlabel Benar keluar ke kiri lalu turun ke nod proses Penyataan 1. Cabang berlabel Palsu keluar ke kanan lalu turun ke nod proses Penyataan 2. Kedua-dua cabang bertemu semula di bawah, kemudian satu anak panah menuju ke terminal TAMAT. Hanya satu daripada dua cabang dilaksanakan. MULA Syarat? Benar Palsu Penyataan 1 Penyataan 2 TAMAT

Satu daripada dua cabang dipilih mengikut syarat.

3. Pengulangan

Bermula dengan terminal MULA, kemudian anak panah ke bawah masuk ke nod syarat berbentuk rombus. Cabang berlabel Benar keluar ke kanan kepada nod proses Blok Penyataan, dan dari blok itu satu anak panah berpatah balik ke atas lalu ke kiri, bertemu semula dengan garis masuk di atas nod syarat, supaya blok itu boleh diulang. Cabang berlabel Palsu keluar ke bawah menuju terminal TAMAT. MULA Syarat? Benar Palsu Blok Penyataan TAMAT

Blok penyataan diulang selagi syarat Benar.

Penerangan Ringkas

Maksud algoritma, ciri-cirinya, analisis IPO dan dua format perwakilan algoritma.

Apakah itu algoritma?

Algoritma ialah satu set arahan untuk menyelesaikan masalah. Arahan terperinci yang dapat diikuti sehingga tugasan terlaksana dengan jayanya ialah satu bentuk algoritma dalam kehidupan harian.

Algoritma juga ialah idea atau cara penyelesaian masalah dalam bentuk abstrak berasaskan arahan-arahan asas. Algoritma dapat dihalusi dengan menambahkan butiran.

Algoritma berbanding atur cara

Atur cara komputer ialah algoritma komputer yang ditulis dalam bahasa pengaturcaraan yang boleh dilaksanakan oleh komputer.

Oleh itu algoritma ialah ideanya, manakala atur cara ialah pelaksanaannya. Algoritma berbentuk universal, jadi simbol dan perkataan yang digunakan tidak perlu bersandarkan kepada mana-mana bahasa pengaturcaraan.

Tiga ciri wajib algoritma

  • Butiran jelas — arahan cukup terperinci untuk diikuti tanpa tekaan.
  • Boleh dilaksanakan — setiap arahan benar-benar dapat dijalankan.
  • Mempunyai batasan — mempunyai permulaan dan pengakhiran, dan selesai dalam waktu yang terbatas.

Analisis IPO

Analisis IPO dibuat untuk mengenal pasti data input, proses untuk mengubah nilai data kepada maklumat, dan paparan output maklumat setelah proses.

Input — kenal pasti data yang perlu dibaca daripada pengguna atau persekitaran.
Proses — langkah-langkah ataupun rumusan untuk memproses data input kepada output.
Output — kenal pasti output yang dikehendaki, iaitu apa yang perlu dipaparkan pada skrin di akhir atur cara.

Dua format perwakilan algoritma

Pseudokod

Pseudokod ialah senarai struktur kawalan komputer yang ditulis dalam bahasa pertuturan manusia dan mempunyai nombor turutan.

Pseudokod bukanlah bahasa pengaturcaraan komputer. Setiap arahan diletakkan dalam baris baharu yang diberikan nombor siri.

Carta alir

Carta alir ialah alternatif kepada pseudokod yang menggunakan simbol grafik untuk mewakili arahan-arahan penyelesaian.

Carta alir terdiri daripada nod dan garis penghubung. Anak panah menunjukkan aliran aktiviti.

Jadual 1.1: Simbol-simbol piawai carta alir
Nama nod Bentuk Fungsi
Terminal mula Bujur Permulaan algoritma dalam carta alir.
Terminal tamat Bujur Penamat algoritma dalam carta alir.
Input/Output Jajaran selari Membaca input atau memaparkan output ke skrin.
Proses Segi empat tepat Arahan untuk memproses input dalam bentuk ungkapan, memproses fail dan sebagainya.
Penghubung Bulatan Titik sambungan untuk menyambungkan carta alir yang terpisah.
Syarat Rombus Menguji syarat yang terkandung dalam nod rombus. Terdapat satu anak panah masuk dan dua anak panah keluar, satu bagi syarat yang dipenuhi dan satu lagi bagi syarat yang gagal.
Aliran aktiviti Anak panah Menghubungkan nod-nod untuk menunjukkan aliran proses.

Satu algoritma, dua perwakilan

Pseudokod dan carta alir di bawah mewakili algoritma yang sama, iaitu atur cara yang menerima tahun kelahiran pengguna dan memaparkan umurnya.

Pseudokod
1. MULA
2. INPUT TAHUN_LAHIR
3. UMUR = TAHUN_SEMASA - TAHUN_LAHIR
4. OUTPUT UMUR
5. TAMAT
Carta alir menegak tanpa cabang. Terminal MULA, kemudian nod Input/Output berbentuk jajaran selari yang membaca INPUT tahun_lahir, kemudian nod proses berbentuk segi empat tepat yang mengira umur sama dengan tahun_semasa tolak tahun_lahir, kemudian nod Input/Output yang memaparkan OUTPUT umur, dan akhirnya terminal TAMAT. MULA INPUT tahun_lahir umur = tahun_semasa - tahun_lahir OUTPUT umur TAMAT

Carta alir bagi algoritma yang sama.

Jadual 1.2: Operator-operator aritmetik
Operator Makna
+ Penambahan
- Penolakan
* Pendaraban
/ Pembahagian
( ) Kurungan

Simbol asterisk (*) digunakan untuk pendaraban dan garis sendeng (/) untuk pembahagian kerana tiada simbol darab dan bahagi pada papan kekunci piawai.

Tiga Struktur Kawalan dalam Pengaturcaraan

Proses komputer yang lebih kompleks dicipta dengan menggabungkan penyataan menggunakan struktur kawalan urutan, pilihan dan pengulangan.

1. Struktur kawalan urutan

Struktur kawalan urutan melaksanakan arahan-arahan komputer satu per satu. Urutan arahan yang betul adalah penting kerana urutan yang berlainan boleh memberikan output yang berlainan.

Urutan linear algoritma dipersembahkan sebagai susunan penyataan-penyataan secara linear: input data, memproses data, kemudian output hasil.

Sintaks pseudokod — urutan
MULA
Penyataan 1
Penyataan 2
Penyataan 3
TAMAT

Nilai boleh dimasukkan ke dalam pemboleh ubah melalui dua cara. Input interaktif membaca nilai daripada pengguna, manakala umpukan menyimpan nilai yang sudah ditetapkan. Umpukan menggunakan simbol =, bermakna nilai di sebelah kanan disimpan di dalam pemboleh ubah di sebelah kiri.

Contoh umpukan
tahun_lahir = 1963
umur = 21

Nilai pemboleh ubah yang diumpuk adalah sama setiap kali atur cara dijalankan, berbeza daripada input interaktif.

2. Struktur kawalan pilihan

Struktur kawalan pilihan memberikan perisian komputer keupayaan untuk membuat keputusan berasaskan syarat yang telah ditentukan pengatur cara. Ciri umumnya ialah satu syarat yang menentukan satu daripada dua cabang dipilih. Sekiranya satu urutan sudah terpilih, urutan satu lagi akan diabaikan.

Syarat yang digunakan ialah ungkapan logik. Ungkapan logik menilai data untuk menghasilkan keputusan "Benar" atau "Palsu". Operator hubungan membandingkan nilai dalam pemboleh ubah dengan nilai yang diuji.

Jadual 1.3: Operator-operator hubungan
Operator Makna
< Lebih kecil daripada
<= Lebih kecil daripada atau sama
> Lebih besar daripada
>= Lebih besar daripada atau sama
!= Tidak sama dengan
== Sama dengan
Sintaks pseudokod — pilihan
JIKA SYARAT_BENAR MULA_JIKA
     BLOK PENYATAAN 1
TAMAT_JIKA
JIKA_TIDAK MULA_JIKA_TIDAK
     BLOK PENYATAAN 2
TAMAT_JIKA_TIDAK

Blok penyataan bagi keputusan "Benar" mesti berada di antara MULA_JIKA dan TAMAT_JIKA, manakala blok penyataan bagi keputusan "Palsu" mesti berada di antara MULA_JIKA_TIDAK dan TAMAT_JIKA_TIDAK.

Contoh pilihan: kelayakan memohon lesen memandu

Pseudokod
1. MULA
2. PAPAR "Masukkan umur pemohon:"
3. INPUT umur
4. JIKA umur > 16 MULA_JIKA
       OUTPUT "Anda boleh pohon lesen."
   TAMAT_JIKA
   JIKA_TIDAK MULA_JIKA_TIDAK
       OUTPUT "Anda belum cukup umur."
   TAMAT_JIKA_TIDAK
5. TAMAT
Terminal MULA, kemudian nod Input/Output yang memaparkan arahan Masukkan umur pemohon, kemudian nod Input/Output yang membaca INPUT umur, kemudian nod syarat berbentuk rombus yang menguji sama ada umur lebih besar daripada 16. Cabang berlabel Benar keluar ke kiri lalu turun ke nod Input/Output yang memaparkan Anda boleh pohon lesen. Cabang berlabel Palsu keluar ke kanan lalu turun ke nod Input/Output yang memaparkan Anda belum cukup umur. Kedua-dua cabang bertemu semula di bawah sebelum satu anak panah menuju ke terminal TAMAT. MULA PAPAR "Masukkan umur pemohon:" INPUT umur umur > 16 ? Benar Palsu OUTPUT "Anda boleh pohon lesen." OUTPUT "Anda belum cukup umur." TAMAT

Cabang "Benar" di kiri, cabang "Palsu" di kanan, dan kedua-duanya bertemu semula sebelum TAMAT.

3. Struktur kawalan pengulangan

Struktur kawalan pengulangan mengulang arahan-arahan komputer dalam blok. Ulangan boleh berlangsung sehingga menerima syarat berhenti ataupun mencapai bilangan yang sudah ditetapkan.

Syarat diletakkan selepas kata kunci SELAGI. Tidak seperti kawalan pilihan, kawalan pengulangan menggunakan keputusan syarat "Benar" untuk mengulang arahan-arahan dalam blok penyataan. Perbezaan ketara pada carta alir ialah hala tuju anak panah bagi keputusan "Benar" yang berpatah balik supaya pengulangan boleh dilaksanakan.

Sintaks pseudokod — pengulangan
SELAGI SYARAT MULA_SELAGI
     BLOK PENYATAAN
TAMAT_SELAGI

Contoh pengulangan: memaparkan teks sebanyak 5 kali

Pseudokod
1. MULA
2. pembilang = 0
3. SELAGI pembilang < 5 MULA_SELAGI
       OUTPUT "Saya gembira hadir ke sekolah hari ini."
       pembilang = pembilang + 1
   TAMAT_SELAGI
4. TAMAT
Terminal MULA, kemudian nod proses yang mengumpuk pembilang dengan nilai 0, kemudian garis menegak masuk ke nod syarat berbentuk rombus yang menguji sama ada pembilang lebih kecil daripada 5. Cabang berlabel Benar keluar ke kanan kepada nod Input/Output yang memaparkan teks Saya gembira hadir ke sekolah hari ini, kemudian naik ke nod proses yang menambah pembilang dengan satu, dan dari nod itu satu anak panah berpatah balik ke kiri, bertemu semula dengan garis masuk di atas nod syarat. Cabang berlabel Palsu keluar ke bawah menuju terminal TAMAT. MULA pembilang = 0 pembilang < 5 ? Benar Palsu OUTPUT "Saya gembira hadir ke sekolah hari ini." pembilang = pembilang + 1 TAMAT

Anak panah "Benar" berpatah balik ke laluan masuk nod syarat, dan itulah yang menjadikannya pengulangan.

Menguji dan Membaiki Ralat dalam Algoritma

Algoritma diuji secara manual sebelum ditulis sebagai kod, kerana pembetulan di peringkat kod mengambil masa yang lebih lama dan lebih mahal.

Ciri-ciri algoritma yang telah diuji

Mudah difahami, maka mudah ditulis sebagai atur cara komputer. Lengkap, iaitu memenuhi semua keperluan penyelesaian masalah. Efisien, iaitu berfungsi dengan pantas dan tidak memakan banyak ruang memori. Memenuhi kriteria reka bentuk perisian yang ingin dibangunkan.

Tiga jenis ralat dan hubungannya dengan ralat algoritma
Jenis ralat Penerangan
Ralat sintaks Tidak wujud dalam algoritma. Berlaku kerana menggunakan bahasa pengaturcaraan dengan cuai, dan biasanya ditemui secara automatik oleh perisian kompiler. Ralat algoritma tidak menyebabkan ralat sintaks.
Ralat logik Berlaku kerana perisian yang dihasilkan tidak menjalankan fungsi-fungsi yang sepatutnya, tidak lengkap, ataupun fungsi menghasilkan output yang tidak tepat.
Ralat masa larian Ralat yang timbul apabila atur cara dijalankan, termasuk atur cara yang tidak dapat dimulakan, menjadi sangat perlahan ataupun tidak responsif. Antara puncanya ialah urutan yang tidak betul, pemboleh ubah yang tidak mengandungi nilai, pembahagian dengan sifar, dan syarat pengulangan yang salah sehingga ulangan tidak boleh berhenti.

Empat langkah pengujian algoritma

Pengujian algoritma ialah pemeriksaan secara manual dan teliti. Ia juga dikenali sebagai desk-checking kerana teknik ini menggunakan kertas dan pensel.

Kenal pasti "Output Dijangka" bagi setiap input uji, secara hitungan manual.
Tentukan "Output Diperoleh" dengan menjejak algoritma baris demi baris menggunakan jadual.
Bandingkan "Output Diperoleh" dengan "Output Dijangka".
Analisis dan baiki ralat dalam algoritma, kemudian uji semula.

Bilangan lajur jadual pengujian ialah bilangan pemboleh ubah tambah 2: satu lajur untuk nombor baris, satu lajur bagi setiap pemboleh ubah, dan satu lajur terakhir I/O untuk input pengguna dan output yang diperoleh. Bilangan barisnya pula sama dengan bilangan baris tahap algoritma.

Contoh pengujian: algoritma yang mengandungi ralat

Algoritma sebelum dibaiki
1. MULA
2. INPUT nama
3. PAPAR "Hello "
4. TAMAT
Perbandingan Output Dijangka dengan Output Diperoleh
Input uji Output Dijangka Output Diperoleh
Adam Hello Adam Hello
Zhi-Yi Hello Zhi-Yi Hello
Darshini Hello Darshini Hello

Output Diperoleh tidak sama dengan Output Dijangka bagi ketiga-tiga input uji. Kesimpulannya, algoritma mengandungi ralat, iaitu kegagalan input dipamerkan dalam output. Baris 3 perlu memaparkan nilai pemboleh ubah nama bersama teks "Hello ".

Algoritma selepas dibaiki
1. MULA
2. INPUT nama
3. PAPAR "Hello " + nama
4. TAMAT

Selepas pembaikan, ketiga-tiga input uji menghasilkan Output Diperoleh yang sama dengan Output Dijangka, iaitu Hello Adam, Hello Zhi-Yi dan Hello Darshini.

Mengesan Nilai Pemboleh Ubah dan Output yang Betul

Jadual pemboleh ubah digunakan untuk mengesan nilai pada setiap tahap algoritma, dan output algoritma disahkan dengan membandingkannya dengan output dijangka.

Algoritma mengumpuk dan mengubah nilai sesuatu pemboleh ubah, jadi nilai pemboleh ubah adalah tidak tetap. Setiap baris algoritma mungkin membuat perubahan pada pemboleh ubah tertentu.

Menjejak satu pemboleh ubah

Pseudokod
1. MULA
2. INPUT z = 100
3. z = z/2
4. z = z * 4
5. z = z * 0.25 + z
6. PAPAR z
7. TAMAT
Jadual pengesanan nilai pemboleh ubah z
No z I/O
1 – –
2 100 100
3 50 –
4 200 –
5 250 –
6 250 250
7 – –

Pada baris 2, z diumpuk dengan 100. Baris 3 membahagikannya menjadi 50, baris 4 mendarabkannya dengan 4 menjadi 200, dan baris 5 menambah 25% daripada 200, iaitu 50, kepada nilai asalnya sehingga menjadi 250. Baris 6 memaparkan 250 tanpa mengubahnya, dan pada baris 7 semua nilai dibersihkan kerana algoritma sudah tamat.

Menentukan output yang betul

Membandingkan output algoritma dengan output dijangka merupakan satu-satunya cara untuk menentukan kesahihan output algoritma. Jika output algoritma betul, ia sepatutnya bersamaan dengan output dijangka.

Pseudokod
1. MULA
2. INPUT x
3. INPUT y
4. jumlah = x + y
5. PAPAR jumlah
6. TAMAT
Jadual pengujian bagi input x = 12 dan y = 88
No x y jumlah I/O
1 – – – –
2 12 – – –
3 12 88 – –
4 12 88 12 + 88 = 100 –
5 12 88 100 jumlah = 100
6 – – – –

Bagi input x = 12 dan y = 88, output dijangka ialah 100. Output algoritma juga 100, maka algoritma telah mencapai ketepatan nilai dalam ujian ini. Untuk kepastian, ulang ujian menggunakan nilai input yang berbeza dan tentukan output dijangka bagi setiap satu.

Menterjemah Algoritma ke dalam Bahasa Pengaturcaraan

Setiap baris algoritma yang direka bentuk dapat ditukarkan kepada kod komputer.

Algoritma berbentuk universal, jadi simbol dan perkataan yang digunakan tidak perlu bersandarkan kepada mana-mana bahasa pengaturcaraan. Antara bahasa pengaturcaraan yang sering digunakan ialah Visual Basic (VB), Java dan C#.

Terjemahan setiap baris algoritma kepada kod komputer (Java)
Algoritma Kod komputer (Java)
MULA public static void main(String[] args){
PAPAR "Masukkan nama pengguna:" System.out.print("Masukkan nama pengguna: ");
INPUT nama String nama = new java.util.Scanner(System.in).nextLine();
PAPAR "Hello " + nama System.out.println("Hello " + nama);
TAMAT }

Perhatikan bahawa satu baris algoritma tidak semestinya menjadi satu baris kod yang ringkas. Walaupun begitu, setiap baris algoritma mesti ada padanannya dalam kod supaya tiada arahan tertinggal.

Cuba Jawab Dulu

Cuba jawab sendiri dahulu, kemudian tekan butang untuk menyemak.

Nyatakan tiga ciri wajib bagi sebuah algoritma.

Butiran jelas, boleh dilaksanakan dan mempunyai batasan, iaitu mempunyai permulaan serta pengakhiran dan selesai dalam waktu yang terbatas.

Satu algoritma mengumpuk z = 100, kemudian z = z/2, kemudian z = z * 4. Apakah nilai z selepas baris ketiga itu?

200. Nilai 100 dibahagi dengan 2 menjadi 50, kemudian 50 didarab dengan 4 menjadi 200.

Mengapakah ralat sintaks bukan berpunca daripada ralat algoritma?

Kerana ralat sintaks berlaku akibat kecuaian pengatur cara ketika menulis kod dalam bahasa pengaturcaraan, dan ia biasanya ditemui oleh perisian kompiler. Algoritma pula tidak terikat kepada sintaks mana-mana bahasa pengaturcaraan, jadi ralat algoritma tidak menyebabkan ralat sintaks. Ralat algoritma menyebabkan ralat logik dan ralat masa larian.

Kesalahan Biasa

  • Melukis carta alir dengan anak panah yang tidak bersentuhan dengan nod yang diwakilinya. Carta alir sedemikian dikira sebagai tidak lengkap.
  • Menganggap pseudokod boleh dilaksanakan terus oleh komputer. Pseudokod ditulis dalam bahasa pertuturan harian dan bukan bahasa pengaturcaraan.
  • Menulis syarat pengulangan yang tidak pernah menjadi "Palsu", misalnya terlupa mengemas kini nilai pembilang di dalam blok penyataan, sehingga ulangan tidak boleh berhenti.
  • Menggunakan nama pemboleh ubah yang belum diumpuk atau tidak pernah dibaca sebagai input, sehingga nilainya kekal null dan output menjadi salah.
  • Memaparkan teks sahaja tanpa menggabungkan nilai pemboleh ubah, misalnya menulis PAPAR "Hello " dan bukan PAPAR "Hello " + nama.
  • Menguji algoritma hanya selepas kod ditulis. Pembetulan di peringkat kod mengambil masa yang lebih lama dan lebih mahal daripada pembetulan di peringkat algoritma.
  • Menukar simbol nod carta alir: menggunakan segi empat tepat (Proses) untuk menguji syarat sedangkan syarat mesti menggunakan rombus, atau menggunakan segi empat tepat untuk membaca input sedangkan Input/Output mesti menggunakan jajaran selari. Ingat juga bahawa bujur ialah terminal MULA/TAMAT, manakala bulatan ialah nod Penghubung untuk menyambung carta alir yang terpisah.

Salah Faham Konsep

Salah Faham

Algoritma dan atur cara ialah perkara yang sama.

Fakta Betul

Algoritma ialah idea penyelesaian dalam bentuk abstrak. Atur cara ialah algoritma itu yang sudah ditulis dalam bahasa pengaturcaraan dan boleh dilaksanakan oleh komputer.

Salah Faham

Pseudokod dan carta alir menghasilkan dua algoritma yang berbeza.

Fakta Betul

Kedua-duanya ialah dua format perwakilan bagi algoritma yang sama. Satu menggunakan bahasa pertuturan bernombor, satu lagi menggunakan simbol grafik.

Salah Faham

Ralat sintaks berpunca daripada ralat algoritma.

Fakta Betul

Ralat algoritma tidak menyebabkan ralat sintaks. Ralat sintaks berpunca daripada kecuaian pengatur cara semasa menulis kod, manakala ralat algoritma membawa kepada ralat logik dan ralat masa larian.

Salah Faham

Nod syarat dalam carta alir pengulangan berfungsi sama seperti dalam carta alir pilihan.

Fakta Betul

Dalam pilihan, dua cabang bertemu semula sebelum TAMAT. Dalam pengulangan, cabang "Benar" berpatah balik ke laluan masuk nod syarat supaya blok penyataan boleh diulang.

Salah Faham

Tanda = dan == membawa maksud yang sama.

Fakta Betul

= ialah simbol umpukan, iaitu menyimpan nilai di sebelah kanan ke dalam pemboleh ubah di sebelah kiri. == ialah operator hubungan yang membandingkan dua nilai dan menghasilkan keputusan "Benar" atau "Palsu".

Ringkasan

  • Algoritma ialah satu set arahan untuk menyelesaikan masalah; ciri wajibnya ialah butiran jelas, boleh dilaksanakan dan mempunyai batasan.
  • Analisis IPO mengenal pasti data input, proses yang mengubah data kepada maklumat, dan output yang perlu dipaparkan.
  • Algoritma diwakili dalam dua format, iaitu pseudokod yang bernombor dan ditulis dalam bahasa pertuturan, dan carta alir yang menggunakan nod simbol piawai serta garis penghubung beranak panah.
  • Terdapat tiga struktur kawalan: urutan melaksanakan arahan satu per satu; pilihan memilih satu daripada dua cabang berdasarkan ungkapan logik; pengulangan mengulang blok penyataan selagi syarat "Benar".
  • Umpukan menyimpan nilai di sebelah kanan simbol = ke dalam pemboleh ubah di sebelah kiri, dan nilainya sama setiap kali atur cara dijalankan.
  • Algoritma diuji secara manual (desk-checking) melalui empat langkah: tentukan Output Dijangka, tentukan Output Diperoleh, bandingkan kedua-duanya, kemudian analisis dan baiki ralat.
  • Ralat algoritma membawa kepada ralat logik dan ralat masa larian, tetapi bukan ralat sintaks yang berpunca daripada kecuaian pengatur cara.
  • Jadual pemboleh ubah mengesan nilai pada setiap tahap algoritma, dan output algoritma disahkan dengan membandingkannya dengan output dijangka.
  • Setiap baris algoritma akhirnya diterjemah kepada kod dalam bahasa pengaturcaraan seperti Java.

Aktiviti Ringkas

A. Kuiz Objektif

1 Apakah perbezaan utama antara pseudokod dengan carta alir sebagai perwakilan algoritma?

2 Dalam carta alir struktur kawalan pengulangan, ke manakah aliran bagi keputusan syarat "Benar"?

B. Isi Tempat Kosong

3 Perwakilan algoritma yang menggunakan simbol grafik piawai serta garis penghubung beranak panah disebut .

4 Nod dalam carta alir diwakili oleh simbol rombus dan mempunyai satu anak panah masuk serta dua anak panah keluar.

C. Padankan Nod Carta Alir dengan Fungsinya

Seret nama nod ke fungsi yang betul. Jika menggunakan telefon, tekan pilihan jawapan dahulu, kemudian tekan kotak padanan.

Nama Nod
Terminal
Input/Output
Proses
Syarat
Fungsi
1 Menandakan permulaan dan penamat algoritma dalam carta alir.
2 Membaca input atau memaparkan output ke skrin.
3 Memproses input dalam bentuk ungkapan, termasuk umpukan nilai.
4 Menguji syarat, dengan satu anak panah masuk dan dua anak panah keluar.
 

Kata Kunci

Algoritma Atur Cara Analisis IPO Pseudokod Carta Alir Nod Pemboleh Ubah Umpukan Struktur Kawalan Urutan Struktur Kawalan Pilihan Struktur Kawalan Pengulangan Ungkapan Logik Operator Hubungan Desk-checking Output Dijangka Ralat Logik