program penyimpanan dan hitung ipk

8
PRAKTEK ALGORITMA DAN PEMROGRAMAN PROGRAM PENYIMPANAN DAN HITUNG RATA-RATA IPK MAHASISWA Created By: ADHITYA AKBAR(13065) SYAIKHUL MUTTAQIN(13175) MIFTAH EL ALIMI(13408) MUHAMMAD FUAD HASYIM(13484)

Upload: adhitya-akbar

Post on 22-Jan-2017

161 views

Category:

Data & Analytics


4 download

TRANSCRIPT

Page 1: Program penyimpanan dan hitung IPK

PRAKTEK ALGORITMA DAN PEMROGRAMAN

PROGRAM PENYIMPANAN DAN HITUNG

RATA-RATA IPK MAHASISWA

Created By:

ADHITYA AKBAR(13065)

SYAIKHUL MUTTAQIN(13175)

MIFTAH EL ALIMI(13408)

MUHAMMAD FUAD HASYIM(13484)

Page 2: Program penyimpanan dan hitung IPK

Penjelasan Umum Program

Kami menamai program ini sebagai ‘Program Penyimpanan dan Hitung Rata-rata IPK’. Program ini

berfungsi untuk menampung dan mengolah data dari tiap mahasiswa(berfungsi sebagai database). Data

yang dikumpulkan(dimasukkan dalam program ini) adalah Nama, NIM, prodi, jumlah mata kuliah yang

diambil, nilai ujian, jumlah sks matakuliah, dan jumlah sks total.

Kami berasumsi(dalam program ini) bahwa nilai akhir yang didapat(A/B/C/D/E) hanya diperoleh dari

nilai A(point 4).

Dari nilai akhir yang telah didapat tersebut, program ini dapat menghitung IPK , dengan memasukkan

jumlah sks matakuliah dan jumlah sks total. Dengan algoritma(langkah-langkah) sebagai berikut;

Data jumlah sks tiap matakuliah yang telah di-inputkan ke dalam program dikalikan point dari nilai akhir

yang didapat, lalu dijumlahkan semua, dan dibagi dengan jumlah sks total yang juga di-inputkan ke

dalam program tersebut.

Dari semua data yang telah di-inputkan ke dalam program dan yang telah diolah(Nama, NIM, Prodi, dan

IPK) dibuat tabelnya(dalam bentuk database) di dalam program ini. Dan dari database tersebut, kita bisa

mencari informasi dari salahsatu atau beberapa orang mahasiswa. Program ini dapat mencari informasi

mahasiswa berdasarkan menu yang telah kami sediakan, yaitu Nama(menu 1), NIM(menu 2), dan

Prodi(menu 3). Misalnya, kita ingin mencari mahasiswa yang bernama ‘Budi’, maka kita pilih menu 1 dan

ketikkan nama ‘Budi’, maka program ini akan menampilkan seluruh data mahasiswa yang bernama Budi.

Atau misalnya kita ingin mencari data mahasiswa dengan NIM tertentu, maka kita pilih menu no.2, lalu

kita tinggal ketikkan NIM dari mahasiswa tersebut. Contoh lainnya, misalnya kita ingin mencari data

mahasiswa yang berprogram studi statistika, maka kita pilih menu no.3, dan kita ketikkan ‘statistika’,

maka program ini akan menampilan seluruh data mahasiswa yang berprogram studi statistika.

Penjelasan berdasarkan bahasa program

uses crt; type mahasiswa = record

nama: string;

nim: string;

prodi: string;

ipk:real; jml:integer; end;

Penjelasan:

Sudah cukup jelas, kita menggunakan record untuk tipe(type) mahasiswa, karena kita akan

menyajikan data dalam bentuk record(isian untuk tabel). Kita menggunakan string untuk

nama, nim, dan prodi, karena data yang akan di-inputkan ke dalamnya bertipe huruf. Kita

Page 3: Program penyimpanan dan hitung IPK

menggunakan real untuk ipk karena nilai yang akan dihasilkan bisa dalam bentuk desimal

dan merupakan hasil dari perhitungan. Kita menggunakan integer untuk jml(jumlah) karena

data yang di-inputkan berjenis angka dan dalam jumlah yang pas(bukan decimal).

mahasiswa1 =array [1..1000] of mahasiswa;

Penjelasan: jumlah data yang dapat di-inputkan sampai 1000 buah

var

database1: mahasiswa1; database2: mahasiswa; procedure

data(var mhs:mahasiswa1; mhs1: mahasiswa);

Penjelasan : Sudah cukup jelas, database1 untuk mahasiswa1, database2 untuk mahasiswa2,

dst. var

a,i,n,no,matkul,nilai,nilaisks,sks,tot,jml:integer;

pilih,push:char;

ipk : real;

