CS1023 Pemrograman Komputer

Slides:



Advertisements
Presentasi serupa
FILE pada FORTRAN Pertemuan 9
Advertisements

STRUKTUR DASAR ALGORITMA
ALGORITMA & PEMROGRAMAN I-A
Pengenalan Bahasa Pemrograman Pascal
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
PENGURUTAN (SORTING).
ALGORITMA Lecture Pengulangan.
PENCARIAN (SEARCHING)
Dasar Pemrograman ARRAY/LARIK.
ARRAY 1 DIMENSI.
Algoritma dan Pemrograman
Dasar Komputer & Pemrog. 2A
Algoritma (Struktur, Tipe Data, Input/Output)
Notasi Algoritma.
Metode Perancangan Program
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
12-CRS-0106 REVISED 8 FEB 2013 KUG1E3/ Pemrograman Terstruktur 1 Abdurahman Baizal M.Kom,Yuliant Sibaroni M.T KK Algoritma dan Komputasi.
Pengenalan Type Data Type data dapat dikelompokkan menjadi 2
Prodi S1-Sistem Komputer, F Teknik Elektro
Materi 9 LOGIKA & ALGORITMA.
Dasar-dasar Pemrograman
Array (bagian 2).
KUG1A3 Algoritma& Pemrograman
STRUKTUR DASAR ALGORITMA
4. Linked List (List Linier)
KUG1A3 Algoritma& Pemrograman
KUG1C3 Dasar algoritma & pemrograman
CS1023 Pemrograman Komputer
Dasar Algoritma dan Pemrograman
CS1023 Pemrograman Komputer
Notasi Algoritmik.
Algoritma.
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
Prodi S1-Sistem Komputer, F Teknik Elektro
STRUKTUR DASAR ALGORITMA
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
FILE PRAKTIKAN DASPRO.
STRUKTUR DASAR ALGORITMA
PENGURUTAN (SORTING).
Algoritma & Pemrograman 1
Analisis leksikal (Scanner)
Array Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer
Array 1.
Stack (Tumpukan).
STRUKTUR DATA Array Statis.
Algoritma dan Pemrograman
Pengenalan Type Data Type data dapat dikelompokkan menjadi 2
Tipe Data, Operator dan Ekspresi
Array/Larik.
Dasar- dasar Algoritma
Pemrosesan Arsip.
Analisis leksikal ( SCANNER )
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
ALGORITMA DAN PEMROGRAMAN Tipe Data
Teknik Informatika Politeknik Negeri Batam
TIPE DATA.
Struktur Dasar Algoritma dan Runtunan
SEARCHING (PENCARIAN)
DASAR PEMROGRAMAN File.
Algoritma & Pemrograman 1
Algoritma dan Pemrograman (Pertemuan 04)
Oleh : UMMU ZAHRA ALGORITMA.
FILE.
Pencarian (searching)
KUG1E3/ Pemrograman Terstruktur 1
KUG1E3/ Pemrograman Terstruktur 1
Chapter 3.2 : Tipe, Nama dan Nilai
STRUKTUR DASAR ALGORITMA
Kode MK/ Pemrograman Terstruktur 2
CS1023 Pemrograman Komputer
Transcript presentasi:

CS1023 Pemrograman Komputer Lecture 23 Sequential File [1]

Agenda Definisi Primitif Akses Primitif Penulisan Pemrosesan Arsip Sekuensial Algoritma Konsolidasi

Definisi File Sequensial Sekumpulan rekaman yang dapat diakses secara berurutan mulai dari rekaman pertama sampai dengan rekaman terakhir Akses dilakukan rekaman demi rekaman secara searah 1 2 3 4 5 EOF Ani 111 Budi 112 Ida 113 Ali 114 Rudi 115 Rek1 Rek2 Rek3 Rek4 Rek5 Mark

