Anda di halaman 1dari 5

Procedure Menu_Pilihan(Output Menu : integer)

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


{F.S. : Menampilkan hasil sesuai nomor menu yang dipilih }
Kamus:
Menu : integer
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 Pilihan Tidak Ada, Ulangi!”)
Input(Menu)
EndWhile
EndProcedure

----------------------------------------------------------------------------------------------------------------------------------------------------

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


{I.S. : pengguna memasukkan banyaknya data dan eleen 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

----------------------------------------------------------------------------------------------------------------------------------------------------

Function RataRata(Input Angka : Array_Angka, Input BanyakData : integer)  real


{I.S. : banyaknya data dan elemen array Angka(1: BanyakData) sudah terdefinisi }
{F.S. : Menghasilkan nilai rata rata array angka }
Kamus:
i,Total : integer

Algoritma:
For i  1 to BanyakData do
Total  Total + Angka(i)
EndFor
RataRata  Total/ BanyakData
EndFunction

----------------------------------------------------------------------------------------------------------------------------------------------------
Function NilaiMaks (Input Angka : Array_Angka, Input BanyakData : integer)  real
{I.S. : banyaknya data dan elemen array Angka(1: BanyakData) sudah terdefinisi }
{F.S. : Menentukan nilai terbesar array angka }
Kamus:
i : integer
Algoritma:
Maks  Angka(1)
For i  2 to BanyakData do
If (Angka(i)> Maks)
Then
Maks  Angka(i)
EndIf
EndFor
Return Maks
EndFunction

Function NilaiMin(Input Angka : Array_Angka, Input BanyakData : integer)  real


{I.S. : banyaknya data dan elemen array Angka(1: BanyakData) sudah terdefinisi }
{F.S. : Menentukan nilai terkecil array angka }
Kamus:
i : integer
Algoritma:
Min  Angka(1)
For i  2 to BanyakData do
If (Angka(i)< Min)
Then
Min  Angka(i)
EndIf
EndFor
Return Min
EndFunction

----------------------------------------------------------------------------------------------------------------------------------------------------

Procedure TambahAngka(I/O Angka : Array_Angka, I/O BanyaData : integer,


Input AngkaBaru : real )
{I.S. : banyaknya data dan elemen array Angka(1: BanyakData) sudah terdefinisi}
{F.S. : menghasilkan array angka yang sudah ditambah satu data dibelakang }
Kamus:

Algoritma:
If (Banyak Data < 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. : banyaknya data dan elemen array Angka(1: BanyakData) sudah terdefinisi}
{F.S. : menghasilkan array yang sudah disisipkan satu data pada posisi tertentu}

Kamus:
i : integer

Algoritma:
If (Banyak Data < Maks_Angka)
Then
If (Posisisisip ≥ 1)and(Posisisisip ≤ BanyakData)
Then
For i  BanyakData downto Posisisisip do
Angka(i+1)  Angka(i)
EndFor
Angka(Posisisisip)  AngkaBaru
BanyakData  BanyakData + 1
Else
Output(“Posisi Sisip Tidak Valid”)
EndIf
Else
Output(“Data Penuh”)
EndIf
EndProcedure

----------------------------------------------------------------------------------------------------------------------------------------------------

Procedure TampilData(Input Angka : Array_Angka, Input BanyakData : integer)


{I.S. : banyaknya data dan eleen array Angka(1: BanyakData) sudah terdefinisi}
{F.S. : menampilkan banyaknya data dan eleen array Angka(1: BanyakData}

Kamus:

Algoritma:

For i  1 to BanyakData do
Output(Angka(i))
EndFor

EndProcedure

----------------------------------------------------------------------------------------------------------------------------------------------------

{Algoritma Utama}
Pengolahan_Array_Angka
{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
Angka_Baru : real

{Prototype Subrutin }

Procedure Menu_Pilihan(Output Menu : integer)


Procedure IsiDataAngka(Output Angka : Array_Angka, Output BanyaData : integer)
Function RataRata(Input Angka : Array_Angka, Input BanyakData : integer)  real
Function NilaiMaks(Input Angka : Array_Angka, Input BanyakData : integer)  real
Function NilaiMin(Input Angka : Array_Angka, Input BanyakData : integer)  real
Procedure TambahAngka(I/O Angka : Array_Angka, I/O BanyakData : integer,
Input AngkaBaru : real )
Procedure SisipAngka(I/O Angka : Array_Angka, I/O BanyakData : integer, Input
Posisisisip : integer, Input AngkaBaru : real )
Procedure TampilData(Input Angka : Array_Angka, Input BanyakData : integer)

Algoritma:

Menu_Pilihan(Menu)
While (Menu ≠ 0) do
If (Menu = 1)
Then
IsiDataAngka(Angka,BanyakData)
Else
If (Menu = 2)
Then
RataRata(Angka,BanyakData)
Output(“Rata-Ratanya Adalah”,RataRata(Angka,BanyakData)
Else
If (Menu = 3)
Then
NilaiMaks(Angka,BanyakData)
NilaiMin(Angka,BanyakData)
Output(“Nilai Terbesar Adalah : ”,NilaiMaks(Angka,BanyakData))
Output(“Nilai Terkecil Adalah : ”,NilaiMin(Angka,BanyakData))
Else
If (Menu = 4)
Then
TambahAngka(Angka,BanyakData,AngkaBaru)
Else
If (Menu = 5)
Then
SisipAngka(Angka,BanyakData,Posisisisip,AngkaBaru)
Else
TampilData(Angka,BanyakData)
EndIf
EndIf
EndIf
EndIf
EndIf
Menu_Pilihan(Menu)
EndWhile

Anda mungkin juga menyukai