Anda di halaman 1dari 12

Soal-1 (Materi Pointer Dengan Poin 30)

UNIVERSITAS BUDI LUHUR

FAKULTAS TEKNOLOGI INFORMASI SOAL UJIAN AKHIR SEMESTER SEMESTER GENAP TAHUN
AJARAN 2020/2021

Mata Kuliah Hari/Tanggal Dosen

: Algoritma dan Struktur Data 1 : Senin / 29 Maret 2021: AGUS UMAR HAMDANI

Tipe Soal Deadline Sifat Ujian

: A: Senin / 05 April 2021 : TAKE HOME

Petunjuk Umum :1. Tulislah Nim, Nama dan Nomor Absen Anda pada Lembar Jawaban yang telah tersedia.
2.Screenshot kode program dan hasil keluaran yang dihasilkan, kemudian simpanlah dalam format

doc, pdf atau ppt.

3. Penamaan folder jawaban UAS mengikuti format berikut : nim-tipesoal, contoh : 1712502029_A.

4. Folder jawaban UAS berisi : source code program (.cpp), screenshot hasil eksekusi program (.jpg, png, jpeg) dan
khusus untuk soal ke-3 ditambahkan file notepad (.txt).

5. Periksa dan bacalah setiap soal dengan seksama sebelum Anda menjawab.

6.Laporkan kepada pengawas ujian apabila terdapat lembar soal yang kurang jelas, rusak atau

jumlah soal kurang.7. Periksalah Jawaban Anda sebelum diserahkan kepada pengawas ujian dan dilarang bekerja
sama. 8.Cantumkan keterangan “Saya Jujur” di pojok kiri atas jawaban anda, apabila anda mengerjakan

soal UAS ini secara mandiri, tanpa bertanya / meminta bantuan atau mencopy jawaban dari teman.

Diketahui array dua dimensi A bertipe integer yang sudah berisi nilai sebagai berikut : A[4][3] =
{11,12,13,14,15,16,17,18,19,20,21,22}

Dan terdapat array dua dimensi B bertipe integer yang masih kosong sebagai berikut : B[4][3] ={ }

Buatlah kode program bahasa C/C++ untuk mencetak isi array A dan menyalin isi data dari array A[4][3] setelah
ditambahkan dengan nilai 5 ke array B[4][3] menggunakan Operator Pointer sehingga akan tampil keluaran sebagai
berikut :

Soal ini Bersifat Rahasia “Harus Dikembalikan” | FTI- UBL |1


Soal-2 (Materi Fungsi Non-Rekursif Dengan Poin 30)

PT. Budi Luhur Bakery adalah perusahaan dagang yang bergerak dibidang penjualan roti bakery di Jakarta. Setiap
hari perusahaan membutuhkan kurir untuk melayani pengiriman produk kepada pelanggan. Waktu tempuh
pengiriman (W) dihitung berdasarkan parameter inputan P (jumlah pesanan), TL (jumlah traffic light) dan J (jarak
tempuh). Berikut ini adalah rumus untuk menghitung waktu tempuh (W) :

W = 0.48P + 0.23TL + 0.5J

Keterangan :W : Waktu tempuh (dalam menit) P : Jumlah pesananTL: Jumlah Traffic LightJ : Jarak tempuh

Susunlah kode program menggunakan bahasa C/C++ untuk membuat fungsi (Function) bernama “Hitung_Waktu()
dengan cara menginput tiga buah parameter diatas sehingga waktu tempuh pengiriman produk tersebut dapat
diketahui!Berikut ini contoh keluaran program dari hasil eksekusi program :

Soal-4 (Materi Struktur dan File Dengan Poin 40).Diketahui data barang dan data pemesanan memiliki struktur
sebagai berikut :

  Struktur Barang : nama, harga, satuan

  Struktur Pesanan : nomor, jmlpesan, nmproduk(merujuk pada struktur barang) Permintaan :1.
Buatlah kode program dengan bahasa C/C++ menggunakan Struktur dan File untuk menginput nomor
pesanan, jumlah pesanan, nama produk, harga dan satuan, kemudian tampilkanlah total harga dari
pemesanan barang dengan rumus :Totalharga = field harga dari struct barang * field jmlpesan dari struct
pesanan Soal ini Bersifat Rahasia “Harus Dikembalikan” | FTI- UBL |2
Diskon = 3% dari totalharga TotalBayar = totalharga – diskon

Adapun keluaran dari program yang diinginkan adalah sebagai berikut :

2. Kemudian simpanlah hasil keluaran dari program ke dalam file berformat notepad (.txt) dengan nama “jawaban-
uas-A-nim, contoh : jawaban-uas-A-1712502029.Berikut ini adalah contoh data yang tersimpan di dalam
file notepad (txt) :