Keterangan Rekaman terakhir adalah fiktif, sebagai penanda akhir dari arsip, yang sering disebut dengan EOF (end-of-file). Setiap rekaman berisi type dasar atau bentukan yang telah didefinisikan, dan bertipe sama. Arsip sekuensial merupakan hasil dari penulisan yang dilakukan rekaman (record) per rekaman.

Deklarasi File Elemen dalam rekaman disebut field. Cara mendefinisikan file : type rekaman : <…….> namaArsip : SEQFILE of (*) <nama_rek> : rekaman (1) <mark>

Cara Akses Setiap rekaman dapat diakses secara berurutan Akses terdiri dari pembacaan atau penulisan. Perekaman (recording) dapat dilakukan melalui primitif penulisan Pada satu saat, akses pada arsip sekuensial hanya dapat dilakukan satu modus operasi: diakses/dibaca atau ditulis.

Primitif Akses [1] ASSIGN : merefer ke nama file fisik Procedure ASSIGN (Input NamaArsip, NamaFisik) { Arsip sekuensial dengan nama NamaArsip merefer ke file fisik dengan nama NamaFisik I.S. : sembarang F.S.: Arsip dengan NamaArsip pada program siap dipakai } Contoh : F1 adalah variabel untuk file …………………….. Assign ( F1, ‘C:\Coba1.txt’) ……………………

Primitif Akses [2] RESET : membuka file untuk dibaca Procedure Reset (Input NamaArsip) { I.S. : sembarang F.S.: Arsip dengan NamaArsip pada program siap dibaca. } Contoh : F1 adalah variabel untuk file …………………….. Assign ( F1, ‘C:\Coba1.txt’) Reset (F1) ……………………

Primitif Akses [3] APPEND: membuka file untuk ditulis / ditambah Procedure Append (Input NamaArsip) { I.S. : sembarang F.S.: Arsip NamaArsip pada program siap ditambah. } Contoh : F1 adalah variabel untuk file …………………….. Assign ( F1, ‘C:\Coba1.txt’) Append (F1) ……………………

Primitif Akses [4] REWRITE: membuat file baru Procedure Rewrite (Input NamaArsip) { I.S. : sembarang F.S.: Dibuat arsip baru dengan NamaArsip, dan siap ditulis. } Contoh : F1 adalah variabel untuk file …………………….. Assign ( F1, ‘C:\Coba1.txt’) Rewrite (F1) ……………………

Primitif Akses [5] CLOSE: menutup & menyimpan perubahan file Procedure Close (Input NamaArsip) { I.S. : sembarang F.S.: Menyimpan file secara permanen ke media penyimpan } Contoh : F1 adalah variabel untuk file …………………….. Assign ( F1, ‘C:\Coba1.txt’) Close (F1) ……………………

Primitif Akses [6] WRITE: menulis data ke file Procedure Write (Input NamaArsip, Rekaman) { I.S. : sembarang F.S.: Menulis Rekaman ke file } Contoh : F1 adalah variabel untuk file Assign ( F1, ‘C:\Coba1.txt’) Rewrite(F1) Write(F1,Mhs1)

Primitif Akses [7] READ: membaca data dari file Procedure Read (Input NamaArsip, Rekaman) { I.S. : sembarang, file dalam keadaan terbuka F.S.: membaca data dan menyimpan ke variabel Rekaman. } Contoh : F1 adalah variabel untuk file Assign ( F1, ‘C:\Coba1.txt’) Reset(F1) Read(F1,Str1)

Primitif Akses [8] RENAME: mengganti nama Procedure Rename (Input NamaArsip, StringNama) { I.S. : file dalam keadaan tertutup / closed. F.S.: mengganti nama file fisik menjadi StringNama. } Contoh : F1 adalah variabel untuk file Assign ( F1, ‘C:\Coba1.txt’) ……………….. Close(F1) Rename (F1,’C:\Asli.txt’)

