Hari : Rabu Pertemuan : 3 Tanggal Praktikum : Oktober 2001 Shift : 4

dokumen-dokumen yang mirip
Hari : Rabu Pertemuan : 4 Tanggal Praktikum : 28 November 2001 Shift : 4

Hari : Rabu Pertemuan : 2 Tanggal Praktikum : Oktober 2001 Shift : 4

PERTEMUAN VII FILE TEKS & FILE BINER

BAB XII OPERASI FILE

Struct Lanjutan: Studi Kasus

Bab 7 File 109 BAB 7 FILE TUJUAN PRAKTIKUM TEORI PENUNJANG. FILE *fopen( const char*nama_file, const char*mode);

STACK DAN QUEUE. Pengertian Stack Dan Queue. stack & queue. Last saved by KENKEINA Created by KENKEINA

TUGAS PENDAHULUAN MODUL I PERKENALAN MIKU, COMPILER BAHASA C, DAN STANDARD INPUT-OUTPUT

Modul V Pemrograman Bahasa C ( bagian II )

Struktur Program Bahasa C

Baca Tulis File. Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah:

Pemrograman Terstruktur. Pemrosesan File Teks dan File Biner

BAB VI BAHASA C Pendahuluan

Pertemuan 11: OPERASI FILE dalam C

BAB 12 MANIPULATION FILE

Tipe Data, Variabel, Input/Output

FILE INPUT/OUTPUT. Overview

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

OPERASI FILE DASAR PEMROGRAMAN

PERTEMUAN XI OPERASI FILE

PENGENALAN BAHASA C DAN C++

BAB 4 KONDISI / PEMILIHAN

3. Struktur Perulangan dalam C++

Komentar, Identifier, Konstanta dan Variabel

PERTEMUAN XI OPERASI FILE

Tipe Data dan Operator

IT234 - Algoritma dan Struktur Data. Ramos Somya

Perulangan, Percabangan, dan Studi Kasus

Konsep Pemrograman. Bab 7. Fungsi1. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

Apakah Anda sering kesulitan untuk

Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.

BAB VI. STATEMENT CONTROL

Latihan & Kisi-kisi UTS DASAR PEMROGRAMAN

BAB 2. FUNGSI INPUT OUTPUT

BAHASA PEMROGRAMAN C LANGUAGE

Praktikum 12 FILE. Gambar Struktur data dari file

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

FUNCTION (FUNGSI) LOGO. Pendidikan Teknik Elektronika FT UNY. Muh. Izzuddin Mahali, M.Cs.

Software Engineering atau yang diartikan Rekayasa Perangkat Lunak adalah:

12/29/2011. Algoritme dan Pemrograman. Bit. Bitwise operator

Teknik Pemrograman Terstruktur 1

Kondisional/Pencabangan/Pemilihan. Konsep Pencabangan Sintaks Konsep if (kasus tunggal) Konsep if-else (2-3 kasus) Konsep switch (lebih dari 3 kasus)

BAB II TEORI DASAR. Gambar 1 Kurva untuk interpolasi linier. Sehingga diperoleh persamaan dari interpolasi linier sebagai berikut :

ALGORITMA DAN STRUKTUR DATA

IT234 - Algoritma dan Struktur Data. Ramos Somya

Sequential Search (Linear Search)

INPUT DAN OUTPUT BAHASA C

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Object Oriented Programming (OOP)

Struktur Kontrol Pemrograman Java : PERCABANGAN

Algoritma Pemrograman. Fery Updi,M.Kom

2 ATURAN PENULISAN TEKS ALGORITMA

Algoritma dan Struktur Data. Ramos Somya

UJIAN TENGAH SEMESTER GANJIL TAHUN STMIK AMIKOM YOGYAKARTA

IT234 - Algoritma dan Struktur Data. Ramos Somya

Algoritma dan Pemrograman

PRAKTIKUM 07 DECISION SWITCH DWI SETIYA NINGSIH // PJJ D3 TI

PERTEMUAN III DECISION. Prepared by Vosco

PERTEMUAN 3 KONSEP TIPE DATA

Algoritma dan Pemrograman. Pertemuan Ke-5 Input dan Output

UNIVERSITAS WIDYATAMA JURUSAN TEKNIK INFORMATIKA - FAKULTAS TEKNIK Jl. Cikutra No.204 A BAndung UJIAN TENGAH SEMESTER TA.

