Tugas_08_AP(P)

download Tugas_08_AP(P)

of 15

description

Laporan

Transcript of Tugas_08_AP(P)

LAPORAN PRAKTIKUMALGORITMA DAN PEMROGRAMANSorting Algorithm

Disusun Oleh :

NAMA: CHRISTIAN E. Y. KOBANRI : 13101103010PROGRAM STUDI: MATEMATIKA

LABORATORIUM KOMPUTERFAKULTAS MATEMATIKA DAN ILMU PENGETAHUANALAMUNIVERSITAS SAM RATULANGIMANADO2014

Laporan Praktikum Algoritma Dan Pemrograman_08| Mengurutkan Data Menggunakan Free Pascal

PENDAHULUANPascal merupakan pengembangan dari bahasa ALGOL 60, bahasa pemrograman untuk sains komputasi. Tahun 1960, beberapa ahli komputer bekerja untuk mengembangkan bahasa ALGOL, salah satunya adalah Dr. Niklaus Wirth dari Swiss Federal Institute of Technology (ETH-Zurich), yang merupakan anggota grup yang membuat ALGOL. Tahun 1971, dia menerbitkan suatu spesifikasi untuk highly-structured language (bahasa tinggi yang terstruktur) yang menyerupai ALGOL. Dia menamainya dengan PASCAL (dari nama Blaise Pascal,ahli matematika & philosophi terkenal abad 17dari Perancis). Pascal bersifat data oriented, yaitu programmer diberi keleluasaan untuk mendefinisikan data sendiri. Pascal juga merupakan teaching language (banyak dipakai untuk pengajaran tentang konsep pemrograman). perbedaan tersebut meliputi kode kodenya, urutan penulisan kodenya, jenis simbol yang digunakan, ekspresi kode yang digunakan, serta penerjemahan kode.Struktur dari suatu program pascal terdiri dari sebuah judul program dan suatu blokprogram atau badan program. Blok program dibagi lagi menjadi dua bagian, yaitu : bagiandeklarasi dan bagian pernyataan. Berikut ini adalah struktur umum dalambahasa pascal. program (nama_program)uses (daftar_unit)(bagian_deklarasi)Begin(bagian_statemen)end.

Kelebihan dari bahasa pemrograman Pascal adalah: Tipe Data Standar, tipe-tipe data standar yang telah tersedia pada kebanyakan bahasa pemrograman. Pascal memilikitipe datastandar:boolean,integer,real,char,string, User defined Data Types, programmer dapat membuat tipe data lain yang diturunkan dari tipe data standar. Strongly-typed, programmer harus menentukan tipe data dari suatu variabel, dan variabel tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain dari format yang ditentukan. Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (proceduredanfunction) yang dapat dipergunakan berulang-ulang. Sederhana dan Ekspresif, memiliki struktur yang sederhana dan sangat mendekati bahasa manusia (bahasa Inggris) sehingga mudah dipelajari dan dipahami.

Dalam laporan praktikum kali ini akan dibuat program menghitung tanggal dengan menggunakan free pascal yang tentunya berbasiskan pascal. Program yang akan dibuat ini berisikan beberapa ruang entry data, akan dilakukan beberapa perhitungan di dalamnya, prosedur dan pengkondisian.

LANDASAN TEORI

Sebelum kita membuat sebuah program, maka terlebih dahulu kita harus mengerti tentang elemen- elemen bahasa (Language elements) Pascal, sepertiReserved word, Statement, Type, Constants, Variabel, Tipe data, Label, Operator,dan lain-lain. Reserved WordReserved word adalah kata kata yang tidak dapat dijadikan menjadiidentifier(pengenal), karena kata kat tersebut sudah mempunyai arti tersendiri dalam Turbo Pascal. Adapun kata kata yang termasuk ke dalam identifier adalah:And, asm, array, begin, case, const, constructor, destructor, div, do, downto, else, end, exports, file, for, function, goto, if, implementation, in, inherited, inline, interface, label, library, mod, nil, not, object, of, or,packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor.

