program pascal menghitung gaji dengan array

13
TUGAS 2 ALGORITMA DAN PEMROGRAMAN II MENCARI GAJI PEGAWAI MENGGUNAKAN TIPE DATA ARRAY Dosen Pengampu: Erna Kumalasari Nurnawati Oleh: Nama : M Panji Ismail NIM : 3105111156 Prodi : Teknik Informatika (B) Fakultas Sains Dan Teknologi UNIVERSITAS TEKNOLOGI YOGYAKARTA 2010/2011

Upload: anon752607862

Post on 04-Jul-2015

1.451 views

Category:

Documents


41 download

TRANSCRIPT

Page 1: Program Pascal Menghitung Gaji Dengan ARRAY

TUGAS 2 ALGORITMA DAN PEMROGRAMAN II

MENCARI GAJI PEGAWAI MENGGUNAKAN TIPE DATA ARRAY

Dosen Pengampu: Erna Kumalasari Nurnawati

Oleh:

Nama : M Panji Ismail

NIM : 3105111156

Prodi : Teknik Informatika (B)

Fakultas Sains Dan Teknologi

UNIVERSITAS TEKNOLOGI YOGYAKARTA

2010/2011

Page 2: Program Pascal Menghitung Gaji Dengan ARRAY

PEMBAHASAN

INPUT

Inputkan type data( composite) array yaitu

Larik =string

Gaji bersih

Tunjangan

Gaji total

Inputkan type data (primitive) variable yaitu

nama,alamat,jabatan = larik

a = gaji bersih

b = tunjangan

c = gaji total

i,n,posisi = byte

maksimal dan minimal

nama maksimal dan nama minimal

alamat maksimal,alamat minimal

rata-rata,total,ttl, dan ppn

ketemu = boolean(berisi statement false dan true )

lagi = karakter (berupa abjad)

cari = string (output berupa kata/kalimat)

begin :digunakan untuk memulai sebuah blok atau paragraf suatu program

Adapun penulisanya dalam program dapat dilihat seperti gambar dibawah ini:

Real (karena gaji yang kita inputkan adalah dalam bentuk rupiah maka di akhir nilai tersebut ditambahkan(,00))

Type data dari Array

Type data dari Array

real

Jangan lupa untuk memulai sebuah progam kita harus memakai”uses wincrt”

Sedangkan untuk mengakhiri seluruh program maka kita harus memakai “ end. ”, apabila program tersebut masih berlanjut maka kita pakai “ end; ”

Page 3: Program Pascal Menghitung Gaji Dengan ARRAY

PROSES

Proses dalam progam tersebut menggunakan 3 perulangan (LOOP) yaitu:

1. Repeat until loop2. For loop3. While loop

Yang pertama kita menggunakan repeat until, yaitu kondisi terletak diakhir(diawal belum di ketahui). Dalam progam tersebut kondisinya kita tulis until (nama[n]=’xxx’);

Sebelum kita mendeklarasikan nama variabel kita harus mengetahui terlebih dahulu type data tersebut, karena type datanya kita memakai Array maka untuk penambahan angka/nomor kita menggunakan “inc(n)”/increase(menambah).

Fungsi inc(n) itu tersendiri adalah mengurutkan data(hasil keluaran progam) dengan cara menambahkan n tersebut .dalam progam tesebut kita menggunakan inc(n) untuk mengurutkan nomor, nama, alamat, gaji bersih, jabatan, tunjangan, dan gaji total.

Jadi kegunaan inc(n) tersebut dalam bentuk horisontal menghubungkan supaya tidak terputus dan bisa teridentifikasi dengan pas, sedangkan dalam bentuk vertikal mengurutkan, sehingga diakhir data kita tambahkan “[n]”.

Nama[n], alamat[n], gaji[n], jabatan[n], tunjangan[n], dan gaji total[n].

Untuk mencari besar tunjangan, PPN, gaji total kita menggunakan pernyataan bersyarat yaitu “IF” dan gerbang logika “OR” yaitu:

Jika jabatanya adalah Direktur maka tunjangan = 0,1 x gaji bersih.

Jika jabatanya adalah Manager maka tunjangan = 0,05 x gaji bersih.

