Minggu, 16 Maret 2014

Counter dan sentinel Controlled Repetition

Rangkuman ( 3.8 - 3.9 )

Untuk mengembangkan algoritma, kita akan mengerjakan suatu soal kasus dimana kita akan menemukan suatu rata - rata nilai dari sebuah kelas. Adapun contoh kasusnya akan dijelaskan spesifik seperti berikut:

terdapat 10 orang yang mengerjakan sebuah kuiz. Dan tipe nilai yang dipakai berupa bilangan integer mulai dari 0 - 100. Kemudian cari rata - rata nilai dari 10 orang tersebut.

Algoritma yang dipakai dalam kasus ini adalah bagaiana mendapatkan rata - rata tersebut dengan menjumlahkan kesemua nilai yang diinputkan dan membaginya sesuai jumlah orang yang mengerjakan kuiz. Kemudian menampilkan hasilnya. Setelah itu, mulailah membentuk pseudokode untuk membuat perintah yang lebih spesifik. Kita akan menggunakan Counter-Controlled Repetition  atau bisa juga disebut Definite Repetition ( karena jumlah perulangan program diketahui ) untuk menginputkan setiap nilai yang ada. Teknik ini menggunakan variabel yang disebut counter yang dipakai untuk menentukan berapa kali statement pada program akan dieksekusi. Berikut adalah pseudokode yang dipakai:



dan berikut adalah program beserta hasilnya ( klick gambar untuk memperbesar ) :


Sentinel - Controlled Repetition

Terdapat sebuah contoh sebagai berikut:

bagaimana mengembangkan program pencari rata - rata tersebut bisa memproses data dengan jumlah orang yang berbeda - beda.

Dari contoh soal tersebut kita bisa tahu bahwa program harus bisa menentukan rata - rata dari jumlah orang yang bisa berbeda - beda setiap saat. Yang menjadi pentanyaan adalah bagaiman / kapan program berhenti jika program tidak disetting pada variabel jumlah orangnya?.

nah, untuk menyelesaikan kasus ini dibutuhkan yang namanya sentinel value ( atau bisa juga disebut sinyal value, dummy value, flag value ) untuk mengindikasikan akhir entry data pada program. Sentinel - Controlled repetition juga disebut indefinite repetition karena berapa kali kita melakukan perulangan tidak ditentukan terlebih dahulu. 

untuk membuat program ini kita menggunakan teknik yang disebut dengan top - down, stepwise refinment ( perbaikan bertahap ). teknik ini sangat penting untuk mengemabngkan suatu program agar terstruktur dengan baik. Dimulai dengan menuliskan pseudokode dari atas:

 Pseudokode diatas hanya terdiri dari satu statement. Meskipun statement tersebut bisa menjelaskan fungsi program secara keseluruhan, namun tidak dijelaskan secara lebih spesifik, untuk itu perlu dilakukan perbaikan tahap satu, yang kemudian didaptkan hasil seperti dibawah

dari perbaikan tersebut bisa terlihat lebih detail tentang bagaimana program berjalan nantinya.
Perbaikan kedua dilakukan pada variabel tertentu. Kita membutuhkan nilai jumlah, berapa jumlah yang telah diproses, variabel yang dapat menyimpan input nilai, dan variabel yang digunakan untuk menyimpan rata - rata. 

 akan diubah menjadi :

hanya variabel total dan counter yang perlu dilakukan inisialisasi. Sedangkan variabel rata - rata ( average ) dan variabel nilai ( grade ) tidak perlu dilakukan inisialisasi.


 disini kita membutuhkan perulangan dimana kita sendiri tidak tahu kapan perulangan tersebut, maka kita menggunakan Sentinel - Controlled Repetition. Disuini user akan menginputkan satu persatu nilai yang ada hingga nilai yang terakhir, kemudian user akan memasukan niali sentinel untuk mengindikasikan bahwa inputan yang dialkukan user sudah selesai.


perbaikan berikutnya adalah pada:


 menjadi,
perlu diperhatikan bahwa disini kita tidak boleh melakukan pembagian dengan bilangn 0, karena akan mengakibatkan kerusakan fatal yang bisa disebut juga dengan bombing / crashing. Setelah membuat dan memperbaiki pseudokode yang ada, maka terbentuklah pseudokode yang sesuai,


untuk mempresentasikan hasil rata - rata dalam bentuk bilangan desimal atau real yang mengandung koma, bisa menggunakan tipe data float.



Tidak ada komentar:

Posting Komentar