UNIVERSITAS WIDYATAMA
JURUSAN TEKNIK INFORMATIKA - FAKULTAS TEKNIK
Jl. Cikutra No.204 A BAndung
UTS-Pemrograman II Halaman : 1 dari 10
UJIAN TENGAH SEMESTER TA. 2008/2009
Mata Kuliah/Jurusan
:
Pemrograman II (Terstruktur II)/Teknik Informatika-S1
Hari/Tanggal
:
Selasa, 31 Maret 2009
Waktu
:
90 Menit
Dosen Penguji
:
Tim Dosen
Sifat
:
Buka Buku
Bagian I : Esai (Score Max : 80)
Untuk kelas C : pilih soal nomor 1 dan no 2, sedangkan untuk kelas A, B, D dan E pilih
soal nomor 1, 2 dan 3
1.
Salah satu tugas programmer adalah membuat program untuk melakukan pengolahan data. Seiringdengan perkembangan kebutuhan manusia berimbas pada makin banyaknya data yang harus diolah, oleh karena itu file sangat diperlukan dalam proses pengolahan data tersebut. Jelaskan kenapa untuk pengelolaan data yang jumlahnya banyak, programmer lebih memilih menggunakan file (Score : 10) Jawab : Jika data yang banyak tersebut disimpan bukan dalam bentuk file (atau disimpan dalam memory utama yang bersifat sementara), maka pada saat program selesai atau dihentikan data tersebut akan hilang. Oleh karena itu untuk pengolahan banyak data, programmer menggunakan file, sebab data yang disimpan file bersifat permanen atau dengan kata lain tidak akan hilang jika program selesai atau dihentikan
2.
Pengelolaan data dalam file tergantung dari jenis file yang dipilih oleh programmer (yang sebelumnyatelah mempertimbangkan kelebihan dan kekurangan dari bentuk file yang dipilihnya). Hasil pengelolaan file biasanya berupa informasi-informasi sesuai permintaan pengguna data tersebut. Hypermaket IF-UTAMA adalah hypermarket yang dibuka oleh Profi Teknik Informatika yang memiliki cabang diseluruh Jawa Barat. Data Pendapatan dan data transaksi (Jual/Beli) di hypermarket tersebut disimpan dalam dua jenis file sebagai berikut :
File Master (Data Pendapatan) Hypermarket IF-UTAMA
No_Toko Kode_Spv Pendapatan
0505001 IF-UTAMA-TI Rp. 1.000.000
0505007 IF-UTAMA-TI Rp. 2.000.000
0505212 IF-UTAMA-TI Rp. 3.000.000
0605001 IF-UTAMA-IF Rp. 10.000.000
0605007 IF-UTAMA-IF Rp. 20.000.000
No_Toko Kode_Spv Pendapatan
0605212 IF-UTAMA-IF Rp. 30.000.000
1105001 IF-UTAMA-SI Rp. 1.000.000
1105007 IF-UTAMA-SI Rp. 1.500.000
1105212 IF-UTAMA-SI Rp. 2.000.000
…. dst
File Transaksi Hypermarket IF-UTAMA Tanggal 31 Maret 2009
No_Toko Kode_Trans Jml_Trans
0505001 J Rp. 1.000.000 0505001 B Rp. 2.000.000 0505121 B Rp. 2.000.000 0605007 B Rp. 20.000.000 0605212 J Rp. 3.000.000 0605212 B Rp. 30.000.000
No_Toko Kode_Trans Jml_Trans
0605313 B Rp. 30.000.000 1105007 J Rp. 500.000 1105007 B Rp. 500.000 1105211 B Rp. 2.000.000 1105212 J Rp. 2.000.000 ….dst
Keterangan : J (Jual atau transaksi penjualan barang ke konsumen) dan B (Beli atau transaksi pembelian barang ke supllier)
Berdasarkan file-file tersebut di atas anda diminta oleh hypermarket IF-UTAMA membuat program untuk keperluan :
a. Menampilkan informasi total transaksi per No_Toko serta total transaksi per hari (ingat kode
transaksi menentukan jumlah transaksi bernilai positif atau negatif) (Score : 20)
b. File transaksi di hypermarket IF-UTAMA dibuat per hari, hal ini berdampak pada banyaknya file
transaksi yang harus disimpan. Untuk mengatasi hal tersebut, gabungkan file-file transaksi yang ada menjadi satu buah file (struktur data dalam file ada kemungkinan berubah sesuai kebutuhan, selain itu jumlah file transaksi minimal 3 buah) (Score : 20)
c. Pendapatan masing-masing Toko akan diperbaharui sesuai dengan jumlah transaksi yang dilakukan di toko tersebut (dalam hal ini saldo diijinkan bernilai negatif, gunakan file transaksi dari soal no 2.b) (Score : 30)
d. Memisahkan data toko yang merugi pada file yang berbeda. Untuk menentukan toko tersebut rugi
adalah jika PENDAPATANNYA bernilai negatif (gunakan file hasil dari soal no 2.c) (Score : 15) //Jawaban Soal UTS Pemrograman II 2008/2009 No.2
#include <stdio.h> #include <string.h>
#include <stdlib.h> //optional #include <conio.h> //optional //deklarasi rekaman file
typedef struct {char No_Toko[8];char Kode_Spv[12];float Pendapatan;}RecMaster; typedef struct {char No_Toko[8];char Kode_Trans;float Jml_Trans;}RecTrans; //deklarasi pointer file
FILE *PointTrans, *PointMaster;
void Soal_a(); void Soal_b(); void Soal_c(); void Soal_d(); void Soal_1(); int main() { int Pilih; do { clrscr(); printf("M E N U\n");
printf("1. Soal No.2-a Konsolidasi\n"); printf("2. Soal No.2-b Merging\n"); printf("3. Soal No.2-c Updating\n"); printf("4. Soal No.2-d Splitting\n");
printf("0. Keluar\n");
printf("Masukan pilihan anda : ");scanf("%d",&Pilih);
switch(Pilih) { case 1 : Soal_a();break; case 2 : Soal_b();break; case 3 : Soal_c();break; case 4 : Soal_d();break;
case 0 : printf("terima kasih...!!!\n");break; default : printf("Pilihan anda salah\n");break; } }while(Pilih !=0); system("pause"); //optional return 0; } void Soal_a() {
//Gunakan PointTrans untuk membaca data dalam file Transaksi PointTrans = fopen("Transaksi.TXT","rt");
//deklarasi data untuk menampung nilai yang dibaca dari dalam file RecTrans RTrans;
//deklarasi data untuk inisialisasi kategori dan seluruh kategori char Current_Kateg[8]; //inisialisasi key
float TotalTransaksiperNoToko; //inisialisasi kategori float TotalTransaksiperHari;//inisialisasi seluruh kategori //Cek Isi File
if(feof(PointTrans)) //jika file kosong, maka {
//tampilkan informasi bahwa file kosong printf("Error File : File Kosong\n");
exit(1); }
else {
//inisialisasi seluruh kategori TotalTransaksiperHari = 0; //baca data/record pertama fscanf(PointTrans,"%s %c
%f",&RTrans.No_Toko,&RTrans.Kode_Trans,&RTrans.Jml_Trans);
//dengan bantuan PointTrans proses data dalam file dari awal sampai akhir file do { strcpy(Current_Kateg,RTrans.No_Toko); TotalTransaksiperNoToko = 0; do {
//proses data untuk kategori yang sama
//hitung Total Transaksi untuk No_Toko yang sama if(RTrans.Kode_Trans == 'J') TotalTransaksiperNoToko = TotalTransaksiperNoToko + RTrans.Jml_Trans; else TotalTransaksiperNoToko = TotalTransaksiperNoToko - RTrans.Jml_Trans;
//baca data/record berikutnya fscanf(PointTrans,"%s %c
%f",&RTrans.No_Toko,&RTrans.Kode_Trans,&RTrans.Jml_Trans);
}while (strcmp(Current_Kateg,RTrans.No_Toko) == 0 && !feof(PointTrans)); //terminasi kategori - tampilkan hasilnya
printf("Total Transaksi No Toko : %s adalah %.2f \n",Current_Kateg,TotalTransaksiperNoToko);
//proses data untuk seluruh kategori //hitung Total Transaksi per hari
TotalTransaksiperHari = TotalTransaksiperHari + TotalTransaksiperNoToko; }while(!feof(PointTrans));
//terminasi seluruh kategori - tampilkan hasilnya
printf("Total Transaksi hari ini adalah %.2f",TotalTransaksiperHari); //tutup file fclose(PointTrans); } system("pause"); } void Soal_b() { FILE *PointTrans1,*PointTrans2,*PointTrans3;
//Gunakan PointTrans untuk membaca data dalam file Transaksi PointTrans1 = fopen("Transaksi.TXT","rt");
PointTrans2 = fopen("Transaksi.TXT","rt"); PointTrans3 = fopen("Transaksi.TXT","rt");
FILE *PointTransBaru;
PointTransBaru = fopen("Transaksi1.TXT","wt");
//deklarasi data untuk menampung nilai yang dibaca dari dalam file RecTrans RTrans1,RTrans2,RTrans3;
//Cek Isi File
if(feof(PointTrans1)&& feof(PointTrans2) && feof(PointTrans3)) //jika file kosong, maka
{
//tampilkan informasi bahwa file kosong printf("Error File : File Kosong\n"); exit(1);
else {
//baca data pertama dari masing-masing file
fscanf(PointTrans1,"%s %c %f",&RTrans1.No_Toko,&RTrans1.Kode_Trans,&RTrans1.Jml_Trans); fscanf(PointTrans2,"%s %c %f",&RTrans2.No_Toko,&RTrans2.Kode_Trans,&RTrans2.Jml_Trans); fscanf(PointTrans3,"%s %c %f",&RTrans3.No_Toko,&RTrans3.Kode_Trans,&RTrans3.Jml_Trans); //proses penggabungan
printf("Mulai proses penggabungan\n");
while(!feof(PointTrans1) && !feof(PointTrans2) && !feof(PointTrans3))
{ if(strcmp(RTrans1.No_Toko,RTrans2.No_Toko) <= 0 && strcmp(RTrans1.No_Toko,RTrans3.No_Toko) <= 0) { fprintf(PointTransBaru,"%s %c %f\n",RTrans1.No_Toko,RTrans1.Kode_Trans,RTrans1.Jml_Trans); fscanf(PointTrans1,"%s %c %f",&RTrans1.No_Toko,&RTrans1.Kode_Trans,&RTrans1.Jml_Trans); printf("Tulis dari file ke-1\n");
} else { if (strcmp(RTrans2.No_Toko,RTrans1.No_Toko) <= 0 && strcmp(RTrans2.No_Toko,RTrans3.No_Toko) <= 0) { fprintf(PointTransBaru,"%s %c %f\n",RTrans2.No_Toko,RTrans2.Kode_Trans,RTrans2.Jml_Trans); fscanf(PointTrans2,"%s %c %f",&RTrans2.No_Toko,&RTrans2.Kode_Trans,&RTrans2.Jml_Trans); printf("Tulis dari file ke-2\n");
} else { fprintf(PointTransBaru,"%s %c %f\n",RTrans3.No_Toko,RTrans3.Kode_Trans,RTrans3.Jml_Trans); fscanf(PointTrans3,"%s %c %f",&RTrans3.No_Toko,&RTrans3.Kode_Trans,&RTrans3.Jml_Trans); printf("Tulis dari file ke-3\n");
} } } while(!feof(PointTrans1)) { fprintf(PointTransBaru,"%s %c %f\n",RTrans1.No_Toko,RTrans1.Kode_Trans,RTrans1.Jml_Trans); fscanf(PointTrans1,"%s %c %f",&RTrans1.No_Toko,&RTrans1.Kode_Trans,&RTrans1.Jml_Trans); printf("Tulis dari file ke-1\n");
} while(!feof(PointTrans2)) { fprintf(PointTransBaru,"%s %c %f\n",RTrans2.No_Toko,RTrans2.Kode_Trans,RTrans2.Jml_Trans); fscanf(PointTrans2,"%s %c %f",&RTrans2.No_Toko,&RTrans2.Kode_Trans,&RTrans2.Jml_Trans); printf("Tulis dari file ke-2\n");
} while(!feof(PointTrans3)) { fprintf(PointTransBaru,"%s %c %f\n",RTrans3.No_Toko,RTrans3.Kode_Trans,RTrans3.Jml_Trans); fscanf(PointTrans3,"%s %c
%f",&RTrans3.No_Toko,&RTrans3.Kode_Trans,&RTrans3.Jml_Trans); printf("Tulis dari file ke-3\n");
}
//tutup file fcloseall();
printf("Proses Merging berhasil dilakukan\n");
} system("pause"); } void Soal_c() { char Current_Kateg[8]; float TotalTransaksiperNoToko;
//Gunakan PointTrans untuk membaca data dalam file Transaksi PointTrans = fopen("Transaksi1.TXT","rt");
PointMaster = fopen("Master.TXT","rt"); FILE *PointMasterBaru;
PointMasterBaru = fopen("Master1.TXT","wt");
//deklarasi data untuk menampung nilai yang dibaca dari dalam file RecTrans RTrans;
RecMaster RMaster,RMasterBaru; //Cek Isi File
if(feof(PointTrans)&& feof(PointMaster)) //jika file kosong, maka {
//tampilkan informasi bahwa file kosong printf("Error File : File Kosong\n"); exit(1);
} else {
//baca data pertama dari masing-masing file
fscanf(PointTrans,"%s %c
%f",&RTrans.No_Toko,&RTrans.Kode_Trans,&RTrans.Jml_Trans);
fscanf(PointMaster,"%s %s
%f",&RMaster.No_Toko,&RMaster.Kode_Spv,&RMaster.Pendapatan);
//proses updating
printf("Mulai proses updating\n");
while(!feof(PointTrans) && !feof(PointMaster))
{ strcpy(Current_Kateg,RTrans.No_Toko); TotalTransaksiperNoToko = 0; do { //optional
//proses data untuk No_Toko yang sama if(RTrans.Kode_Trans == 'J') TotalTransaksiperNoToko = TotalTransaksiperNoToko + RTrans.Jml_Trans; else TotalTransaksiperNoToko = TotalTransaksiperNoToko - RTrans.Jml_Trans;
//baca data/record berikutnya
fscanf(PointTrans,"%s %c
%f",&RTrans.No_Toko,&RTrans.Kode_Trans,&RTrans.Jml_Trans);
}while (strcmp(Current_Kateg,RTrans.No_Toko) == 0 && !feof(PointTrans)); //jawaban bisa mulai dari sini
if(strcmp(Current_Kateg,RMaster.No_Toko) == 0) {
strcpy(RMasterBaru.No_Toko,Current_Kateg);
strcpy(RMasterBaru.Kode_Spv,RMaster.Kode_Spv);
RMasterBaru.Pendapatan = RMaster.Pendapatan + TotalTransaksiperNoToko; fprintf(PointMasterBaru,"%s %s
%0f\n",RMasterBaru.No_Toko,RMasterBaru.Kode_Spv,RMasterBaru.Pendapatan); //fscanf(PointTrans,"%s %c %f",&RTrans.No_Toko,&RTrans.Kode_Trans,&RTrans.Jml_Trans); fscanf(PointMaster,"%s %s %f",&RMaster.No_Toko,&RMaster.Kode_Spv,&RMaster.Pendapatan); } else { if(strcmp(Current_Kateg,RMaster.No_Toko) < 0) { strcpy(RMasterBaru.No_Toko,Current_Kateg); strcpy(RMasterBaru.Kode_Spv,"IF-UTAMA-BR"); RMasterBaru.Pendapatan = TotalTransaksiperNoToko; fprintf(PointMasterBaru,"%s %s %.0f\n",RMasterBaru.No_Toko,RMasterBaru.Kode_Spv,RMasterBaru.Pendapatan); //fscanf(PointTrans,"%s %c %f",&RTrans.No_Toko,&RTrans.Kode_Trans,&RTrans.Jml_Trans); //fscanf(PointMaster,"%s %s %f",&RMaster.No_Toko,&RMaster.Kode_Spv,&RMaster.Pendapatan); } else { strcpy(RMasterBaru.No_Toko,RMaster.No_Toko); strcpy(RMasterBaru.Kode_Spv,RMaster.Kode_Spv); RMasterBaru.Pendapatan = RMaster.Pendapatan; fprintf(PointMasterBaru,"%s %s %.0f\n",RMasterBaru.No_Toko,RMasterBaru.Kode_Spv,RMasterBaru.Pendapatan); //fscanf(PointTrans,"%s %c %f",&RTrans.No_Toko,&RTrans.Kode_Trans,&RTrans.Jml_Trans); fscanf(PointMaster,"%s %s %f",&RMaster.No_Toko,&RMaster.Kode_Spv,&RMaster.Pendapatan); } } } while(!feof(PointTrans)) { strcpy(Current_Kateg,RTrans.No_Toko); TotalTransaksiperNoToko = 0; do { //optional
//proses data untuk No_Toko yang sama if(RTrans.Kode_Trans == 'J') TotalTransaksiperNoToko = TotalTransaksiperNoToko + RTrans.Jml_Trans; else TotalTransaksiperNoToko = TotalTransaksiperNoToko - RTrans.Jml_Trans;
//baca data/record berikutnya
fscanf(PointTrans,"%s %c
%f",&RTrans.No_Toko,&RTrans.Kode_Trans,&RTrans.Jml_Trans);
}while (strcmp(Current_Kateg,RTrans.No_Toko) == 0 && !feof(PointTrans)); strcpy(RMasterBaru.No_Toko,RTrans.No_Toko);
strcpy(RMasterBaru.Kode_Spv,RMaster.Kode_Spv);
RMasterBaru.Pendapatan = RMaster.Pendapatan + TotalTransaksiperNoToko; fprintf(PointMasterBaru,"%s %s %.0f\n",RMasterBaru.No_Toko,RMasterBaru.Kode_Spv,RMasterBaru.Pendapatan); //fscanf(PointTrans,"%s %c %f",&RTrans.No_Toko,&RTrans.Kode_Trans,&RTrans.Jml_Trans); //fscanf(PointMaster,"%s %s %f",&RMaster.No_Toko,&RMaster.Kode_Spv,&RMaster.Pendapatan); } while(!feof(PointMaster)) {
strcpy(RMasterBaru.No_Toko,RMaster.No_Toko); strcpy(RMasterBaru.Kode_Spv,RMaster.Kode_Spv); RMasterBaru.Pendapatan = RMaster.Pendapatan; fprintf(PointMasterBaru,"%s %s %.0f\n",RMasterBaru.No_Toko,RMasterBaru.Kode_Spv,RMasterBaru.Pendapatan); //fscanf(PointTrans,"%s %c %f",&RTrans.No_Toko,&RTrans.Kode_Trans,&RTrans.Jml_Trans); fscanf(PointMaster,"%s %s %f",&RMaster.No_Toko,&RMaster.Kode_Spv,&RMaster.Pendapatan); } //tutup file fcloseall();
printf("Proses Updating berhasil dilakukan\n");
}
system("pause"); }
void Soal_d()
{
//Gunakan PointTrans untuk membaca data dalam file Transaksi PointMaster = fopen("Master1.TXT","rt");
FILE *PointMasterBaruNegatif,*PointMasterBaruPosiitif; PointMasterBaruNegatif = fopen("MasterNegatif.TXT","wt"); PointMasterBaruPosiitif = fopen("MasterPositif.TXT","wt");
//deklarasi data untuk menampung nilai yang dibaca dari dalam file RecMaster RMaster;
//Cek Isi File
if(feof(PointMaster)) //jika file kosong, maka {
//tampilkan informasi bahwa file kosong printf("Error File : File Kosong\n"); exit(1);
} else {
//baca data pertama dari masing-masing file
fscanf(PointMaster,"%s %s
%f",&RMaster.No_Toko,&RMaster.Kode_Spv,&RMaster.Pendapatan);
//proses Splitting
printf("Mulai proses Splitting\n");
while(!feof(PointMaster)) { if(RMaster.Pendapatan < 0) { fprintf(PointMasterBaruNegatif,"%s %s %0f\n",RMaster.No_Toko,RMaster.Kode_Spv,RMaster.Pendapatan); } else { fprintf(PointMasterBaruPosiitif,"%s %s %0f\n",RMaster.No_Toko,RMaster.Kode_Spv,RMaster.Pendapatan); } fscanf(PointMaster,"%s %s %f",&RMaster.No_Toko,&RMaster.Kode_Spv,&RMaster.Pendapatan); } //tutup file fcloseall();
printf("Proses Splitting berhasil dilakukan\n");
}
system("pause"); }
3.
Rekursif merupakan salah satu teknik pemrograman. Rekursif sebenarnya merupakan suatu fungsiatau prosedur yang bisa memanggil dirinya sendiri, jadi kita bisa menganggap bahwa rekursif adalah looping yang memanfaatkan fungsi atau prosedur.
a. Jelaskan secara singkat kelebihan dan kekurangan proses yang menggunakan rekursif dan looping
biasa (Score : 10)
b. Buat fungsi/prosedur dan program pemanggilnya, untuk membentuk segi tiga Pascal dengan
menggunakan rekursif, petunjuk
Jika n ≥ 0 maka : C(n,0) = 1 dan C(n,n) = 1
Jika n > k >0 maka : C(n,k) = C(n-1,k)+C(n-1,k-1) (Score : 15)
c. Buat fungsi/prosedur dan program pemanggilnya, untuk melakukan konversi dari bilangan desimal
ke biner dengan menggunakan rekursif (petunjuk gunakan MOD dan DIV untuk proses ini, btw inget dalam C/C++ sintaksnya apa) (Score : 20)
//Jawaban Soal UTS Pemrograman II 2008/2009 No.2 #include <stdio.h>
#include <stdlib.h> //optional #include <conio.h> //optional
int segitiga_pascal(int row, int position); void PanggilSegitigaPascal();
void PrintBinary(int &x,int &d);
char buffer[33]; int index=0; int main() {
int Pilih; int BilDesimal; int JmlDigitBiner; do {
clrscr();
printf("M E N U\n");
printf("1. Soal No.3-b Segitiga Pascal Rekursif\n"); printf("2. Soal No.3-b Konversi Desimal ke Biner\n");
printf("0. Keluar\n");
printf("Masukan pilihan anda : ");scanf("%d",&Pilih);
switch(Pilih) {
case 1 : PanggilSegitigaPascal();break;
case 2 : {
printf("Masukan Angka Desimal : ");scanf("%d",&BilDesimal); printf("Masukan Jumlah Digit Biner :
");scanf("%d",&JmlDigitBiner);
PrintBinary(BilDesimal,JmlDigitBiner);
break;
}
case 0 : printf("terima kasih...!!!\n");break; default : printf("Pilihan anda salah\n");break; }
}while(Pilih !=0);
system("pause"); //optional return 0;
}
int segitiga_pascal(int row, int position)
{
if(position == 0) return 1;
else if(position == row) return 1;
else return segitiga_pascal(row-1, position) + segitiga_pascal(row-1, position-1); }
void PanggilSegitigaPascal()
{
int n;
int tengah = (2 * n)/2; //tampilkan segitiga pascal for (int i = 0; i <= n; ++i) {
//mencetak spasi
for (int k = 0;k < tengah;k++) printf(" "); //mencetak nilai dari posisi tengah
for (int j = 0; j < i; ++j) {
//tampilkan nilai segitiga pascal baris ke-i printf("%3d ",segitiga_pascal(i, j)); } printf("\n"); tengah--; } system("pause"); }
void PrintBinary(int &x,int &d) {
if (d>0) {
//buffer[index++] = '0'+ (x & 1) ;
(x & 1) ? buffer[index++]='1': buffer[index++]='0'; x >>= 1;d--;
PrintBinary(x,d); }
else {
while (index >0 ) printf("%c",buffer[--index]) ; printf("\n") ;
system("pause"); }
}
Bagian II : Pilihan Berganda (Score Max : 20)
Score per soal : 2 (jika tanpa penjelasan) atau 5 (jika dengan penjelasan)
Petunjuk : Dalam satu soal ada kemungkinan jawaban lebih dari satu atau tidak ada jawaban sama sekali. Jika ada jawaban tulis dengan menggunakan huruf kapital pilihan jawaban yang menurut anda benar (jika salah satu salah maka jawaban anda dianggap salah), sebaliknya jika tidak ada jawaban sama sekali tolong tulis ”Tidak Ada Jawaban Yang Benar”. Jangan lupa jelaskan alasan jawaban anda tersebut kalo mo dapet score yang lebih tinggi.
1.
Berikut ini adalah library header yang bisa digunakan dalam pengelolaan file kecualiA. stdio.h B. iostream.h C. fstram.h D. Stdlib.h
2.
Potongan program berikut ini yang berfungsi untuk menyiapkan atau membuka file untuk diisi dengandata yang baru adalah
A. FILE *PointerFile; PointerFile = fopen("File03a.dat","r+");
B. ofstream File_Coba; File_Coba.open(“Coba.Dat”, ios::out);
C. fstream PointerFile; PointerFile.open("File03a.dat", ios::app);
D. ifstream File_Coba; File_Coba.open(“Coba.Dat”,ios::app | ios::out);
3.
Pasangan library header dengan perintah berikut ini adalah benar kecualiA. ofstream.h File_Coba.open(“Coba.Dat”,ios::app | ios::out);
B. fstream.h fstream PointerFile;
C. stdio.h fscanf(Arsip1,”format KeyType &ValType”, Rek1.Key1,Rek1.ValIn);
D. stdio.h fwrite(ArsipGabung,”format KeyType& ValType”, Rek1.KeyIn,Rek1.ValIn);
4.
Perintah-perintah berikut ini yang bisa digunakan dalam operasi file adalah5.
Tujuan perintah fclose(NamaPointerFile) atau NamaPointerFile .close() adalah untukA. Untuk menutup semua file dan menghentikan program
B. Menutup file tertentu karena sudah tidak digunakan lagi di dalam program
C. Menutup program karena ingin membuka file yang lain
D. Merekam informasi yang ada dipenyangga ke file, sebelum program dihentikan
6.
Perbedaan perintah fread dan read dalam pengelolaan file adalahA. fread menggunakan library header stdio.h, sedangkan read menggunakan library header fstream.h
B. fread berfungsi untuk membaca data dalam file, sedangkan read berfungsi juga untuk membaca
data dalam file
C. Sintaks penulisan perintah fread dan read berbeda
D. fread menggunakan library header fstream.h, sedangkan read menggunakan library header stdio.h
7.
Perintah-perintah berikut ini berfungsi untuk membaca sebuah nilai atau karakter dalam file, kecualiA. fgetc() B. fgets() C. fscanf() D. getw()
8.
Sintaks penulisan perintah penulisan data dari buffer ke dalam berikut ini adalah benar, kecualiA. ArsipUpdate.write((char *)&RekBaru,sizeof(RekBaru));
B. fwrite(ArsipUpdate,”%d %s”, RekLama.KeyIn,RekLama.ValIn);
C. ArsipUpdate.write((char *)&RekBaru,sizeof(RekBaru);