Anda di halaman 1dari 7

Nama : A. A. Primaningrat Gita P.

NIM : 1104505066

PRAKTIKUM BAHASA PEMROGRAMAN KOMPUTER MODUL II OPERAASI FILE


1.1 Tujuan 1. Memahami dasar-dasar pemrograman C++. 2 Memahami penggunaan operasi file pada C++. 3 Memahami penggunaan tipe data string dalam pembuatan program. 4 Memahami konsep struct dalam pemrograman dengan Bahasa C++. Tugas Pendahuluan 1. Jelaskan tentang penggunaan tipe data string beserta dengan fungsifungsi yang dapat di pakai untuk mengkonversi tipe data string ke tipe data lain. 2. Jelaskan dan berikan contoh penggunaan fstream, ofstream, ifstream, dan statement lain yang digunakan dalam operasi file, dalam C++. 3. Jelaskan tentang struct dalam pemrograman dengan Bahasa C++. 4. Buatlah algoritma, flowchart dan program yang dapat melakukan penambahan, edit, pencarian dan penghapusan data mahasiswa beserta validasinya. Trace flowchart anda.. Jawaban 1. Penggunaan Tipe Data String Dalam C++, string yang digunakan bertipe null terminated string, yaitu jenis string yang diakhiri oleh karakter null (\0), bukan nol. Kita tahu bahwa string adalah kumpulan dari karakter, oleh karena itu jika kita akan mendeklarasikan variabel bertipe string, maka kita harus melebihkan lebar sebanyak satu karakter untuk posisi karakter null. Dalam mengisikan nilai ke variabel yang bertipe string, kita tidak perlu memasukkan karakter null secara manual, karena C++ secara otomatis akan menambahkannya. Terdapat beberapa fungsi siap pakai yang berguna untuk menyelesaikan masalah-masalah yang berkaitan dengan string. Untuk menggunakan fungsi-fungsi tersebut kita harus mendaftarkan file header string.h (untuk C++ lama) atau <cstring> (untuk C++ standar). Dalam pembuatan sebuah program kerap kali kita dituntut untuk melakukan perubahan terhadap format string, misalnya mengubah string menjadi huruf kapital ataupun sebaliknya. Untuk melakukan hal ini, C++ telah menyediakan dua buah fungsi, yaitu strlwr ( ) dan strupr ( ). a. Fungsi strlwr ( )

1.2

1.3

Bentuk umum dari fungsi strlwr ( ) dapat dilihat dibawah ini. char* strlwr (char* S); fungsi ini akan mengubah string yang tersimpan dalam variabel S menjadi huruf kecil. b. Fungsi strupr ( ) Bentuk umum dari fungsi strupr ( ) dapat dilihat dibawah ini. char* strupr (char* S); fungsi ini akan mengubah string yang tersimpan dalam variabel S menjadi huruf kapital. Terdapat banyak cara dalam melakukan konversi dengan C++. Cara konversi dari string ke tipe lainya (untuk konversi ke string, disarankan untuk menggunakan objek format ( ) dari class CString karena lebih fleksibel dan mudah untuk semua tipe data).

String to integer a. b. c. d. atoi() : string ke int _wtoi() : string ke int atol () : string ke long int _wtol() : string ke long int

String to double a. atof () : string ke double b. _wtof() : string ke double All to string - Format(%specifier,data)

Untuk specifier : a. b. c. d. e. f. g. h. i. j. c : untuk tipe char d atau I : untuk tipe integer e atau E : notasi scientific f atau g atau G : untuk tipe double atau float o : untuk bilangan octal s : untuk tipe string u : untuk unsign integer x atau X : untuk tipe hexa decimal p : untuk pointer n : menghasilkan kosong

2. Penggunaan Fstream, ofstream,ifstream Untuk melakukan operasi input file digunakan objek ifstream dan untuk operasi output file digunakan objek ofstream. Kedua objek tersebut berada pada header file fstream.h. operasi dasar pada file pada dasarnya terbagi menjadi tiga tahap yaitu : 1. Membuka atau mengaktifkan File 2. Melaskanakan proses File 3. Menutup File a. Membuka File Sebelum suatu file dapat diproses, file harus dibuka terlebih dahulu. Untuk itu kita perlu mendefinisikan obyek file. Salah satu bentuk pernyataan yang diperlukan :
ofstream nama_obyek ;

ofstream digunakan untuk mendefinisikan nama objek yang nantinya akan digunakan untuk membuka file berikut penulisan pada program :
ofstream simpan;

Setelah suatu objek file diciptakan, untuk membuka file dapat dilakukan dengan cara berikut ini :
Nama_object.open (nama_file);

Berikut penulisan pada program :


simpan.open (file.txt);

keterangan : a. File keluaran adalah nama objek file. b. file.TXT adalah nama file yang akan disimpan pada disk. b. Menulis File salah satu jenis pemprosesan pada file adalah menulis atau merekam data ke file.
Nama object<<statement<<endl;

