program P0203;

uses wincrt;

function ucase(s:string):string; var i:integer;

begin

for i:=1 to length (s) do

if (s[i]>='a') and (s[i]<='z') then

dec (s[i],32);

ucase:=s;

end;

var

pass,nama,alamat,s,lulus : string;

nrp:string;

keterangan: string[2];

grade,pilih,ulang,rev:char;

t,tugas,uts,uas:integer;

na:real;

x : array [1..100] of integer; max,min,bil,arr:integer; {Program MaxMin}

label balik;

begin

writeln('SignIn dan Login, Sebelum masuk pada program');

writeln('--------------------------------------------');

writeln('Gunakan Nama dan NIM anda untuk SignIn & Login');

writeln;

write('Masukkan Username : ');readln(s);

write('Masukkan Password : ');readln(nrp);

balik:

clrscr;

gotoxy(27,2);writeln('>> Selamat Datang di Form Login <<');writeln;

write('  ++ Masukkan Username : ');readln(nama);

write('  ++ Masukkan Password : ');readln(pass);

if (pass=nrp) and (nama<>s) then

begin

writeln;

writeln('   Maaf, Username anda salah');

writeln('   -------------------------');

writeln;

writeln('Tekan y untuk login ulang');

rev:=readkey;

if rev='y' then goto balik;

end

else

if (nama=s) and (pass<>nrp) then

begin

writeln;

writeln('   Maaf, Password anda Keliru');

writeln('   --------------------------');

writeln;

writeln('Tekan y untuk login ulang');

rev:=readkey;

if rev='y' then goto balik;

end

else

if (nama<>s) and (pass<>nrp) then

begin

writeln;

writeln('   Maaf, anda gak ada niat login');

writeln('   -----------------------------');

writeln;

writeln('Tekan y untuk login ulang');

rev:=readkey;

if rev='y' then goto balik;

end

else

begin

writeln;

writeln('   Terima Kasih anda berhasil Login');

writeln('   --------------------------------');

writeln;

writeln('Username : ',s);

writeln('Password : *********');

readln;

repeat

clrscr;

writeln('Menu Utama');

writeln('----------');

writeln('1. Input data Mahasiswa');

writeln('2. Mencari Bilangan Genap & Ganjil');

writeln('3. Bilangan Terbesar & Terkecil');

writeln('4. Anda Keluar');

writeln;

write('Pilihan anda : ');readln(pilih);

case pilih of

'1':begin

       clrscr;

       writeln('Data Identitas Mahasiswa');

       writeln('--------------------------');

       write('Masukkan Nama Anda        : ');readln(nama);

       write('Masukkan NRP Anda         : ');readln(nrp);

       write('Masukkan alamat Anda      : ');readln(alamat);

       write('Masukkan Nilai Tugas Anda : ');readln(tugas);

       write('Masukkan Nilai UTS Anda   : ');readln(uts);

       write('Masukkan Nilai UAS Anda   : ');readln(uas);

       na:=(2*uas+tugas+uts)/4;

       {menentukan Program Studi}

       if (copy('nrp',3,2)='11') then

       keterangan :='S1'

       else

       if (copy('nrp',3,2)='31') then

       keterangan :='D3';

       {menentukan Grade}

       if (na>=80) then

       begin

       grade :='A';

       lulus :='Lulus';

       end

       else

       if (na>=70) then

       begin

       grade :='B';

       lulus :='Lulus';

       end

       else

       if (na>=60) then

       begin

       grade :='C';

       lulus :='Lulus';

       end

       else

       begin

       grade :='D';

       lulus :='Tidak Lulus';

       end;

       clrscr;

       writeln('Data Mahasiswa yang diinput');

       writeln('---------------------------');

       writeln('Nama          : ',ucase(nama));

       writeln('NRP           : ',nrp);

       writeln('Program Studi : ',keterangan);

       writeln('Alamat        : ',ucase(alamat));

       writeln('Nilai Tugas   : ',tugas);

       writeln('Nilai UTS     : ',uts);

       writeln('Nilai UAS     : ',uas);

       writeln('Grade         : ',grade);

       writeln('Lulus/Tidak   : ',ucase(lulus));

       end;

'2':begin

    clrscr;

    writeln('Program Mencari Bilangan Genap & Ganjil');

    writeln('---------------------------------------');

    writeln;

    write('Masukkan Bilangan : ');readln(bil);

    writeln;

    if bil mod 2 = 0 then

    writeln('  Bilangan ',bil,' adalah Bilangan Genap')

    else

    writeln('  Bilangan ',bil,' adalah Bilangan Ganjil');

    end;

'3':begin

    clrscr;

    writeln('Program Menentukan Bilangan Terbesar & Terkecil');

    writeln('-----------------------------------------------');

    write('Masukkan Jumlah Bilangan : ');readln(bil);

    writeln;

    for arr:=1 to bil do

    begin

    write('bilangan ke - ',arr,' : ');readln(x[arr]);

    end;

    writeln;

    write('Bilangan yang anda masukkan adalah : ');

    max:=x[1];

    min:=x[1];

    for arr:= 1 to bil do

    begin

    write(x[arr],'  ');

    if (max<x[arr]) then

    max:=x[arr]

    else

    min:=x[arr];

    end;

    writeln;

    writeln('Bilangan Terbesar : ',max);

    writeln('Bilangan Terkecil : ',min);

    writeln;

    end;

'4':begin

    clrscr;

    writeln('Anda mengakhiri program');

    writeln('-----------------------');

    end;

else

begin

clrscr;

writeln('Pilihan anda salah !');

writeln('--------------------');

end;

end;

writeln;

Write('Mau Ulang Lagi ? [Y/T]: ');Readln(ulang);

Until Upcase(ulang)<>'Y';

end

end.