Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.27 KB | None | 0 0
  1. Procedure MenuPilihan(Output Pilih : Char)
  2. {I.S. : user memasukkan menu pilihan}
  3. {F.S. : menghasilkan pilihan}
  4. Kamus:
  5. Algoritma:
  6. Output('MENU PILIHAN')
  7. Output('------------')
  8. Output('1. Isi Data Buku')
  9. Output('2. Tampil Data Buku (terurut secara Ascending berdasarkan Kode Buku -> Minimum Sort)')
  10. Output('3. Tampil Data Buku (terurut secara Descending berdasarkan Tahun -> Maximum Sort)')
  11. Output('4. Tampil Data Buku (terurut secara Ascending berdasarkan Jumlah -> Bubble Sort)')
  12. Output('0. Keluar')
  13. Output('Pilihan anda? ')
  14. Input(Pilih)
  15. While (Pilih < 0) or (Pilih > 4) do
  16. Input(Pilih)
  17. Endwhile
  18. Endprocedure
  19.  
  20.  
  21. Procedure IsiDataBuku(Output N : Integer, Buku : ArrBuku)
  22. {I.S. : user memasukkan jumlah buku (N)}
  23. {F.S. : menghasilkan jumlah buku (N) dan array buku}
  24. Kamus:
  25. Algoritma:
  26. Output('ISI DATA BUKU')
  27. Output('-------------')
  28. Output('Masukkan Jumlah Buku : )
  29. Input(N)
  30. While (N > MaksBuku) do
  31. Input(N)
  32. Endwhile
  33. For i <- 1 to N do
  34. Output('Masukkan Kode : ')
  35. Input(Buku(i).Kode)
  36. Output('Masukkan Judul : ')
  37. Input(Buku(i).Judul)
  38. Output('Masukkan Jenis : ')
  39. Input(Buku(i).Jenis)
  40. Output('Masukkan Pengarang : ')
  41. Input(Buku(i).Pengarang)
  42. Output('Masukkan Jumlah : ')
  43. Input(Buku(i).Jumlah)
  44. Endfor
  45. Endprocedure
  46.  
  47.  
  48. Procedure TampilAscMinimumSort(Input N : Integer, I/O Buku : ArrBuku)
  49. {I.S. : N dan Buku sudah terdefinisi}
  50. {F.S. : menampilkan data buku secara ascending berdasarkan kode buku}
  51. Kamus:
  52. i,j : Integer
  53. Temp : RecBuku
  54. Algoritma:
  55. Output('TAMPIL DATA BUKU (TERURUT SECARA ASCENDING BERDASARKAN KODE BUKU -> MINIMUM SORT)')
  56. Output('---------------------------------------------------------------------------------')
  57. For i <- 1 to (N - 1) do
  58. Min <- i
  59. For j <- (i + 1) to N do
  60. If (Buku(i).Kode < Buku(Min).Kode)
  61. Then
  62. Min <- j
  63. Endif
  64. Endfor
  65. Temp <- Buku(Min)
  66. Buku(Min) <- Buku(i)
  67. Buku(i) <- Temp
  68. Endfor
  69. For i <- 1 to N do
  70. Output('Buku ke-',i)
  71. Output('Kode : ',Buku(i).Kode)
  72. Output('Judul : ',Buku(i).Judul)
  73. Output('Jenis : ',Buku(i).Jenis)
  74. Output('Pengarang : ',Buku(i).Pengarang)
  75. Output('Jumlah : ',Buku(i).Jumlah)
  76. Endfor
  77. Endprocedure
  78.  
  79.  
  80. Procedure TampilDscMaximumSort(Input N : Integer, I/O Buku : ArrBuku)
  81. {I.S. : N dan Buku sudah terdefinisi}
  82. {F.S. : menampilkan data buku secara descending berdasarkan tahun buku}
  83. Kamus:
  84. i,j : Integer
  85. Temp : RecBuku
  86. Algoritma:
  87. Output('TAMPIL DATA BUKU (TERURUT SECARA DESCENDING BERDASARKAN TAHUN -> MAXIMUM SORT)')
  88. Output('------------------------------------------------------------------------------')
  89. For i <- 1 to (N - 1) do
  90. Max <- N
  91. For j <- (N - 1) downto i do
  92. If (Buku(j).Tahun > Buku(Max).Tahun)
  93. Then
  94. Max <- j
  95. Endif
  96. Endfor
  97. Temp <- Buku(Max)
  98. Buku(Max) <- Buku(i)
  99. Buku(i) <- Temp
  100. Endfor
  101. For i <- 1 to N do
  102. Output('Buku ke-',i)
  103. Output('Kode : ',Buku(i).Kode)
  104. Output('Judul : ',Buku(i).Judul)
  105. Output('Jenis : ',Buku(i).Jenis)
  106. Output('Pengarang : ',Buku(i).Pengarang)
  107. Output('Jumlah : ',Buku(i).Jumlah)
  108. Endfor
  109. Endprocedure
  110.  
  111.  
  112. Procedure TampilAscBubbleSort(Input N : Integer, I/O Buku : ArrBuku)
  113. {I.S. : N dan Buku sudah terdefinisi}
  114. {F.S. : menampilkan data buku secara ascending berdasarkan jumlah buku}
  115. Kamus:
  116. i,j : Integer
  117. Temp : RecBuku
  118. Algoritma:
  119. Output('TAMPIL DATA BUKU (TERURUT SECARA ASCENDING BERDASARKAN JUMLAH -> BUBBLE SORT)')
  120. Output('-----------------------------------------------------------------------------')
  121. For i <- 1 to (N - 1) do
  122. For j <- N downto (i + 1) do
  123. If (Buku(j).Jumlah < Buku(j - 1).Jumlah)
  124. Then
  125. Temp <- Buku(j)
  126. Buku(j) <- Buku(j - 1)
  127. Buku(j - 1) <- Temp
  128. Endif
  129. Endfor
  130. Endfor
  131. For i <- 1 to N do
  132. Output('Buku ke-',i)
  133. Output('Kode : ',Buku(i).Kode)
  134. Output('Judul : ',Buku(i).Judul)
  135. Output('Jenis : ',Buku(i).Jenis)
  136. Output('Pengarang : ',Buku(i).Pengarang)
  137. Output('Jumlah : ',Buku(i).Jumlah)
  138. Endfor
  139. Endprocedure
  140.  
  141.  
  142. {Algoritma Utama}
  143. DataBuku
  144. {I.S. : user memasukkan menu pilihan}
  145. {F.S. : menampilkan hasil berdasarkan pilihan}
  146. Kamus:
  147. Const
  148. MaksBuku = 50
  149. Type
  150. RecBuku = Record
  151. Kode : String,
  152. Judul : String,
  153. Jenis : String,
  154. Pengarang : String,
  155. Jumlah : Integer
  156. Endrecord
  157. ArrBuku = array[1..MaksBuku] of RecBuku
  158. N : Integer
  159. Buku : ArrBuku
  160. Pilih : Char
  161. Algoritma:
  162. Repeat
  163. MenuPilihan(Pilih)
  164. Depend On (Pilih)
  165. '1' : IsiDataBuku(N,Buku)
  166. '2' : TampilAscMinimumSort(N,Buku)
  167. '3' : TampilDscMaximumSort(N,Buku)
  168. '4' : TampilAscBubbleSort(N,Buku)
  169. Enddepend
  170. Until (Pilih = 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement