Anda di halaman 1dari 9

Program Studi Teknik Elektro ITB

Nama Kuliah (Kode) : Praktikum Pemecahan Masalah dengan C (EL2208)


Tahun / Semester : 2022-2023 / Genap
Modul : 9 - Tugas Besar
Hari, Tanggal Praktikum : Senin, 10 April 2023

Naskah Soal Praktikum

Pembuat Naskah: Elkhan Julian Brillianshah

Ketentuan Umum:

1. Tugas besar dikerjakan secara berkelompok dengan setiap kelompok beranggotakan 4-5
orang yang telah diacak. Perhatikan bahwa rombongan pada tugas besar ini berbeda
dengan rombongan praktikum. Harap cermati jadwal anda masing-masing agar tidak
tertukar. Daftar pembagian kelompok dapat dilihat di Microsoft Teams.

2. Terdapat dua soal tugas besar. Kelompok dengan nomor kelompok ganjil mengerjakan soal
1 (Travelling Salesman Problem) dan kelompok dengan nomor kelompok genap
mengerjakan soal 2 (Convex Hull Algorithms).

3. Setiap kelompok memiliki asisten pembimbing. Anda dapat menanyakan dan


mengkonsultasikan pelaksanaan serta pengerjaan tugas besar Anda kepada asisten
kelompok Anda. Setiap kelompok akan melakukan asistensi dengan asisten tersebut.
Asisten kelompok Anda juga akan menilai kemajuan dan hasil dari tugas besar kelompok
Anda. Daftar kontak asisten dapat dilihat di bagian lampiran dari dokumen ini.

4. Setiap kelompok wajib melakukan asistensi setidaknya 1 kali untuk melaporkan progress
pengerjaan tugas kepada asisten kelompok dan meminta feedback dari asisten kelompok.
Asistensi tidak dijadwalkan dan Anda dipersilakan mengatur sendiri jadwal asistensi
dengan asisten kelompok Anda. Asistensi disarankan dilakukan dengan video conference
untuk mempermudah komunikasi.

5. Setiap kelompok diwajibkan menggunakan Git sebagai version control dari proyek tugas
besar ini. Kontribusi masing-masing anggota kelompok akan dinilai dari sejarah commit
dari repository tugas besar kelompok tersebut. Silakan ambil assignment berikut
https://classroom.github.com/a/ubkbB4F7, diskusikan dengan rekan sekelompok Anda
apakah repository kelompok telah dibuat atau belum untuk menghindari adanya repository
ganda untuk satu kelompok.

EL2208 Praktikum Pemecahan Masalah dengan C - Laboratorium Dasar Teknik Elektro - STEI ITB | 1
6. Setiap kelompok diwajibkan untuk mempresentasikan hasil pengerjaan tugas besar kepada
asisten praktikum. Presentasi setidaknya menjelaskan masalah yang diselesaikan,
membahas poin-poin penting pada bab 4 laporan praktikum, dan mendemonstrasikan
program. Jadwal presentasi dapat dilihat di Microsoft Teams.

7. Setiap file .c dan .h harus memiliki komentar header dengan hari dan tanggal merupakan
tanggal terakhir file tersebut dimodifikasi. Format komentar header dapat dilihat di bagian
lampiran dari dokumen ini.

8. Source code Anda harus dapat dikompilasi dengan perintah make main dan menghasilkan
executable dengan nama main. File executable harus memiliki ekstensi .exe jika dikompilasi
di komputer dengan sistem operasi Windows.

9. Anda diwajibkan mencantumkan referensi yang anda gunakan. Namun, plagiasi kode tetap
dilarang keras. Plagiasi kode di tugas besar akan menyebabkan semua anggota kelompok
untuk gugur praktikum.

Deliverables:

1. Laporan praktikum: Setiap kelompok diwajibkan untuk membuat laporan praktikum


sesuai dengan format laporan praktikum yang dapat diakses di link
https://docs.google.com/document/d/1GLLKsd9ya16E6vGFJeIX9vEvPm1AtGco/edit?usp=s
haring. Laporan praktikum dikumpulkan oleh setiap anggota kelompok sebelum tanggal 27
April 2023 pukul 11:00 WIB di situs praktikum.stei.itb.ac.id.

2. Source code: Setiap kelompok diwajibkan untuk mengumpulkan source code tugas besar di
repository Git kelompok. Link ke repository Git kelompok dimasukkan ke bagian lampiran
laporan praktikum.

3. Peer Review: Setiap anggota kelompok wajib mengisi peer review yang akan diberikan oleh
asisten kelompok setelah melakukan presentasi hasil pengerjaan tugas besar.

EL2208 Praktikum Pemecahan Masalah dengan C - Laboratorium Dasar Teknik Elektro - STEI ITB | 2
Soal 1 : Traveling Salesman Problem

SOAL INI HANYA DIKERJAKAN OLEH KELOMPOK DENGAN NOMOR GANJIL

Karena hilangnya avatar, negara api berhasil melakukan ekspansi dan menjadi kekuatan maritim yang
teritorinya merentang ke seluruh penjuru dunia. Untuk mempertahankan teritori tersebut, negara api tentu
saja membutuhkan logistik yang andal dan efisien. Sebagai pegawai negeri negara api, tim Anda
ditugaskan untuk menentukan rute pelayaran paling efisien yang dapat diikuti oleh sebuah kapal kargo
negara api sehingga negara api dapat menghemat biaya bahan bakar kapal kargo. Berikut adalah
visualisasi dari rute pelayaran yang akan Anda buat.

EL2208 Praktikum Pemecahan Masalah dengan C - Laboratorium Dasar Teknik Elektro - STEI ITB | 3
Negara api akan memberikan Anda daftar pelabuhan-pelabuhan yang perlu dikunjungi oleh sebuah kapal
kargo dalam bentuk file .csv. Anda diminta untuk membuat sebuah program yang dapat membaca file
tersebut dan menentukan rute paling pendek yang mengunjungi semua pelabuhan tersebut satu kali saja
lalu kembali lagi ke pelabuhan awal dimana kapal tersebut berangkat. Anda juga perlu menghitung jarak
total dari rute pelayaran tersebut. File yang diberikan oleh negara api (pelabuhan.csv) memiliki
format seperti pada teks berikut.

Pelabuhan,Lintang,Bujur
. . ., . . ., . . .
. . ., . . ., . . .
Perlu diingat bahwa kapal kargo standar negara api memiliki jarak tempuh maksimal 2500 km setelah
berangkat dari satu pelabuhan. Anda diminta untuk memberikan keterangan pelabuhan mana saja yang
tidak dapat dikunjungi karena memiliki jarak yang terlalu jauh dengan pelabuhan lainnya supaya negara
api dapat menjadwalkan pengiriman menggunakan kapal kargo jarak jauh. Contoh eksekusi program
adalah seperti pada potongan teks berikut.
Masukkan file pelabuhan: pelabuhan.csv

Rute Pelayaran Optimal:


Kota Ba Sing Se -> Desa Senlin -> Kota Chin Manila -> Kota Puerto
Princesa Palawan -> Kota Omashu -> Desa Tu Zin Cebu -> Kota Davao
Kerajaan Bumi -> Kota Gaoling -> Kota Surabaya Kerajaan Bumi -> Kota
Jakarta Kerajaan Bumi -> Kota Republik Singapore -> Desa Pulau Ember
Langkawi -> Desa Pulau Kyoshi -> Kota Kyoshi Bangkok -> Desa Full
Moon Bay Kerajaan Bumi -> Kota Phnom Penh Kerajaan Bumi -> Kota
Saigon -> Kota Kuching Borneo -> Desa Hira'a Tahiti -> Desa Makapu
Oahu -> Kota Ba Sing Se

Jarak Total Rute Pelayaran: 19596.43 km

Pelabuhan yang Tidak Terjangkau:


1.Kota Kuching Borneo
2.Kota Phnom Penh Kerajaan Bumi

Catatan:
● Contoh eksekusi program pada naskah soal ini tidak dijamin benar
● Dunia avatar berbentuk bulat, gunakan rumus seperti rumus haversine untuk menghitung jarak.
● Program yang Anda buat harus memberikan output yang valid, membutuhkan waktu sesedikit
mungkin (kompleksitas waktu serendah mungkin), dan membutuhkan ruang sesedikit mungkin
(kompleksitas ruang serendah mungkin).
● Format input dan output program dibebaskan namun output program harus mencantumkan rute
pelayaran, pelabuhan-pelabuhan yang tidak dapat dijangkau oleh kapal kargo standar negara api,
serta jarak total dari rute pelayaran.
● Autograder tidak akan digunakan pada tugas ini, keluaran program akan dicek secara manual oleh
asisten kelompok.
● Silahkan bertanya ke asisten kelompok dan buat asumsi-asumsi sendiri untuk hal-hal yang tidak
dispesifikasikan pada naskah soal ini.

