Anda di halaman 1dari 20

LABORATORIUM PRAKTIKUM INFORMATIKA

Fakultas Informatika
Universitas Telkom

Ketentuan Tugas Pendahuluan

• Pengerjaan TP DITULIS TANGAN pada buku TP, yaitu buku ukuran B5 dengan sampul berwarna
putih dan cover TP yang telah ditentukan.
• TP dikumpulkan maksimal 26 Februari 2018 Pukul 08.30 WIFLAB di LOKER sesuai kelas masing-
masing.
• Asisten tidak bertanggung jawab terhadap TP yang tidak berada pada tempat yang ditentukan
sebelumnya.
• TP ini bersifat WAJIB.
• Keterlambatan pengumpulan TP maka nilai TP dikurangi 50%.
• Tidak mengerjakan TP maka nilai TP = 0 dan Tes Awal = 0.
• Kerjakan TP dengan jelas agar dapat dimengerti.
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

TUGAS PENDAHULUAN 5 (SOAL)

CLO 1: LINEAR LINKED LIST

KERJAKAN SECARA INDIVIDU

TERUSLAH BERLATIH, JADIKAN BERPIKIR DAN BERLOGIKA SEBUAH KEBIASAAN ,


MAKA KALIAN AKAN MAMPU MENYELESAIKAN MASALAH YANG SULIT

1. Buatlah sebuah Linear Linked List dengan struct infotype yang memiliki atribut sebagai berikut:
 ID: integer
 Name: String
 Group: character
 Age: integer
 Score: float
2. Buatlah prosedur untuk memasukkan data baru ke List dengan aturan sebagai berikut:
 Prosedur akan meminta inputan user untuk semua atribut (ID, Name, Group, Age, dan
SCORE), kemudian prosedur akan mengalokasikan sebuat elemen baru untuk data
tersebut.
 Prosedur akan mengecek apakah ID telah tersedia didalam list, sehingga tidak akan ada
ID yang duplikat di dalam list.
 Prosedur akan memasukkan elemen baru kedalam list sehingga list TERURUT
berdasarkan SCORE.
3. Buatlah sebuah fungsi untuk mencari elemen dengan AGE paling besar(tua) di dalam list
 Fungsi mengembalikan alamat elemen yang memiliki AGE paling besar.
 Jika ada lebih dari satu elemen yang memuat AGE paling besar, maka fungsi akan
mengembalikan elemen yang pertama ditemukan.
 Fungsi mengembalikan nilai NULL jika tidak menemukan nilai yang dicari.
4. Anggaplah hanya terdapat tiga GROUP = [‘A’, ‘B’, dan ‘C’]. Buatlah prosedur untuk
memperlihatkan SCORE AVERAGE dari setiap GROUP yang ada di dalam list
 Contoh:
Jika list memiliki 6 elemen dengan GROUP dan SCORE sebagai berikut:
|C|60| - |A|70| - |C|70| - |B|70| - |A|75| - |A|80|
maka prosedur akan menampilkan :
Average A = 75, Average B = 70, Average C = 65.
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

Berikut merupakan soal beserta jawaban tugas pendahuluan dari modul 1 hingga modul 4 :

Tugas Pendahuluan 1 (BUKAN SOAL)

Ikuti langkah langkah berikut

1. Install codeblock
2. Buatlah proyek c++ baru
3. Buat file header, beri nama hello.h
4. Buat file C/C++ Source, beri nama hello.cpp
5. Ketik kode dibawah ini pada file hello.h
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

6. Ketik kode dibawah ini pada file hello.cpp


LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

7. Ketik kode dibawah ini pada file main.cpp


Ubahlah kode berdasarkan intruksi pada gambar dibawah
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

8. Jalankan proyek diatas, amati hasilnya

9. Perhatikan pertanyaan dibawah, kemudian jawablah

Pertanyaan

