Advertisement
Guest User

Untitled

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