EL2208 Praktikum Pemecahan Masalah dengan C - Laboratorium Dasar Teknik Elektro - STEI ITB | 4
Soal 2 : Convex Hull Algorithms

SOAL INI HANYA DIKERJAKAN OLEH KELOMPOK DENGAN NOMOR GENAP

Karena hilangnya avatar, negara api berhasil melakukan ekspansi dan menjadi kekuatan maritim yang
teritorinya merentang ke seluruh penjuru dunia. Untuk mempertahankan teritori tersebut, negara api tentu
saja memiliki serangkaian markas militer yang dapat menjaga perbatasan tersebut. Sebagai pegawai
negeri negara api, tim Anda ditugaskan menentukan perbatasan efektif negara api berdasarkan
markas-markas militer yang sudah ada. Berikut adalah visualisasi dari perbatasan efektif negara api yang
akan Anda buat.

EL2208 Praktikum Pemecahan Masalah dengan C - Laboratorium Dasar Teknik Elektro - STEI ITB | 5
Negara api akan memberikan Anda daftar markas militer dalam bentuk file .csv. Anda diminta untuk
membuat sebuah program yang dapat menentukan perbatasan efektif negara api yang ditarik dari satu
markas ke markas lainnya. Karena negara api ingin memiliki teritori yang seluas-luasnya, perbatasan
efektif yang Anda buat harus mengelilingi sebanyak mungkin markas militer negara api. Perbatasan dapat
disebut efektif jika setiap segmen garis pada perbatasan memiliki panjang tidak lebih 2500 km sehingga
kapal-kapal negara api dapat melakukan patroli di perbatasan secara efektif. Anda juga perlu menghitung
panjang dari perbatasan efektif negara api. File yang diberikan oleh negara api (markas.csv) memiliki
format seperti pada teks berikut

Pelabuhan,Lintang,Bujur
. . ., . . ., . . .
. . ., . . ., . . .

Jika ada markas-markas yang berada di luar perbatasan efektif, Anda perlu melaporkan hal tersebut
sehingga negara api dapat mempertimbangkan pembangunan markas militer tambahan di daerah tersebut.
Contoh eksekusi program adalah seperti pada potongan teks berikut.
Masukkan file markas: markas.csv

Perbatasan Efektif Negara Api:


Markas Surabaya Kerajaan Bumi -> Markas Jakarta Kerajaan Bumi ->
Markas Pulau Kyoshi -> Markas Kyoshi Bangkok -> Markas Senlin ->
Markas Ba Sing Se -> Markas Davao Kerajaan Bumi -> Markas Gaoling
-> Markas Surabaya Kerajaan Bumi

Panjang Perbatasan Efektif Negara Api: 9832.541 km

Markas di Luar Perbatasan Efektif:


1.Markas Desa Makapu Oahu
2.Markas Hira’a Tahiti
3.Markas Pulau Ember Langkawi

Catatan:
● Contoh eksekusi program pada naskah soal ini tidak dijamin benar
● Dunia avatar berbentuk bulat, gunakan rumus seperti rumus haversine untuk menghitung jarak.
● Program yang Anda buat harus memberikan output yang valid, membutuhkan waktu sesedikit
mungkin (kompleksitas waktu serendah mungkin), dan membutuhkan ruang sesedikit mungkin
(kompleksitas ruang serendah mungkin).
● Format input dan output program dibebaskan namun output program harus mencantumkan
markas-markas pada perbatasan efektif, markas-markas yang berada di luar perbatasan efektif,
serta keliling dari perbatasan efektif.
● Autograder tidak akan digunakan pada tugas ini, keluaran program akan dicek secara manual oleh
asisten kelompok.
● Silahkan bertanya ke asisten kelompok dan buat asumsi-asumsi sendiri untuk hal-hal yang tidak
dispesifikasikan pada naskah soal ini.

EL2208 Praktikum Pemecahan Masalah dengan C - Laboratorium Dasar Teknik Elektro - STEI ITB | 6
Lampiran
Informasi kontak asisten praktikum

