LAPORAN PRATIKUM
DASAR-DASAR
PEMOGRAMAN
“PRATIKUM VII”
Disusun
Oleh:
Nama : Vitrail Gloria
Nancy Mairi
NIM : 17101106020
Program Studi : Sistem Informasi
Shift : D2
LABORATORIUM KOMPUTER DASAR
FAKULTAS MATEMATIKA DAN ILMU
PENGETAHUAN ALAM
UNIVERSITAS SAM RATULANGI
MANADO
2017
KATA PENGANTAR
Puji
syukur kepada Tuhan Yang Maha Kuasa, karena atas hikmat dan hidayah-Nya
sehingga penyusunan Laporan Pratikum VI Dasar-Dasar Pemograman ini dapat
terselesaikan dengan baik. Laporan ini penyusun buat berdasarkan Praktikum
Dasar Pemograman Pascal tentang menghitung gaji karyawan yang telah penyusun
lakukan, yang membahas tentang perintah-perintah pengulangan, perhitungan, dan
if then dalam Pascal.
Laporan ini dapat dibuat dan diselesaikan karena adanya
bantuan dari dosen, senior-senior dan rekan-rekan yang membantu dalam pembuatan
dan penyusunan laporan ini. Akhir dari kesempatan ini penyusun menyampaikan
terima kasih kepada semua pihak yang turut membantu dalam upaya penyelesaian
laporan ini.
Penyusun menyadari bahwa laporan ini masih memiliki banyak
kekurangan, oleh karena itu penulis sangat mengharapkan saran dan kritik yang
bersifat membangun dari pembaca, agar dapat dijadikan acuan dalam pembuatan
laporan berikutnya. Dan semoga laporan ini bermanfaat bagi pembaca.
Manado, 21 November 2017
Penyusun,
Vitrail
Gloria Nancy Mairi
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Bagi sebagian orang yang bisa mengoperasikan komputer pada saat ini, Bahasa
Pemrograman Komputer masih merupakan bahasa yang sulit untuk dimengeri sehingga
sebagian orang tersebut enggan atau malas untuk mempelajari lebih jauh mengenai
bahasa pemrograman komputer tersebut. sehingga walau tanpa proses polling,
survei, statistik dan sebagainya, dapat disimpulkan bahwa 80 orang dari 100
orang yang bisa menggunakan komputer dalam arti bisa mengoperasikan
program-program komputer seperti MS WINDOWS, tidak bisa membuat atau mengerti
bahasa pemrograman komputer.
Di Fakultas Informatika yang notabene khusus mempelajari ilmu-ilmu komputer
sekalipun, tidak semua mahasiswanya pandai dalam bahasa pemrograman tertentu.
Hal itu dikarenakan tidak semua orang mempunyai pemikiran dan kreativitas yang
sama sehingga daya nalar terhadap sebuah bahasa pemrograman didapatkan hasil
yang berbeda-beda untuk setiap orang. Perlu anda ketahui bahwa Program yang
ditulis dengan menggunakan bahasa pascal mempunyai ciri yang terstruktur
sehingga mudah dipahami maupun dikembangkan oleh pemrograman.
Hal yang lainnya adalah berupa lengkapnya fasilitas yang disediakan,
sehingga bahasa pascal dapat dipakai untuk memecahkan masalah dari masalah yang
banyak memerlukan perhitungan sampai kemasalah implementasi
permainan. Oleh karena itu melihat seberapa pentingnya peranan bahasa pascal
dalam dunia pemograman maupun dalam pendidikan.
Pascal dapat
diartikan bahasa tingkat tinggi (high level language) yang
orientasinya pada semua tujuan oleh Professor Niklaus Wirth, nama pascal
diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan
philosophi terkenal abad 17 dari Perancis. Kompiler Bahasa pascal pertama kali
untuk komputer CDC 6000 (Control Data Corporation) untuk membantu mengajar
program komputer secara sistematis, khususnya untuk pemprograman terstruktur.
1.2 LANDASAN TEORI
A.
Pendahuluan
Pengurutan
data dalam struktur data sangat penting terutama untuk data yang beripe
data numerik ataupun karakter.
Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut
turun). Pengurutan (Sorting) adalah proses pengurutan data yang sebelumnya
disusun secara acak sehingga tersusun secara teratur menurut aturan tertentu.
Contoh:
Data Acak : 5 6
8 1 3 25 10
Ascending : 1 3
5 6 8 10 25
Descending
: 25 10 8 6 5 3 1
Deklarasi Array
Sorting
Mendeklarasikan
array secara global:
int data[100];
int n; //untuk jumlah data
Fungsi Tukar 2 Buah Data:
void tukar(int a,int b){
int tmp;
tmp = data[a];
data[a] = data[b];
data[b] = tmp;}
Sorting
merupakan suatu proses untuk menyusun kembali humpunan obyek menggunakan aturan
tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan
kumpulan elemen data kedalam urutan tertentu berdasarkan satu atau beberapa
kunci dalam tiap-tiap elemen. Pada dasarnya ada dua macam urutan yang biasa
digunakan dalam suatu proses sorting:
1. Urut naik
(ascending)
Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar
Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar
2. Urut
turun (descending)
Mengurutkan dari data yang mempunyai
nilai paling besar sampai paling kecil.
Mengapa harus melakukan sorting data? Ada banyak
alasan dan keuntungan dengan mengurutkan data. Data yang terurut mudah untuk
dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika terdapat
kesalahan. Data yang terurut dengan baik juga mudah untuk dihapus jika
sewaktu-waktu data tersebut tidak diperlukan lagi. Selain itu, dengan
mengurutkan data maka kita semakin mudah untuk menyisipkan data atapun
melakukan penggabungan data.
Metode-metode sorting meliputi:
1. Insertion
Sort (Metode Penyisipan)
2. Selection Sort (Metode Seleksi)
3. Bubble sort(Metode Gelembung)
4. Shell Sort (Metode Shell)
5. Quick Sort (Metode Quick)
6. Merge Sort (Metode Penggabungan)
2. Selection Sort (Metode Seleksi)
3. Bubble sort(Metode Gelembung)
4. Shell Sort (Metode Shell)
5. Quick Sort (Metode Quick)
6. Merge Sort (Metode Penggabungan)
1. Insertion Sort
Cara kerja
insertion sort sebagaimana namanya.Pertama-tama, dilakukan iterasi, dimana di
setiap iterasi insertion sort memindahkan nilai elemen,kemudian menyisipkannya
berulang-ulang sampai ketempat yang tepat. Begitu seterusnya dilakukan.
Dariproses iterasi, seperti biasa, terbentuklah bagian yangtelah di-sorting dan
bagian yang belum.
Algoritma Insertion Sort.
Algoritma Insertion Sort dapat dirangkum sebagai
berikut:
1.) Simpan nilai Ti kedalam variabel sementara, dengan i =
1.
2.) Bandingkan nilainya dengan elemen sebelumnya.
3.) Jika elemen sebelumnya (Ti-1) lebih besar nilainya
daripada Ti, maka tindih nilai Ti dengan nilai Ti-1 tersebut. Decrement i
(kurangi nilainya dengan 1).
4.) Lakukan terus poin ke-tiga, sampai Ti-1 ≤ Ti.
5.) Jika Ti-1 ≤ Ti terpenuhi, tindih nilai di Ti dengan
variabel sementara yang disimpan sebelumnya.
6.)
Ulangi langkah dari poin 1 di atas dengan i
di-increment (ditambah satu).
2. Selection Sort
Algoritma
sorting sederhana yang lain adalahSelection Sort. Ide dasarnya adalah melakukan
beberapa kali pass untuk melakukan penyeleksianelemen struktur data. Untuk
sorting ascending(menaik), elemen yang paling kecil di antara elemenelemenyang
belum urut, disimpan indeksnya,kemudian dilakukan pertukaran nilai elemen
denganindeks yang disimpan tersebut dengan elemen yangpaling depan yang belum
urut. Sebaliknya, untuksorting descending (menurun), elemen yang paling. besar
yang disimpan indeksnya kemudian ditukar.
Algoritma Selection Sort
Algoritma selection sort dapat dirangkum
sebagaiberikut:
1.)
Temukan nilai yang
paling minimum (atau sesuaikeinginan) di dalam struktur data. Jika ascending,
maka yang harus ditemukan adalah nilai yang paling minimum. Jika descending,
maka temukan nilai yang paling maksimum.
2.) Tukar nilai tersebut dengan nilai pada posisi pertama
di bagian struktur data yang belum diurutkan.
3.)
3. Bubble Sort
Bubble Sort merupakan cara pengurutan yangsederhana.
Konsep dari ide dasarnya adalah seperti“gelembung air” untuk elemen struktur
data yangsemestinya berada pada posisi awal. Cara kerjanyaadalah dengan
berulang-ulang melakukan traversal(proses looping) terhadap elemen-elemen
struktur datayang belum diurutkan. Di dalam traversal tersebut,nilai dari dua
elemen struktur data dibandingkan. Jikaternyata urutannya tidak sesuai dengan
“pesanan”,maka dilakukan pertukaran (swap). Algoritma sortingini disebut juga
dengan comparison sort dikarenakanhanya mengandalkan perbandingan nilai elemen
untukmengoperasikan elemennya.
Algoritma Bubble Sort
Algoritma bubble sort dapat diringkas sebagaiberikut,
jika N adalah panjang elemen struktur data, dengan elemen-elemennya adalah T1,
T2, T3, …, TN-1,TN, maka:
1.) Lakukan traversal untuk membandingkan
dua elemen berdekatan. Traversal ini
dilakukan dari belakang.
dua elemen berdekatan. Traversal ini
dilakukan dari belakang.
2.) Jika elemen pada TN-1 > TN , maka lakukan
pertukaran (swap). Jika tidak, lanjutkan ke
proses traversal berikutnya sampai bertemu
dengan bagian struktur data yang telah
diurutkan.
pertukaran (swap). Jika tidak, lanjutkan ke
proses traversal berikutnya sampai bertemu
dengan bagian struktur data yang telah
diurutkan.
3.) Ulangi langkah di atas untuk struktur data
yang tersisa.
yang tersisa.
4. Quick Sort
Quick Sort
adalah algoritma sorting yang terkenal yang dirancang oleh C.A.R. Hoare pada
tahun 1960 ketika bekerja untuk perusahaan manufaktur komputer saintifik kecil,
Elliott Brothers. Algoritma ini rekursif, dan termasuk paradigma algoritma
divide and conquer.
Algoritma Quick Sort
Algoritma ini terdiri dari 4 langkah utama:
1.) Jika struktur data terdiri dari 1 atau 0 elemenyang
harus diurutkan, kembalikan strukturdata itu apa adanya.
2.) Ambil sebuah elemen yang akan digunakansebagai pivot
point (poin poros). (Biasanyaelemen yang paling kiri.)
3.) Bagi struktur data menjadi dua bagian – satudengan
elemen-elemen yang lebih besar daripada pivot point, dan yang lainnya
denganelemen-elemen yang lebih kecil dari pada pivot point.
4.) Ulangi algoritma secara rekursif terhadapkedua paruh
struktur data.
5.
Merge Sort
Algoritma
Merge Sort ditemukan oleh John vonNeumann di tahun 1945. Merge Sort termasuk
paradigma algoritma divide and conquer (kurang lebihberarti: bagi dan atasi).
Hal ini dikarenakan algoritma ini melakukan pembagian struktur data
sebelumkemudian dioperasi satu per satu. Intinya, algoritma ini menggunakan dua
ide utama sebagai berikut,
1.) Sebuah
list yang kecil membutuhkan langkahyang lebih sedikit untuk pengurutan
daripadasebuah list yang besar.
2.) Untuk
membentuk sebuah list terurut dari duabuah list terurut membutuhkan langkah
yanglebih sedikit daripada membentuk sebuah listterurut dari dua buah list tak
terurut. Contoh: hanya diperlukan satu kali traversal untukmasing-masing list
jika keduanya sudah terurut.
Algoritma Merge Sort
Algoritma Merge Sort
sederhananya, dapat ditulis berikut:
1.) Bagi
list yang tak terurut menjadi dua samapanjang atau salah satunya lebih panjang
satu elemen.
2.) Bagi
masing-masing dari 2 sub-list secara rekursif sampai didapatkan list dengan
ukuran 1.
3.) Gabung
2 sublist kembali menjadi satu list terurut.
6.
Shell Sort
Metode ini dikembangkan oleh Donald L. Shell pada
tahun 1959. Dalam metode ini jarak antara dua elemen yang dibandingkan
dan ditukarkan tertentu. Secara singkat metode ini dijelaskan sebagai
berikut.Pada langkah pertama, kita ambil elemen pertama dan kita bandingkan dan
kita bandingkan dengan elemen pada jarak tertentu dari elemen pertama tersebut.
Kemudain elemen kedua kita bandingkan dengan eleen lain dengan jarak yang sama
seperti jarak yang sama seperti diatas. Demikian seterusnya sampai seluruh
elemen dibandingkan. Pada langkah kedua proses diulang dengan langkah yang
lebih kecil, pada langkah ketiga jarak tersebut diperkecil lagi seluruh proses
dihentikan jika jarak sudah sama dengan satu.
Contoh dari proses Sorting dengan menggunakan metode
Shell Sort :
BAB
II
HASIL DAN PEMBAHASAN
2.1
INPUT
Untuk membuat sebuah
pengurutan (shorting) nama dan nilai mahasiswa, dilakukan dengan menggunnakan
sorting pada pascal. Langkah untuk membuat programnya, yaitu sebagai berikut :
1.
Buka aplikasi FreePascall pada komputer.
2.
Pada lembar kerja baru, masukkan coding
program
3.
Coding programnya sebagai berikut.
program urut_data_turun;
uses crt ;
var
nama
: array[1..100] of string ;
nilai
: array[1..100] of integer;
xnama
: string ;
jmldata
: integer;
i,j,xnilai,q: integer;
T:boolean;
jwb:char;
begin
repeat
T:=false;
clrscr;
Write('Masukan Jumlah Data:
');readln(jmldata);
writeln('Data Sebelum Terurut');
for i:= 1 to jmldata do
begin
write('Nama ke - ',i,': '); readln(nama[i]);
gotoxy(30,2+i);write('Nilai: '); readln (nilai[i]);
end;
writeln;
writeln('Data Setelah Terurut');
for i:= 1 to jmldata-1 do
begin
for j:=jmldata-1 downto i do
begin
if nilai[j] < nilai[j+1] then
begin
xnilai := nilai[j] ;
nilai[j] := nilai[j+1];
nilai[j+1] := xnilai;
xnama := nama[j];
nama[j] := nama[j+1];
nama[j+1]:=xnama;
end;
end;
end;
write;
for i:=1 to jmldata do
begin
q:=jmldata+i+4;
gotoxy(5,q); writeln(i,'. Nama: ',nama[i]);
gotoxy(37,q); writeln('Nilai: ',nilai[i]);
end;
write('Masukkan Data Lagi..? [Y/T] :
');readln(jwb);
until upcase(jwb)='T';
readln;
end.
Dan
coding yg kedua untuk data yang terurut naik :
program urut_data_naik;
uses crt ;
var
nama
: array[1..100] of string ;
nilai
: array[1..100] of integer;
xnama
: string ;
jmldata
: integer;
i,j,xnilai,q: integer;
T:boolean;
jwb:char;
begin
repeat
T:=false;
clrscr;
Write('Masukan Jumlah Data:
');readln(jmldata);
writeln('Data Sebelum Terurut');
for i:= 1 to jmldata do
begin
write('Nama ke - ',i,': '); readln(nama[i]);
gotoxy(30,2+i);write('Nilai: '); readln (nilai[i]);
end;
writeln;
writeln('Data Setelah Terurut');
for i:= 1 to jmldata-1 do
begin
for j:=jmldata-1 downto i do
begin
if nilai[j] > nilai[j+1] then
begin
xnilai := nilai[j] ;
nilai[j] := nilai[j+1];
nilai[j+1] := xnilai;
xnama := nama[j];
nama[j] := nama[j+1];
nama[j+1]:=xnama;
end;
end;
end;
write;
for i:=1 to jmldata do
begin
q:=jmldata+i+4;
gotoxy(5,q); writeln(i,'. Nama: ',nama[i]);
gotoxy(37,q); writeln('Nilai:
',nilai[i]);
end;
write('Masukkan Data Lagi..? [Y/T] :
');readln(jwb);
until upcase(jwb)='T';
readln;
end.
4.
Setelah semua coding diatas di input,
simpan coding dengan mengklik menu File → Save atau dapat menekan F2 pada
keyboard.
5.
Selanjutnya pilih compile atau alt+F9
untuk melihat apakah ada kesalahan pada coding. Jika coding sudah benar,
jalankan program.
6.
Untuk menjalankan program pilih run atau
ctrl+F9. Maka program akan dijalankan pada Command Prompt.
2.2 Output
Hasil atau output dari program pengurutan
(sorting) nama dan nilai mahasiswa yang telah dibuat diatas tadi adalah sebagai
berikut.
Data terurut turun:
Data terurut naik:
2.3 Pembahasan
Pada pratikum
pemrograman Pascal diatas, program yang dibuat adalah program mengurutkan nama
dan nilai mahasiswa, baik secara menurun ataupun naik. Pada program digunakan
array atau larik 1-100 yang berarti bahwa jumlah mahasiswa beserta nilai yang
dapat diinput pada program berkisar antara 1-100. Dan untuk nama digunakan tipe
data string, sedangkan untuk nilai digunakan type data integer karena nilai
yang akan diiunput berupa angka dengan bilangan integer. Selain itu, perintah
gotoxy juga digunakan untuk mengatur posisi atau letak dari data.
Pada coding megurutkan
nilai mahasiswa diatas, digunakan dua jenis pengurutan, yaitu pengurutan naik
dan pengurutan turun. Coding dari kedua program pun juga tidak jauh berbeda,
bahkan hampir sama, yang membedakan hanyalah tanda lebih besar dari(>) dan
lebih kecil dari (<). Untuk pengurutan data menurun, digunakan tanda <,
sedangkan untuk pengurutan menaik, digunakan tanda >. Pada coding diatas
juga digunakan perintah pengulangan, apabila ingin dilakukan pengisian data
ulang dengan pilihan Y yang berarti akan mengulangi pengisian pengurutan data,
dan T yang berarti tidak akan mengisi data lagi, maka program akan berhenti dan
akan keluar dari menu run.
DAFTAR
PUSTAKA
Algo_05_Konstruksi
dasar algoritma.pdf
Algo_09_Array.pdf
Algo_12_Algoritma
Pengurutan.pdf
Tidak ada komentar:
Posting Komentar