contoh penulisan pada program :


simpan<< belajar file C++ <<endl;

c. Menutup File

Setelah pemrosesan file berakhir, file perlu ditutup. Langkah ini dilakukan dengan memanggil fungsi anggota bernama close( ) merupakan pernyataaan untuk menutup file.
Nama_object.close();

Contoh penulisan pada program :


simpan.close();

3.

Struct dalam pemrograman Bahasa C++ Manfaat tipe data struct secara umum adalah untuk menyimpan paket (sekumpulan) data ke dalam satu buah nama variabel saja. Kumpulan data tersebut diikat sedemikian rupa menjadi satu. Kumpulan data di dalam sebuah struct bisa mempunyai tipe data dasar yang beraneka ragam. Kumpulan data dalam sebuah struct sangat dianjurkan membentuk sebuah kesatuan makna berkaitan dengan nama struct-nya. Misal, jika struct-nya bernama segitiga maka isi struct-nya antara lain: alas, tinggi, luas dan keliling. Konsepnya yang lebih lanjut dapat juga dalam sebuah struct terdapat struct lagi (nested struct). Contoh deklarasinya sbb:
struct mhs { int NIM; char nama[20]; float IPK; } data[20];

Kode Program 4.1 Program Struct

Contoh di atas menunjukkan bahwa dibuat struct bernama mhs dengan isian data NIM, nama dan IPK. Sedangkan nama variabelnya adalah data. Dalam kasus tsb variabel data dibuat berupa array dengan ukuran 20. Artinya kita akan membuat array untuk menampung data struct mhs sebanyak 20. Konsep struct seringkali dikaitkan dengan array karena logikanya penyimpanan data itu tidak cukup satu item saja, tetapi lebih dari itu. 4. Listing Program #include <iostream.h> #include <iomanip.h> #include <conio.h> #include <stdlib.h>

#include <windows.h> #include <fstream.h> char*namafile="D: datamahasiswa.txt"; char str[20]; int opsi; struct datamahasiswa { char nim[20],nama[20]; } mhs; int cek(char str[]) { int i, panjang; panjang = strlen(str); for(i=0;i<panjang;i++) { if((i==0)&&(str[i]=='-')) i++; if(!isdigit(str[i])) { cout<<"Input tidak boleh berupa karakter !"; getch(); return 0; } } return 1; } void menambahkanData() { char pil='y'; cout << "Masukan Nim Anda : "; cin >> mhs.nim; cout << "Masukan Nama Anda: " << endl; cin >> mhs.nama; cout << "Ingin Menambahkan File(y/n)? "; cin >> pil; if (pil=='y') { ofstream dataBaru; dataBaru.open("D: datamahasiswa.txt",ios::app); dataBaru.write((char*)&mhs,sizeof(mhs)); dataBaru.close(); } getch; }

void cariData() { char *tmu; ifstream myfile; myfile.open (namafile); if (myfile.good()) { while (! myfile.eof()){ cari: myfile.getline(mhs.nama,20); tmu = strstr(mhs.nama, mhs.nim); if (tmu) // jika ketemu, tampilkan { cout << tmu << endl; cout << "DATA YANG ANDA CARI SUDAH KAMI TEMUKAN !!!!" << endl; getch(); } } cout << "MAAF, DATA YANG ANDA CARI TIDAK KAMI TEMUKAN :(."; myfile.close(); getch(); } } void mengeditData() { char pil='y'; cout << "Inputkan Nama dan NIM anda: " << endl; cout << "Masukan NIM Anda : "; cin >> mhs.nim; cout << "Masukan Nama Anda : "; cin >> mhs.nama; cout << "Ingin mengedit file(y/n)? "; cin >> pil; if (pil=='y') { ofstream edit; edit.open(namafile,ios::trunc); edit.write((char*)&mhs,sizeof(mhs)); edit.close(); } getch; } void hapusData() {

ofstream hapus; hapus.open(namafile,ios::trunc); hapus << " "; hapus << " "; cout<<"Data telah terhapus !!!"<<endl; hapus.close(); } int main() { int awal; awal: clrscr(); cout << "============PROGRAM MAHASISWA=========="<<endl<<endl; cout << "1. Menginputkan Data Baru" <<endl; cout << "2. Mencari Data " <<endl; cout << "3. Mengedit Data " <<endl; cout << "4. Menghapus Data " <<endl<<endl; cout << "Masukkan pilihan anda : "; do{ cin >> str; } while (!cek(str)); opsi = atoi (str); if ((opsi>6)||(opsi<1)) goto awal; getch; switch(opsi) { case 1: menambahkanData(); break; case 2: cariData(); break; case 3: mengeditData(); break; case 4: hapusData(); break; } getch(); }

DATA