Soal Pendahuluan
1. Jelaskan yang dimaksud dengan :
a. Sequential search
b. Binary search
2. Jelaskan apa yang dimaksud sorting dan berikan penjelasan algoritma sorting berikut ini
a. Bubble sort
b. Insertion sort
c. Selection sort
Diantara algoritma berikut mana yang paling efisien? Berikan alasan!
3. Jelaskan apa yang dimaksud dengan Lexicographic sort?
4. Hal apa saja yang perlu diperhatikan dalam memilih algoritma sorting?
5. Diberikan data berikut :
4 0 20 100 33 11 52
Tentukan algoritma searching apa yang dapat melakukan pencarian paling cepat untuk angka :
a. 33
b. 100
c. 4
Simpulkanlah dari ketiga jawaban di atas kelebihan dan kekurangan dari masing masing algoritma
6. Diberikan sederet angka berikut : 4 20 89 70 1 35 24 6 91 6
Tuliskan step by step sorting deretan angka diatas dengan menggunakan algoritma bubble sort, insertion sort, dan selection sort
7. Buatlah implementasi program sorting sederhana dengan algoritma yang anda pahami (minimal bubble sort)
8. Jelaskan tentang pembuatan & pemakaian fungsi !
9. Jelaskan fungsi berikut(jalan proses dan outputnya)
Int fungsimu (int input)
{
If(input%2==0)
return 1;
return 0;
}
Soal Shift
1. “BA-IM3”
Bembi mempunyai banyak teman. Hp-nya penuh dengan ribuan nomor teman-temannya. Bembi punya hobi menyebar sms humor ke-teman2nya. Namun agar tidak memakan banyak pulsa dia hanya ingin menyebar ketemannya yang memiliki nomor dengan operator sama (BA–IM3).
Tugas anda adalah membuat program yang dapat mengurutkan dan mengelompokkan nomor2 hp teman Bembi supaya Bembi senang dan dapat menyebar sms sepuas-puasnya.
Input:
Baris pertama adalah banyaknya testcase(1<n<100), baris kedua adalah nomor hp Bembi (3<t<15), baris berikutnya adalah nomor teman2 Bembi sebanyak testcase dengan panjang nomor(3<s<100).
Output:
Nomor teman2 Bembi yang telah diurutkan dan dikelompokkan berdasarkan 4digit pertama. Dipisah satu baris kosong tiap kelompok dan judul kelompok beruoa 4digit pertama tersebut. Kelompok yang memiliki 4digit awal seperti Bembi memiliki judul kelompok “BA-IM3”.
Contoh
Input:
11
085746845377
0315323402
085731454685
085655223307
0315937091
085649336369
085736229943
085732198698
03177107475
081230361261
082143458034
085731890623
Output
0315 :
0315323402
0315937091
0317 :
03177107475
0812 :
081230361261
0821 :
082143458034
0856 :
085649336369
085655223307
BA-IM3 :
085731455685
085731890623
085732198698
085736229943
2. Singa Airlines adalah maskapai penerbangan yang memiliki banyak pesawat. Karena banyaknya pesawat yang mereka miliki, petugas mereka sering kali kebingungan dalam mengatur urutan jadwal keberangkatan pesawat yang mereka miliki. Hal inimenyulitkan mereka untuk membagi tugas pada tiap jamnya. Bantulah petugas Singa Airlines untuk mengurutkan jadwal penerbangan mereka.
Input :
Baris pertama adalah n(0<n<1000) yang merupakan jumlah penerbangan yang ingin di-inputkan.
Baris kedua hingga n+1 berisi jam keberangkatan dan kota tujuan.
Output :
Urutan jadwal penerbangan dari yang paling awal hingga paling akhir beserta tujuan keberangkatannya.
Contoh Input :
10
07.40 Balikpapan
08.05 Jakarta
06.50 Jakarta
11.30 Batam
20.50 Jakarta
13.00 Banjarmasin
08.40 Makassar
15.25 Denpasar
19.00 Yogyakarta
16.35 Palangkaraya
Contoh Output :
06.50 Jakarta
07.40 Balikpapan
08.05 Jakarta
08.40 Makassar
11.30 Batam
13.00 Banjarmasin
15.25 Denpasar
16.35 Palangkaraya
19.00 Yogyakarta
20.50 Jakarta
3. Fullmetal Alchemist
Alchemy adalah leluhur ilmu kimia, dimana untuk membentuk suatu elemen yang baru, perlu dilakukan proses transmutasi, yaitu decomposition dan reconstruction. Seorang alchemist muda, bernama Junichi Elric, menemukan suatu cara untuk membentuk tabel periodik dari elemen-elemen yang akan digunakan untuk transmutasi. Setiap elemen E memiliki decomposition value D dan reconstruction value R. Junichi membagi elemen-elemen tersebut ke dalam 5 golongan (0,1,2,3, dan 4) berdasarkan sisa pembagian decomposition value D dengan 5.
- Pada setiap golongan elemen diurutkan berdasarkan reconstruction value R secara ascending (semakin ke bawah, semakin besar reconstruction value dari elemen E)
- Jika ada reconstruction value yang sama dalam satu golongan, urutkan berdasarkan decomposition value secara ascending
- Jika reconstruction value dan decomposition value bernilai sama, urutkan berdasarkan nama
Anda adalah programmer teman baik Junichi, bantulah dia membuat program yang bisa membantu Junichi dalam pembuatan tabel periodik. Asumsi nama elemen tidak ada yang sama.
Input :
Jumlah elemen N (5≤N≤5000)
N baris berikutnya berisi :
- Nama elemen E (dua karakter ‘a’…’z’ atau ‘A’…’Z’)
- Decomposition value D (0≤D≤99)
- Reconstruction value (0≤R≤99)
Output :
Tabel periodic dengan 5 kolon dan elemen pada masing-masing kolom sudah diurutkan dengan format setiap cell sebagai berikut :
NamaElemen/DecompositionValue/ReconstructionValue
Tiap kolom dipisahkan oleh dua spasi
Contoh :
Input:
12
Kr 14 22
Dr 21 12
Gr 22 16
Hr 63 1
Jr 44 89
Br 25 20
Er 11 13
Ar 10 10
Fr 12 15
Lr 19 25
Ir 13 2
Cr 30 30
Output :
Ar/10/10 Dr/21/12 Fr/12/15 Hr/63/01 Kr/14/22
Br/25/20 Er/11/13 Gr/22/16 Ir/13/02 Lr/19/25
Cr/30/30 Jr/44/89
*Keterangan output dari kiri ke kanan adalah golongan 0,1,2,3, dan 4 sesuai sisa pembagian D dengan 5
4. Seorang pelatih club sepakbola, Junichi Tatsumi, sedang mengalami masalah untuk membentuk struktur pemain utama dalam pertandingan. Untuk posisi Goal Keeper, dia sudah memiliki pemain-pemain yang unggul, namun untuk posisi lain, dia mengalami kebingungan. Dia memiliki sejumlah pemain N. Setiap pemain memiliki tingkat serangan A, tingkat keceptan S, dan tingkat pertahanan D.
Sang pelatih suka dengan strategi 3 penyerang, 3 pemain tengah, dan 4 pemain bertahan. Penyerang harus memiliki tingkat serangan semaksimal mungkin. Pemain tengah harus memiliki kecepatan semaksimal mungkin, dan pemain bertahan harus memiliki kemampuan bertahan semaksimal mungkin.
Sang pelatih memilih pemain berdasarkan urutan penyerang dulu, kemudian pemain tengah, dan terakhir pemain bertahan.
1. Jelaskan yang dimaksud dengan :
a. Sequential search
b. Binary search
2. Jelaskan apa yang dimaksud sorting dan berikan penjelasan algoritma sorting berikut ini
a. Bubble sort
b. Insertion sort
c. Selection sort
Diantara algoritma berikut mana yang paling efisien? Berikan alasan!
3. Jelaskan apa yang dimaksud dengan Lexicographic sort?
4. Hal apa saja yang perlu diperhatikan dalam memilih algoritma sorting?
5. Diberikan data berikut :
4 0 20 100 33 11 52
Tentukan algoritma searching apa yang dapat melakukan pencarian paling cepat untuk angka :
a. 33
b. 100
c. 4
Simpulkanlah dari ketiga jawaban di atas kelebihan dan kekurangan dari masing masing algoritma
6. Diberikan sederet angka berikut : 4 20 89 70 1 35 24 6 91 6
Tuliskan step by step sorting deretan angka diatas dengan menggunakan algoritma bubble sort, insertion sort, dan selection sort
7. Buatlah implementasi program sorting sederhana dengan algoritma yang anda pahami (minimal bubble sort)
8. Jelaskan tentang pembuatan & pemakaian fungsi !
9. Jelaskan fungsi berikut(jalan proses dan outputnya)
Int fungsimu (int input)
{
If(input%2==0)
return 1;
return 0;
}
Soal Shift
1. “BA-IM3”
Bembi mempunyai banyak teman. Hp-nya penuh dengan ribuan nomor teman-temannya. Bembi punya hobi menyebar sms humor ke-teman2nya. Namun agar tidak memakan banyak pulsa dia hanya ingin menyebar ketemannya yang memiliki nomor dengan operator sama (BA–IM3).
Tugas anda adalah membuat program yang dapat mengurutkan dan mengelompokkan nomor2 hp teman Bembi supaya Bembi senang dan dapat menyebar sms sepuas-puasnya.
Input:
Baris pertama adalah banyaknya testcase(1<n<100), baris kedua adalah nomor hp Bembi (3<t<15), baris berikutnya adalah nomor teman2 Bembi sebanyak testcase dengan panjang nomor(3<s<100).
Output:
Nomor teman2 Bembi yang telah diurutkan dan dikelompokkan berdasarkan 4digit pertama. Dipisah satu baris kosong tiap kelompok dan judul kelompok beruoa 4digit pertama tersebut. Kelompok yang memiliki 4digit awal seperti Bembi memiliki judul kelompok “BA-IM3”.
Contoh
Input:
11
085746845377
0315323402
085731454685
085655223307
0315937091
085649336369
085736229943
085732198698
03177107475
081230361261
082143458034
085731890623
Output
0315 :
0315323402
0315937091
0317 :
03177107475
0812 :
081230361261
0821 :
082143458034
0856 :
085649336369
085655223307
BA-IM3 :
085731455685
085731890623
085732198698
085736229943
2. Singa Airlines adalah maskapai penerbangan yang memiliki banyak pesawat. Karena banyaknya pesawat yang mereka miliki, petugas mereka sering kali kebingungan dalam mengatur urutan jadwal keberangkatan pesawat yang mereka miliki. Hal inimenyulitkan mereka untuk membagi tugas pada tiap jamnya. Bantulah petugas Singa Airlines untuk mengurutkan jadwal penerbangan mereka.
Input :
Baris pertama adalah n(0<n<1000) yang merupakan jumlah penerbangan yang ingin di-inputkan.
Baris kedua hingga n+1 berisi jam keberangkatan dan kota tujuan.
Output :
Urutan jadwal penerbangan dari yang paling awal hingga paling akhir beserta tujuan keberangkatannya.
Contoh Input :
10
07.40 Balikpapan
08.05 Jakarta
06.50 Jakarta
11.30 Batam
20.50 Jakarta
13.00 Banjarmasin
08.40 Makassar
15.25 Denpasar
19.00 Yogyakarta
16.35 Palangkaraya
Contoh Output :
06.50 Jakarta
07.40 Balikpapan
08.05 Jakarta
08.40 Makassar
11.30 Batam
13.00 Banjarmasin
15.25 Denpasar
16.35 Palangkaraya
19.00 Yogyakarta
20.50 Jakarta
3. Fullmetal Alchemist
Alchemy adalah leluhur ilmu kimia, dimana untuk membentuk suatu elemen yang baru, perlu dilakukan proses transmutasi, yaitu decomposition dan reconstruction. Seorang alchemist muda, bernama Junichi Elric, menemukan suatu cara untuk membentuk tabel periodik dari elemen-elemen yang akan digunakan untuk transmutasi. Setiap elemen E memiliki decomposition value D dan reconstruction value R. Junichi membagi elemen-elemen tersebut ke dalam 5 golongan (0,1,2,3, dan 4) berdasarkan sisa pembagian decomposition value D dengan 5.
- Pada setiap golongan elemen diurutkan berdasarkan reconstruction value R secara ascending (semakin ke bawah, semakin besar reconstruction value dari elemen E)
- Jika ada reconstruction value yang sama dalam satu golongan, urutkan berdasarkan decomposition value secara ascending
- Jika reconstruction value dan decomposition value bernilai sama, urutkan berdasarkan nama
Anda adalah programmer teman baik Junichi, bantulah dia membuat program yang bisa membantu Junichi dalam pembuatan tabel periodik. Asumsi nama elemen tidak ada yang sama.
Input :
Jumlah elemen N (5≤N≤5000)
N baris berikutnya berisi :
- Nama elemen E (dua karakter ‘a’…’z’ atau ‘A’…’Z’)
- Decomposition value D (0≤D≤99)
- Reconstruction value (0≤R≤99)
Output :
Tabel periodic dengan 5 kolon dan elemen pada masing-masing kolom sudah diurutkan dengan format setiap cell sebagai berikut :
NamaElemen/DecompositionValue/ReconstructionValue
Tiap kolom dipisahkan oleh dua spasi
Contoh :
Input:
12
Kr 14 22
Dr 21 12
Gr 22 16
Hr 63 1
Jr 44 89
Br 25 20
Er 11 13
Ar 10 10
Fr 12 15
Lr 19 25
Ir 13 2
Cr 30 30
Output :
Ar/10/10 Dr/21/12 Fr/12/15 Hr/63/01 Kr/14/22
Br/25/20 Er/11/13 Gr/22/16 Ir/13/02 Lr/19/25
Cr/30/30 Jr/44/89
*Keterangan output dari kiri ke kanan adalah golongan 0,1,2,3, dan 4 sesuai sisa pembagian D dengan 5
4. Seorang pelatih club sepakbola, Junichi Tatsumi, sedang mengalami masalah untuk membentuk struktur pemain utama dalam pertandingan. Untuk posisi Goal Keeper, dia sudah memiliki pemain-pemain yang unggul, namun untuk posisi lain, dia mengalami kebingungan. Dia memiliki sejumlah pemain N. Setiap pemain memiliki tingkat serangan A, tingkat keceptan S, dan tingkat pertahanan D.
Sang pelatih suka dengan strategi 3 penyerang, 3 pemain tengah, dan 4 pemain bertahan. Penyerang harus memiliki tingkat serangan semaksimal mungkin. Pemain tengah harus memiliki kecepatan semaksimal mungkin, dan pemain bertahan harus memiliki kemampuan bertahan semaksimal mungkin.
Sang pelatih memilih pemain berdasarkan urutan penyerang dulu, kemudian pemain tengah, dan terakhir pemain bertahan.








