Anda di halaman 1dari 11

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

PEMBAHASAN
INPUT
Jangan lupa untuk
Inputkan type data( composite) array yaitu memulai sebuah
progam kita harus
Larik =string memakai”uses wincrt”
Gaji bersih Sedangkan untuk
Tunjangan mengakhiri seluruh
real program maka kita
Gaji total harus memakai “ end.
”, apabila program
Inputkan type data (primitive) variable yaitu tersebut masih
nama,alamat,jabatan = larik Type data dari berlanjut maka kita
pakai “ end; ”
Array
a = gaji bersih

b = tunjangan
Type data dari
c = gaji total Array
i,n,posisi = byte

maksimal dan minimal

nama maksimal dan nama minimal


Real (karena gaji yang kita inputkan adalah
alamat maksimal,alamat minimal dalam bentuk rupiah maka di akhir nilai

rata-rata,total,ttl, dan ppn tersebut ditambahkan(,00))

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:
PROSES

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

1. Repeat until loop


2. For loop
3. 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
PPNtersebut, adapun
= 0,1 x gaji rumusnya: berikut:
bersih Total = total + gaji total

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

Untuk hasil Output programnya seperti pada gambar dibawah ini:

a[n]: gaji bersih

b[n]: tunjangan

c[n]: gaji total

total: total untuk


gaji

ttl: total untuk gaji

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:


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:

Ketika kita ENTER


maka semua data
disamping akan
hilang
Apabila tidak
dikasih clrscr;
maka hasilnya
setelah kita ENTER
seperti di samping
ini:

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”.
Ketemu:=fal
se;
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
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:

Hasil Program secara keseluruhan sebagai berikut:


Hasil Program setelah di RUN adalah sebagai berikut:
Hasil setelah di ENTER adalah sebagai berikut:

Anda mungkin juga menyukai