Jika jabatanya adalah Karyawan maka tunjangan = 0,1 x gaji bersih.

Untuk mengetahui untuk siapa tunjangan tersebut diberikan maka harus diberi suatu gerbang logika “OR”. Fungsi dari “OR” itu tersendiri adalah apabila ada 2 pernyataan dan salah satu dari pernyataan tersebut adalah “true” maka hasilnya adalah “true”. Seandainya tidak ada “OR” maka progam tersebut tidak akan bisa membaca kepada siapa tunjangan tersebut diberikan sehingga nilai tunjangan dari ketiga jabatan tersebut akan mempunyai nilai sama.

Setelah nilai tunjangan dari ketiga jabatan tersebut diketahui kita tinggal mencari nilai PPN, gaji total, total gaji bersih dan total gaji dari jumlah data tersebut, adapun rumusnya: berikut:PPN = 0,1 x gaji bersih Total = total + gaji total

Gaji total = gaji bersih – PPN Total = total + total gaji bersih

Page 4: Program Pascal Menghitung Gaji Dengan ARRAY

Untuk hasil Output programnya seperti pada gambar dibawah ini:

Untuk mengakhiri sampai mana progam berhenti/ inputan yang kita masukan berakhir, maka digunakan “dec(n)” /decrease(mengurangi).

Karena pada progam tersebut kita menggunakan repeat until atau perulangan sampai nama = xxx until (nama[n]=’xxx’) maka progam tersebut akan berhenti ketika kita menuliskan xxx. Untuk contohnya lihat gambar dibawah ini:

Hasil ketika di Enter:

a[n]: gaji bersih

b[n]: tunjangan

c[n]: gaji total

total: total untuk gaji

ttl: total untuk gaji bersih

Page 5: Program Pascal Menghitung Gaji Dengan ARRAY

Karena xxx kita tuliskan pada data ke 5 maka data ke 5 tersebut akan dikurangi atau dihapus(stop) sehingga hanya data 1, 2, 3, dan 4 yang tampil dan data ke 5 terhapus/ terhentikan.

Agar data tersusun dengan rapi dan indah kita bisa membuat kedalam bentuk tabel, dan untuk bentuk listingnya sebagai berikut:

Untuk membuat data agar terlihat simpel dan tidak panjang kita gunakan clrscr;

Fungsi dari clrscr; adalah menghapus/menghilangkan data sebelumnya sehingga hasil programnya tidak terlalu panjang, adapun data yang dihapus adalah seperti pada hasil output di bawah ini:

Apabila tidak dikasih clrscr; maka hasilnya setelah kita ENTER seperti di samping ini:

Ketika kita ENTER maka semua data disamping akan hilang

Page 6: Program Pascal Menghitung Gaji Dengan ARRAY

Supaya penempatan datanya urut dan pas maka kita harus menambahkan statement looping berupa FOR LOOP, yaitu dari data ke satu sampai banyak data yang kita inginkan (for i:=1 to n do)

Dan untuk setiap variabel data yang ingin kita masukan kedalam tabel maka diakhir variabel data tersebut kita tambahkan [i]. Fungsi dari penambahan [i] hampir sama dengan penambahan [n] pada data sebelumnya, bedanya kalau di “[n]” digunakan untuk mengurutkan dan menyambungkan data sebelum tanda xxx di ENTER ,sedangkan fungsi “[i]” adalah mengurutkan dan menyambungkan data setelah tanda xxx di ENTER. Dengan adanya [i] maka data akan menyambung sesuai urutanya dan tepat pada masing-masing datanya.

Untuk penulisanya sama dengan penulisan pada “[n]” yaitu dikhir variabel data (nomor[i], nama[i], alamat[i], gaji bersih[i], jabatan[i], tunjangan[i], gaji total[i]). Untuk lebih jelasnya lihat tulisan progam dibawah ini beserta hasil outputnya.

Selanjutnya adalah bagaimana kita mencari daftar nama pada data yang sudah jadi?

Untuk mencari daftar nama beserta posisi nama tersebut berada kita bisa menggunakan statement perulangan berupa for loop dan jangan lupa masukan variabel dengan type boolean(statement false dan true) dan type String untuk “cari”. Untuk mengawalinya kita harus menempatkan statement berupa “false”.