Tipe DataKelompokTipeSub tipeKeterangan

RangeSize

SimpleOrdinal dan integerInteger-327683276716-bit

RealReal2.9x10-391.7x1038

StringKumpulan dari beberapa karakter yang kurang dari 255 karakter.

StatementStatement adalah salah satu dari berikut in: Assignment (:=) Begin..end Case..of..else..end For..to/downto..do Goto If..then..else Inline(..) Procedure call Repeat..until While..do With..do

Prosedur : Modul program yang mengerjakan tugas/aksi yang spesifik dan menghasilkan suatu efek dengan membandingkan keadaan awal dan akhir pada pelaksanaan prosedur Definisikan keadaan awal (sebelum rangkaian instruksi dilaksanakan dalam prosedur) Definisikan keadaan akhir (yang diharapkan setelah rangkaian instruksi dalam prosedur dilaksanakan). Struktur prosedur sama dengan struktur program Judul/nama prosedur Deklarasi parameter Badan prosedur Notasi Prosedur (tanpa parameter)procedure NamaProsedur (deklarasi parameter, jika ada){Spesifikasi prosedur, berisi penjelasan tentang apa yang dilakukan prosedur ini.K.Awal: keadaan sebelum prosedur dilaksanakanK.Akhir: keadaan setelah prosedur dilaksanakan}

DEKLARASI{semua nama konst, var, dll yang dipakai dan hanya bersifat lokal di dalam prosedur ini}

ALGORITMA{badan prosedur, berisi urutan instruksi}Prosedur banyak digunakan pada program terstruktur, karena: merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur. untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila dipergunakan.Keuntungan menggunakan prosedur adalah: mengurangi duplikasi kode program. memberikan kemungkinan penggunaan kembali kode untuk program yang lain. memecah masalah yang rumit dalam masalah-masalah yang lebih kecil dan lebih mudah diselesaikan. membuat kode program lebih mudah dibaca. dapat digunakan untuk menyembunyikan detil program.

(Diambil dari materi kuliah Prosedur oleh Altien J. Rindengan.)ARRAYArray adalah suatu tipe data terstruktur yang terdapat dalam memori yang terdiri dari sejumlah elemen (tempat) yang mempunyai tipe data yang sama dan merupakan gabungan dari beberapa variable sejenis serta memiliki jumlah komponen yang jumlahnya tetap. Array dapat berupa satu dimensi, dua dimensi dan tiga dimensi. Indeks array harus tipe data yang menyatakan keterurutan, misal : integer atau karakter. Keterurutan secara horisontal atau vertikal.1. Array satu dimensi adalah kumpulan elemen-elemen yang identik, yang tersusun dalam satu baris. Elemen tersebut memiliki tipe data yang sama, tetapi isi dari elemen tersebut bisa berbeda. Bentuk Umum: Type = array[indexArray] of TipeData;2. Array dua dimensi elemen-elemen yang identik, yang terdiri dari beberapa baris dan beberapa kolom elemen yang bertipe sama. Bentuk Umum:Type = array[indexArray1, indexArray2] of TipeData;3. Array tiga dimensi adalah kumpulan elemen-elemen yang terdiri lebih dari satu baris, seperti array yang memiliki array didalamnya. Bentuk Umum:Type = array[indexArray1, indexArray2, indexArray3] of TipeData;

Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan bilangan di dalam kurung siku yang dinamaka subscript. Array yang akan dipergunakan harus di deklarasikan terlebih dahulu. Deklarasi dari Array diawali dengan kata cadangan Array diikuti oleh tipe index yang diletakkan diantara tanda [ ] diikuti lagi oleh kata cadangan of dan tipe arraynya. Array dapat bertipe sederhana byte, word, integer, real, boolean, char, string dan tipe scalar atau subrange.