Primitif Akses [9] ERASE: menghapus file fisik dari media Procedure Erase (Input NamaFisik) { I.S. : file dalam keadaan tertutup / closed. F.S.: menghilangkan file dengan nama NamaFisik. } Contoh : F1 adalah variabel untuk file Assign ( F1, ‘C:\Coba1.txt’) ……………….. Close(F1) Erase (F1)

Pemrosesan Arsip Sekuensial Jika setiap rekaman harus diproses dengan cara sama, pemrosesan arsip sekuensial dapat dilakukan dengan memakai skema pemrosesan sekuensial dengan mark. Contoh1: sebuah arsip sekuensial type rekaman : < NIM : integer, nilai:integer [0..100] > ArsipMhs: SEQFILE of (*) RekMhs : rekaman (1) <9999999, 99>

Contoh Pemrosesan Analisa : pemrosesan sekuensial dari elemen arsip sekuensial Model dengan MARK, jika i adalah deret yang diproses, i berharga 1,2,3..N EOP adalah NIM=9999999 First_Elmt : Reset(ArsipMhs) Read(ArsipMhs, RekMhs ) Next_Elmt : READ(ArsipMhs, RekMhs) Proses : membaca arsip sambil menghitung nilai rata-rata mahasiswa

Contoh Pembacaan – lanj. Program Rata2 Kamus type rekaman : <NIM : integer, nilai : integer [0..100]> ArsipMhs :SEQFILE of (*) Rek : rekaman (1) <9999999,0> Sumnil, JumMhs : integer Algoritma Assign(ArsipMhs,’C:\Coba.txt’) Reset(ArsipMhs) Read(ArsipMhs, Rek) if Rek.NIM=9999999 then Output(‘Arsip kosong’) else { Lanjutkan ke hal berikut }

Contoh Pembacaan – lanj. {Else} SumNil  0; JumMhs  0 Repeat SumNil  SumNil + Rek.Nilai JumMhs  JumMhs + 1 Read(ArsipMhs,Rek) Until (Rek.NIM=9999999) Output (SumNil / JumMhs) Close(ArsipMhs)

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 Dengan separator

Tanpa Separator Antar kelompok dibedakan dengan adanya perbedaan kunci Klas1 Ani 111 Klas1 Budi 112 Klas1 Ida 113 Klas2 Rudi 114 Klas2 Ina 115 Klas3 Andi 116 Klas3 Ita 117 Klas3 Didi 118 Kelompok Klas1 Kelompok Klas2 Kelompok Klas3 Arah Pemrosesan

Program Konsolidasi1 { Tanpa kasus penangananan kosong} { Input : arsip sequensial terurut } { Proses : memproses per kelompok} { output : hasil proses } Kamus type rekaman : <Kelompok : type, lainnya : type> Arsip :SEQFILE of (*) Rek : rekaman (1) <mark,nilailain> EOP : boolean { true jika mark } procedure Inisialisasi_File { inisialisasi seluruh file } procedure Terminasi_File {Terminasi seluruh file } Katageri : type { sesuai tipe Kelompok } procedure proses_Elemen_I { Proses awal suatu kelompok } procedure Init_Kelompoki { Inisialisasi_Kelompok} procedure proses_kelompok { memproses suatu kelompok } procedure Terminasi_kelompok {Terminasi suatu kelompok}

Tanpa kasus kosong- lanj Algoritma Inisialisasi_File Read(Arsip, Rek) While not EOP do Init_Kelompok Kategori  Rek.Kelompok Repeat Proses_kelompok Until ( kategori  Rek.Kelompok ) Terminasi_kelompok Terminasi_File

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

Contoh -lanj Program Nilai { Tanpa kasus penangananan kosong} { Input : arsip sequensial berisi NIM dan Nilai } { Proses : menghitung nilai rata-rata} { output : NIm dan nilai tiap mahasiswa} Kamus type rekaman : <NIM : integer, Nilai : integer [0..100]> Arsip :SEQFILE of (*) RekMhs : rekaman (1) <9999999,0> KelNIM : integer { Kelompok NIM yang diproses } SumNil : integer { Total nilai tiap NIM } NKuliah : integer { cacah matakuliah }