Penjelasan:

Sudah cukup jelas, kita menggunakan data jenis integer untuk a, I, n(kode untuk mempersingkat penulisan), no, matkul, nilai, nilaisks, skstot, jml. Kita menggunakan char untuk pilih dan push, karena memang datanya berjenis character(huruf). Dan real untuk ipk karena nilai yang dihasilkan bisa dalam bentuk decimal.

begin

write('Masukan jumlah mahasiswa : ');readln(n);

writeln;

Penjelasan:

Seperti biasa, begin untuk memulai suatu program/perintah. Kata-kata ‘Masukan jumlah mahasiswa’ dibaca sebagai ‘n’ di dalam program.

Page 4: Program penyimpanan dan hitung IPK

for i:= 1 to n do begin

writeln('Masukan data mahasiswa ke : ',i);

writeln;

write('Nama Mahasiswa : ');readln(mhs[i].nama);

write('NIM : ');readln(mhs[i].nim); write('Prodi : ');readln(mhs[i].prodi);

writeln; write ('Masukkan banyak Mata Kuliah yang akan di hitung : ');

readln (matkul); writeln ('==============================');

tot:=0;

jml:=0; for a:=1 to matkul do

Penjelasan:

Perintah diatas digunakan untuk perulangan, misalnya pada kalimat sebelumnya, ‘Masukan jumlah mahasiswa:’, kita inputkan jumlah 10, maka isian-isian yang harus diisi(Nama, NIM, Prodi, dan Banyak Matakuliah) masing-masing akan muncul sebanyak 10x. Isian-isian(record) tersebut akan disimpan sebagai database dalam program.

begin

write('Masukkan nilai ujian : ');readln (nilai);

case nilai of

00..20 :begin nilaisks:=0;writeln ('Nilainya adalah E : ',nilaisks);end;

21..40 :begin nilaisks:=1;writeln ('Nilainya adalah D : ',nilaisks);end;

41..60 :begin nilaisks:=2;writeln ('Nilainya adalah C : ',nilaisks);end;

61..85 :begin nilaisks:=3;writeln ('Nilainya adalah B : ',nilaisks);end;

86..100:begin nilaisks:=4;writeln ('Nilainya adalah A : ',nilaisks);end;

else writeln ('key yang anda masukkan salah');

end;

Penjelasan:

Seperti biasa, begin untuk memulai suatu program/perintah. Case nilai of untuk menampilkan suatu reaksi bila aksinya ‘itu’. Singkatnya seperti ini pengertian dari Case nilai of tadi, ‘bila ini, maka itu’. Disini kita memberi rentang penilaian untuk nilai ujian yang akan dijadikan nilai akhir sebagai berikut: Bila nilainya 0-20, maka nilainya adalah E(nilaisks=0) Bila nilainya 21-40, maka nilainya adalah D(nilaisks=1) Bila nilainya 41-60, maka nilainya adalah C(nilaisks=2) Bila nilainya 61-85, maka nilainya adalah B(nilaisks=3) Bila nilainya 86-100, maka nilainya adalah A(nilaisks=4) Diluar nilai itu(<0 atau >100), maka input dianggap salah dan tidak dapat diproses dalam program ini.

Page 5: Program penyimpanan dan hitung IPK

write ('Masukkan banyak sks : '); readln (sks);

tot:= tot + (nilaisks * sks);

mhs[i].jml:= mhs[i].jml + sks;

end;

writeln ('=============================='); mhs[i].ipk:= tot/mhs[i].jml;

writeln ('IPK adalah : ',mhs[i].ipk:2); readln;

writeln;

end;

Penjelasan:

Program diatas untuk menghitung jumlah IPK, jumlah sks tiap matkul dikalikan dengan nilaisks, lalu seluruhnya dijumlahkan, dan hasilnya dibagi dengan jumlah sks total(tot).

writeln;

writeln('Data Mahasiswa');writeln;

writeln('==========================================================');

writeln('|','No':5,'Nama':20,'NIM':10,'Prodi':10,'IPK':10,'|':2);

writeln('==========================================================');

for i:=1 to n do

writeln('|',i:5,mhs[i].nama:20,mhs[i].nim:10,mhs[i].prodi:10,mhs[i].ipk:10:2,'|':2);

writeln('==========================================================');

writeln;

Penjelasan:

Program diatas untuk membuat tabel secara manual, untuk tabel diatas, kita memakai ‘No’(nomor) maksimal 5 digit, untuk ‘Nama’ maksimal 20 huruf, untuk ‘NIM’ maksimal 10 digit, untuk ‘Prodi’ maksimal 10 huruf, dan untuk ‘IPK’ maksimal 10 digit.

writeln;

write('Apakah anda ingin mencari data tertentu ?(y/n) ');readln(pilih); writeln;

