UNIVERSITAS WIDYATAMA JURUSAN TEKNIK INFORMATIKA - FAKULTAS TEKNIK Jl. Cikutra No.204 A BAndung
UJIAN TENGAH SEMESTER TA. 2008/2009 Mata Kuliah/Jurusan Hari/Tanggal Waktu Dosen Penguji Sifat
: : : : :
Pemrograman II (Terstruktur II)/Teknik Informatika-S1 Selasa, 31 Maret 2009 90 Menit Tim Dosen 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. Seiring dengan 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 sebelumnya telah 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 0505001 0505007 0505212 0605001 0605007
Kode_Spv IF-UTAMA-TI IF-UTAMA-TI IF-UTAMA-TI IF-UTAMA-IF IF-UTAMA-IF
Pendapatan Rp. 1.000.000 Rp. 2.000.000 Rp. 3.000.000 Rp. 10.000.000 Rp. 20.000.000
No_Toko 0605212 1105001 1105007 1105212 …. dst
Kode_Spv IF-UTAMA-IF IF-UTAMA-SI IF-UTAMA-SI IF-UTAMA-SI
Pendapatan Rp. 30.000.000 Rp. 1.000.000 Rp. 1.500.000 Rp. 2.000.000
File Transaksi Hypermarket IF-UTAMA Tanggal 31 Maret 2009 No_Toko Kode_Trans Jml_Trans No_Toko Kode_Trans Jml_Trans 0505001 J Rp. 1.000.000 0605313 B Rp. 30.000.000 0505001 B Rp. 2.000.000 1105007 J Rp. 500.000 0505121 B Rp. 2.000.000 1105007 B Rp. 500.000 0605007 B Rp. 20.000.000 1105211 B Rp. 2.000.000 0605212 J Rp. 3.000.000 1105212 J Rp. 2.000.000 0605212 B Rp. 30.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) UTS-Pemrograman II
Halaman : 1 dari 10
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
//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"); Solusi UTS-Pemrograman II
Ver/Rev : 2 /0
Halaman : 2 dari 10
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); } Solusi UTS-Pemrograman II
Ver/Rev : 2 /0
Halaman : 3 dari 10
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 Solusi UTS-Pemrograman II
Ver/Rev : 2 /0
Halaman : 4 dari 10
%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 Solusi UTS-Pemrograman II
Ver/Rev : 2 /0
Halaman : 5 dari 10
%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)) { Solusi UTS-Pemrograman II
Ver/Rev : 2 /0
Halaman : 6 dari 10
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"); }
Solusi UTS-Pemrograman II
Ver/Rev : 2 /0
Halaman : 7 dari 10
3.
Rekursif merupakan salah satu teknik pemrograman. Rekursif sebenarnya merupakan suatu fungsi atau 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 //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; printf("Enter Row: ");scanf("%d",&n); Solusi UTS-Pemrograman II
Ver/Rev : 2 /0
Halaman : 8 dari 10
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 kecuali A.
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 dengan data 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 kecuali A. B. C. D.
ofstream.h File_Coba.open(“Coba.Dat”,ios::app | ios::out); fstream.h fstream PointerFile; stdio.h fscanf(Arsip1,”format KeyType &ValType”, Rek1.Key1,Rek1.ValIn); stdio.h fwrite(ArsipGabung,”format KeyType& ValType”, Rek1.KeyIn,Rek1.ValIn);
4. Perintah-perintah berikut ini yang bisa digunakan dalam operasi file adalah A.
fgetc()
Solusi UTS-Pemrograman II
B.
fgets()
C.
gets()
Ver/Rev : 2 /0
D.
getw()
Halaman : 9 dari 10
5. Tujuan perintah fclose(NamaPointerFile) atau NamaPointerFile .close() adalah untuk A. B. C. D.
Untuk menutup semua file dan menghentikan program Menutup file tertentu karena sudah tidak digunakan lagi di dalam program Menutup program karena ingin membuka file yang lain Merekam informasi yang ada dipenyangga ke file, sebelum program dihentikan
6. Perbedaan perintah fread dan read dalam pengelolaan file adalah A. B. C. D.
fread menggunakan library header stdio.h, sedangkan read menggunakan library header fstream.h fread berfungsi untuk membaca data dalam file, sedangkan read berfungsi juga untuk membaca data dalam file Sintaks penulisan perintah fread dan read berbeda 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, kecuali A.
fgetc()
B.
fgets()
C.
fscanf()
D.
getw()
8. Sintaks penulisan perintah penulisan data dari buffer ke dalam berikut ini adalah benar, kecuali A. B. C. D.
ArsipUpdate.write((char *)&RekBaru,sizeof(RekBaru)); fwrite(ArsipUpdate,”%d %s”, RekLama.KeyIn,RekLama.ValIn); ArsipUpdate.write((char *)&RekBaru,sizeof(RekBaru); fwrite(ArsipUpdate,”%d %s”, RekLama.KeyIn.RekLama.ValIn);
Solusi UTS-Pemrograman II
Ver/Rev : 2 /0
Halaman : 10 dari 10