Pemrosesan data bertype bentukan :
2. Pemrosesan data bertype bentukan :
MHSNILAI : type
mhs adalah sesuai dengan NIM mahasiswa ITB, dan tak satupun mahasiswa ITB bernomor pokok 9999999. Maka jika kita mempunyai sekumpulan informasi
MHSNILAI yang dapat diakses secara sekuensial (tersimpan dalam tabel, atau dari sebuah sequential file) , dan misalnya data yang tersimpan adalah :
<8689001,”IF221”, 'A'>, <8689002,”IF221”, 'A'>, <8689007,”IF221”, 'B'>, <8690001,”IF223”, 'E'>, <8690001,”IF222”, 'C'>, <9999999,”XXXXX”, 'A'>,
Setiap elemen bertype MHSNILAI First_Elmt akan mengakibatkan Current_Elmt = <8689001,'IF221', 'A'> Next_Elmt akan mengakibatkan harga Current_Elmt yang baru
= <8689007,”IF221”, 'B'> jika Current_Elmt = <8689002,”IF221”, 'A'> EOP akan bernilai true untuk Current_Elmt = <9999999,”XXXXX”, 'A'> Perhatikanlah bahwa elemen-elemen berkarakteristik seperti ini harus disimpan atau dibaca satu per satu dari piranti masukan, sebab dari sebuah Current_Elmt, nilai Next_Elmt nya tidak ada rumusnya.
Untuk semua teks algoritma yang merupakan skema pemrosesan sekuensial pada bab ini, dipakai prosedur-prosedur dan fungsi terdefinisi seperti yang dituliskan pada kamus sebagai berikut yang lebih ringkas daripada spesifikasi yang disertai catatan pada awal bab ini:
Kamus:
procedure Inisialisasi { Persiapan yang harus dilakukan
sebelum pemrosesan} procedure First_Elmt { Memperoleh Current_Elmt yang pertama } procedure Proses_Current_Elmt
{ Proses thd Current-Elmt}
procedure Next_Elmt
{ Memperoleh Current_Elmt yang baru }
procedure Terminasi
{ Proses yang harus dilakukan setelah
pemrosesan semua elemen selesai}
EOP : boolean { true jika keadaan sudah mencapai akhir proses:
- pada model dengan mark:
Current element = mark (elemen markfiktif) - pada model tanpa maark :
Current element = elemen terakhir }
procedure Proses_Kasus_Kosong
{Proses jika dijumpai kasus kosong:
misalnya menuliskan pesan }
procedure Proses_First_Elmt
{Proses khusus untuk elemen I } }
Skema Pemrosesan Sekuensial Dengan Mark
SKEMA PEMROSESAN DENGAN MARK
{Tanpa penanganan kasus kosong secara khusus}
Skema :
Inisialisasi First_Elmt while not EOP do
Proses_Current_Elmt Next_Elmt { EOP }
Terminasi
SKEMA PEMROSESAN DENGAN MARK
{Dengan penanganan kasus kosong}
Skema :
First_Elmt if (EOP) then
Proses-Kasus-Kosong else
Inisialisasi repeat
Proses_Current-Elmt Next_Elmt
until ( EOP ) Terminasi
SKEMA PEMROSESAN DENGAN MARK
{Dengan kasus kosong, elemen pertama harus diproses khusus}
Skema :
First_Elmt if (EOP) then
Kasus-Kosong else
Inisialisasi Proses_First Iterate
Next_Elmt Stop : EOP
Proses_Current-Elmt Terminasi
Skema Pemrosesan Sekuensial Tanpa Mark
SKEMA PEMROSESAN TANPA MARK
{ Karena tanpa mark, tak ada kasus kosong}
Skema :
Inisialisasi First_Elmt iterate
Proses_Current-Elmt stop EOP
Next_Elmt Terminasi
SKEMA PEMROSESAN TANPA MARK
{ Karena tanpa mark, tak ada kasus kosong. Akses elemen pertama tidak berbeda dengan akses Next_Elmt }
Skema :
Inisialisasi repeat
Next_Elmt Proses_Current-Elmt
until ( EOP ) Terminasi
SKEMA PEMROSESAN TANPA MARK
{ Karena tanpa mark, tak ada kasus kosong. Pemrosesan khusus terhadap element pertama Pemrosesan elemen kedua dan seterusnya mungkin kosong}
Skema :
Inisialisasi First_Elmt Proses_First_Elmt
while (not EOP) do Next_Elmt Proses_Current-Elmt { EOP }
Terminasi
Studi Kasus Skema Pengulangan
JUMLAH 1 sd N:
Buatlah algoritma yang membaca sebuah bilangan bulat positif N, menuliskan:
1,2,3... N dan menjumlahkan 1+2+3+...+N serta menuliskan hasil penjumlahan Berikut ini adalah beberapa versi solusi dan penjelasannya