BAB 1 KONSEP DASAR BAHASA C

Pengenalan C++ Oleh : Dewi Sartika

Chapter 1 KONSEP DASAR C

Kuliah III - Dasar Pemrograman

TUGAS PROGRAM DIAGONAL, VETIKAL, DAN HORIZONTAL OPENGL (MENGGUNAKAN JAVA) NAMA : SYIFA MUTIARA SARI KELAS : 3KA23 NPM :

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XII FILE

SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR)

Konsep Dasar Pemrograman Dan Pengenalan C++

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

FILE & STREAM Bab FILE

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

PRAKTIKUM 1. Untuk membuat program, prosedur yang harus dilewati adalah: 1. Menentukan logika jalannya program, sering disebut algoritma.

STRUKTUR DATA Pertemuan 1 s.d 8

Algoritma dan Pemrograman

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

BAB III PERANCANGAN SISTEM

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

LAPORAN PRAKTIKUM RESMI QUEUE

BAHASA PEMROGRAMAN C

MODUL IV Analisis Kasus/Pemilihan

BAB VII. FUNCTION. A. Pengantar Function. #include <iostream.h> #include <conio.h> { clrscr(); // detail function

Modul IV Pemrograman Bahasa C ( bagian I )

Bahasa C-M6 By Jamilah, Skom 1

Algoritma dan Struktur Data

BAB V INPUT DAN OUTPUT

Fungsi : Dasar Fungsi

Pointer, File Header & Makro

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Random Access

Percabangan. Agus Priyanto, M.Kom

LOGIKA ALGORITMA. Pertemuan 6. By: Augury

PRAKTIKUM 1 MENGENAL BAHASA PASCAL. File, Edit, Search, Run, Compile, Debug, Tools, Option, Windows dan Help.

Praktikum Dasar Pemrograman 2014 MODUL 3: Array dan String

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

Data Array dalam C Suyanto BAB 4 ARRAY (LARIK)

Pada bahasa pemrograman C++, dapat dibuat program dengan beberapa sub-program sesuai dengan keinginan dengan menggunakan fungsi.

Transkripsi:

Hari : Rabu Pertemuan : 3 Tanggal Praktikum : Oktober 2001 Shift : 4 Tujuan Instruksional Khusus Mahasiswa memahami pengoperasian file Relative serta beberapa teknik Hashing dan Colision Pokok Bahasan Pengenalan file Relative serta Teknik Hashing dan Collision Materi - Membuat file baru - Membuka file - Menambah data - Menyisipkan data - Melakukan update Dengan Cara Relative Menerapkan Beberapa Teknik Hashing dan Collision di program Teknik hashing adalah salah satu metode akses file secara indirect Hashing menggunakan fungsi transformasi terhadap nilai key yang mengubah nilai key jadi alamat relatif record. Dalam pertemuan ini, yang dipakai adalah Radix Convertion dengan basis 10. Metode Radix ini menerjemahkan kode ke angka, lalu diubah hadi offset file dengan dikalikan panjang data. Sintaks-Sintaks yang digunakan : FILE *file1 Menentukan handle yang akan digunakan dalam program. Di sini hanya diperlukan satu handle, karena operasi-operasi yang ada tidak memerlukan handle tambahan. fread (void *ptr, size_t size, size_t n, FILE *stream)

Perintah ini digunakan untuk membaca data dari FILE *stream. n menunjukkan banyaknya data yg dibaca per kali baca. Size menunjukkan sepanjang apa data yang akan kita baca. Sedangkan *ptr menunjuk pada bagian data yang dibaca. fopen (const char *filename, const char *mode) Sebelum data dalam suatu file bisa diakses, maka filenya harus dibuka terlebih dahulu dengan sintaks fopen. *filename menunjukkan nama file yang akan dibuka, sedangkan mode menunjukkan status file yang dibuka tsb. Mode yang dipakai dalam program ini adalah r (read), r+ (read write). fclose(file *stream) Untuk menutup FILE *stream yang sebelumnya telah dibuka. fwrite(const void ptr, size_t size, size_t n, FILE*stream) Untuk menuliskan data ke dalam FILE *stream. Penggunaannya mirip dengan fread. Size menunjukkan panjang data yang hendak kita tulis, lalu n menunjukkan banyaknya data yang ingin kita tulis per kali tulis. atoi (const char *s) Utuk mengubah dari string yang ditunjuk oleh s ke integer. fseek (FILE *stream, long offset, int whence) Fungsi ini berguna untuk memindahkan posisi kursor ke alamat tertentu. FILE *stream adalah file tempat data yang hendak dicari. Long offset adalah alamat (offset) tempat data tsb berada. Sedangkan int whence adalah tempat awal pencarian, biasanya digunakaan SEEK_SET yang berarti dari awal file. ftell(file *stream) Untuk mencari/mendapatkan alamat offset dari suatu data dalam file *stream. fprintf(file *stream, const char *format [, argument,...]) Untuk menulis data ke FILE *stream, disertai dengan jenis data, dan data apa saja yang hendak ditulis.

