• Tidak ada hasil yang ditemukan

Algoritma dan Pemrograman File Sekuensial. Oleh: Eddy Prasetyo N 05/05/2014 1

N/A
N/A
Protected

Academic year: 2021

Membagikan "Algoritma dan Pemrograman File Sekuensial. Oleh: Eddy Prasetyo N 05/05/2014 1"

Copied!
39
0
0

Teks penuh

(1)

Algoritma dan Pemrograman

File Sekuensial

Oleh:

Eddy Prasetyo N

(2)

Agenda

Definisi

Primitif Akses

Primitif Penulisan

Pemrosesan Arsip Sekuensial

(3)

Definisi [1]

Sekumpulan rekaman yang dapat diakses

secara berurutan mulai dari rekaman pertama

sampai dengan rekaman terakhir, rekaman per

rekaman secara searah

(4)

Definisi [2]

Rekaman terakhir adalah fiktif, sebagai penanda

akhir dari arsip.

Sering disebut dengan EOF (end-of-file)

Arsip sekuensial merupakan hasil dari penulisan

(5)

Definisi [3]

Setiap rekaman boleh berisi type dasar ataupun

terstruktur yang telah didefinisikan, setiap

rekaman berstruktur sama

Elemen dalam rekaman disebut field.

Cara Pendefinisian:

type rekaman

: <…….> sebuah type terdefinisi untuk setiap rekaman

namaArsip : SEQFILE of

(*) <nama_rek> : rekaman

(1) <mark>

(6)

Definisi [4]

Setiap rekaman dapat diakses dan dibaca secara

berurut  primitif akses

Perekaman (recording) dapat dilakukan melalui

primitif penulisan

Catatan: pada suatu arsip sekuensial hanya dapat

dilakukan satu modus operasi: diakses/dibaca atau

ditulis (pada saat bersamaan).

(7)

Primitif Akses [1]

ASSIGN

Procedure ASSIGN (Input NamaArsip, NamaFisik) {

Arsip sekuensial yang namanya dikenal di dalam program sebagai NamaArsip, secara fisik diberi nama NamaFisik

I.S. : sembarang

F.S.: Arsip dengan NamaArsip pada program siap dipakai }

OPEN

Procedure OPEN (Input NamaArsip, <rekaman>) {

Arsip sekuensial siap dibaca. Rekaman pertama yang informasinya ada pada <rekaman> dapat diakses I.S. : sembarang

F.S.: informasi pada rekaman pertama siap diakses, dengan mengacu kepada <rekaman> }

(8)

Primitif Akses [2]

READ

Procedure READ (Input NamaArsip, NamaFisik) {

Rekaman sesudah rekaman saat ini(current) yang dapat diakses

I.S. : <rekaman> bukan merupakan mark, sebut sebagai current_rekaman

F.S.: Arsip dimajukan satu rekaman, <rekaman > berisi informasi yang disimpan pada rekaman Sesudah current_rekaman. Mungkin <rekaman> yang baru adalah mark

}

CLOSE

