1. Jurnal Politeknik TELKOM Bandung
Volume 1 Nomor 1 Tahun 2009
1
Perancangan Basis Data sederhana Berbasis File Text
SNMP Simamora, ST., MT.1
1. Program studi: Teknik Komputer
Politeknik TELKOM Bandung
Jl. Telekomunikasi, Ters.Buah Batu, Bandung 40257
Email : snmpsimamora@telkom.net
ABSTRAK
Basis Data merupakan hal terpenting jika telah berurusan dengan hal
administrasi. Basis Data membantu user untuk mengelompokkan
sejumlah string-string yang bernilai penting bagi user ke dalam suatu
tabel dan disimpankan dalam bentuk file, dengan harapan dapat diakses
jika dibutuhkan pada waktu yang akan datang.
Untuk penanganan basis data yang hanya terdiri dari sejumlah kecil
tabel tidak perlu membutuhkan aplikasi basis data khusus, dapat
digunakan basis data berbasis file teks saja.
Bahasa Pemrograman C dapat diuji untuk membangun sebuah basis
data berbasis file teks dari setiap input-value yang diberikan oleh user.
Untuk itu digunakan konsep struktur data yang terkenal yang disebut
senarai-berantai.
Aplikasi Basis Data yang dibangun akan diuji pada basis data nilai
sebuah mata kuliah; dimana dapat digunakan untuk menyimpan nilai
sekaligus melaporkannya, sehingga disamping membantu untuk
pendokumentasian juga mempercepat pembaruan pelaporan data nilai.
Aplikasi Basis Data dibangun di atas compiler Borland C++ 5.02
dengan menggunakan Bahasa Pemrograman C. Sedangkan check-
drivernya berjalan di MS-DOS 6.0. Keyword yang dipakai adalah
Nomor Urut bukan NIM, dengan maksud untuk memudah pengingatan
user dengan digit lebih sedikit dibandingkan dengan NIM dengan digit
yang lebih banyak, dan saat percobaan aplikasi dijalankan menyita
ruang memori.
2. Jurnal Politeknik TELKOM Bandung
Volume 1 Nomor 1 Tahun 2009
2
Menu Utama mengetengahkan menu tambah record, tampilkan record,
tampilkan record secara keseluruhan, hapus sebuah record.
Kata kunci: basis data, teks, tabel, senarai-berantai.
1. PENDAHULUAN
1.1. Latar Belakang
Seringkali untuk program-program aplikasi sistem informasi, data
perlu disimpan secara permanen untuk keperluan lebih lanjut. Data
dapat disimpan di external-memory seperti misalnya di disk.
External memory ini dapat menyimpan data dengan volume yang
besar dari internal-memory yang mempunyai sifat volatile (tidak
permanen) dan berkapasitas relatif lebih kecil dari kapasitas disk.
Data yang disimpan di external-memory diatur dalam bentuk file.
Basis Data sangat diperlukan untuk menyimpankan sejumlah data
yang diisikan oleh user ke sebuah antar-muka sistem informasi.
Untuk kumpulan data yang kecil, tentu terlalu boros jika
menggunakan aplikasi back-end systems berbasis grafis maupun
skala makro. Oleh sebab itu alternatif yang dapat dijadikan solusi
adalah membangun sebuah basis data berbasis file teks.
1.2. Batasan Masalah
Persoalan-persoalan dibatasi pada hal-hal seperti berikut ini:
a. Akses user hanya untuk menambah, merubah, menampilkan,
dan menghapus.
b. Sintaks yang dibangun menggunakan file pustaka pada Bahasa
Pemrograman C.
c. Hanya dibangun untuk aplikasi berbasis 16-bit.
d. Hasil akhir aplikasi hanya dalam bentuk sebuah simulasi
program.
1.3. Tujuan Penelitian
a. Merancang basis data berbasis file teks.
b. Membangun modul-modul utama dalam basis data berbasis
file teks.
3. Jurnal Politeknik TELKOM Bandung
Volume 1 Nomor 1 Tahun 2009
3
1.4. Manfaat Penelitian
a. Alternatif solusi dalam penyimpanan data
b. Menghindari biaya lebih untuk penyediaan aplikasi basis data.
2. TEORI DASAR, MODEL DESAIN, DAN
IDENTIFIKASI
Teks merupakan serangkaian data tipe karakter (char) yang dirangkai
menjadi sejumlah string (kata/kalimat) yang mengandung makna atau
arti bagi user.
Dalam Bahasa Pemrograman C, penanganan string menggunakan
fungsi-fungsi pustaka yang disebut penyangga; beberapa yang
disediakan seperti:
fputc() : meletakkan sebuah nilai karakter ke penyangga untuk
direkamkan ke file.
fgetc() : membaca sebuah nilai karakter dari file untuk diletakkan di
penyangga.
putw() : meletakkan sebuah nilai integer dari file untuk direkamkan ke
file.
getw() : membaca sebuah nilai integer dari file untuk diletakkan di
penyangga
fputs() : meletakkan sebuah nilai string ke penyangga untuk
direkamkan ke file.
fgets() : membaca sebuah nilai string dari file untuk diletakkan di
penyangga.
fprintf(): meletakkan sebuah data terformat di penyangga untuk
direkamkan ke file.
fscanf() : membaca sebuah blok data dari file untuk diletakkan di
penyangga.
fwrite() : meletakkan sebuah blok data ke penyangga untuk
direkamkan ke file.
fread(): membaca sebuah data struktur dari file untuk diletakkan di
penyangga.
4. Jurnal Politeknik TELKOM Bandung
Volume 1 Nomor 1 Tahun 2009
4
2.1. Definisi Basis Data
Tabel dalam sebuah basis data didefinisikan sebagai sejumlah record
yang dikelompokkan berdasarkan parameter yang sejenis atau homogen.
Basis Data merupakan kumpulan dari data yang saling berhubungan satu
dengan yang lainnya, tersimpan di perangkat keras komputer dan
digunakan perangkat lunak untuk memanipulasinya; penerapan database
ke dalam sistem informasi dan pemanfaatannya disebut dengan Data
Base Management Systems (DBMS).
2.2. Definisi Senarai Berantai
Senarai-Berantai adalah teknik dalam pemanfaatan pointer dimana satu
elemen dengan elemen lainnya saling berkaitan satu sama lain dengan
memanfaatkan pointer, menjalin menjadi suatu simpul kait-mengkait
dalam untaian blok data berantai.
Setiap simpul dalam suatu senarai-berantai terbagi menjadi dua bagian,
yakni: bagian pertama, disebut medan informasi, berisi informasi yang
akan disimpan dan diolah; sedangkan bagian kedua, disebut medan
penyambung (link field), berisi alamat simpul berikutnya.
2.3. Identifikasi Persoalan
2.3.1. Proses Menambah Data
Identifikasi record terakhir, lalu tambahkan record baru setelah record
terakhir teridentifikasi.
2.3.2. Proses Merubah Data
Identifikasi record-nya yang akan diganti, lalu gantikan record lama
dengan record baru.
2.3.3. Proses Menampilkan Data
Identifikasi record mulai awal sampai dengan record terakhir, lalu
tampilkan keseluruhan record.
5. Jurnal Politeknik TELKOM Bandung
Volume 1 Nomor 1 Tahun 2009
5
2.3.4. Proses Menghapus Data
Identifikasi record yang akan dihapus, lalu isikan record tersebut
dengan biner 0.
3. HASIL DAN DISKUSI
Skema Modul Rancangan:
1. Menambah Data Mahasiswa
2. Merubah Data Mahasiswa
3. Menampilkan Data Induk Semua Mahasiswa
4. Menghapus Data Induk Mahasiswa Tertentu
0. S E L E S A I
3.1. Implementasi Untuk Menambah Data
Pilihan nomor 1 adalah untuk menambah data baru ke file Utama.txt.
Proses menambah data baru mahasiswa ini akan dilaksanakan oleh
fungsi Tambah_Induk(). Proses ini pada intinya merekamkan data
mahasiswa ke record dengan nomor record yang sama dengan Nomor
Urutnya.
3.2. Implementasi Untuk Merubah Data
Pilihan nomor 2 adalah untuk merubah data mahasiswa di file
Utama.txt. Proses ini akan dilakukan oleh fungsi Rubah_Induk().
Proses ini berisikan Nomor Urut dapat diubah nilainya. Sehingga bila
Nomor Urut boleh berubah, maka proses program akan menjadi
sedikit lebih rumit. Mengapa ? karena Nomor Urut yang diubah, juga
akan mengubah letak posisi record-nya. Record yang lama harus
dihapus terlebih dahulu dan record baru yang letaknya sesuai dengan
Nomor Urut yang baru harus dibuat kembali.
3.3. Implementasi Untuk Menampilkan Data
Pilihan nomor 3 adalah untuk menampilkan semua data mahasiswa yang
ada di file Utama.txt. Proses ini dilakukan oleh fungsi
Tampil_Induk_S(). Hasil ini akan ditampilkan, dengan pilihan
layar terminal dan ke file disk. Untuk pilihan ke printer, penulis sudah
berusaha mencari syntaksnya (stdprn), namun sepertinya mengalami
6. Jurnal Politeknik TELKOM Bandung
Volume 1 Nomor 1 Tahun 2009
6
kesulitan. Adapun untuk jelasnya disajikan sebagai berikut :
Alat = Alat_Keluaran(NamaFile); //menentukan alat keluaran
do {
printf("Tampilkan di Layar,atau File (L/F) ?");
fflush(stdin); scanf("%c",&Alat);
} while (strchr("LlFf",Alat)=='0');
if (Alat=='F'||Alat=='f') {
Jawab='T';
while (Jawab=='T'||Jawab=='t') {
printf("Nama File Keluaran ? ");
scanf("%s",NamaFile);
printf("nSedang Diproses...n");
//Memeriksa keberadaan file keluaran
if ((NamaAlat=fopen(NamaFile,"r"))==NULL)
break;
else {
printf("File Sudah Ada, Ditimpa (Y/T)? ");
fflush(stdin); scanf("%c",&Jawab);
fclose(NamaAlat);
}
}
//Membuka file keluaran
if ((NamaAlat=fopen(NamaFile,"w"))==NULL) {
printf("File Tidak Dapat Dibuka !!!");
return('0');
}
}
if (Alat=='L'||Alat=='l') NamaAlat = stdout;
return(Alat);
}
Jika yang dipilih adalah file, maka nama dari file-nya akan ditanyakan
dan file akan dibuat sebagai file teks ASCII. Hasil yang berada di file ini
selanjutnya dapat dilihat atau diubah isinya dengan menggunakan
Notepad. Misalnya telah ada lima buah data mahasiswa yang
direkamkan di file Utama.txt, dan hasilnya bisa dilihat di layar
terminal atau dalam bentuk sebuah file (untuk contoh disimpan dalam
7. Jurnal Politeknik TELKOM Bandung
Volume 1 Nomor 1 Tahun 2009
7
file bernama Induk), sebagai berikut :
Tabel 1. Nilai Mata Kuliah
------------------------------------------------
No Urut Nama Nilai MK EL-493
------------------------------------------------
1 Sindar Ute 78.75
2 Shaggy Nur 98.63
3 Regina Onay 99.85
4 Ray Nadapdap 89.63
5 Rifki Chie 92.17
3.4. Implementasi Untuk Menghapus Data
Pilihan nomor 3 adalah untuk menghapus data mahasiswa tertentu di file
Utama.txt. Proses ini dilakukan oleh fungsi Hapus_Induk().
Algoritma menghapus data mahasiswa tertentu ini adalah sebagai
berikut ini :
Tanyakan Nomor Urut yang datanya ingin dihapus
Cari record data ini dengan menempatkan pembacaan ke posisi
record-nya. Proses meletakkan pembacaan ke posisi record tertentu
dilakukan oleh fungsi Posisi_Record_Induk().
Seleksi keberhasilan penempatan posisi pembacaan ke record ini.
Bila tidak ada kesalahan, baca record ini yang akan dilakukan oleh
fungsi Baca_Record_Induk().
Bila pembacaan record berhasil, tampilkan ini record ini yang akan
dilakukan oleh fungsi Tampil_Record_Induk().
Konfirmasikan apakah betul record ini akan dihapus.
Jika record ini akan dihapus, kembalikan posisi pembacaan yang
sudah bergeser karena membaca record ini ke posisi record-nya.
Hapus record ini dengan memberikan nilai sembarang ke field
Nomor Urut yang tidak sama dengan nomor record-nya. Untuk
program ini nilai sembarang dipilih nilai -1 yang tidak mungkin
sebuah nomor record. Untuk contoh ini, record yang berisi dengan
Nomor Urut yang tidak sama dengan nomor record-nya dianggap
sebagai record yang kosong. Rekamkan kembali record ini dengan
nilai field Nomor Urut yang sudah diubah. Proses ini akan
dilakukan oleh fungsi Rekam_Record_Induk().
8. Jurnal Politeknik TELKOM Bandung
Volume 1 Nomor 1 Tahun 2009
8
4. KESIMPULAN
Beberapa hal sebagai kesimpulan yang dapat diberikan dalam penelitian
ini yaitu:
a. Setiap kali akan meng-up-date basis data, harus mengganti file
Utama.txt dan file Bonus.txt agar tidak memboros memori
dan ruang Hard-Disk, dengan cara me-running kembali File.exe.
b. Kegunaan file Utama.txt dan file Bonus.txt sebagai
penyangga (buffer) bagi file yang akan ditulisi data mahasiswa.
c. Sebelum suatu file berpenyangga digunakan, penyangga untuk file
bersangkutan harus dibuat terlebih dahulu.
d. Belum adanya fasilitas koreksi kesalahan (feature error-correction)
jika user salah dalam memasukkan masukan kepada masing-masing
parameter, membuat aplikasi ini masih perlu dievaluasi guna
semakin meningkatkan kenyamanan user dalam menggunakannya.
5. SARAN
Beberapa saran yang dapat diberikan seperti:
a. Untuk menuliskan setiap input sesingkat mungkin.
b. Untuk field NIM, diusahakan maksimal 7 digit (sewaktu di-uji-coba,
bisa memasukkan sampai 8 digit, namun saat ditampilkan setelah
digit ke-8 kode ASCII-nya ngawur)
c. Jika saat running-program, ditemukan bug, coba diulang lagi.
Seperti contoh saat hasil ingin ditampilkan di layar terminal, proses
kembali lagi ke Menu Pilihan. Namun saat diulang, hasilnya
sudah terlihat di layar
6. DAFTAR PUSTAKA
[1]. Loudon, Kyle, Agustus 1999, “Mastering Algorithm with C”,
O’Reilly.
[2]. Simamora, S.N.M.P., 2006, “Diktat Kuliah KOM366 Algoritma
dan Pemrograman (4 sks)”, Jurusan Ilmu Komputer, Fak.MIPA,
Univ. Advent Indonesia, Bandung