3. Screenshot kode program dan hasil keluaran / output yang ditampilkan oleh program.

4. Berapakah file berformat notepad yang terbentuk dari hasil ekseksi program diatas.

5. Bukalah file berformat notepad tersebut, kemudian tampilkan isi file tersebut. ~ Selamat Belajar, Selamat
Bekerja, Selamat Berkarya ~

Soal ini Bersifat Rahasia “Harus Dikembalikan” | FTI- UBL |3


JAWABAN NO.1

#include<stdio.h>
main()
{
int I, J, *P;
int A[4][3]={11,12,13,
14,15,16,
17,18,19,
20,21,22};
int B[4][3];

//mencetak array a
printf("\nisi array A\n");
for (I=0; I<4; I++)
{
for(J=0; J<3;J++)
{
B[I][J] = A[I][J] + 5 ;

printf("%5i", A[I][J]);
}
printf("\n\n");
}

// memncetak array B dengan Pointer


for (I=0;I<4;I++){
for(J=0;J<3;J++){
P = &B[I][J];
printf("\n");
printf("\n");
printf (" baris %i kolom %i: ",I,J );
printf ("%i",*P);
}
}
}
Screenshot No.1
JAWABAN NO.2

#include <iostream>
using namespace std;

int hitung_waktu (int jumlah_pesanan ,int jumlah_traffic_light,int jarak_tempuh){


int waktu = 0.48* jumlah_pesanan + 0.23* jumlah_traffic_light + 0.5* jarak_tempuh;
return waktu;
}

int main(){
int P,TL,J,hasil;
cout<<"Program Hitung Waktu Tempuh Pengiriman Produk"<<endl;
cout<<"---------------------------------"<<endl;
cout<<"Masukkan jumlah pesanan :"; cin>>P;
cout<<"Masukkan jumlah traffic light :"; cin>>TL;
cout<<"Masukkan jarak tempuh :"; cin>>J;
hasil = hitung_waktu (P,TL,J);

cout<<"Waktu tempuh yang dibutuhkan <menit> adalah :"<<hasil<<endl;


return 0;
}

Screenshot no.2
Jawaban no.3

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include <iostream>
#include<fstream>

using namespace std;


struct Barang
{
char Nama [100];
int Harga;
char Satuan[15];
};

struct Pesanan
{
int Nomor;
int jmlpesan;
struct Barang nmproduk;
};
Pesanan ps,Barang,nmproduk;
main()
{
int Totalharga;
int Diskon;
int Totalbayar;

printf("Masukan Nomor pesanan = ");scanf("%i",&ps.Nomor);


printf("Masukan Nama Produk = ");scanf("%s",&Barang.nmproduk.Nama);
printf("Masukan Harga = ");scanf("%i", &Barang.nmproduk.Harga);
printf("Masukan Satuan = "); scanf("%s", &Barang.nmproduk.Satuan);
printf("Masukan Jumlah Pesanan = ");scanf("%i",&ps.jmlpesan);
//cetak

Totalharga=Barang.nmproduk.Harga*ps.jmlpesan;printf("\nTotal Harga adalah =%i",Totalharga);


Diskon=(3*Totalharga)/100;printf("\nDiskon adalah =%i",Diskon);
Totalbayar=Totalharga-Diskon;printf("\nDiskon adalah =%i",Totalbayar);

ofstream myfile1;
//membuka file,
//jika file tidak ditemukan maka file akan otomatis dibuat
myfile1.open("Jawaban-UAS-A-2011520224.txt", ios::app);
//fail() -> untuk memeriksa suatu kesalahan pada operasi file
if(!myfile1.fail()) {
//menulis ke dalam file
myfile1<<"Masukan Nomor pesanan = "<<ps.Nomor<<endl;
myfile1<<"Masukan Nama Produk = "<<Barang.nmproduk.Nama<<endl;
myfile1<<"Masukan Harga = "<<Barang.nmproduk.Harga<<endl;
myfile1<<"Masukan Satuan = "<<Barang.nmproduk.Satuan<<endl;
myfile1<<"Masukan Jumlah Pesanan = "<<ps.jmlpesan<<endl;
myfile1<<"Total Harga = "<<Totalharga<<endl;
myfile1<<"Diskon = "<<Diskon<<endl;
myfile1<<"Total Bayar = "<<Totalbayar<<endl;
myfile1.close(); //menutup file
cout<<"\nText telah ditulis ke dalam File"<<endl;
} else {
cout<<"\nFile tidak ditemukan"<<endl;
}

Screenshot no.3

Anda mungkin juga menyukai