Contoh -lanj Algoritma Assign(Arsip,’C:\Coba.txt’) Reset(Arsip) Read(Arsip, Rek) While not (Rek.NIM  9999999) do SumNil  0; NKuliah  0 KelNIM  Rek.NIM Repeat SumNil  Sumnil+Rek.Nilai NKuliah  NKuliah + 1 Until ( KelNIM  Rek.NIM ) Output(KelNIM,SumNil/NKuliah) Close(Arsip)

Dengan kasus kosong Dapat menangani kasus kosong Dilakukan dengan memberikan mekanisme untuk menyaring kasus kosong dan memberikan instruksi jika terjadi kasus kosong Model dengan mark : If (Kelompok = mark ) then Penanganan_kasus_kosong

Dengan Separator Ada data yang memisah antar kelompok Dibuat fungsi Separator(Kelompok), yang akan membuang data separator/pemisah. Misal : data kosong Klas1 Ani 111 Klas1 Budi 112 Klas2 Rudi 114 Klas3 Andi 116 Klas3 Ita 117 Klas3 Didi 118 Separator Separator

Algoritma konsolidasi -lanj Inisialisasi_File Read(Arsip, Rek) If EOP then Penanganan_kasus_kosong else Repeat While not EOP and Separator(Kelompok) do Read(Arsip,Rek) Init_Kelompok While not EOP and not Separator(kelompok) do Proses_Kelompok Terminasi_kelompok Until Rek.Kunci=mark Terminasi_File Close(Arsip)

Contoh Diberikan sebuah arsip teks yang dapat diakses sequential huruf per huruf. Hendak dihitung jumlah huruf pada kata yang terpanjang dalam teks tersebut. Diandaikan bahwa teks hanya mengandung huruf dan spasi. Kata adalah sekumpulan huruf yang dipisahkan oleh satu atau beberapa blank.

Proses Pembuatan Algoritma Diberikan sebuah arsip teks yang dapat diakses sequential huruf per huruf. Buat seqfile dg tipe elemen : karakter Hendak dihitung jumlah huruf pada kata yang terpanjang dalam teks tersebut. Buat variabel untuk jumlah huruf & panjang kata maksimum Kata adalah sekumpulan huruf yang dipisahkan oleh satu atau beberapa blank. Teks diakhiri titik. Separator : spasi Mark : Titik

Contoh -lanj Program JmlHuruf { Menghitung jumlah huruf pd kata terpanjang } Kamus type rekaman : <Karakter : character > Arsip :SEQFILE of (*) Rek : rekaman (1) <‘.’> constant spasi:character = ‘ ‘ JChar : integer { Jumlah karaker pd kata } KataMax : integer { Jumlah huruf pd kata terpanjang }

Algoritma Assign(Arsip,’C:\Coba.txt’) Reset(Arsip) Read(Arsip, Karakter) If ( Karakter = ‘.’ ) then Output( ‘Arsip kosong’) else Katamax  0 Repeat while (karakter ‘.’) and (Karakter=blank) do JChar  0; while (Karakter’.’) and (Karakterb;ank) do JChar  JChar + 1 if Katamax < JChar then Katamax  JChar Until ( Karakter = ‘.’) Output(Katamax) Close(Arsip)

latihan Pada file text, cari kata yang memiliki huruf A. Cari juga kata terpanjang yang memiliki huruf A. Cari juga kata yang memiliki huruf A terbanyak. Tampilkan maing-masing kata tersebut. Pada file arsip nilai mhs, cari nilai yang paling besar untuk tiap mahasiswa dan nilai terbesar untuk seluruh mahasiswa. Tampilkan NIM mhs tersebut. Jika ada 10 mahasiswa, tampilkan 3 nilai rata-rata terbaik.