1. Jelaskan apa yang dilakukan oleh prosedur greetings! Proses apa yang terjadi dalam prosedur
tersebut?
Jawab : Procedure ini akan mengecek inputan user yaitu nim. Pertama dicek terlebih dahul jika
inputan nim kurang dari 10 karakter maka program mengeluarkan “Wrong input”. Jika 2 digit
pertama nim adalah “13” maka program akan mencetak kata ("hello ",x," from School of
Computing.") dimana x merupakan input nama dari user. Jika tidak maka program akan
mengatakan nim tersebut bukan dari fakultas informatika. Dilanjutkan dengan mengecek digit di
indeks ke 3 dari nim (indeks mulai dari 0), jika 1 maka program mengoutputkan nim tersebut dari
Jurusan informatika, jika 2 maka Jurusan Ilmu komputasi dan jika 3 maka Jurusan Teknologi
Informasi selain itu dioutputkan “… where again ? “. Dilanjutkan dengan outputkan digit pada
indeks ke 6 sampai 10 yang merupakan urutan mahasiswa dengan nim tersebut dan juga tahun
masuk mahasiswa dengan nim tersebut dengan mengambil digit ke 4 dan 5.
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

2. Jelaskan apa yang terjadi dalam prosedur swap_1 dan swap_2! Jelaskan pula mengapa hasilnya
berbeda!
Jawab : Yang terjadi adalah variabel parameter c diubah menjadi b, b diubah menjadi a, dan a
dibuah menjadi c * b+1. Perbedaannya adalah pada swap_2, variabel b dan c sebagai parmeter
input/output, sedangkan pada swap_1 hanya parameter input.
3. Dari prosedur confused, tentukan variabel mana (x1, x2 atau x3) yang ditunjuk oleh pointer pA,
pB, pC, pD dan pE!
Jawab : pA = &x1, pB = &x2, pC = &x2, pD = &x2, pE = &x2
4. Jelaskan apa yang terjadi dalam prosedur remove_inside! Tuliskan detailnya secara bertahap!

Jawab : Prosedur ini berguna untuk menghilangkan isi dari indeks aray sesuai parameter x. di main
program diisi parameter x dengan nilai 5, sehingga indeks aray ke 5 yang akan dihilangkan. Dalam
procedur diinisiasi isi arraynya terlebih dahulu, lalu diinisiasi variabel n dimana
n=sizeof(arr)/sizeof(arr[0]). Kegunaan fungsi sizeof adalah untuk mengukur panjang bit, sehingga
sizeof(arr) akan menghitung perkalian 4 bit memori untuk menyimpan satu nilai integer dengan
jumlah integer yang disimpan pada array. Sedangkan sizeof(arr[0]) akan menghasilkan nilai 4 bit
memori yang dibutuhkan untuk menyimpan satu nilai integer.sehingga variabel n berisi panjang
dari array tersebut.

Dilanjutkan dalam perulangan jika x >0 dan x<n maka dari indeks ke x, akan diisini dengan indeks
x+1, sampai x = n, lalu n akan dikurangi 1, sehingga isi dari indeks ke 5 tadi sudah hilang dari
array.
5. Jelaskan apa yang terjadi dalam prosedur indexing! Tuliskan detailnya secara bertahap!
Jawab : Procedure ini kan mengeluarkan indeks dari hasil penjumlahan variabel parameter
dengan perhitungan x*.4 + y*.35 + z*.25, sehingga jika hasilnya lebih dari 80 akan di outputkan
“A”, jika lebih dari 75 sampai 80 akan dioututkan “AB”, jika lebih dari 70 sampai 75 akan
dioututkan “B”, jika diatas 60 sampai 70 akan dioututkan “BC”, jika diatas 50 sampai 60 akan
dioututkan “C”, jika diatas 40 sampai 50 akan dioututkan “D”,
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

Tugas Pendahuluan 2 (BUKAN SOAL)

Buat seluruh primitif dan spesifikasi untuk mengimplementasikan Single Linked List seperti yang
dijelaskan di modul, seperti berikut:

 Buat tipe data bentukan yang infotypenya adalah integer

 Membuat prosedur Create list


 Membuat fungsi alokasi dan prosedur dealokasi
 Membuat prosedur Print info
 Membuat prosedur Insert First
 Membuat prosedur Delete first

Kerjakan soal di bawah


LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

Soal:

1. Tulis Algoritma untuk mencari nilai ganjil terbesar dan nilai genap terkecil di dalam sebuah
Single Link List!

2. Tulis Algoritma untuk membalikkan Single Link List!


(balikkan semua elemen, bukan hanya nilainya saja. Lihat contoh berikut, bukan hanya nilainya
saja yang dibalik tetapi alamatnya juga)
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

3. Buat prosedur delete first, seperti berikut:

a. Tulis kode dibawah ke main program

b. Buka Task Manager/Activity Monitor


LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

c. Jalankan main program dan amati System Memory Usage pada Task Manager/Activity
Monitor
d. Jalankan main program
e. Amati dan jelaskan apa yang terjadi saat program dijalankan? Kenapa hal tersebut
dapat terjadi?
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

4. Sekarang, ubah kode dari nomor (3), seperti berikut:

Jelakan perbedaannya!
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

Tugas Pendahuluan 3 (BUKAN SOAL)

Anggap anda telah membuat primitif dan spesifikasi untuk implementasi Double Linked List berdasarkan
modul praktikum, seperti:

 Tipe Record dengan infotype integer


Prosedur Create List
 Fungsi Alokasi dan prosedur dealokasi
 Prosedur Print info
 Prosedur insert
 Prosedur delete

Jawablah pertanyaan dibawah ini:

Questions:

1. Kamu memiliki Double Linked List L1 dan L2,


Tuliskan Algoritma untuk mencari angka terbesar yang ada pada kedua List L1 dan L2
a. Contoh :
L1: First – 3 – 6 – 2 – 5 – 8 – 9 – 4 – 1 – Last
L2: First – 5 – 3 – 1 – 3 – 2 – 7 – 6 – Last
b. Algoritma harus mengoutputkan (6), karena (6) adalah angka terbesar yang ada pada
kedua list L1 and L2
c. Algoritma akan mengeluarkan [Kosong] jika tidak ada angka yang memenuhi syarat
d. Algortima harus dapat bekerja tanpa perlu sort pada List
e. Contoh lain:
L1: First – 1 – 2 – 3 – 4 – 5 – Last
L2: First – 5 – 6 – 7 – 8 – 9 – Last
Output: 5
f. L1: First – 3 – 7 – 1 – 5 – 9 – Last
L2: First – 4 – 6 – 2 – Last
Output: Kosong
Jawab :
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

2. Tuliskan Algoritma untuk melakukan INSERTION SORT pada List


a. Tidak sembarang algoritma sort, HARUS berupa INSERTION SORT
b. Gunakanlah prosedur insert-delete yang telah tersedia
c. Lihatlah video dibawah ini untuk ilustrasi implementasi INSERTION SORT dalam Linked
List
link: https://youtu.be/G-i9WpDT6dk

Jawab :
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

3. Tuliskan Algoritma untuk MEMBAGI dua list L dan meletakan setengah list pertama di belakang
list
a. Contoh
List Awal : First – 3 – 6 – 2 – 5 – 8 – 9 – 4 – 1 – Last
List Akhir : First – 8 – 9 – 4 – 1 – 3 – 6 – 2 – 5 – Last
b. Gunakanlah prosedur insert-delete yang telah tersedia

Jawab :
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

Tugas Pendahuluan 4 (BUKAN SOAL)

Anggap anda telah membuat primitif dan spesifikasi untuk implementasi Circular Single Linked List
berdasarkan modul praktikum, seperti:

 Tipe Record dengan Infotype Integer


 Prosedur Create List
 Fungsi Alokasi dan Prosedur Dealokasi
 Prosedur Print Info
 Prosedur Insert dan Delete

Jawablah pertanyaan dibawah ini:

Pertanyaan:

1. Misalkan Anda diberikan 3 Circular Single Linked List L1, L2, dan L3. L1 telah berisi beberapa
elemen sedangkan L2 dan L3 masih kosong. Tulis sebuah Algoritma untuk memisahkan angka
ganjil dan genap pada List L1 dan menyimpan angka ganjil tersebut pada L2 dan angka genap
pada L3.
a. Contoh:
L1: First – 3 – 6 – 2 – 5 – 8 – 9 – 4 – 1
L2: First – 3 – 5 –9 – 1
L3: First – 6 – 2 – 8 – 4
Jawab :

2. Tuliskan sebuah Algoritma untuk menghilangkan elemen duplikat (elemen ganda) yang terdapat
di dalam list.
 Contoh:
List sebelum duplikat dihilangkan : First – 2 – 5 – 9 – 2 – 1 – 4 – 1 – 2 – 3 – 7
List setelah duplikat dihilangkan : First – 2 – 5 – 9 – 1 – 4 – 3 – 7
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

Jawab :

3. Tuliskan sebuah Algoritma untuk memindahkan semua elemen 0 (nol) pada list ke bagian
belakang list tanpa mengubah urutan elemen lainnya.
a. Contoh
List sebelum 0 dipindahkan : First – 0 – 2 – 5 – 0 – 4 – 0 – 1 – 1 – 0 – 2 – 7 – 0 – 0 – 9
List setelah 0 dipindahkan : First – 2 – 5 – 4 – 1 – 1 – 2 – 7 – 9 – 0 – 0 – 0 – 0 – 0 – 0
Jawab :

4. Tuliskan sebuah Algoritma untuk menghitung rata-rata nilai dari List, kecuali nilai terbesar dan
nilai terkecil yang terdapat pada List.
LABORATORIUM PRAKTIKUM INFORMATIKA
Fakultas Informatika
Universitas Telkom

a. Contoh:
List : First – 80 – 72 – 65 – 70 – 90 – 77 - 82
Output : 76.2 (rata-rata dari 80, 72, 70, 77, dan 82)
Jawab :

Anda mungkin juga menyukai