Proses untuk Arsip pada Algoritma
Proses untuk Arsip pada Algoritma
Algoritma Konsolidasi
Algoritma Konsolidasi
{Kondisi awal : ArsipMhs sudah berisi NIM dan nilai}
{Kondisi akhir : record sudah dikelompokkan berdasarkan NIM yang sama, dengan nilainya adalah nilai rata-rata}
Deklarasi
Type DataMhs : Record
< NIM : integer
Nilai : real >
ArsipMhs1, ArsipMhs2 : seqFile of DataMhs
Mhs : DataMhs
CurrentNim, JumNil, nMK : integer
Rata : real
Function Mark(Input Mhs : DataMhs) Ã Boolean
{tanda akhir = <999,’xxxxx’,99.9>}
Deskripsi
Open(ArsipMhs1,1)
Open(ArsipMhs2,2)
Fread(ArsipMhs1, Mhs)
If (Mark(Mhs) = true) then
Output(‘Arsip kosong…’)
Else
While (Mark(Mhs) = false) do
JumNil ß 0
nMK ß 1
currentNIM ß Mhs.NIM {record1 dari ArsipMhs1}
Repeat
JumNil ß JumNil + Mhs.Nilai
Fread(ArsipMhs1,Mhs)
nMK ß nMK + 1
Until (currentNIM <> Mhs.NIM)
Rata ß JumNil/nMK
Fwrite(ArsipMhs2, <currentNIM, Rata>)
Output(currentNIM,Rata)
Endwhile
EndIf
Close(ArsipMhs1)
Close(ArsipMhs2)
Pemrosesan dua Arsip Beruntun
Merging
Merging adalah penggabungan dua buah file yang tipe recordnya sama. Untuk melakukan merging ada dua cara. Cara yang paling sederhana adalah data file kedua ditambahkan setelah record terakhir file pertama, sehingga membentuk file baru. Cara ini tidak dapat dipakai jika field kunci kedua file sudah terurut dan dikehendaki file gabungan yang field kuncinya juga terurut.
Algoritma MergingSambung
{Menggabungkan dua buah
arsip beruntun yaitu ArsipMhs1 dan
ArsipMhs2, menjadi sebuah arsip baru yaitu ArsipMhs3,
dengan cara semua record arsip kedua disambungkan setelah
record terakhir arsip pertama}
{Kondisi awal : arsip pertama dan kedua sudah berisi data}
{Kondisi akhir : arsip'ketiga berisi hasil sambungan kedua arsip}
Deklarasi
Type DataMhs : Record
<NIM : Integer,
Nama: String>
ArsipMhsl, ArsipMhs2, ArsipMhs3 : SeqFile of DataMhs
Mhs : DataMhs
Function Mark(Input Mhs : DataMhs) Ã Boolean
Deskripsi
Open(ArsipMhs1, 1)
Open(ArsipMhs2, 1)
Open(ArsipMhs3, 2)
FRead(ArsipMhs1, Mhs)
While (Mark(Mhs) = false) Do
FWrite(ArsipMhs3, Mhs)
FRead(ArsipMhs1, Mhs)
EndWhile
FRead(ArsipMhs2, Mhs)
While (Mark(Mhs) = false) Do
FWrite(ArsipMhs3, Mhs)
FRead(ArsipMhs2, Mhs)
EndWhile
FWrite(ArsipMhs3, <99999, 'xxxxx', 99.9>)
Close(ArsipMhsl)
Close(ArsipMhs2)
Close(ArsipMhs3)
2. Updating
Updating adalah proses editing harga suatu record (field key tidak diedit) pada file master dengan data dari file transaksi.
Berikut ini adalah algoitma umum untuk meremajakan record pada file master (bersifat beruntun, nilai field keynya terurut naik tetapi bisa tidak unik).
Artinya bahwa suatu record pada file master dapat mengalami satu atau beberapa kali peremajaan.
Updating {judul algoritma}
{Mengubah salah satu isi field dari file master
berdasarkan data dari file transaksi lalu simpan hasil editing ke file new master}
{Kondisi awal : suatu variabel sudah bemilai isi dari field key pada posisi record yg
akan diubah, field key sudah terurut naik}
{kondisiakhir : file new master sudah berisi data dari hasil editing file master
berdasarkan file transaksi1}
Deklarasi
Type DataSaldo : Record
< NoRek : Integer,
Saldo : Longint >
Master, Transaksi, NewMaster : SeqFile of DataSaldo
Nasabah1,Nasabah2 : DataSaldo
NewSaldo : Longint
FunctionMark(InputNasabah : DataSaldo) Ã Boolean
Deskripsi
Open(Master, 1)
Open(Transaksi, 1)
Open(NewMaster, 2)
FRead(Master, Nasabah1)
FRead(Transaksi, Nasabah2)
While (Mark(Nasabahl) = false) Do
While (Nasabah2.NoRek < Nasabahl.NoRek)
and (Mark(Nasabah2) = false) Do
FRead(Transaksi, Nasabah2» {skip record dari file trans}
EndWhile
If (Nasabah2.NoRek = Nasabahl.NoRek) Then
NewSaldo ß Nasabah 1.Saldo {yg akan diedit}
While (Nasabah2.NoRek = Nasabahl.NoRek)
and (Mark(Nasabah2) = false) Do
NewSaldoß NewSaldo+ Nasabah2.Saldo
FRead(Transaksi, Nasabah2)
EndWhile
FWrite(NewMaster, <Nasabahl.NoRek, NewSaldo>)
Else
FWrite(NewMaster, Nasabahl) .
Endif
FRead(Master, Nasabah1)
EndWhile
FWrite(NewMaster, <999, 0>)
Close(Master)
Close(Transaksi)
Close(NewMaster)
3. Spliting
Spliting adalah pemecahan sebuah file menjadi dua atau lebih file baru. Algoritmanya tergantung dari kriteria pemecahannya.
Kesimpulan
- Algoritma Konsolidasi adalah pengelompokan data dengan kunci yang sama yang harus diproses sebagai satu kesatuan.
- Merging adalah penggabungan dua buah file yang tipe recordnya sama.
- Updating adalah proses editing harga suatu record (field key tidak diedit) pada file master dengan data dari file transaksi.
- Spliting adalah pemecahan sebuah file menjadi dua atau lebih file baru. Algoritmanya tergantung dari kriteria pemecahannya.
Posting Komentar untuk "Proses untuk Arsip pada Algoritma"