Ketika merancang suatu program, urut-urutan atau algoritma yang digunakan haruslah berupa instruksi yang jelas, tidak ambigu atau menimbulkan persepsi yang berbeda-beda. Memberikan perintah “cari”, “tampilkan”, atau “minta masukkan” merupakan perintah yang ambigu karena tidak memiliki skopa (ruang lingkup) yang jelas. Apa yang hendak dicari? Apa yang hendak ditampilkan? Masukkan seperti apa yang diinginkan? Apakah masukan berupa angka? Berupa teks? Berupa tanggal? Berupa jam? Instruksi “cari” dapat diperjelas (agar tidak menjadi ambigu) menjadi: “cari huruf A pada teks yang dimasukkan oleh pengguna” atau “tampilkan hasil pencarian yang diperoleh pada langkah sebelumnya”. Jika instruksi pada algoritma tidak jelas, maka akan muncul kesulitan saat diterapkan ke dalam bahasa pemrograman.
Berikut adalah 2 contoh algoritma dalam kasus sehari-hari yang ambigu.
Algoritma a: Mengganti harddisk pada PC:
- Buka casing PC
- Cabut kabel
- Pasang harddisk
- Nyalakan komputer
- Jika harddisk belum terbaca, ulang kembali
- Tutup casing
Algoritma b: Algoritma untuk memasak nasi:
- Masukkan beras
- Bilas beras beberapa kali
- Tambahkan air pada beras
- Nyalakan rice cooker
- Tunggu
Pada kedua algoritma tersebut banyak perintah yang ambigu (menimbulkan persepsi yang berbeda-beda antar orang yang membaca atau menjalankan algoritma tersebut). Sebagai contoh, pada algoritma a, langkah 2 diminta untuk mencabut kabel. Kabel yang mana yang dicabut? Pada langkah 5 tertulis, “jika harddisk belum terbaca, ulang kembali”. Ulang dari mana? Dari langkah 1? Atau dari langkah 2? Perbaikan langkah yang bisa dilakukan agar tidak ambigu misalnya, “Jika harddisk belum terbaca, ulang kembali ke langkah 3.”
Pada algoritma b, langkah 2 “Bilas beras beberapa kali” merupakan langkah yang ambigu. Kata “beberapa kali” dapat menimbulkan persepsi yang berbeda-beda, apakah 3 kali? Atau 10 kali? Perbaikan yang bisa dilakukan agar tidak ambigu, misalnya “Bilas beras 3 kali”