Hari : Rabu Pertemuan : 3 Tanggal Praktikum : Oktober 2001 Shift : 4 Pembahasan Soal ALGORITMA Tetapkan library (include) yang akan dipakai dan variabel lainnya dengan struct. Variabel dalam struct adalah kode dan nama dengan panjang masing-masing 4 dan 21. Tidak lupa berikan pula nama struct. Di sini hanya dipakai satu buah file handle, yaitu file1 yang nantinya akan menampung hasil input. Setelah itu jalankan main program. Main program hanya berisi sintaks yang memanggil modul lainnya, yaitu modul proses. Modul proses akan memanggil modul display yang fungsinya hanyalah membuat tampilan menu utama dan membersihkan layar. User diharuskan memilih sesuai menu yang ada. Tampilan layar tidak akan berubah selama user tidak memilih antara angka satu sampai empat. Jika user memilih lima maka program akan exit dan kembali ke prompt. Algoritma cek_file Pertama-tama buka file hashing.dat dengan mode r (read). Jika isi file belum ada (NULL) maka bentuk file baru dengan nama hashing.dat. Terakhir close kembali file1. Algoritma Tulis Jalankan modul cek_file. (Lihat algoritma cek_file) Jika user memilih satu, maka modul tulis dipanggil.

Variabel yang akan dipakai adalah alamat, untuk menyimpan alamat offset dari suatu data. File1 akan dibuka dengan mode r+ (read write). User diminta memasukkan kode (maksimal 3 karakter). User akan terus diminta menginput kode selama input tidak memenuhi syarat. Kode disimpan dalam variabel sementara (temp). Lalu hitung alamat offset dari kode tadi dengan cara mengkonversinya terlebih dahulu. Setelah dapat, cari alamat tersebut di dalam file. Pencarian dimulai dari awal file. Posisi kursor pindah ke alamat tersebut. Kemudian baca data di alamat tersebut. Bandingkan kode yang diinput user dengan kode di dalam file. Jika sama akan ditampilkan pesan kesalahan dan user akan kembali ke menu utama. Selain kondisi di atas (jika tidak sama), user diminta untuk memasukkan nama. Seperti biasa, user akan terus diminta menginput nama sampai syarat dipenuhi (maksimal 20 karakter). Nama juga disimpan dalam variabel temp. Tulis hasil input ke dalam file1 (hashing.dat). Terakhir, tutup file1. Algoritma del Panggil modul cek_file, jalankan algoritma cek_file. Variabel yang dipakai adalah alamat. Fungsinya sama seperti pada modul lainnya, yaitu untuk menyimpan alamat dari suatu data. Buka file1 dengam mode r + (read write). Minta input dari user untuk kode. Simpan di variabel temp. Validasi apakah input memenuhi syarat (maksimal 3 karakter), jika tidak minta input terus. Cari alamat dengan mengubah kode yang diinput menjadi integer dan dikalikan dengan ukuran data.