Record : Tipe data majemuk (biasanya terdiri dari beberapa tipe dasar data) Tipe data terstruktur Record disusun oleh lebih dari satu field, dimana tiap field menyimpan data dari tipe dasar tertentu atau tipe bentukan lain yang telah didefinisikan sebelumnya. Nama record ditentukan sendiri oleh pemrogramNotasiType nama_record : record < nama_var_1 : tipe_varnama_var_2 : tipe_var...nama_var_n : tipe_var >

(Diambil dari materi kuliah Record oleh Altien J. Rindengan.)

HASIL DAN PEMBAHASANa. Coding Programprogram urutkan_data;uses crt;type mahasiswa = record nama : string; N_A : integer;end;label akhir, awal;

varmenu:integer;

datamahasiswa : array[1..100] of mahasiswa; x, y, z : integer; temp : mahasiswa;procedure data; begin write('Masukkan banyaknya data: '); readln(x); for y := 1 to x do begin write('Data Mahasiswa ke ',y); writeln; write('Masukkan nama : '); readln(datamahasiswa[y].nama); write('Masukkan nilai akhir : '); readln(datamahasiswa[y].N_A); writeln; end; end;procedure urut_naik; begin for y := 1 to x-1 do for z := 1 to x-1 do if datamahasiswa[z].N_A > datamahasiswa[z+1].N_A then begin temp := datamahasiswa[z]; datamahasiswa[z] := datamahasiswa[z+1]; datamahasiswa[z+1] := temp; end; end;procedure urut_turun; begin for y := 1 to x-1 do for z := 1 to x-1 do if datamahasiswa[z].N_A < datamahasiswa[z+1].N_A then begin temp := datamahasiswa[z]; datamahasiswa[z] := datamahasiswa[z+1]; datamahasiswa[z+1] := temp; end; end;procedure output; begin writeln(' PROGRAM DATA MAHASISWA::.'); writeln('--------------------------------------------'); writeln('| NO | NAMA | NILAI AKHIR |'); writeln('--------------------------------------------');

for y := 1 to x do begin writeln(y:3, datamahasiswa[y].nama:15, datamahasiswa[y].N_A:18); end; end;beginbeginawal :

clrscr;gotoxy (33,2); writeln('======Menu======');gotoxy (13,4);writeln('1. Urutan data secara menaik');gotoxy (13,6);writeln('2. Urutan data secara menurun');gotoxy (13,8);writeln('0. Selesai');gotoxy (13,12);write('Pilih Menu No : '); read(menu);end;

case menu of1: beginclrscr;data;urut_naik;clrscr;output;readln;readln;goto awalend;

2:begin clrscr;data;urut_turun;clrscr;output;readln;readln;goto awalend;

0:beginclrscr;

goto akhirend;

end;akhir:readln;end. Penjelasan Koding Variabel digunakan pada program yakni untuk mewakili nilai-nilai tertentu. Salah satu contoh variabel yang digunakan yaitu integer, yaitu untuk mewakili angka-angka yang termasuk dalam kategori integer.Dalam program terdapat juga pemisalan-pemisalan variabel contoh terdapat variabel indeks, dimana variabel ini akan mewakili nilai [i] pada data yang telah di input. Record digunakan untuk memudahkan programmer mengolah data-data yang bersifat majemuk. Perintah for to do digunakan untuk mengulang program sebanyak nilai n yang dimasukan. Perintah if then else digunakan untuk pengkondisian, dimana dalam program ini perintah if then else digunakan untuk pengkondisian nilai mutu. Array: struktur data yang menyimpan sekumpulan elemen yang bertipe sama. Dalam program ini Array digunakan untuk membentuk matriks. Digunakan 5 prosedur :1. isimatrik2. Jumlahmatrik3. kurangmatrik4. transposisimatrik 5. kalimatrikSetiap prosedur berisikan perhitungan masing-masing kondisi yang ditentukan untuk menghasilkan output sesuai dengan apa yang dihitung. Digunakan 5 prosedur :1. Data2. Urut_naik3. Urut_turun4. OutputSetiap prosedur berisikan perhitungan atau perintah masing-masing kondisi yang ditentukan untuk menghasilkan output sesuai dengan apa yang diperintahkan.

