SOLUSI
UJIAN AKHIR SEMESTER
KU1072/PENGENALAN TEKNOLOGI INFORMASI B
SEM. 1 2015/2016
7. Istilah yang digunakan untuk kegiatan memonitor tanda-tanda vital pasien dan dokter memantau melalui data yang
dikirimkan via internet adalah:
a. Telekinesis c. Television
b. Telecommuting d. Telemedicine
8. Yang bukan merupakan peran komputer dalam “The Automated Factory” adalah:
a. Mengontrol kualitas pekerja manusia.
b. Memantau selera konsumen.
c. Tracking inventori secara langsung.
d. Mengatur waktu pemasangan bagian-bagian produk.
10. Cara-cara untuk menghindari kekerasan dan kecanduan terhadap teknologi informasi adalah:
a. Sering berkumpul-kumpul di warnet.
b. Menggunakan filtering software untuk konten di internet (khususnya untuk anak-anak).
c. Bergaul dengan teman-teman secara fisik, bukan hanya teman virtual.
d. Mengikuti berbagai kegiatan-kegiatan sosial, seperti unit kegiatan, himpunan, klub, dll.
12. Yang merupakan perangkat lunak yang dapat digunakan untuk sabotase adalah:
a. Malware c. Trojan horse
b. Virus d. Smadav
100
50
90
40
80
30
70
20
60
10
UAS KU1072/Pengenalan Teknologi Informasi B RUBRIK PENILAIAN
Tanggal: 19 Desember 2015
Halaman 6 dari 15
0
100
90
Maka tuliskan apa yang diisikan ke file nilai2.dat dan apa yang muncul di layar/monitor berdasarkan program berikut
ini:
if (infile.eof()) {
cout << "File kosong" << endl;
} else {
for (i=0; i<10; i++) {
infile >> Nilai[i];
cout << Nilai[i] << endl;
}
sum = 0;
count = 0;
for (i=0; i<10; i++) {
if (Nilai[i] > 50) {
sum = sum + Nilai[i];
count++;
outfile << Nilai[i] << endl;
}
}
cout << sum << endl;
cout << count << endl;
}
outfile.close();
infile.close();
return 0;
}
UAS KU1072/Pengenalan Teknologi Informasi B RUBRIK PENILAIAN
Tanggal: 19 Desember 2015
Halaman 7 dari 15
Sebuah program digunakan untuk mengolah hasil pemantauan temperatur suatu kota dalam 1 bulan. Jumlah hari dalam 1
bulan bervariasi antara 28 s.d. 31 hari. Sebagai contoh, hasil pemantauan temperatur kota New York dalam derajat
Fahrenheit pada suatu bulan Mei dari tanggal 1 s.d. 31 disimpan dalam sebuah file of integer bernama temperatur.dat
sebagai berikut:
67 Asumsikan bahwa file temperatur.dat tidak pernah kosong dan banyaknya data tidak pernah lebih dari 31,
72 lengkapilah kerangka program di bawah ini, termasuk melengkapi fungsi/prosedur yang tersedia, yang
melakukan beberapa hal di bawah ini:
74 1. Membaca isi file temperatur.dat dan menuliskan isinya ke dalam array of integer bernama TempF
62 (dengan nilai efektif sebesar Neff1 dan ukuran maksimum sebeasar NMax = 31).
56 2. Menghitung dan menampilkan rata-rata temperatur dengan memanfaatkan prosedur HitungRerata
66 (lihat spesifikasi di bawah).
3. Mengkonversi nilai temperatur dalam derajat Fahrenheit ke derajat Kelvin dan menyimpan hasilnya
65
dalam sebuah array of float bernama TempK (dengan nilai efektif sebesar Neff2 dan ukuran
59 maksimum sebeasar NMax = 31). Untuk melakukan hal ini, gunakan fungsi KonversiFKeK yang
61 digunakan untuk mengkonversi sebuah nilai temperatur dalam derajat Fahrenheit, misalnya TF,
69 menjadi derajat Kelvin, misalnya TK, dengan memanfaatkan rumus: TK = (TF + 459.67) * 5/9
74 4. Menampilkan isi TempK ke layar.
69 Jika masih kurang, gunakan halaman kosong di balik hlm. 7-9 dengan memberikan keterangan yang
66 jelas.
68
58 // Program TemperaturKota
64 // Menerima masukan data temperatur kota dalam sebulan (dalam derajat Fahrenheit)
66 // yang disimpan dalam file of integer temp.dat,
// memindahkan isi file dalam array of integer, menghitung rata-ratanya,
57 // mengkonversi suhu ke derajat Kelvin dan menampilkan suhu dalam derajat Kelvin
68
#include <iostream>
62 #include <fstream>
59 using namespace std;
73
// Konstanta
61 const int NMax = 31;
61
// Deklarasi Prosedur/Fungsi
57
58 void HitungRerata (int Tab[NMax], int Neff, float * rerata);
// Menghitung rata-data nilai yang disimpan dalam Tab (dengan nilai efektif Neff) dan
57 // menyimpannya dalam variabel rerata
67 // I.S.: Tab dan Neff terdefinisi, tidak kosong
// F.S.: rerata berisi rata-rata nilai-nilai yang tersimpan dalam Tab
81
79 float KonversiFKeK (int TF);
76 // Menghasilkan konversi nilai temperatur F dalam derajat Fahrenheit ke derajat
// Kelvin berdasarkan rumus: TK = (TF + 459.67) * 5/9
// PROGRAM UTAMA
int main () {
// KAMUS
// Deklarasi array TempF dan TempK, berikut nilai efektifnya
int TempF[NMax]; int Neff1; // Neff1 adalah nilai efektif TempF;
// Jika Neff1=0, berarti TempF kosong
float TempK[NMax]; int Neff2; // Neff2 adalah nilai efektif TempK;
// Jika Neff2=0, berarti TempK kosong
// ALGORITMA
// Tuliskan di bawah ini: Bagian program untuk membuka dan membaca isi file temperatur.dat
// dan memindahkan setiap integer ke dalam array of integer TempF dengan nilai efektif
// sebesar Neff1. Jangan lupa untuk menutup file.
infile.open("temperatur.dat");
i = 0;
while (infile >> data) {
TempF[i] = data;
i++;
}
Neff1 = i;
infile.close();
// Tuliskan di bawah ini: Bagian program untuk menghitung rata-rata temperatur dalam
// derajat Fahrenheit berdasarakan isi TempF (dengan nilai efektif Neff1) dan simpan
// hasilnya dalam suatu variabel, lalu tuliskan hasilnya ke layar.
// Gunakan prosedur HitungRerata.
// Tuliskan di bawah ini: Bagian program untuk mengkonversi nilai temperatur dalam TempF ke
// derajat Kelvin dan menyimpan hasilnya dalam sebuah array of float bernama TempK (dengan
// nilai efektif sebesar Neff2). Gunakan fungsi KonversiFKeK.
// Tuliskan di bawah ini: Bagian program untuk mencetak semua isi elemen array TempK
// (dengan nilai efektif Neff2) ke layar. Format pencetakan bebas.
return 0;
}
// Tuliskan kode implementasi prosedur HitungRerata dan fungsi KonversiFKeK berdasarkan
// spesifikasi di bawah ini pada tempat yang disediakan
// KAMUS
int i, sum;
// ALGORITMA
sum = 0;
for (i = 0; i < Neff; i++) {
sum = sum + Tab[i];
}
*rerata = (float)sum/(float)Neff;
}
UAS KU1072/Pengenalan Teknologi Informasi B RUBRIK PENILAIAN
Tanggal: 19 Desember 2015
Halaman 9 dari 15
// KAMUS LOKAL
// ALGORITMA
return ((TF + 459.67) * 5/9);
}
X O X O X O X X
O O O O O O O
X X X X O X
(1) (2) (3) (4)
*) Deklarasikan matriks sebagai array 2 dimensi 3x3 (dalam persoalan ini tidak akan ada array dengan ukuran lain).
Dengan demikian indeks baris adalah [0..2] dan indeks kolom adalah [0..2].
a. Buatlah flowchart untuk persoalan di atas (flowchart boleh tidak detil, yang penting menggambarkan penyelesaian
persoalan dengan jelas). Lengkapi flowchart dengan kamus dan penjelasan-penjelasan yang diperlukan.
b. Buatlah program untuk persoalan di atas dalam Bahasa C++. Program yang dibuat harus merupakan program
lengkap yang mengandung judul, spesifikasi, kamus, dan algoritma dan harus sesuai dengan flowchart.
Tuliskan jawaban pada sisa halaman ini dan di halaman kosong baliknya. Jika masih kurang, gunakan halaman
kosong di balik halaman 1-4 (jangan lupa menuliskan nomor soal dengan jelas).
UAS KU1072/Pengenalan Teknologi Informasi B RUBRIK PENILAIAN
Tanggal: 19 Desember 2015
Halaman 11 dari 15
ALTERNATIF SOLUSI
Flowchart:
Memeriksa apakah M
penuh atau tidak
true false
M
Selesai
Algoritma - Detil
UAS KU1072/Pengenalan Teknologi Informasi B RUBRIK PENILAIAN
Tanggal: 19 Desember 2015
Halaman 12 dari 15
Mulai
Penelusuran
i = 0
per baris M
false
i < 3
true
Penelusuran
per kolom M j = 0
false
j < 3
true
true false
M
M[i][j] = ‘ ’
j = j + 1
i = i + 1
Input elemen M
input(CC
)
false
CC !=
true
input(i,j
)
M[i][j] = CC
input(CC
)
A
UAS KU1072/Pengenalan Teknologi Informasi B RUBRIK PENILAIAN
Tanggal: 19 Desember 2015
Halaman 13 dari 15
ispenuh==tr false
ue && i<3
true
Pencarian
per kolom M j = 0
ispenuh==tru false
e && j<3
j = j + 1
true
false
M[i][j]==‘
true
ispenuh = false
false
ispenuh==tr
true
i = i + 1
true false
ispenuh==tr
Output
B (“Matriks
belum
h”)
C Selesai
UAS KU1072/Pengenalan Teknologi Informasi B RUBRIK PENILAIAN
Tanggal: 19 Desember 2015
Halaman 14 dari 15
Penelusuran
i = 0
per baris M
i < 3
false
true
Penelusuran
per kolom M j = 0
false
j < 3
true
true false
M
output(M[i][j])
j = j + 1
i = i + 1
C
Catatan Alternatif Solusi:
- Tingkat kedetilan algoritma dengan flowchart bisa bervariasi (tidak harus seglobal/sedetil contoh di atas). Yang
penting dapat menggambarkan proses yang ada dengan urutan yang benar.
- Alternatif solusi termasuk: penggunaan fungsi/prosedur dan pemanfaatan jenis loop yang berbeda.
- Alternatif untuk algoritma pencarian (searching) untuk menyatakan M penuh atau tidak adalah dengan
memanfaatkan teknik counting (menghitung berapa banyak elemen M yang X/O atau berapa banyak yang spasi,
sebagaimana dibahas di kuliah).
UAS KU1072/Pengenalan Teknologi Informasi B RUBRIK PENILAIAN
Tanggal: 19 Desember 2015
Halaman 15 dari 15
Soal 4b
Alternatif Program C++ (Berdasarkan Flowchart Detil)
// Program XOGame
// Mendeklarasikan sebuah matriks of char 3x3
// Mengisi matriks dengan nilai X atau O berdasarkan masukan pengguna
// Pembacaan dihentikan jika pengguna memasukkan #
// Jika matriks penuh, dituliskan isi matriks.
// Jika matriks belum penuh, dituliskan pesan "Matriks belum penuh"
#include <iostream>
using namespace std;
int main () {
// KAMUS
char M[3][3];
char cc;
bool ispenuh;
int i, j;
// ALGORITMA
// Inisialisasi matriks dengan space
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
M[i][j] = ' ';
}
}
return 0;
}