case pilih of 'y': begin

push:='Y';

while upcase(push)='Y' do begin

clrscr;

writeln;

Page 6: Program penyimpanan dan hitung IPK

writeln('MENU'); writeln;

writeln('1. Nama');

writeln('2. NIM');

writeln('3. Prodi');

writeln; write('Ketik pilihan anda : ');readln(no);

Penjelasan:

Program ini untuk melakukan fungsi tambahan, yaitu mencari data mahasiswa yang telah di-inputkan sebelumnya, berguna untuk memudahkan pencarian. Apabila kita menekan tombol ‘y’, maka program akan dijalankan, akan ditampilkan menu untuk mencari data mahasiswa sesuai dengan kategori yang diinginkan. Menu pertama adalah ‘Nama’, menu kedua adalah ‘NIM’, dan menu ketiga adalah ‘Prodi’.

case no of

1: begin

write('Masukan Nama Mahasiswa : ');readln(mhs1.nama);

writeln;

writeln('Nama : ',mhs[i].nama);

writeln('NIM : ',mhs[i].nim);

writeln('Prodi : ',mhs[i].prodi);

writeln;

writeln('================================================');

writeln('|','No':5,'Nama':20,'sks':10,'IPK':10,'|':2);

writeln('================================================');

for i:=1 to n do

if (mhs1.nama) = (mhs[i].nama) then

begin

writeln('|',i:5,mhs[i].nama:20,mhs[i].jml:10,mhs[i].ipk:10:2, '|':2); end;

writeln('================================================'); writeln;

end;

2: begin write('Masukan NIM : ');readln(mhs1.nim);

writeln;

writeln('Nama : ',mhs[i].nama); writeln('NIM : ',mhs[i].nim);

writeln('Prodi : ',mhs[i].prodi);

writeln; writeln('================================================');

Page 7: Program penyimpanan dan hitung IPK

writeln('|','No':5,'Nama':20,'Prodi':10,'IPK':10,'|':2); writeln('================================================');

for i:=1 to n do

if (mhs1.nim) = (mhs[i].nim) then

begin

writeln('|',i:5,mhs[i].nama:20,mhs[i].prodi:10,mhs[i].ipk:10 :2,'|':2); end;

writeln('================================================'); writeln;

end; 3: begin

write('Masukan Prodi : ');readln(mhs1.prodi);

writeln; writeln('==================================================');

writeln('|','No':5,'Nama':17,'Prodi':10,'sks':5,'IPK':10,'|':2);

writeln('==================================================');

for i:=1 to n do

if (mhs1.prodi) = (mhs[i].prodi) then

begin

writeln('|',i:5,mhs[i].nama:17,mhs[i].prodi:10,mhs[i].jml:5,mhs[i].ipk:10 :2,'|':2);

end;

writeln('==================================================');

writeln;

end;

end;

write('Ingin mencari data lagi (y/n) ? ');readln(push);writeln;

end;end;end;end;

Penjelasan:

Program ini untuk mencari data mahasiswa yang telah di-inputkan sebelumnya, program ini berguna untuk memudahkan pencarian, karena program ini hanya akan menampilkan data mahasiswa sesuai dengan kategori yang dicari. Kita membuat 3 menu untuk memudahkan pencarian tersebut. Menu yang pertama adalah Nama, menu yang kedua adalah NIM, dan menu yang ketiga adalah Prodi. Misalnya, kita ingin mencari mahasiswa yang bernama ‘Budi’, maka kita pilih menu 1 dan ketikkan nama

‘Budi’, maka program ini akan menampilkan seluruh data mahasiswa yang bernama Budi. Atau misalnya

kita ingin mencari data mahasiswa dengan NIM tertentu, maka kita pilih menu no.2, lalu kita tinggal

ketikkan NIM dari mahasiswa tersebut. Contoh lainnya, misalnya kita ingin mencari data mahasiswa

yang berprogram studi statistika, maka kita pilih menu no.3, dan kita ketikkan ‘statistika’, maka program

ini akan menampilan seluruh data mahasiswa yang berprogram studi statistika.

Page 8: Program penyimpanan dan hitung IPK

begin clrscr;

writeln('===============================================================');

writeln;

writeln(' PROGRAM PENYIMPANAN ');

writeln(' DAN '); writeln(' HITUNG RATA-RATA IPK MAHASISWA ');

writeln; writeln('===============================================================');

writeln('NB : Pengisian data memakai huruf BALOK'); writeln;

data(database1, database2);

readln; end.

Penjelasan:

Tulisan diatas berfungsi untuk memberi judul pada saat program dijalankan(run). Judul program(‘PROGRAM PENYIMPANAN DAN HITUNG RATA-RATA IPK MAHASISWA’) akan muncul diatas.