NIM Nama ID Line

18320014 Jessen Javier Kurniawan javier_40

18320019 Eunike Kristianti eunike07

13219033 Sidartha Prastya P. sidarthatjoa

13219051 David Azaria Rauf dazra

13219071 Reynaldo Averill Adji Putra reynaldoaverill

13220043 Muhammad Daffa Daniswara daffad123

13220059 Muhammad Daffa Rasyid m_daffa_rasyid2

13219069 Kelvin Sutirta Kelvinsutta

18319037 Syifa Kushirayati syifakush

13220031 Emmanuella Pramudita Rumanti emrumanti

13220057 Aloysius Efrata Sumaryo sumaryo_jr

13220048 Jota Baret Tata jotabete

13219061 Muhammad Morteza M Mortezamudrick

13220047 Muhammad Daris Nurhakim darisnurhakim12

13219034 Syauqittuqa @tuqasyauq

13219059 Elkhan Julian Brillianshah 11011100101110111100

EL2208 Praktikum Pemecahan Masalah dengan C - Laboratorium Dasar Teknik Elektro - STEI ITB | 7
Format komentar header setiap file .c dan .h

/*EL2208 Praktikum Pemecahan Masalah dengan C 2022/2023


*Modul : 9 - Tugas Besar
*Kelompok : -
*Hari dan Tanggal : -
*Asisten (NIM) : -
*Nama File : -
*Deskripsi : -
*/

Isi file pelabuhan.csv

Pelabuhan,Lintang,Bujur
Kota Ba Sing Se,25.0330,121.5654
Kota Omashu,10.3157,123.8854
Desa Pulau Kyoshi,10.4744,98.9305
Kota Gaoling,-0.9116,119.9004
Desa Senlin,23.5565,117.6227
Desa Makapu Oahu,21.3394,157.7147
Desa Hira'a Tahiti,15.2549,145.8150
Kota Chin Manila,14.5995,120.9842
Desa Tu Zin Cebu,10.3157,123.8854
Kota Saigon,10.8231,106.6297
Kota Kyoshi Bangkok,13.7563,100.5018
Kota Republik Singapore,1.3521,103.8198
Kota Jakarta Kerajaan Bumi,-6.2088,106.8456
Kota Surabaya Kerajaan Bumi,-7.2575,112.7521
Kota Davao Kerajaan Bumi,7.1907,125.4553
Kota Puerto Princesa Palawan,9.9672,118.7859
Kota Kuching Borneo,1.5497,110.3631
Kota Phnom Penh Kerajaan Bumi,11.5564,104.9282
Desa Full Moon Bay Kerajaan Bumi,10.6093,103.5297
Desa Pulau Ember Langkawi,6.3500,99.8000

EL2208 Praktikum Pemecahan Masalah dengan C - Laboratorium Dasar Teknik Elektro - STEI ITB | 8
Isi file markas.csv

Markas,Lintang,Bujur
Markas Ba Sing Se,25.0330,121.5654
Markas Omashu,10.3157,123.8854
Markas Pulau Kyoshi,10.4744,98.9305
Markas Gaoling,-0.9116,119.9004
Markas Senlin,23.5565,117.6227
Markas Makapu Oahu,21.3394,157.7147
Markas Hira'a Tahiti,15.2549,145.8150
Markas Chin Manila,14.5995,120.9842
Markas Tu Zin Cebu,10.3157,123.8854
Markas Saigon,10.8231,106.6297
Markas Kyoshi Bangkok,13.7563,100.5018
Markas Republik Singapore,1.3521,103.8198
Markas Jakarta Kerajaan Bumi,-6.2088,106.8456
Markas Surabaya Kerajaan Bumi,-7.2575,112.7521
Markas Davao Kerajaan Bumi,7.1907,125.4553
Markas Puerto Princesa Palawan,9.9672,118.7859
Markas Kuching Borneo,1.5497,110.3631
Markas Phnom Penh Kerajaan Bumi,11.5564,104.9282
Markas Full Moon Bay Kerajaan Bumi,10.6093,103.5297
Markas Pulau Ember Langkawi,6.3500,99.8000

EL2208 Praktikum Pemecahan Masalah dengan C - Laboratorium Dasar Teknik Elektro - STEI ITB | 9

Anda mungkin juga menyukai