Lompat ke konten Lompat ke sidebar Lompat ke footer

Proses untuk Arsip pada Algoritma

Proses untuk Arsip pada Algoritma


Beberapa proses yang terjadi pada arsip (file) diantaranya adalah konsolidasi, penggabungan (merging) dua file, updating data dan spliting.

Algoritma Konsolidasi

Algoritma konsolidasi adalah pengelompokan data dengan kunci yang sama yang harus diproses sebagai satu kesatuan.

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

  1. Algoritma Konsolidasi adalah pengelompokan data dengan kunci yang sama yang harus diproses sebagai satu kesatuan.
  2. Merging adalah penggabungan dua buah file yang tipe recordnya sama.
  3. Updating adalah proses editing harga suatu record (field key tidak diedit) pada file master dengan data dari file transaksi.
  4. Spliting adalah pemecahan sebuah file menjadi dua atau lebih file baru. Algoritmanya tergantung dari kriteria pemecahannya.



Posting Komentar untuk "Proses untuk Arsip pada Algoritma"