Bocoran Soal 6.3 & 7.3 NESTED LOOP UTS
Materi yang harus dikuasai untuk menghadapi UTS
Sudah ada Linear Singly Linked List. Jumlah simpul lebih dari 1. FIRST LAST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Sudah ada Linear Singly Linked List. Jumlah simpul lebih dari 1. Simpul awal ada diujung paling kiri, ditunjuk oleh pointer FIRST Simpul terakhir ada diujung paling kanan, ditunjuk oleh poiner LAST Link simpul terakhir nilainya = NULL.
Soal-1 Q Menempatkan Pointer Pertama (no. 1) Menunjuk Simpul : LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Q Menempatkan Pointer Pertama (no. 1) Menunjuk Simpul :
Q Menempatkan Pointer Pertama (no. 1) Menunjuk Simpul : Q = FIRST; LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Q Menempatkan Pointer Pertama (no. 1) Menunjuk Simpul : Q = FIRST;
Soal-2 Q Menempatkan Pointer no. (2) Menunjuk Simpul : LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Q Menempatkan Pointer no. (2) Menunjuk Simpul :
Soal-3 Q Menempatkan Pointer no. (3) Menunjuk Simpul : LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Q Menempatkan Pointer no. (3) Menunjuk Simpul :
Soal-4 Q Menempatkan Pointer no. (7) Menunjuk Simpul : LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Q Menempatkan Pointer no. (7) Menunjuk Simpul :
Soal-5 Q Menempatkan Pointer Menunjuk Simpul : Susun Algoritma untuk : LAST FIRST Q LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO LINK 25 12 17 50 xx xx (1) (2) (3) (3) Susun Algoritma untuk : Q Menempatkan Pointer Dengan Nilai INFO = 50 Menunjuk Simpul : Bila dipastikan simpul tersebut ada satu buah
Q Menempatkan Pointer Menunjuk Simpul : Susun Algoritma untuk : LAST FIRST Q LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO LINK 25 12 17 50 xx xx (1) (2) (3) (3) Susun Algoritma untuk : Q Menempatkan Pointer Menunjuk Simpul : Satu simpul disebelah kiri (sebelum) simpul dengan Nilai INFO = 50 Bila dipastikan simpul tersebut ada satu buah dan bukan merupakan simpul awal.
Soal- no (8) Menghapus Simpul Susun Algoritma untuk : xx xx LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : no (8) Menghapus Simpul
Tempatkan Pointer Q Menujuk simpul no (7) Hapus Simpul no (8) LAST FIRST INFO LINK INFO LINK LINK INFO INFO LINK LINK LINK LINK INFO INFO LINK INFO INFO LINK INFO 25 12 17 10 15 22 14 20 117 (1) (2) (3) (4) (5) (6) (7) (8) (9) Tempatkan Pointer Q Menujuk simpul no (7) Hapus Simpul no (8) (Hapus Tengah)
Menghapus Simpul Susun Algoritma untuk : Dengan nilai INFO = 50, LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Menghapus Simpul Dengan nilai INFO = 50, Bila dipastikan simpul dengan nilai INFO = 50 ada satu buah, dan bukan merupakan simpul pertama, juga bukan merupakan simpul terakhir.
Menujuk simpul disebelah kiri (sebelum) simpul dengan nilai INFO =50. Q FIRST INFO LINK INFO LINK LINK INFO INFO LINK LINK LINK LINK INFO INFO LINK INFO INFO LINK INFO 25 12 17 10 15 22 14 50 117 (1) (2) (3) (4) (5) (6) (7) (8) (9) Tempatkan Pointer Q Menujuk simpul disebelah kiri (sebelum) simpul dengan nilai INFO =50. Hapus Simpul dengan nilai INFO = 50 (Hapus Tengah)
Susun Algoritma untuk : LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Memeriksa apakah simpul pertama nilai INFO-nya == 50. Bila simpul pertama nilai INFOnya == 50, maka cetak perkataan “YA”, bila tidak cetak perkataan “TIDAK ”
Susun Algoritma untuk : LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Memeriksa apakah simpul terakhir nilai INFO-nya == 50. Bila simpul terakhir nilai INFOnya == 50, maka cetak perkataan “YA”, bila tidak cetak perkataan “TIDAK ”
Menghapus Simpul Susun Algoritma untuk : Dengan nilai INFO = 50, LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Menghapus Simpul Dengan nilai INFO = 50, Bila dipastikan simpul dengan nilai INFO = 50 ada satu buah.
Periksa simpul yang nilai INFOnya = 50. Q FIRST INFO LINK INFO LINK LINK INFO INFO LINK LINK INFO LINK LINK LINK INFO INFO INFO LINK INFO 25 12 17 10 15 22 14 50 117 (1) (2) (3) (4) (5) (6) (7) (8) (9) Periksa simpul yang nilai INFOnya = 50. Bila merupakan simpul pertama, maka : DELETE KIRI Bila merupakan simpul terakhir, maka : DELETE KANAN (Delete Akhir) Selainnya DELETE TENGAH
if( Simpul yang INFO == 50 adalah simpul pertama) { DELTE KIRI } Q FIRST INFO LINK INFO LINK LINK INFO INFO LINK LINK INFO LINK LINK LINK INFO INFO INFO LINK INFO 25 12 17 10 15 22 14 50 117 (1) (2) (3) (4) (5) (6) (7) (8) (9) Q=FIRST; if( Simpul yang INFO == 50 adalah simpul pertama) { DELTE KIRI } Else { if(Simpul yang INFO ==50 adalah simpul akhir) { DELETE KANAN } else { DELETE TENGAH } {
Soal-1 Menghitung & mencetak Jumlah Simpul Susun Algoritma untuk : xx LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Menghitung & mencetak Jumlah Simpul
Menghitung & mencetak : Soal-1 Menghitung & mencetak : Jumlah Simpul LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Atau: Atau: Q = FIRST; Jum = 1; while (Q != LAST) { Q = Q->LINK; Jum = Jum + 1; } printf(“%i”, JUM); Q = FIRST; Jum = 1; while (Q->LINK != NULL) { Q = Q->LINK; Jum = Jum + 1; } printf(“%i”, JUM); Q = FIRST; Jum = 0; while (Q != NULL) { Jum = Jum + 1; Q = Q->LINK; } printf(“%i”, JUM);
Soal-1 Menghitung & mencetak Jumlah Simpul Susun Algoritma untuk : LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Menghitung & mencetak Jumlah Simpul Dengan nilai INFO == 50
Susun Algoritma untuk : LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Memeriksa apakah simpul pertama nilai INFO-nya == 50. Bila simpul pertama nilai INFOnya == 50, maka cetak perkataan “YA”, bila tidak cetak perkataan “TIDAK ”
Susun Algoritma untuk : LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Memeriksa apakah ada simpul yang nilai INFO-nya == 50. Bila ada, cetak perkataan “ADA”, bila tidak ada cetak perkataan “TIDAK ADA”
Menghapus Simpul Susun Algoritma untuk : Dengan nilai INFO = 50, LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Menghapus Simpul Dengan nilai INFO = 50, bila simpul ini ada. Bila simpul dengan nilai INFO == 50 tidak ada, maka cetak perkataan “Simpul dengan INFO = 50 Tidak Ada “
Susun Algoritma untuk : LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Sudah dibuat sebuah simpul baru yang ditunjuk oleh Pointer P. P->INFO sudah diisi. Susun Algoritma untuk : Menginsert simpul baru tersebut diantara simpul no (7) dan simpul no (8).
Insert simpul baru diantara simpul no (7) dan simpul no (8) Q FIRST INFO LINK INFO LINK LINK INFO INFO LINK LINK LINK LINK INFO INFO LINK INFO INFO LINK INFO 25 12 17 10 15 22 14 50 117 (1) (2) (3) (4) (5) (6) (7) (8) (9) Tempatkan Pointer Q Menujuk simpul no (7). Insert simpul baru diantara simpul no (7) dan simpul no (8) (INSERT TENGAH)
Soal-1 Menghitung & mencetak Jumlah Simpul Susun Algoritma untuk : xx LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Menghitung & mencetak Jumlah Simpul
Soal-1 Menghitung & mencetak Jumlah Simpul Susun Algoritma untuk : xx LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Menghitung & mencetak Jumlah Simpul
Soal-1 Menghitung & mencetak Jumlah Simpul Susun Algoritma untuk : xx LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Menghitung & mencetak Jumlah Simpul
Menghitung & mencetak : Soal-1 Menghitung & mencetak : Jumlah Simpul LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Atau: Atau: Q = FIRST; Jum = 1; while (Q != LAST) { Q = Q->LINK; Jum = Jum + 1; } printf(“%i”, JUM); Q = FIRST; Jum = 1; while (Q->LINK != NULL) { Q = Q->LINK; Jum = Jum + 1; } printf(“%i”, JUM); Q = FIRST; Jum = 0; while (Q != NULL) { Jum = Jum + 1; Q = Q->LINK; } printf(“%i”, JUM);
Q = FIRST; Jum = 1; while (Q != LAST) { Q = Q->LINK; Jum = Jum + 1; INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Q = FIRST; Jum = 1; while (Q != LAST) { Q = Q->LINK; Jum = Jum + 1; } printf(“%i”, JUM); Keluar dari Loop Bila : Q = LAST Q LAST
while (Q->LINK != NULL) { Q = Q->LINK; Jum = Jum + 1; } LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Q = FIRST; Jum = 1; while (Q->LINK != NULL) { Q = Q->LINK; Jum = Jum + 1; } printf(“%i”, JUM); Keluar dari Loop Bila : Q Q->LINK = NULL LAST
Q = FIRST; Jum = 0; while (Q != NULL) { Jum = Jum + 1; Q = Q->LINK; LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Q = FIRST; Jum = 0; while (Q != NULL) { Jum = Jum + 1; Q = Q->LINK; } printf(“%i”, JUM); Keluar dari Loop Bila : Q == NULL LAST Q
Q Q = FIRST; Jum = 1; Q xx xx Prinsip : Q menujuk simpul (1) LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Prinsip : Q menujuk simpul (1) Jum dibuat = 1; Q 1 LAST Q = FIRST; Jum = 1; Jum
Soal-2 Menghitung & mencetak Total INFO Susun Algoritma untuk : xx xx LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Susun Algoritma untuk : Menghitung & mencetak Total INFO
Menghitung & mencetak : Soal-2 Menghitung & mencetak : Total INFO LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Atau: Atau: Q = FIRST; Tot = Q->INFO; while (Q != LAST) { Q = Q->LINK; Tot=Tot+Q->INFO; } printf(“%i”, Tot); Q = FIRST; Tot = Q->INFO; while (Q->LINK != NULL) { Q = Q->LINK; Tot=Tot+Q->INFO; } printf(“%i”, Tot); Q = FIRST; Tot = 0; while (Q != NULL) { Tot=Tot+Q->INFO; Q = Q->LINK; } printf(“%i”, Tot);
Sudah ada Linear Singly Linked List. Jumlah simpul lebih dari 1. SOAL-4 LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Sudah ada Linear Singly Linked List. Jumlah simpul lebih dari 1. Simpul awal ada diujung paling kiri, ditunjuk oleh pointer FIRST Simpul terakhir ada diujung paling kanan, ditunjuk oleh poiner LAST Link simpul terakhir nilainya = NULL. Susun algoritma untuk menghitung dan mencetak Total INFO Atau: Atau: Q = FIRST; Tot = Q->INFO; while (Q != LAST) { Q = Q->LINK; Tot=Tot+Q->INFO; } printf(“%i”, Tot); Q = FIRST; Tot = Q->INFO; while (Q->LINK != NULL) { Q = Q->LINK; Tot=Tot+Q->INFO; } printf(“%i”, Tot); Q = FIRST; Tot = 0; while (Q != NULL) { Tot=Tot+Q->INFO; Q = Q->LINK; } printf(“%i”, Tot);
Soal-Soal Latihan Mandiri
1. Perhatikan penggalan Linked List yang digambarkan berikut ini, 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) 15 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 2. Sebutkan pointer-pointer yang bernilai sama (yang isinya sama)
if 3. Sebutkan True atau False kondisi pada intruksi berikut ini : 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 Sebutkan True atau False kondisi pada intruksi berikut ini : 3. if a. if(P->LIKK == R) b. if(Q->LINK == R->LINK) c. if(Q->LINK->LINK == S->LINK)
if 3. Sebutkan True atau False kondisi pada intruksi berikut ini : 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 Sebutkan True atau False kondisi pada intruksi berikut ini : 3. if 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. FIRST LAST INFO LINK INFO LINK INFO LINK INFO 25 12 27 14 (1) (2) Soal : Susun Algoritma untuk : A. Menempatkan pointer Q sehingga menunjuk simpul no (1) B. Menempatkan pointer Q sehingga menujuk simpul no (7 144
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. FIRST LAST INFO LINK INFO LINK INFO LINK INFO 25 12 27 14 (1) (2) 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