Fungsi dari false itu tersendiri adalah menyatakan bahwa nama yang ingin di cari dari data tersebut dalam posisi salah (teridentifikasi salah). Sehingga untuk mencari kebenaran data yang kita inginkan maka digunakanlah statement yang true pada proses pencarian(rumus). Dan untuk menyertakan posisi dan alamat dimana nama tersebut berada kita bisa menambahkan variabel posisi yang bertipe byte, dan alamat yang bertipe array of string

Karena kita ingin mencari satu nama dari beberapa nama dalam data dan mencari pula nama yang sama maka kita harus menambahkan pernyataan bersyarat berupa IF tapi tanpa else. Sedangkan untuk menampilkan isyarat nama yang tidak ditemukan pada data maka

Ketemu:=false;

Page 7: Program Pascal Menghitung Gaji Dengan ARRAY

statement-nya harus di False. Kenapa pakai False? Karena pada “ketemu” diatas kita identifikasikan salah atau datanya tidak tersedia sehingga ketika kita tuliskan nama yang salah(tidak ada dalam daftar data) maka secara otomatis progam akan menampilkan pesan “maaf nama yang anda cari tidak ada”.

Untuk mencari nama dan posisinya secara berulang atau tidak kita bisa gunakan variabel “lagi” yang bertipe karakter(char). Karena dalam proses diatas penentuanya menggunakan proses while do maka penempatan kondisi “lagi” berada di awal yaitu: while lagi = ’y’ do. Pilihan yang tersedia hanya ya dan tidak (y/t), sedangkan variabel “lagi” karakter(char)-nya berupa huruf “y” saja. Jadi ketika kita menuliskan huruf selain “y” ,misalnya “t” atau yang lainya maka ketika di ENTER secara otomatis akan pindah ke proses berikutnya ,yaitu proses menentukan gaji tertinggi(maximal) dan gaji terendah(minimal)

Proses programnya dapat kita lihat dibawah ini:

Proses yang terakhir adalah menentukan gaji tertinggi(max), gaji terendah(min), alamatnya, besarnya, beserta namanya.

Untuk melakukan proses tersebut pertama-tama kita harus mendeklarasikan maximal dan minimalnya ,karena yang akan kita deklarasikan adalah gaji total maka dapat dituliskan:

Max:=c[i]; Min:=c[1]. Untuk pengecekan gaji tertinggi dan terendah kita mengunakan statement FOOR LOOP , mulai dari data yang pertama(1) hingga data yang terakhir(n) = for i:=1 to n do. Dan proses untuk menentukanya degan menggunakan pernyataan bersarat IF yaitu:

Jika gaji total lebih besar dari gaji total yang lainya(berikutnya) maka cetak besarnya, atas nama siapa, dan alamatnya.

Jika gaji total lebih kecil dari gaji total yang lainya(berikutnya) maka cetak besarnya, atas nama siapa, dan alamatnya.

Jangan lupa tambahkan [i] pada setiap variabel supaya hasil programnya bisa terbaca secara urut, detail dan saling menyambung dari pertama(i=1) sampai akhir(n).

Pengecualian: untuk gaji total minimal penulisanya tidak memakai c[i] tapi c[1], sebab jika menggunakan c[i] untuk data “alamat” tidak akan terbaca(keluar). Pada intinya c[i] dan c[1] itu beda, karena pendepkripsianya c[i] untuk maksimal maka data dari i:=1 sampai i:=4 akan dibandingkan mana yang lebih besar. Sedangkan pendepkripsianya c[1] adalah untuk minimal maka pembandinganya mulai dari I terkecil yaitu satu(1), untuk lebih jelasnya perhatikan hasil program di bawah ini:

Page 8: Program Pascal Menghitung Gaji Dengan ARRAY

Hasil Program secara keseluruhan sebagai berikut:

Page 9: Program Pascal Menghitung Gaji Dengan ARRAY

Hasil Program setelah di RUN adalah sebagai berikut:

Hasil setelah di ENTER adalah sebagai berikut:

Page 10: Program Pascal Menghitung Gaji Dengan ARRAY