Anda di halaman 1dari 4

Procedure MenuPilihan(OutputMenu : integer)

{I.S. : Pengguna memilih salah satu nomor menu}


{F.S. : Menampilkan hasil sesuai nomor menu yang dipilih}

Kamus:

Algoritma:
Output(“Menu Pilihan”)
Output(“-----------------”)
Output(“1. Isi Data Angka”)
Output(“2. Rata-Rata Angka”)
Output(“3. Angka Tertinggi dan Angka Terendah”)
Output(“4. Penambahan Data Angka”)
Output(“5. Penyisipan Data Angka”)
Output(“0. Keluar”)
Input(“Menu Pilihan”)
{Validasi menu pilihan}
While (Menu < 0) or (Menu > 6) do
Output(“Menu tidak tersedia, Pilih Ulang!”)
Input(Menu)
EndWhile

EndProcedure

Procedure IsiDataAngka(Output Angka : Array_Angka, Output BanyakData : integer)


{I.S. : Pengguna memasukan banyaknya data dan elemen array Angka (1 : BanyakData)}
{F.S. : Menghasilkan banyaknya data dan elemen array Angka (1 : BanyakData)}

Kamus:
i : integer

Algoritma:
Input(BanyakData)
For i  to BanyakData do
Input(Angka(i))
EndFor
EndProcedure

Procedure TampilDataAngka(Output Angka : Array_Angka, Output BanyakData : integer)


{I.S. : Pengguna memasukan banyaknya data dan elemen array Angka (1 : BanyakData) sudah
terdefinisi}
{F.S. : Menampilkan elemen array Angka (1 : BanyakData)}

Kamus:
i : integer

Algoritma:
Input(BanyakData)
For i  1 to BanyakData do
Input(Angka(i))
EndFor
EndProcedure

Procedure TambahAngka ( I/O Angka : Array_Angka, I/O BanyakData : Integer, Input AngkaBaru :
Integer )
{I.S. : elemen array angka dan data yang baru sudah terdefinisi}
{F.S. : menghasilkan elemen array angka yang sudah ditambah satu elemen dibelakang}
Kamus:

Algoritma:
If (BanyakData < Maks_Angka)
Then
BanyakData  BanyakData + 1
Angka(BanyakData)  AngkaBaru
Else
Output(“Data sudah Penuh”)
Endif
EndProcedure

Procedure SisipAngka ( I/O Angka : Array_Angka, I/O BanyakData : Integer, Input Posisisisip :
Integer, Input AngkaBaru : Real )
{I.S: elemen array Angka dan Angka yang baru sudah terdefinisi}
{F.S: menghasilkan array yang sudah disisipkan satu data pada posisi tertentu}
Kamus:
i : integer
Algoritma:
If BanyakData < Maks_Angka
Then
If (Posisisisip ≥ 1) and (Posisisisip ≤ BanyakData)
Then
For i  BanyakData downto Posisisisip do
Angka(i+1)  Angka(i)
EndFor
Angka(Posisisisip)  DataBaru
BanyakData  BanyakData + 1
Else
Output(“Posisi sisip tidak valid”)
Endif
Else
Output(“Data penuh”)
Endif
EndProcedure

{Algoritma Utama}
PengolahanArrayAngka
{I.S. : Pengguna memilih salah satu nomor menu}
{F.S. : Menampilkan hasil sesuai nomor menu yang dipilih}

Kamus:
Const
Maks_Angka = 10
Type
Array_Angka = array[1..Maks_Angka] of real

Angka : Array_Angka
BanyakData, PosisiSisip : integer
AngkaBaru : Real
{prototype Subrutin}
Procedure MenuPilihan(Output Menu : integer)
Procedure IsiDataAngka(Output Angka : Array_Angka, Output BanyakData : integer)
Procedure TampilDataAngka(Output Angka : Array_Angka, Output BanyakData : integer)
Procedure TambahAngka( I/O Angka : Array_Angka, I/O BanyakData : Integer, Input
AngkaBaru : Integer)
Procedure SisipAngka ( I/O Angka : Array_Angka, I/O BanyakData : Integer, Input Posisisisip :
Integer, Input Posisisisip : Integer, Input AngkaBaru : Real)
TampilRataRata
TampilNilaiTinggiRendah

Algoritma:
MenuPilihan(Menu)
While (Menu ≠ 0) do
If (Menu = 1)
Then
IsiDataAngka(Angka,BanyakData)
Else
If (Menu = 2)
Then
RataAngka (Angka,BanyakData)
Else
If (Menu = 3)
Then
AngkaTertinggidanTerendah(Angka,BanyakData)
Else
If (Menu = 4)
Then
PenambahanDataAngka(Angka,BanyakData)
Else
If (Menu = 5)
Then
PenyisipanDataAngka(Angka,BanyakData)
Else
TampilDataAngka(Angka,BanyakData)
EndIf
EndIf
EndIf
EndIf
EndIf
MenuPilihan(Menu)
EndWhile

Anda mungkin juga menyukai