Pada badan program utama hanya digunakan perintah-perintah dasar yakni gotoxy(untuk mengarahkan letak output), write(untuk mencetak output), readln(untuk menginput data dan menghentikan sejenak program, kemudian akan lanjut setelah ditekan enter) Clrscr(digunakan untuk membersihkan layar dari tampilan-tampilan sebelumnya pada layar command prompt atau saat di running), salain di atas dalam badan program juga dilakukan perhitungan untuk menentukan nilai angka. Perintah case of digunakan dalam menentukan menu, apabila menu pertama yang dipilih maka program akan menjalankan menu tersebut dengan perintah yang telah ditentukan. Label awal akhir digunakan untuk menentukan langkah selanjutnya pada setiap menu yang di pilih. Selama menu yang di pilih bukan selesai maka program akan terus jalan.

b. Output Program

Tampilan Menu

Tampilan menu 1. Urutan data secara menaik(i). Inputan data

(ii). Hasil sorting

Tampilan menu 2. Urutan data secara menurun(i). Inputan data

(ii). Hasil sorting

Jika memilih menu selesai

(Program akan segera keluar)

c. Pembahasan

Pada praktikum kali ini dengan menggunakan software free pascal akan dibuat sebuah format program tentang mengurutkan data. Pada pembuatan program ini akan memuat beberapa cetakan hasil yang terdiri dari cetakan karakter, space entry data, perhitungan, dengan pengkondisian.

Untuk mencetak karakter pada output program dibuat dengan menggunakan format write seperti yang tertera pada coding program. Sementara untuk membuat space entry data digunakan readln yang sebelumnya variabel untuk readln telah ditentukan. Variabel tersebut berfungsi untuk mewakili nilai yang tak hanya satu tapi lebih dari satu nilai. Readln juga berguna untuk menghentikan sementara program dan dapat dilanjutkan kembali program tersebut dengan menekan tombol enter.

Tujuan menggunakan array yakni untuk memudahkan programmer dalam mengolah data-data dengan masing-masing data memiliki indeks. Pada program ini terdapat empat prosedur yakni data, urut_naik, urut_turun, dan output. Prosedur ini bertujuan untuk memudahkan dalam pembuatan program-program yang cukup rumit, karena kita dapat membagi-bagi bagian program untuk dibuat dalam badan program kecil. Pada program kali ini perhitungan dan pengkondisian dalam prosedur cukup rumit.Perintah case of digunakan dalam menentukan menu, apabila menu pertama yang dipilih maka program akan menjalankan menu tersebut dengan perintah yang telah ditentukan.Label awal akhir digunakan untuk menentukan langkah selanjutnya pada setiap menu yang di pilih. Selama menu yang di pilih bukan selesai maka program akan terus jalan.Free pascal memungkinkan kita untuk dapat berhitung di dalamnya. Dalam perhitungan yang dilakukan terdapat pekalian dan penjumlahan. Agar tidak error sistematika perhitungan harus memenuhi sifat-sifat aljabar serta ketelitian harus diperhatikan.

Aplikasi ini sangatlah bermanfaat untuk mempermudah mengelolah data yang banyak, salah satu contoh pengimplementasian dari program ini yaitu mengelolah data mahasiswa.

PUSTAKARindengan, J.A.ARRAY.Materi Kuliah. ManadoRindengan, J.A.Konstruksi Dasar Algoritma.Materi Kuliah. ManadoRindengan, J.A. Pengaturan Letak Dan Format Tampilan Output.Materi Kuliah. Manado Rindengan, J.A.Pengulangan.Materi Kuliah. ManadoRindengan, J.A.Prosedur.Materi Kuliah. ManadoRindengan, J.A.Record.Materi Kuliah. Manado