Soal-Soal Latihan Mandiri 6.3 & 7.3 NESTED LOOP
Soal-Soal Latihan Mandiri
Perhatikan penggalan Linked List yang digambarkan berikut ini, Q R S INFO LINK INFO LINK INFO LINK INFO LINK 1 2 3 4 15 27 22 17 (1) 5 (2) 6 (3) 7 (4) 1000 800 1400 1100 8 Terlihat ada 4 buah simpul dan 8 buah pointer dari pointer (1) sampai dengan pointer (8). Simpul (1) berada di lokasi 1000 ( alamatnya = H1000), Simpul (2) di lokasi 800 dan seterusnya. Soal : 1. Sebutkan nama dan isi tiap-tiap pointer
Soal : 1. Sebutkan nama dan isi tiap-tiap pointer 4.1.6. Soal Soal Latihan Mandiri 1). Perhatikan penggalan Linked List yang digambarkan berikut ini, R 6 15 INFO LINK 27 22 (1) (2) (3) Q 17 (4) S 2 3 5 1 P 4 7 8 1000 800 1400 1100 Terlihat ada 4 buah simpul dan 8 buah pointer dari pointer (1) sampai dengan pointer (8). Simpul (1) berada di lokasi 1000 ( alamatnya = H1000), Simpul (2) di lokasi 800 dan seterusnya. Soal : 1. Sebutkan nama dan isi tiap-tiap pointer 2. Sebutkan pointer-pointer yang bernilai sama (yang isinya sama) 3. Sebutkan TRUE atau FALSE kondisi pada instruksi IF berikut ini :
b. if(Q->LINK == R->LINK) 4.1.6. Soal Soal Latihan Mandiri 1). Perhatikan penggalan Linked List yang digambarkan berikut ini, R 6 15 INFO LINK 27 22 (1) (2) (3) Q 17 (4) S 2 3 5 1 P 4 7 8 1000 800 1400 1100 Terlihat ada 4 buah simpul dan 8 buah pointer dari pointer (1) sampai dengan pointer (8). Simpul (1) berada di lokasi 1000 ( alamatnya = H1000), Simpul (2) di lokasi 800 dan seterusnya. Soal : 1. Sebutkan nama dan isi tiap-tiap pointer 2. Sebutkan pointer-pointer yang bernilai sama (yang isinya sama) 3. Sebutkan TRUE atau FALSE kondisi pada instruksi IF berikut ini : a. if(P->LIKK == R) b. if(Q->LINK == R->LINK) c. if(Q->LINK->LINK == S->LINK) d. if(Q == R) e. if(Q->LINK == R) f. if(R->LINK->INFO == 22) g. if(Q->INFO == 27)
4.1.6. Soal Soal Latihan Mandiri 1). Perhatikan penggalan Linked List yang digambarkan berikut ini, R 6 15 INFO LINK 27 22 (1) (2) (3) Q 17 (4) S 2 3 5 1 P 4 7 8 1000 800 1400 1100 Terlihat ada 4 buah simpul dan 8 buah pointer dari pointer (1) sampai dengan pointer (8). Simpul (1) berada di lokasi 1000 ( alamatnya = H1000), Simpul (2) di lokasi 800 dan seterusnya. Soal : 1. Sebutkan nama dan isi tiap-tiap pointer 2. Sebutkan pointer-pointer yang bernilai sama (yang isinya sama) 3. Sebutkan TRUE atau FALSE kondisi pada instruksi IF berikut ini : a. if(P->LIKK == R) b. if(Q->LINK == R->LINK) c. if(Q->LINK->LINK == S->LINK) d. if(Q == R) e. if(Q->LINK == R) f. if(R->LINK->INFO == 22) g. if(Q->INFO == 27) 2). Sudah ada Linked List seperti yang diilustrasikan pada gambarkan berikut ini, Simpul pertama ditunjuk oleh pointer FIRST, dan simpul terakhir ditunjuk oleh pointer LAST. Jumlah simpul tepatnya tidak diketahui, tapi dipastikan lebih dari 10 buah simpul. LINK dari simpul terakhir nilainya = NULL. 25 INFO LINK 27 (1) 12 (2) FIRST 14 LAST Soal : Susun Algoritma untuk : A. Menempatkan pointer Q sehingga menunjuk simpul no (1) B. Menempatkan pointer Q sehingga menujuk simpul no (7) C. Menempatkan pointer Q sehingga menunjuk simpul akhir D. Menempatkan pointer Q di simpul dengan nilai INFO = 50 E. Menempatkan pointer Q didepan (disebelah kiri) simpul dengan nilai INFO = 50 Untuk soal D dan E dianggap simpul yang nilai INFOnya = 50 pasti ada, dan hanya ada satu buah simpul dan bukan merupakan simpul pertama. 144
4.1.6. Soal Soal Latihan Mandiri 1). Perhatikan penggalan Linked List yang digambarkan berikut ini, R 6 15 INFO LINK 27 22 (1) (2) (3) Q 17 (4) S 2 3 5 1 P 4 7 8 1000 800 1400 1100 Terlihat ada 4 buah simpul dan 8 buah pointer dari pointer (1) sampai dengan pointer (8). Simpul (1) berada di lokasi 1000 ( alamatnya = H1000), Simpul (2) di lokasi 800 dan seterusnya. Soal : 1. Sebutkan nama dan isi tiap-tiap pointer 2. Sebutkan pointer-pointer yang bernilai sama (yang isinya sama) 3. Sebutkan TRUE atau FALSE kondisi pada instruksi IF berikut ini : a. if(P->LIKK == R) b. if(Q->LINK == R->LINK) c. if(Q->LINK->LINK == S->LINK) d. if(Q == R) e. if(Q->LINK == R) f. if(R->LINK->INFO == 22) g. if(Q->INFO == 27) 2). Sudah ada Linked List seperti yang diilustrasikan pada gambarkan berikut ini, Simpul pertama ditunjuk oleh pointer FIRST, dan simpul terakhir ditunjuk oleh pointer LAST. Jumlah simpul tepatnya tidak diketahui, tapi dipastikan lebih dari 10 buah simpul. LINK dari simpul terakhir nilainya = NULL. 25 INFO LINK 27 (1) 12 (2) FIRST 14 LAST Soal : Susun Algoritma untuk : A. Menempatkan pointer Q sehingga menunjuk simpul no (1) B. Menempatkan pointer Q sehingga menujuk simpul no (7) C. Menempatkan pointer Q sehingga menunjuk simpul akhir D. Menempatkan pointer Q di simpul dengan nilai INFO = 50 E. Menempatkan pointer Q didepan (disebelah kiri) simpul dengan nilai INFO = 50 Untuk soal D dan E dianggap simpul yang nilai INFOnya = 50 pasti ada, dan hanya ada satu buah simpul dan bukan merupakan simpul pertama. 144
Soal . Susun Algoritma untuk : 3). Sudah ada Linked List seperti yang diilustrasikan pada gambarkan berikut ini, Simpul pertama ditunjuk oleh pointer FIRST, dan simpul terakhir ditunjuk oleh pointer LAST. Jumlah simpul tepatnya tidak diketahui, tapi dipastikan lebih dari 10 buah. LINK dari simpul terakhir nilainya = NULL. LAST FIRST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 27 14 (1) (2) Soal . Susun Algoritma untuk : A. Menghitung dan mencetak jumlah simpul. B. Menghitung dan mencetak Total INFO ( 25+12 +………. + 27+14) C. Mencetak semua nilai INFO ke layar D. Mencetak jumlah simpul yang nilai INFOnya = 50 4). Sudah ada Linked List seperti yang diilustrasikan pada Soal 3) Sudah dibuat sebuah simpul baru yang ditunjuk oleh pointer P dan P->INFO sudah diisi Soal : Susun program (penggalan program) atau fungsi untuk menginsert simpul baru tersebut : A. Didepan simpul pertama, sehingga simpul baru menjadi simpul pertama B. dibelakang simpul terakhir, sehingga simpul baru tersebut menjadi simpul terakhir. C. Diantara simpul no (7) dan simpul no (8). D. Dibelakang simpul yang nilai NIFOnya = 50. E. Didepan simpul yang nilai INFOnya = 50. Catatan : Untuk soal D dan E dianggap simpul yang nilai INFOnya = 50, pasti ada, dan hanya ada satu buah. 5). Sudah ada Linked List seperti yang diilustrasikan pada Soal 3). Soal. Susun program atau penggalan program atau fungsi untuk mendelete : A. Simpul pertama, sehingga simpul kedua menjadi simpul pertama yang ditunjuk oleh pointer FIRST. B. Simpul no(8), sehingga simpul no (7) tersambung dengan simpul no (9). C. Simpul no (5), (6), dan (7). sehingga simpul (4) tersambung dengan simpul (8) D. Simpul dengan nilai INFO = 50, bila simpul ini dipastikan ada , dan ada hanya satu buah, dan bukan merupakan simpul pertama atau simpul terakhir E. Simpul dengan nilai INFO = 50, bila simpul ini dipastikan ada , dan ada hanya satu buah dan mungkin merupakan simpul pertama, simpul kedua, dan seterusnya, dan mungkin juga merupakan simpul terakhir. F. Semua simpul yang nilai INFOnya = 50, bila dianggap simpul yang nilainya INFOnya = 50 lebih dari satu, dan bukan merupakan simpul pertama juga bukan merupakan simpul terakhir G. Semua simpul yang ada. 145
Soal. Susun program atau penggalan program atau fungsi untuk : 6). Sudah ada Linked List seperti yang diilustrasikan pada gambarkan berikut ini, Simpul pertama ditunjuk oleh pointer FIRST, dan simpul terakhir ditunjuk oleh pointer LAST. Jumlah simpul tepatnya tidak diketahui, tapi dipastikan lebih dari 10 buah. LINK dari simpul terakhir nilainya = NULL. FIRST LAST INFO LINK INFO LINK INFO LINK INFO 75 52 57 84 (1) (2) Soal. Susun program atau penggalan program atau fungsi untuk menghapus semua simpul yang nilai INFOnya = 50. Simpul yang nilai INFOnya = 50, mungkin ada, mungkin juga tidak ada. Bila ada mungkin ada satu, dua, bahkan mungkin semua simpul nilai INFOnya = 50. 7). Sudah ada Linked List seperti yang diilustrasikan pada Soal no 6 diatas. Soal. Susun program atau penggalan program atau fungsi untuk : A. Memeriksa apakah ada simpul yang nilai INFOnya = 50. Bila ada, cetak perkataan “ADA”, dan bila tidak ada cetak perkataan “TIDAK ADA” B. Sama dengan soal A, bila ada , cetak perkataan “ADA” dan juga mencetak ada berapa buah simpul yang nilai INFOnya = 50. 8). Sudah Linear Singly Linked List. Jumlah simpul lebih dari 10. INFO berisi nilai-nilai ujian mahasiswa seperti ilustrasi berikut ini, 72 INFO LINK 57 (1) 87 (2) FIRST 64 90 75 LAST Soal. Susun algoritma untuk : ( Semua soal tidak terkait satu sama lain) 1. Menghapus simpul yang nilai INFOnya terkecil. Bila dipastikan simpulnya hanya ada satu buah. 2. Menghapus semua simpul yang nilai INFOnya terkecil. Bila ada kemungkinan nilai terkecil lebih dari satu buah. Tapi dipastikan bukan semua simpul. 3. Mencetak nilai INFO terkecil dan terbesar. 146
Susun algoritma untuk : ( Semua soal tidak terkait satu sama lain) 9). Sudah Linear Singly Linked List. Jumlah simpul lebih dari 10. INFO berisi nilai-nilai ujian mahasiswa yang urut menaik seperti ilustrasi berikut ini, FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK INFO LINK INFO 52 57 60 77 84 90 (1) (2) Soal. Susun algoritma untuk : ( Semua soal tidak terkait satu sama lain) Menghapus semua simpul yang nilai INFOnya lebih kecil dari 60. Menghapus semua simpul yang nilai INFOnya >= 85. Menginput sebuah nilai dari keyboard, dan menginsert nilai tersebut sebagai sebuah simpul dalam Linked List yang sudah ada tersebut. 10). Sudah ada dua buah Linked List ( sebut saja A dan B) seperti yang diilustrasikan pada gambarkan berikut ini, A INFO LINK INFO LINK INFO LINK INFO LINK 10 12 17 24 (1) (2) B INFO LINK INFO LINK INFO LINK INFO LINK 5 7 15 30 (1) (2) Nilai INFO kedua Linked List diatas, sudah tersusun urut nilai menaik. Soal. Susun algoritma untuk menggabung (merge) kedua Linked List diatas sehingga Linked List B tergabung ke Linked List A sedemikian rupa sehingga nilai INFOnya urut menaik seperti ilustrasi berikut ini : 5 INFO LINK 10 (1) 7 (2) A 12 15 24 17 30 Catatan : Gambar diatas, hanyalah ilustrasi. Jumlah simpul kedua Linked List, belum tentu 4 buah dan belum tentu sama jumlah simpul kedua buah Linked List tersebut. 147
Contoh: Bila nilai dan urutan nilai yang diinput : 11). Sudah ada Linked List seperti yang diilustrasikan pada gambarkan berikut ini. Simpul pertama ditunjuk oleh pointer FIRST, dan simpul terakhir ditunjuk oleh pointer LAST. LINK simpul terakhir nilainya = NULL. Catatan : Diilustrasikan jumlah simpul = 8 buah. Tapi sebenarnya jumlah simpul belum tentu 8 buah. Tapi dipastikan lebih dari satu buah. FIRST LAST INFO LINK 15 12 24 10 30 5 7 17 Soal. Susun program atau penggalan program atau fungsi untuk mengubah letak simpul simpul yang ada sehingga nilai INFO urut menaik seperti ilustrasi berikut ini. FIRST LAST INFO LINK 5 7 10 12 15 17 24 30 12). Susun program yang lengkap sehingga dapat dijalankan di komputer untuk menginput sejumlah data numerik integer dan menyimpannya dalam Linear Singly Linked List, sedemikian rupa sehingga nilai INFOnya urut menaik. Proses input dan simpan ke Linked List selesai bila nilai yang diinput = 999. Contoh: Bila nilai dan urutan nilai yang diinput : 12, 24, 17, 5, 10, 30, 7, 15, 999 Maka seharusnya terbentuk Linked List sebagai berikut : FIRST INFO LAST LINK 5 7 10 12 15 17 24 30 Catatan : Jumlah data diatas hanyalah contoh. Jumlahnya tidak mesti 8 buah 148