Prodi S1-Sistem Komputer, F Teknik Elektro KUG1A3 Algoritma& Pemrograman Burhanuddin D Prodi S1-Sistem Komputer, F Teknik Elektro Universitas Telkom Presentasi 6 Skema Pemrosesan Sekuensial
Definisi [1] Pemrosesan “sekumpulan” informasi sejenis satu-persatu Hasil dari suatu pengolahan akan digunakan untuk pengolahan berikutnya. Pemrosesan dilakukan mulai dari awal atau akhir dari kumpulan informasi Kumpulan informasi memiliki elemen yang terurut, artinya ada elemen sebelum ( predesessor ) dan elemen sesudah ( suksesor)..
Membuat Kue Lapis Kondisi Awal Hasil :
Perhatikan ... Proses untuk tiap tahap sama Hasil pada suatu tahap, tergantung dari hasil tahap sebelumnya Kalau hasil pertama 1 lapis, maka hasil kedua 2 lapis Kalau hasi ketiga 3 lapis, maka pada hasil proses keempat ada 4 lapis
Contoh Lain : Game Aturan baku : Mainkan sampai menang atau kalah Langkah berikut tergantung dari langkah sebelumnya.
Akses Kumpulan informasi itu dapat diakses dengan istilah berikut : Call_First_Elmt: prosedur yang akan menghasilkan Elemen Pertama Call_Next_Elmt : prosedur yang akan menghasilkan elemen berikutnya Current_Elmt : Elemen yang siap diproses EOP : Tanda akhir proses
Contoh [1] Suatu deret bilangan integer [1,2,3,...N] dengan N=100 Setiap elemen bertipe integer Call_First_Elmt menghasilkan Current_Elmt=1 Jika Current_Elmt=2, maka Call_Next_Elmt menghasilkan Current_Elmt=3. EOP akan berharga true jika Current_Elmt=100
Contoh [2] type Mhs : < NIM : string, Kode:string, Nilai : character> NIM yang diakui tidak boleh bernilai '999'. Mark ! Diketahui sekumpulan data bertipe Mhs : <'111','TE12','A'>,<'112','TE12','B'>, <'113','TE12','C'>,<'114','TE12','A'> Call_First_Elmt membuat Current_Elmt = <'111','TE12','A'> Jika Current_Elmt data diatas, maka Call_Next_Elmt menghasilkan <'112','TE12','B'>. EOP berharga true jika Current_Elmt=<'999','',''>
Procedure Terdefinisi Inisialisasi : persiapan sebelum proses dilakukan Call_First_Elmt : menghasilkan elemen pertama Proses_Current_Elmt : mengolah Current_Elmt Call_Next_Elmt : menghasilkan elemen berikutnya Terminasi : tindakan setelah semua proses selesai Proses_First_Elmt : mengolah elemen pertama Proses_Kasus_Kosong : dilakukan jika terjadi kasus kosong ( tidak ada data ) EOP : berharga true jika Current_Elmt bernilai mark ( unt model dg mark ) atau akhir elemn (tanpa mark)
Skema Pemrosesan {Tanpa penanganan kasus kosong secara khusus} Skema : Inisialisasi Call_First_Elmt While not EOP do Proses_Current_Elmt Call_Next_Elmt {EOP} Terminasi
Skema Pemrosesan {Dengan penanganan kasus kosong} Skema : Call_First_Elmt if EOP then Proses_Kasus_Kosong Else Inisialisasi repeat Proses_Current_Elmt Next_Elmt Until EOP Terminasi
Studi Kasus 1 : Jumlah 1 s/d N Buatlah algoritma yang membaca sebuah bilangan bulat positif N seagai pencacah, menuliskan 1,2,3, ...N dan menjumlahkan 1+2+3+...+N serta menuliskan hasil penjumlahannya. Inisialisasi : membaca pencacah N Proses1 : menuliskan 1,2,3, ...N Proses2: menjumlahkan 1+2+3+...+N Terminasi : menuliskan hasil penjumlahannya.
Studi Kasus 1 (lanjutan) Pendetailan Inisialisasi : membaca pencacah N Memberikan nilai awal variabel lain Menetapkan skema pengulangan Memakai while, for atau …? Menetapkan logika penghentian loop Menetapkan variabel pengulangan dan nilai EOP
Studi Kasus 1 (lanjutan) Pendetailan Proses1 : menuliskan 1,2,3, ...N Menetapkan variabel penulisan, misal I Menuliskan output Output (i) Proses2: menjumlahkan 1+2+3+...+N Menetapkan variabel penjumlahan, misal Sum Menjumlah : var_jml var_jml + var_tulis Sum Sum + i
Studi Kasus 1 (lanjutan ) Tambahan : Inisialisasi : inisialisasi variabel Sum 0 Call_First_Elmt : mulai dr 1 i 1 Call_Next_Elmt : nilai bertambah 1 i i + 1 EOP : penghitung (counter ) = N, (tergantung mekanisme pengulangan ) memanfaatkan varibel penulisan i = N
Penulisan Algortima 1 Program SumBil1 { Tanpa penanganan kasus kosong} Kamus N : integer { Cacah bilangan } i : integer { Bilangan yg dihitung } Sum : integer { Total bilangan } Algoritma Input(N) ; Sum 0 { inisialisasi } i 1 { Call_First_Element} while (i N ) do output (i) { Proses Penulisan } Sum Sum + i { Proses Penjumlahan } i i + 1 { Call_Next_Elmt} output ( Sum ) { Terminasi }
Penulisan Algoritma 2 Kamus Program SumBil2 { Dengan penanganan kasus kosong } Kamus N,i : integer { Cacah dan bilangan yg dihitung} Sum : integer { Total bilangan } Algoritma Input(N) ; Sum 0 { inisialisasi } i 1 { Call_First_Element } if N<1 then output (’ Kasus kosong’) { Penanganan Kasus ksng} else repeat output( i ) { Proses Penulisan bil} Sum Sum + i { Proses Penjumlahan } i i + 1 { Call_Next_Elmt} until ( i > N ) output ( Sum ) { Terminasi }
Hubungan Berulang Contoh : Skema pengulangan untuk persoalan deret yang rumusnya dapat dinyatakan dalam suatu hubungan. Contoh : Hitung S= 1 - 1/2 + 1/3 -1/4+ ... +1/999-1/1000 Carilah rumus suku ke-i ! Tanda berubah +, -, +, - dan seterusnya Tanda = (-1)^(i+1) Pembagi sama dengan indeks suku : 1 / I Didapat : Suku = Tanda / i Si = ( (-1)^(i+1) ) / i
Penulisan Algoritma Suku1 Program Suku1 { Tanpa penanganan kasus kosong } Kamus N,i : integer { Cacah dan indeks suku} Sum : real { Total suku } Algoritma N 1000 ; Sum 0 { inisialisasi } i 1 { Call_First_Element } repeat Sum Sum + ((-1)^(i+1))/i { Proses Jumlah } i i + 1 { Call_Next_Elmt} until ( i > N ) output ( Sum ) { Terminasi }
Hubungan Berulang (2) Cara Kedua Si = Tanda / i Hitung : Tanda berubah +, -, +, - dan seterusnya Tanda menjadi (-Tanda) unt suku berikutnya Tanda pertama adalah 1. Pembagi sama dengan indeks suku : 1 / I Didapat : Suku = Tanda / i Si = Tanda / i
Penulisan Algoritma Suku2 Program Suku2 { Tanpa penanganan kasus kosong } Kamus N,i : integer { Cacah dan indeks suku} Sum : real { Total suku } Tanda :integer[-1,1] Algoritma N 1000 ; Sum 0 { inisialisasi } Tanda 1; i 1 { Call_First_Element } while i N do Sum Sum + Tanda / i { Proses Penjumlahan } i i + 1 { Call_Next_Elmt} Tanda - Tanda { Call_Next_Elmt} output ( Sum ) { Terminasi }
Contoh (3) : Faktorial Definisi : 0! = 1 1! = 1 2! = 2 x 1! = 2 x 1 = 2 3! = 3 x 2! = 3 x 2 = 6 4! = 4 x 3! = 4 x 6 = 24 : n! = n x (n-1)! = n x (n-1)x .. x 2 x 1
Penulisan Algoritma Faktorial Program Faktorial Kamus N : integer 0 { Bilangan yg dicari nilai faktorialnya } i : integer 1 { Indeks suku} F : integer { Nilai faktorial } Algoritma input (N) ; F 1 { inisialisasi } i 1 { Call_First_Element } while i N do F F * i { Proses Perhitungan } i i + 1 { Call_Next_Elmt} output ( F ) { Terminasi }
Latihan 1. Buat algortima untuk menampilkan deret : 1 2/3 3/5 4/7...., dan tampilkan juga jumlah N suku pertama 2. Buat algortima untuk menampilkan deret : +1 *2 -3 div 4 + 5 *6 -7 div 8 ...., dan tampilkan juga jumlah N suku pertama