UAS Susulan KU1072/Pengenalan Teknologi Informasi B Tanggal: 23 Desember 2015 Waktu: 120 menit Halaman 1 dari 10
NIM: _____________________________ _________________________________ ____ Nama: _________________________________ Kelas: _______________________________ _________________________________ __
UJIAN AKHIR SEMESTER (SUSULAN) KU1072/PENGENALAN TEKNOLOGI INFORMASI B SEM. 1 2015/2016
HARI, TANGGAL : RABU, 23 DESEMBER 2015 SIFAT UJIAN
: INDIVIDUAL DAN CLOSED BOOK
DURASI
: 120 MENIT
BAHASA
: C++
FAK./SEK.
: SITH (REKAYASA), (REKAYASA), FTSL, FTMD (kecuali Kelas 16)
BACALAH PETUNJUK INI SEBELUM UJIAN DIMULAI : 1.
JANGAN BUKA HALAMAN BERIKUTNYA SEBELUM UJIAN DIMULAI!
2.
SETELAH UJIAN DIMULAI: a.
Cek apakah Anda sudah mendapatkan 10 lembar soal (termasuk lembar ini) yaitu dari halaman 1 s.d. 10. Jika Anda tidak mendapatkan lembar yang benar, tukarkan kepada pengawas. pengawas. b. Lembar soal adalah sekaligus lembar l embar jawaban. Tidak disediakan lembar jawaban terpisah. c. Tuliskan NIM, Nama, dan Kelas, pada tiap lembar soal pada tempat di pojok kanan atas. d. Baca dulu semua soal berikut semua petunjuknya sebelum mengerjakan. Baca semua instruksi dengan sebaik-baiknya. e. Kerjakan dulu soal yang Anda anggap mudah. f. Tuliskan jawaban soal pada tempat-tempat yang disediakan sesuai instruksi soal. Jika Anda membutuhkan tambahan tempat untuk menjawab, gunakan halaman-halaman kosong yang ada pada lembar soal sesuai petunjuk dan j angan lupa menuliskan nomor soal dengan jelas. Ji ka Anda membutuhkan lembar corat-coret, gunakan juga halaman-halaman kosong yang tersisa pada pada lembar soal. 3. Tidak ada pertanyaan untuk semua soal. Buat asumsi sendiri jika ada soal yang menurut Anda tidak jelas dan tuliskan asumsi Anda bersama jawaban Anda.
SELAMAT MENGERJAKAN. SEMOGA SUKSES.
UAS Susulan KU1072/Pengenalan Teknologi Informasi B Tanggal: 23 Desember 2015 Waktu: 120 menit Halaman 2 dari 10
NIM: _________________________________ Nama: _________________________________ Kelas: _________________________________
Soal 1. Pengantar Teknologi Informasi [Bobot : 25%] Petunjuk: Beri lingkaran (O) pada huruf pilihan yang benar dan beri tanda silang (X) pada huruf untuk pilihan jawaban yang salah sesuai pernyataan/pertanyaan. Dalam satu nomor, semua kombinasi dimungkinkan, termasuk benar semua dan salah semua. Tidak ada pengurangan untuk jawaban yang tidak tepat. Contoh cara menjawab: Dalam kamus suatu program kita dapat mendeklarasikan: a. Variabel b. Instruksi pengulangan c. Instruksi input/output d. Konstanta
Contoh cara mengoreksi jawaban: Dalam kamus suatu program kita dapat mendeklarasikan: a. Variabel b. Instruksi pengulangan c. Instruksi input/output d. Konstanta
1.
Yang merupakan jenis memory dalam komputer adalah: a. ROM c. Flash Memory b. CMOS d. Clash Memory
2.
Manakah yang merupakan operasi dasar komputer? a. Membuka kode enkripsi. b. Menerima input dari dunia luar melalui perangkat input. c. Melakukan operasi aritmatika dan logika terhadap informasi. d. Merakit game.
3.
Manakah yang benar? a. 1 MB = 1000 KB b. 1024 byte = 1 KB
c. d.
1 byte = 8 bit 1 character = 1 byte
4.
Yang merupakan contoh protokol pada jaringan komputer adalah: a. HTTP c. HP b. FTP d. TCP
5.
Manakah yang termasuk perangkat lunak sistem? a. Pengolah kata c. b. Antivirus d.
Game Sistem operasi
6.
Pengaruh penggunaan teknologi komputer pada sektor publishing adalah: a. Wartawan mendapatkan fakta-fakta melalui internet. b. Menulis dan mengedit berita di lokasi dan mengirimkan ke redaktur melalui internet. c. Penggunaan software untuk membuat/mengedit gambar dan tabel. d. Polling terhadap isu-isu politik dapat dilakukan melalui internet.
7.
Istilah yang digunakan untuk kegiatan memonitor tanda-tanda vital pasien d an 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” ad alah: a. Mengontrol kualitas pekerja manusia. b. Memantau selera konsumen. c. Tracking inventori secara langsung. d. Mengatur waktu pemasangan bagian-bagian produk.
9.
Fungsi utama dalam perangkat lunak pengolah kata adalah: a. Pemeriksaan kesalahan ejaan pada dokumen. b. Modifikasi teks. c. Membuat animasi. d. Memberikan formula standar untuk perhitungan statistik.
UAS Susulan KU1072/Pengenalan Teknologi Informasi B Tanggal: 23 Desember 2015 Waktu: 120 menit Halaman 3 dari 10
NIM: _________________________________ Nama: _________________________________ Kelas: _________________________________
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. 11. Yang termasuk cara berinternet yang sehat adalah: a. Membuka dengan bebas link , mail , pop-up, iklan, dll. yang tampak menarik. b. Memberikan informasi pribadi pada situs media sosial apa pun karena itu adalah hak. c. Posting gambar dan video pribadi, tidak perlu peduli bagaimana orang lain akan menggunakannya. d. Tidak perlu terlalu sibuk mengamankan diri dengan memasang antivirus atau personal firewall karena tidak banyak situs internet yang berbahaya. 12. Yang merupakan perangkat lunak yang dapat digunakan untuk sabotase adalah: a. Malware c. Trojan horse b. Virus d. Smadav 13. Yang termasuk tindakan tidak layak di media sosial adalah: a. Mem- posting sesuatu yang melanggar hukum. b. Memakai bahasa yang sopan, baik untuk pesan pribadi maupun untuk umum. c. Menulis status yang tidak baik tentang seseorang yang menurut kita memang layak menerimanya. d. Sharing mp3 lagu yang di-download hanya untuk pemakaian pribadi, hanya ke teman-teman terdekat dan terpercaya. 14. Yang disebut edutainment adalah: a. Mengombinasikan pendidikan dengan hiburan. b. Mengombinasikan kedokteran dengan kehidupan sosial. c. Mengombinasikan kehidupan sosial dengan hiburan. d. Mengombinasikan pendidikan dengan kehidupan sosial. 15. Aturan-aturan di bawah ini yang ada pada netiquette adalah: a. Flamming (memanas-manasi), trolling (keluar dari topik pembicaraan), atau pun junking (memasang post yang tidak berguna) saat berforum. b. Meyakinkan bahwa apa pun yang kita unggah di internet adalah sesuatu yang tidak akan pernah kita sesali di kemudian hari. c. Mengunggah/menggunakan karya orang lain tanpa menyebutkan pencipta aslinya. d. Tidak berkomentar dengan buruk di media sosial tentang orang/kelompok lain supaya orang lain juga tidak berkomentar buruk tentang diri kita. 16. Saran yang benar terhadap pengiriman e-mail adalah: a. Subject tidak wajib diisi, boleh dikosongkan kalau isi e-mail pendek. b. Tidak perlu mencantumkan nama dalam signature, karena sudah jelas dari alamat e-mail pengirim. c. Signature harus diperhatikan (maksimum 4 baris, identitas jelas). Body e-mail dipisahkan dari signature dengan “--” diikuti “return”. d. Perhatikan “thread ” e-mail dan mulai topik baru dengan mengkomposisi e-mail baru.
UAS Susulan KU1072/Pengenalan Teknologi Informasi B Tanggal: 23 Desember 2015 Waktu: 120 menit Halaman 4 dari 10
NIM: _________________________________ Nama: _________________________________ Kelas: _________________________________
Soal 2. Hasil Eksekusi Program [Bobot : 25%] Petunjuk Soal 2.a. s.d. Soal 2.d. Tuliskan keluaran (apa yang tercetak di layar) dari program-program di bawah ini pada kotak kosong di samping kanan program. Semua komentar program sengaja dihilangkan. Program-program di bawah ini sudah dipastikan lolos kompilasi. No. 2.a.
Program #include using namespace std;
typedef struct { int dd; int mm; int yy; } TTgl; int main () { TTgl T; int d, m, y; d = 12; m = 12; y = 2000; if (y <= 0 || m < 1 || m > 12 || d < 1 || d > 31) { cout << "Tidak valid" << endl; } else { if ((y % 400 == 0) || (y % 100 != 0 && y % 4 == 0)) { cout << "Tahun kabisat"; if (y % 400 == 0) { cout << " abad"; } cout << endl; } else { cout << "Bukan tahun kabisat" << endl; } T.dd = d; T.mm = m; T.yy = y; cout << T.dd << "/" << T.mm << "/" << T.yy << endl; } return 0; 2.b.
} #include using namespace std; int main () { const int ganjil = 3; const int genap = 2; int i, y, sum; bool found; i = 100; found = false; sum = 0; while (i > 0 && found == false) { cout << i << " " << sum << endl; if (i % 10 == 0) { sum = sum + genap; } else { sum = sum + ganjil; } if (sum >= 20) { found = true; } else { i++; } } return 0; }
Keluaran
UAS Susulan KU1072/Pengenalan Teknologi Informasi B Tanggal: 23 Desember 2015 Waktu: 120 menit Halaman 5 dari 10 No. 2.c.
Program #include using namespace std;
int FF (int x); void PP (int s); int main () { int i, sum; i = -5; sum = 1; while (i <= 10) { PP(i); if (FF(i) > 1) { sum = sum + 1; } else { sum = sum + 2; } i = i + 3; } PP(sum); return 0; } int FF (int x) { if (x % 2 == 0) { return 5; } else { return 0; } } void PP (int s) { cout << s << endl; } 2.d.
#include using namespace std; int main () { int M[5][5]; int NBrs, NKol; int i, j; NBrs = 5; NKol = 5; for (i=0; i
NIM: _________________________________ Nama: _________________________________ Kelas: _________________________________ Keluaran
UAS Susulan KU1072/Pengenalan Teknologi Informasi B Tanggal: 23 Desember 2015 Waktu: 120 menit Halaman 6 dari 10
NIM: _________________________________ Nama: _________________________________ Kelas: _________________________________
Petunjuk Soal 2.e. Semua komentar program sengaja dihilangkan. Program-program di bawah ini sudah dipastikan lolos kompilasi. Jika isi file nilai1.dat adalah sbb.:
100 50 90 40 80 30 70 20 60 10 0 100 90 Maka tuliskan apa yang diisikan ke file nilai2.dat dan apa yang muncul di layar/monitor berdasarkan program berikut ini: No. 2.e.
Program #include #include using namespace std;
int main() { ifstream infile; ofstream outfile; int sum, i, count; int Nilai[10]; infile.open("nilai1.dat"); outfile.open("nilai2.dat"); 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; }
Isi nilai2.dat
Keluaran di Layar
UAS Susulan KU1072/Pengenalan Teknologi Informasi B Tanggal: 23 Desember 2015 Waktu: 120 menit Halaman 7 dari 10
NIM: _________________________________ Nama: _________________________________ Kelas: _________________________________
Soal 3. Temperatur Kota dalam Sebulan [Bobot : 25%] 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 72 74 62 56 66 65 59 61 69 74 69 66
Asumsikan bahwa file temperatur.dat tidak pernah kosong dan banyaknya data tidak pernah lebih dari 31, lengkapilah kerangka program di bawah ini, termasuk melengkapi fungsi/prosedur yang tersedia, yang melakukan beberapa hal di bawah ini: 1. Membaca isi file temperatur.dat dan menuliskan isinya ke dalam array of integer bernama TempF (dengan nilai efektif sebesar Neff1 dan ukuran maksimum sebeasar NMax = 31). 2. Menghitung dan menampilkan rata-rata temperatur dengan memanfaatkan prosedur HitungRerata (lihat spesifikasi di bawah). 3. Mengkonversi nilai temperatur dalam derajat Fahrenheit ke derajat Kelvin dan menyimpan hasilnya dalam sebuah array of float bernama TempK (dengan nilai efektif sebesar Neff2 dan ukuran maksimum sebeasar NMax = 31). Untuk melakukan hal ini, gunakan fungsi KonversiFKeK yang digunakan untuk mengkonversi sebuah nilai temperatur dalam derajat Fahrenheit, misalnya T F, menjadi derajat Kelvin, misalnya T K , dengan memanfaatkan rumus: T K = (TF + 459.67) * 5/9 4. Menampilkan isi TempK ke layar. Jika masih kurang, gunakan halaman kosong di balik hlm. 7-9 dengan memberikan keterangan yang jelas.
68 58 64 66 57
// // // // //
Program TemperaturKota Menerima masukan data temperatur kota dalam sebulan (dalam derajat Fahrenheit) yang disimpan dalam file of integer temp.dat, memindahkan isi file dalam array of integer, menghitung rata-ratanya, mengkonversi suhu ke derajat Kelvin dan menampilkan suhu dalam derajat Kelvin
68 62 59 73 61 61 57 58
#include #include using namespace std;
// Konstanta const int NMax = 31;
// Deklarasi Prosedur/Fungsi void HitungRerata (int Tab[NMax], int Neff, float * rerata);
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
57 67
Menghitung rata-data nilai yang disimpan dalam Tab (dengan nilai efektif Neff) dan menyimpannya dalam variabel rerata I.S.: Tab dan Neff terdefinisi, tidak kosong F.S.: rerata berisi rata-rata nilai-nilai yang tersimpan dalam Tab
// 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 // Tuliskan di bawah ini: Deklarasi variabel-variabel lain yang dibutuhkan
…………………………………………………………………………………………………………………………………………………………………………………………………………………
UAS Susulan KU1072/Pengenalan Teknologi Informasi B Tanggal: 23 Desember 2015 Waktu: 120 menit Halaman 8 dari 10
NIM: _________________________________ Nama: _________________________________ Kelas: _________________________________
// 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.
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… // 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. cout << "Temperatur rata-rata dalam derajat Fahrenheit = ";
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… // 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. cout << "Temperatur harian dalam derajat Kelvin = ";
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… return 0; }
UAS Susulan KU1072/Pengenalan Teknologi Informasi B Tanggal: 23 Desember 2015 Waktu: 120 menit Halaman 9 dari 10
NIM: _________________________________ Nama: _________________________________ Kelas: _________________________________
// Tuliskan kode implementasi prosedur HitungRerata dan fungsi KonversiFKeK berdasarkan // spesifikasi di bawah ini pada tempat yang disediakan void HitungRerata (int Tab[NMax], int Neff, float * rerata) {
// // // //
Menghitung rata-data nilai yang disimpan dalam Tab (dengan nilai efektif Neff) dan menyimpannya dalam variabel rerata I.S.: Tab dan Neff terdefinisi, tidak kosong F.S.: rerata berisi rata-rata nilai-nilai yang tersimpan dalam Tab
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… } float KonversiFKeK (int TF) {
// Menghasilkan konversi nilai temperatur F dalam derajat Fahrenheit ke derajat Kelvin // berdasarkan rumus: TK = (TF + 459.67) * 5/9
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… }
UAS Susulan KU1072/Pengenalan Teknologi Informasi B Tanggal: 23 Desember 2015 Waktu: 120 menit Halaman 10 dari 10
NIM: _________________________________ Nama: _________________________________ Kelas: _________________________________
Soal 4. XO Game [Bobot : 25%] XO Game adalah sebuah game yang menggunakan matriks of character 3x3 *) dan dimainkan oleh 2 orang. Satu orang mengisi elemen matriks dengan huruf X dan lawannya mengisi elemen matriks dengan huruf O secara bergantian. Elemen yang kosong ditandai dengan ‘ ‘ (spasi/blank). Berikut ini contoh ilustrasi matriks dalam XO Game:
X
O
O
X
O
O
O X
(1)
(2)
X (3)
X O X
O O X
X O O
X O X
(4)
Buatlah sebuah program untuk: a. Mendeklarasikan dan mengisi matriks of character 3x3 dengan ‘ ‘ (spasi/blank). Gunakan instruksi looping . b. Mengisi matriks dengan menerima input dari keyboard (pengguna) berupa huruf ‘X’, ‘O’, atau ‘#’ (asumsikan bahwa masukan hanya 3 huruf ini, tidak mungkin yang lain, sehingga tidak perlu diperiksa kebenarannya). Jika masukan huruf adalah ‘X’ atau ‘O’, maka program dilanjutkan dengan membaca indeks baris, misalnya i, dan indeks kolom, misalnya j, di mana huruf tersebut akan diletakkan dan mengisi elemen matriks ke [i,j] dengan huruf yang bersangkutan. Selanjutnya pemasukan huruf diulangi lagi dari awal (lihat contoh di bawah). Jika pemasukan elemen pada indeks baris dan kolom yang sudah pernah diisi, diisi ulang, maka nilai yang disimpan adalah yang terakhir dimasukkan pengguna. Jika masukan huruf adalah ‘#’, maka pemasukan data matriks dihentikan. c. Memeriksa apa matriks sudah penuh atau tidak. Matriks disebut penuh adalah matriks yang tidak lagi mengandung spasi (atau dengan kata lain, semua elemen matriks berisi nilai ‘X’ atau ‘O’) . Jika matriks penuh, maka isi matriks ditampilkan ke layar (lihat contoh di bawah ). Jika matriks belum penuh, maka dituliskan pesan “Matriks belum penuh”.
*) 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]. Input X 0 2 O 1 1 # X 0 2 X 1 1 O 0 0 O 1 2 O 1 1 O 1 0 X 0 1 X 2 0 X 2 2 O 2 1 #
Output Matriks belum penuh
Keterangan Sesuai dengan contoh ilustrasi matriks no. 1 di atas.
O X X O O O X O X
Sesuai dengan contoh ilustrasi matriks no. 4 di atas. Matriks penuh, dengan demikian ditampilkan isinya. Elemen matriks [1,1] diisi 2 kali, yang disimpan adalah yang terakhir dimasukkan.
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).