0% menganggap dokumen ini bermanfaat (0 suara)
18 tayangan7 halaman

Tugaaskuu

Program ini melakukan input data mahasiswa ke dalam array lalu mengurutkan, mencari data menggunakan linear search, binary search, dan fibonacci search.

Diunggah oleh

Fikri Sitorus
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
18 tayangan7 halaman

Tugaaskuu

Program ini melakukan input data mahasiswa ke dalam array lalu mengurutkan, mencari data menggunakan linear search, binary search, dan fibonacci search.

Diunggah oleh

Fikri Sitorus
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

1.

Menginput nama dan npm lalu akan diberikan pertanyaan untuk mencari data
Pertanyaan yg dicari nama/npm
 Program

1. package prak_strukturdata;
2. import java.util.Scanner ;
3. import java.util.Arrays;
4.
5. public class TugasPraktekSD {
6.
7.
8. // METHOD SORTING
9. static void Sorting(String [] array , int [] arr)
10. {
11. for (int i = 0 ; i < array.length-1 ; i++)
12. {
13. int min = i ;
14. for(int j = i+1 ; j < array.length ; j++)
15. {
16. if(array[min].compareTo(array[j])>0)
17. {
18. min = j ;
19. }
20. }
21. String penyimpanan = array[i];
22. int simpan = arr[i];
23. array[i] = array[min];
24. arr[i] = arr[min];
25. arr[min] = simpan ;
26. array[min] = penyimpanan ;
27. }
28. }
29.
30. //Method Linear Search
31. static int LinearSearch(String [] array , String key )
32. {
33. for(int i = 0 ; i < array.length ; i++)
34. {
35. if(array[i].equals(key))
36. {
37. return i ;
38. }
39. }
40.
41. return -1 ;
42. }
43.
44. //Method Binary Search
45. static int BinarySearch(String [] array , String key )
46. {
47. int high = array.length;
48. int low = 0 ;
49. while(low<high)
50. {
51. int mid = (high-low)/2;
52. if(array[mid].equals(key))
53. {
54. return mid ;
55. }
56. else if(array[mid].compareTo(key)<0)
57. {
58. low = mid + 1;
59. }
60. else
61. {
62. high = mid - 1;
63. }
64. }
65.
66. return -1 ;
67. }
68.
69. // Method Fibonaci Search
70. static int Minimum(int a , int b)
71. {
72. return a < b ? a : b ;
73. }
74.
75. static int FibonaciSearch(String [] array , String key ,
int n )
76. {
77. int offset = -1 ;
78. int p =0 ;
79. int q = 1 ;
80. int r = p + q ;
81. while(r < n )
82. {
83. p = q ;
84. q = r ;
85. r = p + q ;
86. }
87. while(r > 1)
88. {
89. int i = Minimum(offset+p , n-1);
90. if(array[i].compareTo(key)< 0)
91. {
92. r = q ;
93. q = p ;
94. p = r - q ;
95. offset = i ;
96. } else if (array[i].compareTo(key)>0)
97. {
98. r = p ;
99. q = q - p ;
100. p = r - q ;
101. }
102. else
103. {
104. return i ;
105. }
106.
107. }
108. if(r==1 && array[offset+1].equals(key))
109. {
110. return offset + 1 ;
111. }
112. return -1 ;
113.
114. }
115.
116. public static int binarySearch(String arr[], int
first, int last, String key){
117. int mid = (first + last)/2;
118. while( first <= last ){
119. if ( arr[mid].compareTo(key)<0 ){
120. first = mid + 1;
121. }else if ( arr[mid].equals(key) ){
122. return mid ;
123. // break;
124. }else{
125. last = mid - 1;
126. }
127. mid = (first + last)/2;
128. }
129. if ( first > last ){
130. System.out.println("Element is not found!");
131. }
132. return -1 ;
133. }
134. public static void main(String[] args) {
135. Scanner sc = new Scanner(System.in);
136. Scanner n = new Scanner(System.in);
137. Scanner Nama = new Scanner(System.in);
138. Scanner NPM = new Scanner(System.in);
139. System.out.println("Masukkan Banyaknya Mahasiswa
yang di - Input ");
140. int no = n.nextInt();
141. String [] nama = new String[no];
142. int [] npm = new int[no];
143. for(int i = 0 ; i < no ; i++)
144. {
145. System.out.println("Masukkan Nama Mahasiswa ke "
+(i+1));
146. String s = Nama.nextLine();
147. System.out.println("Masukkan NPM " +s);
148. int npmk = NPM.nextInt();
149. npm[i] = npmk ;
150. nama[i] = s ;
151. }
152. int wk = nama.length;
153. System.out.println("");
154. System.out.println("Array Sebelum di Sorting ");
155. for(int i = 0 ; i < no ; i++)
156. {
157. System.out.println("Nama " +nama[i] +" NPM "
+npm[i]);
158. }
159. // System.out.println(Arrays.toString(nama));
160. Sorting(nama,npm);
161. System.out.println("");
162. System.out.println(" Array Setelah di Sorting ");
163. for(int i = 0 ; i < no ; i++)
164. {
165. System.out.println("Nama " +nama[i] +" NPM "
+npm[i]);
166. }
167. // System.out.println(Arrays.toString(nama));
168. System.out.println("Masukkan Nama Yang Ingin di Cari
-");
169. String s = sc.nextLine();
170.
171. System.out.println("Pencarian dengan menggunakan
Linear Search ");
172. // System.out.println(LinearSearch(nama,s));
173. int nextLinear = LinearSearch(nama,s);
174. if(nextLinear!=-1)
175. {
176. System.out.println("Mahasiswa dengan Nama " +s +" Ada
dalam array dengan Indeks " +nextLinear +" NPM "
+npm[nextLinear]) ;
177. } else
178. {
179. System.out.println("elemen tidak ada dalam array ");
180. }
181. System.out.println("Pencarian dengan menggunakan
Binary Search ");
182. int nextBinary = binarySearch(nama,0,wk,s);
183. if(nextBinary!=-1){
184. System.out.println("Mahasiswa dengan Nama " +s
+" Ada dalam array dengan Indeks " +nextBinary +" NPM "
+npm[nextBinary]) ;
185. }
186. else
187. {
188. System.out.println("elemen tidak ada dalam array ");
189. }
190. System.out.println("Pencarian dengan menggunakan
fibonaci Search ");
191. int nextFibo = FibonaciSearch(nama,s,wk);
192. if(nextFibo!=-1){
193. System.out.println("Mahasiswa dengan Nama " +s
+" Ada dalam array dengan Indeks " +nextFibo +" NPM "
+npm[nextFibo]) ;
194. }
195. else
196. {
197. System.out.println("elemen tidak ada dalam array ");
198. }
199. }
200. }
 Output

run:
Masukkan Banyaknya Mahasiswa yang di - Input
2
Masukkan Nama Mahasiswa ke 1
Dody Putra
Masukkan NPM Dody Putra
222510028
Masukkan Nama Mahasiswa ke 2
Roni Putra
Masukkan NPM Roni Putra
222510024

Array Sebelum di Sorting


Nama Dody Putra NPM 222510028
Nama Roni Putra NPM 222510024

Array Setelah di Sorting


Nama Dody Putra NPM 222510028
Nama Roni Putra NPM 222510024
Masukkan Nama Yang Ingin di Cari -
Dody Putra
Pencarian dengan menggunakan Linear Search
Mahasiswa dengan Nama Dody Putra Ada dalam array dengan Indeks 0 NPM
222510028
Pencarian dengan menggunakan Binary Search
Mahasiswa dengan Nama Dody Putra Ada dalam array dengan Indeks 0 NPM
222510028
Pencarian dengan menggunakan fibonaci Search
Mahasiswa dengan Nama Dody Putra Ada dalam array dengan Indeks 0 NPM
222510028
BUILD SUCCESSFUL (total time: 41 seconds)
IDENTITAS PRAKTIKAN
NIM : 222510028
NAMA PRAKTIKAN : Dody Putra Sihotang
KELAS/HARI/JAM : 2 TI-A /Rabu/14.00

PRAKTIKUM TUGAS
Telah diperiksa pada tanggal:______________ Telah diperiksa pada tanggal:______________

Paraf Asisten Paraf Asisten

Anda mungkin juga menyukai