KATA PENGANTAR
Puji
serta syukur kehadirat Allah SWT, karena dengan rahmat dan hidayah-Nyalah kami
dapat menyelesaikan makalah ini tepat pada waktunya. Shalawat beriring salam
selalu kita panjatkan kepada Rasullullah SAW, karena kegigihan beliau dan
ridho-Nyalah kita dapat merasakan kenikmatan dunia seperti sekarang ini.
Adapun tujuan dari
penulisan makalah ini adalah untuk memenuhi tugas yang diberikan olah Bapak
Fajar S.kom,M.kom. selaku dosen pembimbing. makalah ini juga bertujuan untuk
menambah pengetahuan dan wawasan bagi pembaca sekalian.
Kami kelompok 3
mengucapkan terimakasih kepada Bapak Fajar S.kom,M.kom selaku dosen pembimbing
mata kuliah Struktur data.
Kami kelompok 3
menyadari bahwasanya makalah ini masih jauh dari kesempurnaan, oleh karena itu
kritik dan saran penulis harapkan dari pembaca sekalian demi terciptanya
kesempurnaan dalam penyusunan makalah ini. Semoga makalah ini bermanfaat bagi
yang membacanya. Terima kasih.
Kamis, 12
Oktober 2014
Penyusun
BAB I
PENDAHULUAN
a. Latar belakang
Perkembangan teknologi saat ini
sangat berkembang dengan pesat. Setiap jam, menit, detik selalu berkembang dan
terus berkembang. Hal ini dapat kita lihat di kehidupan kita sehari-hari dimana
kita tidak bisa lepas dari namanya handphone, komputer, pc tablet, iphone dan
lain-lain.
Dengan
kemajuan jaman maka saat ini pendataan mahasiswa dengan menggunakan penulisan
manual dapat membuang banyak waktu, tenaga, dan juga biaya yang dikeluarkan. Dengan
menggunakan teknologi saat ini maka kita dapat menggunakan komputer sebagai
alat atau media untuk menginput dan menyimpan data-data mahasiswa. Sehingga
dapat menghemat waktu, tenaga, dan juga biaya yang dikeluarkan.
Dengan menggunakan bahasa
pemrograman pascal kita dapat melakukan pendataan mahasiswa secara
komputerisasi. Sehingga dapat membantu para staff dalam melakukan pendataan
mahasiswa.Pascal sendiri Pascal sebagai salah satu bahasa tingkat tinggi (high-level
language) untuk dapat dapat dikenali oleh computer harus diterjemahkan
menjadi bahasa mesin. Untuk itu dikembangkan sebuah program penerjemah yang
disebut dengan kompilator (compiler). Kompilator Pascal adalah sebuah software,
bukan perangkat keras (hardware). Kompilator adalah progam yang
disimpan pada file dalam disk.
b. Rumusan masalah
Berdasarkan
latar belakang yang telah dipaparkan di atas, maka penulis telah menentukan
beberapa rumusan masalah dalam pembuatan program perhitungan nilai akhir dan
data mahasiswa STMIK TASIKMALAYA.
yaitu:
1.
Gambaran umum program;
2.
Flow Chart program;
3.
Koding program;
4.
Lay out program.
c. Tujuan
Sejalan
dengan rumusan masalah di atas, makalah ini disusun dengan tujuan untuk
mengetahui dan mendeskripsikan:
1.
Pembaca dapat mengerti fungsi prosedur pada
pascal;
2.
dapat / bisa menjalankan program aplikasi database mahsiswa;
3.
Implementasi sebuah program.
BAB II
PEMBAHASAN
a. Dasar Teori
1. Algoritma
Ditinjau
dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh.
Orang hanya menemukan kata algorism yang berarti proses menghitung
dengan angka arab. Anda dikatakan algorist jika Anda menghitung
menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun
hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal
kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu
Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-huwarizmi dibaca orang barat
menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al
Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The
book of restoration and reduction). Dari judul buku itu kita juga
memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism
menjadi algorithm muncul karena kata algorism sering
dikelirukan dengan arithmetic, sehingga akhiran –sm berubah
menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal
yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai
sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna
kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
“Algoritma adalah urutan
langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan
logis”.
Kata logis merupakan kata
kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus
dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma
adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu.
Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah
benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari
sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau
memberikan keluaran yang salah,
pastilah
algoritma tersebut bukanlah algoritma yang baik.
2. Struktur Data
2. Struktur Data
Dalam istilah ilmu komputer, sebuah
Struktur adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media
penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi
kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun
kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh
pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan
(record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang
lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada
kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat
diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan)
atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis.
Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar
(spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat
(dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan
struktur data.
3. Pemrograman Prosedural
3. Pemrograman Prosedural
Pada
pemrograman dikenal beberapa paradigma yang dipakai dalam memecahkan suatu
masalah. Penggunaan suatu paradigm ditujukan sebagai cara pemrogram dalam
memandang setiap entitas dalam dunia nyata dan relasi antara entitas tersebut,
sehingga memudahkannya dalam menerjemahkannya menjadi suatuprogram. Di sisi
lain, penggunaan suatu paradigma akan membatasi/mempersempit cara pandang
pemrogram. Dalam tulisan ini akan digunakan pemrograman dengan paradigma
prosedural.
Pemrograman
prosedural didasari oleh konsep mesin Von Neumann yang disebut stored
program concept. Suatu program terdiri atas dua bagian yaitu algoritma dan
struktur data. Bagaimana cara kerja dari suatu program ditentukan oleh
sekumpulan perintah yang akan dilaksanakan secara sekuensial oleh suatu
pemroses tunggal. Inilah yang disebut algoritma. Dalam proses pelaksanaan
sampai mengeluarkan suatu hasil, program membutuhkan data yang akan diolahnya.
Data tersebut akan disimpan dalam memory komputer. Dalam program data tersebut
akan distrukturisasikan sehingga akan memudahkan dalam pengolahannya. Inilah
yang disebut struktur data. Paradigma prosedural membatasi cara penyusunan
algoritma dan strukturisasi data sehingga dekat dengan konsep mesin Von
Neumann. Meskipun pemrograman ini sangat tidak manusiawi, namun sangat efisien
karena kedekatannya dengan mesin.
4. Prosedur
4. Prosedur
adalah
suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram
(program bagian). Diawali dengan kata
PROCEDURE didalam bagian deklarasi
prosedur . Prosedur banyak digunakan
pada program yang terstruktur karena :
Merupakan
penerapan konsep program modular, yaitu memecah-mecah program yang rumit
menjadi program-program bagian yang
lebih sederhana dalam bentukm prosedur-prosedur .
Untuk
hal-hal yang sering dilakukan berulang-ulang,
cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau
dipergunakan sewaktu-waktu bila diperlukan.
5. Pengulangan while do
5. Pengulangan while do
Struktur
pengulangan WHILE-DO digunakan untuk mengulang statement atau suatu blok
statement berulang kali selama kodisi pada while terpenuhi / bernilai benar .
6. Array / Larik
6. Array / Larik
adalah tipe terstruktur yang terdiri
dari sejumlah komponen komponen yang mempunyai tipe data yang sama. Array dapat
bertipe sederhana byte, word, integer, real, boolean, char, string dan tipe scalar atau subrange. Suatu array
mempunyai jumlah komponen yang banyaknya tetap dan ditunjukkan oleh suatu
indeks yang disebut index type (tipe indeks) Setiap komponene dalam array dapat
diakses dengan menunjukkan nilai indeksnya atau disebut juga dengan istilah
subscrip.
7. IF
7. IF
Penyeleksian “ IF “ berguna untuk
menguji sebuah kondisi, dimana
bila kondisi tersebut terpenuhi (
bernilai true ) maka akan
dijalankan suatu pernyataan
tertentu.
Bnetuk Umum :
IF
kondisi.. THEN pernyataan..
IF
kondisi.. THEN pernyataan..
ELSE
pernyataan..
3. IF
kondisi1.. THEN
pernyataan..
ELSE IF
kondisi2 THEN
pernyataan..
ELSE
pernyataan
b. Gambaran
umum program
Program
Database mahasiswa ini dibuat untuk
memudahkan dalam pendataan , dimana seorang guru atau dosen dengan mudah dan
cepat memasukan atau mencari data mahasiswa, Program ini dibuat dengan
menggunakan bahasa pemrograman Pascal dan ditulis dengan aplikasi Turbo Pascal
For Window dengan lay out program yang sederhana sehingga user dapat dengan
mudah mengoperasikannya.
c. Flowchat Program
Diagram
alur (flowchart) merupakan gambar atau bagan yang memperlihatkan urutan
dan hubungan antar proses beserta instruksinya. Bagan ini dinyatakan dengan simbol.
Dengan emikian setiap simbol menggambarkan proses tertentu sedangkan hubungan
antar proses digambarkan dengan garis penghubung. Simbol-simbol diagram alur.
Flowchat
program database mahasiswa :
uses wincrt;program lth;
var
pilih: byte;
procedure Input_data;
type
mhs=record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
lagi: char;
begin
assign(fmhs,'mhs.dat');
rewrite(fmhs);
lagi:='y';
while upcase(lagi)='Y'
do
begin
clrscr;
with rmhs do
begin
gotoxy(5,6) ;write('Nomor Pokok Mahasiswa : ');
gotoxy(5,8) ;write('Nama Mahasiswa : ');
gotoxy(5,10)
;write('Nilai Mahasiswa : ');
gotoxy(30,6)
;readln(npm);
gotoxy(30,8)
;readln(nama);
gotoxy(30,10);readln(nilai);
end;
write(fmhs,rmhs);
gotoxy(5,15)
;write('Masukan data lagi [Y/T] ? ');
readln(lagi);
end;
close(fmhs);
end;
procedure
Tambah_data;
type
mhs=record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
lagi: char;
begin
assign(fmhs,'mhs.dat');
{$I-}
reset(fmhs);
{$I+};
if ioresult<>0
then rewrite(fmhs);
seek(fmhs,filesize(fmhs));
lagi:='y';
while upcase(lagi)='Y'
do
begin
clrscr;
with rmhs do
begin
gotoxy(5,6) ;write('Nomor Pokok Mahasiswa : ');
gotoxy(5,8) ;write('Nama Mahasiswa : ');
gotoxy(5,10)
;write('Nilai Mahasiswa : ');
gotoxy(30,6)
;readln(npm);
gotoxy(30,8)
;readln(nama);
gotoxy(30,10);readln(nilai);
end;
write(fmhs,rmhs);
gotoxy(5,15)
;write('Masukan data lagi [Y/T] ? ');
readln(lagi);
end;
close(fmhs);
end;
procedure Lihat_data;
type
mhs=record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
begin
assign(fmhs,'mhs.dat');
reset(fmhs);
clrscr;
writeln('-------------------------------------------------------------');
writeln('NPM nama mahasiswa nilai');
writeln('-------------------------------------------------------------');
while not eof (fmhs)
do
begin
read(fmhs,rmhs);
with rmhs do
writeln(npm:7,nama:25,nilai:29:0);
end;
writeln('-------------------------------------------------------------');
close(fmhs);
readln;
end;
procedure
Cari_data;
type
mhs=record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
i,jml: integer;
nocari: string[7];
lagi: char;
ketemu: boolean;
begin
assign(fmhs,'mhs.dat');
reset(fmhs);
jml:=
filesize(fmhs);
lagi:='y';
while upcase(lagi)='Y'
do
begin
clrscr;
ketemu:= false;
write('Masukan npm yang
dicari : ');
readln(nocari);
writeln;
for i:= 1 to jml
do
begin
seek(fmhs,i-1);
read(fmhs,rmhs);
if rmhs.npm=nocari
then
begin
ketemu:= true;
writeln('Nama
Mahasiswa : ',rmhs.nama);
writeln('Nilai
Mahasiswa : ',rmhs.nilai:2:0);
end;
end;
if not ketemu then
writeln('Tidak nomor
tersebut!!!');
writeln;
write('cari data lagi
[Y/T] ? ');
readln(lagi);
end;
close(fmhs);
end;
procedure
Koreksi_data;
type
mhs=record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
i,jml: integer;
nocari: string[7];
ketemu: boolean;
lagi: char;
begin
assign(fmhs,'mhs.dat');
reset(fmhs);
jml:=
filesize(fmhs);
lagi:='Y';
while upcase(lagi)='Y'
do
begin
ketemu:= false;
clrscr;
write('Nomor pokok
mahasiswa yang dicari : '); readln(nocari);
writeln;
for i:= 1 to jml
do
begin
seek(fmhs,i-1);
read(fmhs,rmhs);
if rmhs.npm=nocari
then
begin
with rmhs do
begin
ketemu:= true;
writeln('Nomor Pokok
Mahasiswa : ',npm:7);
write('Koreksinya : '); readln(npm);
writeln('Nama
Mahasiswa : ',nama);
write('Koreksinya : '); readln(nama);
writeln('Nilai
Mahasiswa : ',nilai:2:0);
write('Koreksinya : '); readln(nilai);
end;
end;
seek(fmhs,i-1);
write(fmhs,rmhs);
end;
if not ketemu then
writeln('Tidak nomor
tersebut!!!');
writeln;
write('ada lagi yang
akan dikoreksi [Y/T] ? ');
readln(lagi);
end;
close(fmhs);
end;
procedure
Hapus_data;
type
mhs = record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
nourut,i,jml:
integer;
nocari: string[7];
ketemu: boolean;
lagi,ya: char;
begin
assign(fmhs,'mhs.dat');
reset(fmhs);
lagi:= 'Y';
while upcase(lagi)='Y'
do
begin
clrscr;
jml:=
filesize(fmhs);
write('Nomor record
yang dihapus (1 -',jml:3,') ? ');
readln(nourut);
writeln;
if (nourut < 1) or
(nourut > jml) then
writeln('Tidak ada no
record ini !!!')
else
begin
for i:= nourut to jml
do
begin
seek(fmhs,i-1);
read(fmhs,rmhs);
with rmhs do
begin
writeln('Nama
Mahasiswa : ',rmhs.nama);
writeln('Nilai
Mahasiswa : ',rmhs.nilai:6:2);
end;
end;
writeln;
write('Yakin data ini
akan dihapus [Y/T] ? '); readln(ya);
if upcase(ya) = 'Y'
then
begin
seek(fmhs,nourut-1);
truncate(fmhs);
end;
end;
writeln;
write('ada lagi yang
akan dicari [Y/T] ? '); readln(lagi);
end;
close(fmhs);
end;
begin
while true do
begin
clrscr;
gotoxy(20,2);
write('**MENU UTAMA**');
gotoxy(5,5); write('1.
Input data awal');
gotoxy(5,7); write('2.
Tambah data');
gotoxy(5,9); write('3.
Lihat semua data');
gotoxy(5,11); write('4.
Lihat data tertentu');
gotoxy(5,13); write('5.
Edit data');
gotoxy(5,15); write('6.
Hapus data');
gotoxy(5,17); write('7.
Selesai');
pilih := 0;
while (pilih < 1) or
(pilih > 7 ) do
begin
gotoxy(5,20);
write('Masukan pilihan : ');
readln(pilih);
if (pilih < 1) or
(pilih > 7) then
write (^G);
case pilih of
1: Input_data;
2: Tambah_data;
3: begin
lihat_data;
writeln;
write('Tekan enter
untuk kembali ke MENU');
readln;
end;
4: Cari_data;
5: Koreksi_data;
6: Hapus_data;
7: Exit;
end;
end;
end;
end.
Tampilan Hasil :
BAB III
Penutup
a. Kesimpulan
Program
hitung nilai akhir dan database mahasiswa ini dibuat untuk memudahkan dalam
pekerjaan dimana seorang user dengan mudah dan cepat dalam menghitung nilai
akhir dan menginputkan data mahasiswa. Program ini dibuat dengan menggunakan
bahasa pemrograman Pascal. Diagram alur (flowchart) merupakan gambar
atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta
instruksinya. Koding program adalah perintah program dengan struktur
pemrograman bahasa Pascal dan Lay out program adalah hasil akhir dari
pemrograman yang akan diimplementasikan.
b. Saran
sesuai
dengan pepatah “tiada gading yang tak retak” dengan demikian kami kelompok 3
menyadari sepenuhnya bahwa makalah ini masih sangat jauh dari kesempurnaan, hal
ini dikarenakan keterbatasan wawasan maupun sumber-sumber data yang dimiliki
penulis, dengan demikian kritik dan saran dari berbagai pihak sangat dinanti
guna penyempurnaan malah ini.
Daftar Pustaka
http://www.wikipedia.com
http://www.nusinau.com