SEKOLAH TINGGI TINGGI TEKNOLOGI TEKNOLOGI INFORMASI INFORMASI NIIT ITECH
UJIAN TENGAH SEMESTER SEMEST ER GENAP TAHUN A KA DEMIK DEMIK 20XX
MATA KULIAH/SKS WAKTU SIFAT Dosen Petunjuk umum :
: : : :
Struktur Data / 3 sks 120 MENIT Open Note Ir. Nixon Erzed, MT
Kerjakan semua nomor soal sebaik-baiknya
Soal : 1. Dinas Perhubungan Perhubungan menetapkan menetapkan kode trayek metromini metromini dengan 1 huruf huruf dan 2 atau 3 digit digit bilangan, misalnya : 69 69 untuk trayek metromini yang terdaftar di wilayah S elatan elatan dengan nomor trayek 610 (Blok S M –Pondok Labu), B 92 untuk trayek yang terdaftar di wilayah B arat dengan nomor trayek 92 (Grogol-Cileduk), P 26 26 untuk wilayah P usat usat dengan nomor trayek 26, U 52 52 untuk wilayah U tara tara dengan nomor trayek 52. Data trayek tersebut ingin diolah dengan sebuah array yang berisikan data kode trayek dan jumlah armada armada pada trayek tersebut. tersebut. a. Definisikan objek-objek objek-objek yang merepresentasikan merepresentasikan persoalan, persoalan, identifikasi type data yang diperlukan, diperlukan, & sajikan TDA nya b. Deklarasikan type dan struktur struktur data berbasis berbasis array untuk merepresentasikan merepresentasikan persoalan persoalan c. deklarasikan fungsi untuk untuk mengetahui jumlah armada disuatu disuatu trayek d. deklarasikan fungsi untuk menghitung menghitung total jumlah armada disuatu disuatu wilayah 2. Diberikan sebuah fungsi sebagai berikut Function Soal2 ( x : ) : integer; Var i : integer Begin Soal2 := 0 i := 1
a. Sebutkan type data yang cocok untuk parameter X, jelaskan alasannya b. Jelaskan apa yang dilakukan pada loop While A [ i ] <> 9999 ………
While A [ i ] <> 9999 do begin if A [ i ] < x then Soal2 := Soal2 + 1 end-if i := i + 1 end-while
c. Sajikanlah hasil eksekusi function f unction tersebut jika array A [ i ] diisi dengan nomor 8 huruf pertama dari nama anda, dan x = 5
Write (Soal6) end-function 3. Dimiliki sebuah array bertype char (huruf) dengan 100 elemen, array mengimplementasikan mengimplement asikan sentinel ‘#” untuk menandai akhir data. Penambahan data. Penambahan data kedalam array selalu dilakukan sebagai data terakhir. Jika terjadi penghapusan suatu data maka data yang dibelakangnya akan digeser a. Deklarasikan Deklarasika n variabel array yang sesuai b. Deklarasikan Deklarasika n prosedur untuk menambah huruf baru kedalam array c. Buatlah sebuah loop menggunakan struktur while untuk mencari apakah ada hurf Q pada array d. Buatlah sebuah loop untuk menghitung jumlah huruf X pada array e. Buatlah sebuah loop untuk menghapus huruf M pertama yang ditemukan
4. Dimiliki sebuah tabel penghuni perumahan, yang mengacu ke pada unit rumah, setiap rumah memiliki hanya satu kepala keluarga dan beberapa orang anggota keluarga. Tabel tersebut juga mendata jumlah penghuni berdasarkan kelompok usia, yaitu kelompok tua (usia > 50tahun) kelompok dewasa (20 < usia < 50) dan kelompok anak (usia ≤ 20 th). Hanya kepala keluarga yang namanya tercantum ditabel tersebut. Perumahan tersebut terdiri dari 4 blok yang diberi simbol A, B, C, D dan setiap blok selalu terdiri dari 12 rumah a. Definisikan objek-objek yang merepresentasikan persoalan, identifikasi type data yang diperlukan, & sajikan TDA nya b. Deklarasikan type dan struktur data untuk merepresentasikan persoalan tsb. c. Deklarasikan suatu fungsi untuk mengetahui nama kepala keluarga disebuah unit rumah d. Deklarasikan suatu fungsi untuk menghitung jumlah anak-anak dikompleks tersebut e. Deklarasikan suatu fungsi untuk menghitung jumlah penghuni setiap blok dan menghitung jumlah penghuni diseluruh perumah. 5. Diberikan suatu procedure XYZ sebagai berikut : Procedure XYZ Var j, k, n : integer Data_baru : Integer
Eksekusilah procedur XYZ tersebut jika diberikan masukan 5 data baru sebagai berikut :
BEGIN
n 1 baca (data_baru)
A [ n ]
17 21 12 50 60 (anda dapat menggunakan suatu tabel penelusuran )
data_baru
While masih_ada_data_baru do
Begin
a. Sajikan hasil ekekusi pada array A [ i ] setiap dibaca satu data masukan
k 1 baca(data_baru)
A[i]
posisi false while k n and n o t p o s i s i do begin if A [k] > data_baru then posisi
(Gambarkan 1 array per pembacaan 1 data)
t r u e
L OOP A
end-if k k +1 end-while
c. Jelaskan apa yang dilakukan pada kondisi POSISI jika posisi = true
if posisi
then k k-1 j n For I k to n do Begin A[j+1] A[ j ] j j – 1 end-for A [ k ]
data_baru
Else A [ k ] End-if
data baru
n n +1 end-while END – Procedur e XYZ
b. Jelaskan apa yang dilakukan pada LOOP A
Kondisi POSI SI
6. Dalam sebuah permainan kartu dengan 4 orang pamain digunakan 2 set kartu remi (kartu Joker tidak digunakan), pada awal permainan setiap pemain mendapat 10 kartu. Setiap mendapat kesempatan main, maka seorang membuang 2 kartu dan mengambil secara acak 2 kartu dari tumpukan. Ingin dibangun aplikasi untuk membagikan kartu secara acak kepada 4 pamain tersebut. a. Definisikan objek-objek yang merepresentasikan persoalan. b. identifikasi type data yang diperlukan, & sajikan TDA nya c. Sesuai dengan struktur data berbasis array yang anda deklarasikan pada soal (a), d. deklarasikan fungsi untuk membagikan kartu awal; 10 kartu per pemain. e. deklarasikan fungsi untuk membagikan 2 kartu berikutnya; 7. Diberikan sebuah fungsi sebagai berikut Function Soal2 ( x : ) : integer; Var i : integer Begin Soal2 := 0 i := 1
a. Sebutkan type data yang cocok untuk parameter X, jelaskan alasannya b. Jelaskan apa yang dilakukan pada loop While A [ i ] <> 9999 ………
While A [ i ] <> 9999 do begin if A [ i ] < x then Soal2 := Soal2 + 1 end-if i := i + 1 end-while
c. Sajikanlah hasil eksekusi function tersebut jika array A [ i ] diisi dengan nomor 8 huruf pertama dari nama anda, dan x = 5
Write (Soal6) end-function
8. Dimiliki sebuah Array A[ i ] dengan panjang 50 elemen yang berisi sekumpulan string[2) huruf/character, dengan sentinel adalah 99. Penambahan data kedalam array selalu dilakukan secara terurut, setiap penghapusan sembarang data maka selalu dilakukan pergeseran a. Deklarasikan variabel array yang sesuaI b. Deklarasikan prosedur untuk menambah data baru kedalam array c. Deklarasikan prosedur untuk menghapus sembarang data dari array d. Buatlah loop menggunakan struktur while untuk melihat apakah ada data “NB” pad a array e. Buatlah sebuah loop untuk menghitung berapa banyak data pada array