Pindahkan posisi kursor ke alamat tersebut. Baca data pada alamat tersebut, dan bandingkan antara kode input dengan kode di file. Jika sama, maka pindahkan posisi kursor ke alamat yang diperoleh dari hasil perhitungan. Lalu cetak space kosong sebanyak ukuran data (dalam soal ini adalah 25). Jika tidak sama cetak pesan kesalahan dan user kembali ke menu utama. Terakhir tutup file1. Algoritma update Deklarasikan variabel alamat untuk menyimpan alamat offset data. Buka file1 dengan mode r+ (read write). Minta masukkan kode dan simpan di variabel temp. Masukkan/input akan diminta terus selama tidak memenuhi syarat (maksimal karakter 3). Hitung alamat dengan mengubah kode jadi integer dan dikalikan dengan ukuran data. Pindahkan posisi kursor ke alamat, lalu baca data yang ada di sana. Bandingkan kode input dengan kode di data. Jika sama pindahkan kembali posisi kursor ke alamat hasil perhitungan terdahulu dan minta input nama. Input nama juga divalidasi. Selama tidak memenuhi syarat, user diminta input terus. Nama akan disimpan di variabel temp. Setelah itu semua isi variabel temp ditulis ke file1. Jika tidak sama, tampilkan pesan kesalahan dan user kembali ke menu utama. Tutup file1. Algoritma search Deklarasikan variabel alamat untuk menyimpan alamat offset data. Buka file1 dengan mode r (read). Minta input kode dari user. Tiap input divalidasi. User akan terus diminta input sampai input memenuhi syarat (maksimal karakter 3).

Hitung alamat berdasarkan input kode. Caranya ubah kode ke integer dan kalikan dengan ukuran data. Pindahkan posisi kursor ke alamat tersebut. Baca data yang terletak di alamat tadi. Pembacaan dimulai dari awal file. Bandingkan kode di file dengan kode input. Jika sama, cetak kode dan nama yang ada di file. Jika tidak tampilkan pesan kesalahan dan user kembali ke menu utama. Tutup file1. CODING #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> FILE *file1; struct char kode[4]; char nama[21]; data, temp; void cek_file() file1=fopen("hashing.dat","rb"); if(file1==null) file1=fopen("hashing.dat","w"); void tulis() int alamat; file1=fopen("hashing.dat","r+"); gotoxy(1,9); clreol(); printf("masukkan kode [max 3] : "); gets(temp.kode); while(strlen(temp.kode)>3); alamat=atoi(temp.kode)*(sizeof(data)); fread(&data, sizeof(data), 1, file1); if(strcmp(temp.kode, data.kode)!=0)

strcpy(data.kode, temp.kode); gotoxy(1,10); clreol(); printf("masukkan nama [max 20] : "); gets(temp.nama); while(strlen(temp.nama)>20); fwrite(&temp, sizeof(temp), 1, file1); fprintf(file1, "\n\r"); else gotoxy(20,20); printf("kode sudah pernah ada"); getch(); void del() int alamat; file1=fopen("hashing.dat", "r+"); gotoxy(1,9); clreol(); printf("masukkan kode [max 3] : "); gets(temp.kode); while(strlen(temp.kode)>3); alamat=atoi(temp.kode)*(sizeof(data)); fread(&data, sizeof(data), 1, file1); if(strcmp(temp.kode, data.kode)==0) fprintf(file1, " "); else gotoxy(20,20); printf("tidak ada"); getch(); void update() int alamat; file1=fopen("hashing.dat","r+"); gotoxy(1,9); clreol(); printf("masukkan kode [max 3] : "); gets(temp.kode);

while(strlen(temp.kode)>3); alamat=atoi(temp.kode)*(sizeof(data)); fread(&data, sizeof(data), 1, file1); if(strcmp(temp.kode, data.kode)==0) gotoxy(1,10); clreol(); printf("masukkan nama [max 20] : "); gets(data.nama); while(strlen(temp.nama)>20); fwrite(&temp, sizeof(temp), 1, file1); else gotoxy(20,20); printf("tidak ada"); getch(); void search() int alamat; file1=fopen("hashing.dat", "r"); gotoxy(1,9);clreol(); printf("masukkan kode [Max 3] : "); gets(temp.kode); while(strlen(temp.kode)>3); alamat=atoi(temp.kode)*(sizeof(data)); fread(&data, sizeof(data), 1, file1); if(strcmp(temp.kode, data.kode)==0) gotoxy(1,11); clreol(); printf("kode : %s", data.kode); gotoxy(1,12); clreol(); printf("nama : %s", data.nama); else gotoxy(1,11); printf("tidak ada"); getch();

void display() clrscr(); printf("metode Hashing"); printf("\n1. Append data"); printf("\n2. Delete data"); printf("\n3. Update data"); printf("\n4. Search"); printf("\n5. Exit"); printf("\npilihan Anda : "); void proses() char a; display(); a=getch(); switch (a) case '1' : cek_file(); tulis(); break; case '2' : cek_file(); del(); break; case '3' : cek_file(); update(); break; case '4' : cek_file(); search(); break; case '5' : break; default : display(); while(a!='5'); void main() proses();