Procedure CLOSE (Input NamaArsip) {

Arsip sekuensial ditutup, tidak dapat diakses maupun ditulisi lagi I.S. : sembarang

(9)

Primitif Penulisan

REWRITE

Procedure REWRITE (Input/Output NamaArsip) {

Arsip sekuensial siap untuk direkam I.S. : sembarang

F.S.: Arsip sekuensial yang bernama NamaArsip siap untuk direkam pada posisi pertamanya }

WRITE

Procedure WRITE (Input NamaArsip, <rekaman>) {

Data pada <rekaman> direkam pada posisi aktual arsip. Kemudian posisi dimajukan satu. I.S. : arsip sekuensial berada pada posisi yang telah siap menerima rekaman,

<rekaman> bukan merupakan mark

F.S.: <rekaman> direkam pada posisi yang telah disiapkan, arsip dmajukan satu posisi

Jika <rekaman> yang diisikan ke arsip adalah elemen fiktif yang dimaksudkan sebagai mark, maka arsip tidak dapat ditulisi lagi

(10)

Contoh [1]

Sebuah arsip sekuensial berisi data mahasiswa, yang setiap

rekamannya memuat data NIM, Nama dan Nilai akhir mahasiswa.

type rekaman : < NIM:integer, Nama : string, Nilai :integer [0..100]>

ArsipMhs : SEQFILE of

(*) RekMhs : rekaman

(1) <999999, '',0>

Domain setiap rekaman : sesuai dengan domain masing-masing

rekaman

Konstanta : sebuah rekaman, misalnya :

(11)

Contoh [1] - lanjutan

Cara akses rekaman pertama : OPEN (ArsipMhs, RekMhs)

Cara akses

: { NIM ≠ 9999999 } READ (ArsipMhs, RekMhs )

Cara menyiapkan untuk direkam : REWRITE (ArsipMhs)

Cara mengisi : WRITE (ArsipMhs, RekMhs ) {Harga Current }

WRITE(ArsipMhs, <7473002,'Davy Rindt',96>) { konstanta }

WRITE(ArsipMhs, Rek1) { Rek1 bertype rekaman }

(12)

Contoh [2]

Sebuah arsip sekuensial berisi teks, maka setiap rekamannya

adalah satu karakter.

Misalnya MARK adalah ' #'

type rekaman : character

Dokumen :SEQFILE of

(*) CC : rekaman

(1) <'#'>

Domain setiap rekaman : character

Konstanta : sebuah rekaman, misalnya :

(13)

Contoh [2] - lanjutan

Cara akses rekaman pertama : OPEN (Dokumen, CC)

Cara akses

: { CC ≠ '#' } READ (Dokumen, CC)

Cara menyiapkan untuk direkam : REWRITE (Dokumen)

Cara mengisi : WRITE (Dokumen, CC) {Harga Current }

WRITE (Dokumen, <'A'>) { konstanta }

WRITE (Dokumen, Kar) {dari nama lain, Kar bertype rekaman}

(14)

Pemrosesan Arsip Sekuensial

Jika setiap rekaman harus diproses dengan cara sama,

pemrosesan arsip sekuensial dapat dilakukan dengan

memakai skema pemrosesan sekuensial dengan mark.

Contoh1:

Dibaca sebuah arsip sekuensial bernama

type rekaman : < NIM : integer, ,nilai:integer [0..100] >

ArsipMhs: SEQFILE of

(*) RekMhs : rekaman

(1) <9999999, 99>

(15)

Contoh Pemrosesan

Analisa : pemrosesan sekuensial dari elemen arsip

sekuensial

Model tanpa MARK, jika i adalah deret yang diproses, i

berharga 1,2,3..N

EOP adalah NIM=9999999

First_Elmt : OPEN(ArsipMhs, RekMhs )

Next_Elmt : READ(ArsipMhs, RekMhs)

Proses : membaca arsip sambil menghitung nilai rata-rata

(16)
(17)

Pemrosesan File di Java

Membuka File (izin Akses File)

File nama_var_file;

nama_var_file = new File(path&nama_file);

Memproses File (Baca/Tulis File)

Baca File

InputStream nama_var_stream = new

FileInputStream(nama_var_file);

Tulis File

OutputStream nama_var_stream = new

FileOutputStream(nama_var_file);

(18)

Contoh di Java:

...

File Mahasiswa;

Mahasiswa= new File(“C:\Latihan.txt”);

//Baca file

InputStream fs = new FileInputStream(Mahasiswa);

//Tulis File

OutputStream fs = new FileOutputStream(Mahasiswa);

//Tutup File

fs.close();

...

(19)

Membuat File dalam JAVA

Format:

try { new File(nama_file).createNewFile();

}catch(Exception e){

}

Contoh:

try { new File(“Latihan.txt”).createNewFile();

}catch(Exception e){

(20)

Contoh Program Buat File

import java.io;

class File1{

public static void main(String[] args){

try { new File(“Latihan.txt”).createNewFile();

}catch(Exception e){

}

}

(21)

Mendeteksi Keberadaan File

import.java.io;

Class File2{

public static void main(String[] args){

File file_cek;

file_cek = new File(“Latihan.txt”);

if(file_cek.exists()){

System.out.println(“file Latihan.txt sudah ada”);

}else{

System.out.println(“file Latihan.txt belum ada”);

}

(22)

Algoritma Konsolidasi

Didefinisikan sebuah sequential file yang terurut,

arsip tersebut mengandung kelompok-kelompok

data dengan kunci sama yang harus diproses

sebagai satu kesatuan.

Ada dua model arsip semacam ini :

Tanpa separator

(23)

Tanpa Separator

Artinya kita mengenali adanya kelompok yang lain karena

(24)
(25)
(26)

Contoh

Diketahui sebuah arsip nilai mahasiswa,

Satu mahasiswa dapat mempunyai beberapa buah nilai

(karena dalam satu semester mengambil beberapa

matakuliah dan setiap mahasiswa tidak sama

matakuliahnya).

Buat algoritma untuk menghitung nilai rata-rata setiap

mahasiswa, dan membuat daftar nilai sederhana, yaitu

menuliskan NIM dan nilai rata-rata setiap mahasiswa

(27)
(28)
(29)
(30)
(31)

Contoh

Diketahui sebuah arsip nilai mahasiswa,

Satu mahasiswa dapat mempunyai beberapa buah nilai (karena

dalam satu semester mengambil beberapa matakuliah dan setiap

mahasiswa tidak sama matakuliahnya).

Buat algoritma untuk menghitung nilai rata-rata setiap mahasiswa,

dan membuat daftar nilai sederhana, yaitu menuliskan NIM dan

nilai rata-rata setiap mahasiswa.

Selain itu diminta Nilai rata-rata seluruh

mahasiswa, jumlah nilai rata-rata setiap mahasiswa dibagi jumlah

mahasiswa.

(32)
(33)
(34)

Dengan Separator

Artinya ada rekaman tertentu yang memisahkan satu kelompok

dan kelompok lainnya. Separator ini boleh satu rekaman atau lebih

dari satu rekaman. Pada contoh berikut, separator adalah "kartu

putih"

(35)
(36)
(37)

Contoh

Diberikan sebuah arsip teks yang dapat diakses sequential

huruf per huruf.

Hendak dihitung kata yang terpanjang dalam teks tersebut.

Diandaikan bahwa teks hanya mengandung huruf dan

"blank". Kata adalah sekumpulan huruf yang dipisahkan oleh

satu atau beberapa blank.

(38)
(39)

Referensi

Dokumen terkait

Berdasarkan rumusan masalah di atas, penelitian ini memiliki tujuan sebagai berikut. 1) Untuk mengetahui apakah keadilan pajak berpengaruh terhadap persepsi

Makanan ini disusun berdasarkan Pola Menu Seimbang dan Angka Kecukupan Gizi (AKG) yang dianjurkan bagi orang dewasa sehat. Makanan ini bisa diberikan kepada

Metode inverse kinematik merupakan metode memungkinkan animator bisa membuat model gerakan lebih cepat karena tanpa harus memerlukan banyak gambar yang berbeda-beda dari

menyebutkan peran rumah tangga konsumsi dalam arus kegiatan ekonomi. Peserta didik mamapu membedakan antara pasar faktor produksi dan pasar output dalam bagan arus

Hasil penelitian menghasilkan (1) nilai t hitung &gt; t tabel yaitu 7,548 &gt; 1,993 dengan db 72 pada taraf signifikansi 5%, hasil perhitungan tersebut menunjukkan

Berdasarkan tabel 3.1 di atas dapat dijelaskan bahwa rata-rata skor postes kemampuan komunikasi matematis siswa yang menggunakan model problem-based learning dengan siswa

Metode yang digunakan untuk mengatasi persoalan ini adalah (1) membangun lembaga pengelola Desa Mandiri Energi, (2) melakukan rekayasa social yang berupapenyuluhan, pelatihan,

Meskipun berdasarkan penelitian,virus terdapat dalam saliva, air mata, cairan serebrospinal dan urin, tetapi cairan tersebut tidak terbukti berisiko menularkan