Anda di halaman 1dari 3

Procedure MenuPilihan( Output Menu : 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(“6. Tampil Data Angka”)
Output(“0. Keluar”)
Input(Menu)
{Validasi menu pilihan}
While (Menu < 0) or (Menu > 6) do
Output(“Menu tidak tersedia, Pilih Ulang!”)
Input(Menu)
EndWhile

EndProcedure

Procedure IsiDataAngka( Output Angka : ArrayAngka, Output BanyakData : Integer )


{I.S. : Pengguna memasukkan 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  1 to BanyakData do
Input(Angka(i))
EndFor
EndProcedure

Procedure TampilDataAngka( Input Angka : ArrayAngka, Input BanyakData : Integer )


{I.S. : Pengguna memasukkan banyaknya data dan elemen array Angka (1:BanyakData) sudah terdefinisi}
{F.S. : Menampilkan elemen array Angka (1:BanyakData)}
Kamus:
i : Integer
Algoritma:
For i  1 to BanyakData do
Output(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 : ArrayAngka, Output BanyakData : Integer )
Procedure TampilDataAngka( Input Angka : ArrayAngka, Input 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 AngkaBaru :
Real )
TampilRataRata
TampilNilaiTinggiRendah

Algoritma:
MenuPilihan(Menu)
While(MenuPilihan ≠ 0) do
If (Menu = 1)
Then
IsiDataAngka(Angka, BanyakData)
Else
If (Menu = 2)
Then

Else
If (Menu = 3)
Then

Else
If (Menu = 4)
Then
TambahAngka(Angka, BanyakData, AngkaBaru)
Else
If (Menu = 5)
Then
SisipAngka((Angka, BanyakData, Posisisisip, AngkaBaru)
Else
TampilDataAngka(Angka, BanyakData)
EndIf
EndIf
EndIf
EndIf
EndIf

MenuPilihan(Menu)
EndWhile

Anda mungkin juga menyukai