Sekolah Tinggi Manajemen Informatika Komputer Bani Saleh PEMROGRAMAN I C++ Dhefi Cahyadi dhevotcool@yahoo.com Sekolah Tinggi Manajemen Informatika Komputer Bani Saleh
LANJUTAN DECISION NESTED IF Atau IF TERSARANG Bentuk nested If merupakan bentuk yang tidak memiliki struktur khusus artinya sangat bergantung pada kasus atau permasalahan yang terjadi. Apabila keputusan, baik true/ya atau false/salah diikuti oleh struktur seleksi lainnya maka bentuk itulah yang dikatakan struktur seleksi tersarang.
Perintah I If (Variabel-1=Nilai Variabel-1) { Blok statement-1 yang benar } Else If (Variabel-2=Nilai Variabel-2) Blok statement-2 yang benar Blok statement-3 yang salah Endif
Perintah II : If (Variabel-1=Nilai Variabel-1) { Blok statement-1 yang benar } Else If (Variabel-2=Nilai Variabel-2) Blok statement-2 yang benar If (Variabel-3=Nilai Variabel-3) Blok statement-3 yang benar Blok statement-4 yang salah Endif
Sebuah perusahaan akan menghitung gaji karyawan dengan ketentuan sbb : Contoh soal : Sebuah perusahaan akan menghitung gaji karyawan dengan ketentuan sbb : Gaji pokok yang didapat : JIka gol = 1, maka gaji pokok =1500000 JIka gol = 2, maka gaji pokok =1200000 JIka gol = 3, maka gaji pokok =1000000 Jika gol= 4, maka gaji pokok = 700000 Masa Kerja = 2011 – tahun masuk kerja Mencari bonus : Jika masa kerja karyawan>=5 maka bonus =200000 Jika masa kerja karyawan<5 tahun, maka bonus=0 Gaji yang didapat adalah gaji pokok karyawan dijumlah dengan bonus
soal Buat algoritma untuk menentukan honor karyawan dengan kemungkinan lembur selama satu minggu untuk menentukan upah mingguan. Karyawan honorer PT Sinar digaji berdasarkan jumlah jam kerjannya selama satu minggu. Upah per jam ditentukan sbb Jika gol adalah satu upah per jam adalah 15000, gol dua upah per jam 12000, gol tiga upah per jam 10000. Jika jumlah jam kerja lebih besar dari 48 jam (jam normal kerja), maka sisanya dianggap sebagai jam lembur. Upah lembur adalah Rp. 7000.
Penyelesaian Analisa kasus : Jama normal seminggu (JN) = 48 Upah perjam lembur (UJL) = 7000 Upah per jam (UPJ) Jika gol=1, maka upah perjam (UPJ) = 15000 Jika gol=2, maka upah perjam (UPJ) = 12000 Jika gol=3, maka upah perjam (UPJ) = 10000 Upah yang didapat : Jika jumlah jam kerja (JJK) <= Jam Normal kerja (JN), maka upah (UPAH) = jumlah jam kerja (JJK) * upah per jam (UPJ) Jika jumlah jam kerja (JJK) > Jam normal kerja (JN) maka Upah lembur (UL) = jumlah jam kerja (JJK) – jam Normal (JN) Upah (UPAH) =((Jam normal kerja (JN) * upah per jam (UJL)) + ( upah lembur (UL) * upah per jam lembur (UJL) ))
Soal : Buatlah rekap nilai Stmik ABC dengan algoritma Variabel : Nmhs = nama mahasiswa Nim = nomor induk mahasiswa tatap muka Na = nilai absen Nt = nilai tugas Nuts = nilai ujian tengah semester Nuas = nilai ujian akhir semester Nilai Nh = nilai huruf Nm = nilai mutu Ket = keterangan nilai
Nmhs, Nim, tatap muka, Nt, Nuts, Nuas Na=(tatap muka/14)*10% Varaibel input : Nmhs, Nim, tatap muka, Nt, Nuts, Nuas Ketentuan Proses : Na=(tatap muka/14)*10% Nt=Nt *20% Nuts=Nuts*30% Nuas=Nuas*40% nilai=Na+Nt+Nuts+Nuas
Lanjutan soal Nilai huruf : Jika nilai >=80, maka nilai huruf=”A” Jika nilai >=66 dan nilai<80, maka nilai huruf=”B” Jika nilai >=55 dan nilai<66, maka nilai huruf=”C” Jika nilai >=41 dan nilai<55, maka nilai huruf=”D” Jika nilai < 41, maka nilai huruf=”E” Nilai mutu : Jika nilai huruf=”A”, maka nilai mutu=”memuaskan” Jika nilai huruf=”B”, maka nilai mutu=”baik” Jika nilai huruf=”C”, maka nilai mutu=”cukup” Jika nilai huruf=”D”, maka nilai mutu=”kurang” Jika nilai huruf=”E”, maka nilai mutu=”gagal” Keterangan Jika nilai >=55, keterangan =”lulus” Jika nilai <55, maka keterangan =”tidak lulus”
BENTUK Switch-Case Bentuk lain dari model seleksi adalah bentuk Switch-case, dimana pada bentuk ini tidak dilakukan pengujian true/benar atau false/salah, tetapi suatu proses sudah dikelompokan yang sudah ditetapkan berdasarkan pilihan
Perintah Switch (Variabel) { Case Nilai Variabel : Blok statement-1 ; Break ; Case Nilai Variabel-2 : Blok statement-2 ; Case Nilai Variabel-3 : Blok statement-3 ; Dan seterusnya Default : Blok statement default ; Break ; } Endcase
Contoh soal : Sebuah perusahaan akan menghitung gaji karyawan dengan ketentuan sbb : Gaji pokok yang didapat : JIka gol = 1, maka gaji pokok = 1500000 JIka gol = 2, maka gaji pokok = 1200000 JIka gol = 3, maka gaji pokok = 1000000 Masa kerja = 2010 – tahun masuk kerja Bonus diisi JIka masa kerja >=7 , maka bonus=150000 Jika masa kerja < 7, maka bonus =0 Gaji = gaji pokok + bonus
#include <stdio. h> #include <iostream #include <stdio.h> #include <iostream.h> #include <conio.h> Void main() { int gol,mk,tmk ; long gp,bonus,gaji ; Cout<<“masukan golongan karyawan =“ ; Cin>>gol ; Cout<<“masukan tahun masuk kerja karyawan = “ ; Cin>>tmk ;
If (gol==1) { gp=1500000; } else if (gol==2) gp=1200000; if (gol==3) gp=1000000; if (gol==4) gp=700000; gp=0 ;
Mk=2011-tmk ; If (mk>=5) { bonus=200000; } Else bonus=0; Gaji=gp+bonus ; Cout<<“Laporan gaji karyawan”<<endl; Cout<<“PT ABC”<<endl; Cout<<“---------------------------------------------------------”<<endl; Cout<<“golongan karyawan = “<<gol<<endl; Cout<<“gaji pokok karyawan = “<<gp<<endl; Cout<<“tahun masuk kerja karyawan =“<<tmk<<endl; Cout<<“masa kerja karyawan =“<<mk<<endl; Cout<<“bonus karyawan =“<<bonus<<endl; Cout<<“gaji yang didapat karyawan =“<<gaji<<endl; Cout<<“===================================“<<endl ; Getch() ;