• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
10
0
0

Teks penuh

(1)

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. 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 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)

(2)

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");

(3)

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);

(4)

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

(5)

%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

(6)

%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)) {

(7)

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"); }

(8)

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 <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;

(9)

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. 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 adalah

(10)

5.

Tujuan perintah fclose(NamaPointerFile) atau NamaPointerFile .close() adalah untuk

A. 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 adalah

A. 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, 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. ArsipUpdate.write((char *)&RekBaru,sizeof(RekBaru));

B. fwrite(ArsipUpdate,”%d %s”, RekLama.KeyIn,RekLama.ValIn);

C. ArsipUpdate.write((char *)&RekBaru,sizeof(RekBaru);

Referensi

Dokumen terkait

Penelitian ini bertujuan mengevaluasi kelas kemampuan, kelas kesesuaian lahan aktual dan potensial untuk tanaman kehutanan serta memetakan kelas kemampuan dan kesesuian lahan

Sei adalah bagian dari konsep Zen yang berperan penting dalam chanoyu Kemudian pada saat tamu akan masuk ke dalam chashitsu, sebelumnya mereka menyucikan diri mereka

Kegiatan persiapan penerapan Pembelajaran Diluar Sekolah (Out Door Study) yang dilakukan oleh guru meliputi: perumusan topik serta materi atau masalah yang akan

Setelah peneliti mengadakan studi dokumentasi terhadap RPP yang dibuat guru SD X dan Y, wawancara dan observasi terhadap pelaksanaan pembelajaran dan evalusi

Lamun Enhalusacoroidesmemiliki pigmen seperti klorofil dan karotenoid yang dapat dimanfaatkan sebagai pewarna alami.Penelitian ini bertujuan mengetahui karakteristik

Bagas tebu merupakan salah satu limbah lignoselulosa yang bisa dimanfaatkan sebagai bahan baku bioetanol yang merupakan salah satu bahan bakar terbarukan.. Pada penelitian

Perhatian adalah tahap kedua dari proses pengolahan informasi. Pada tahap pertama, produsen memaparkan stimulus kepada konsumen. Tidak semua stimulus yang dipaparkan &amp;