Algoritma Menu Program

Algoritma Menu yang menampilkan menu dengan 4 pilihan :
1. Buat n Bilangan Acak
2. Tampilkan Bilangan Acak
3. Urutkan Bilangan Acak
4. Keluar

Imports System.Console

Module Module3

    Dim qqq(0) As Integer

    Sub Main()
        Call Index()
    End Sub



    Sub Index()
        Clear()
        WriteLine("Menu Program")
        WriteLine("============")
        WriteLine()
        WriteLine("A. Buat n Bilangan Acak")
        WriteLine("B. Tampilkan Bilangan Acak")
        WriteLine("C. Urutkan Bilangan Acak")
        WriteLine("D. Keluar")

zzz:
        Write("Masukan Pilihan Anda : ") : Dim abc As String = ReadLine()
        Select Case abc.ToUpper
            Case "A" : Call Buat()
            Case "B" : Call Tampil(qqq)
            Case "C" : Call Urut(qqq)
            Case "D" : End
            Case Else
                WriteLine("Pilihan Anda Salah.") : WriteLine() : GoTo zzz
        End Select
    End Sub

    Sub Buat()
        Clear()
        Write("Masukan n Bilangan Acak = ") : Dim n As Integer = ReadLine()
        Write("Masukan Angka Acak Terendah = ") : Dim rendah As Integer = ReadLine()
        Write("Masukan Angka Acak Tertinggi = ") : Dim tinggi As Integer = ReadLine()
        ReDim qqq(n - 1) : Dim rd As New Random
        For i As Integer = qqq.GetLowerBound(0) To qqq.GetUpperBound(0)
            qqq(i) = rd.Next(rendah, tinggi + 1)
        Next
        WriteLine()
        Write("{0} Bilangan acak dari {1} sampai {2} adalah = ", n, rendah, tinggi)
        Call Cetak(qqq) : ReadKey() : Call Index()
    End Sub

    Sub Tampil(ByVal xxx() As Integer)
        Clear() : Write("{0} Bilangan acak yang tersimpan = ", xxx.Length)
        Call Cetak(qqq) : Dim ttl As Integer = 0
        For i As Integer = xxx.GetLowerBound(0) To xxx.GetUpperBound(0)
            ttl += xxx(i)
        Next
        WriteLine("Total = {0}", ttl)
        WriteLine("Rata-Rata = {0:N2}", ttl / xxx.Length)
        ReadKey() : Call Index()
    End Sub

    Sub Urut(ByVal xxx() As Integer)
        Clear() : Write("{0} Bilangan acak [Sebelum Urut] = ", xxx.Length)
        Call Cetak(qqq) : WriteLine() : Array.Sort(xxx)
        Write("{0} Bilangan acak [Sesudah Urut] = ", xxx.Length)
        Call Cetak(qqq) : ReadKey() : Call Index()
    End Sub

    Sub Cetak(ByVal xxx() As Integer)
        For i As Integer = xxx.GetLowerBound(0) To xxx.GetUpperBound(0)
            Write(xxx(i) & " ")
        Next
        WriteLine()
    End Sub

End Module

Comments