Senin, 10 Desember 2018
Senin, 03 Desember 2018
Source Code ( Daftar Gaji Karyawan )
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;
int garis() {
int garis;
for (garis=0;garis<=106;garis++) {
cout << "-";
}
cout << endl;
}
int garis2() {
int garis;
for(garis=0;garis<=106;garis++) {
cout << "=";
}
cout << endl;
}
void header() {
cout << "\t\t\t\t\tDaftar Gaji Karyawan" << endl;
cout << "\t\t\t\t\t\"PT YUVERTY SEJAHTERA\"" << endl;
}
struct karyawan {
char null[0];
int no,nip;
char nama[100],kode_status[100];
char* jabatan;
char* status;
int kode_jabatan,tunjangan,gaji_pokok,total_gaji;
};
int main() {
karyawan kry[100];
int data_count;
int jumlah_halaman,akhir,nav,mulai,sisa,page=1;
char move;
int bulan;
int total = 0;
int total_count;
int grand_total = 0;
//memasukan nilai data_count sebagai banyaknnya data
cout << "Jumlah Karyawan : ";cin >> data_count;
cout << "Bulan : ";cin >> bulan;
garis();
cout << "Input Data Karyawan" << endl;
//looping untuk menyimpan data
for(int i=0;i<data_count;i++) {
cout << "Data Karyawan Ke : " << (i+1) << endl;
cout << "NIP Karyawan : ";cin >> kry[i].nip;
gets(kry[i].null);
cout << "Nama Karyawan : ";gets(kry[i].nama);
cout << "Kode Jabatan[1/2] : ";cin >> kry[i].kode_jabatan;
cout << "Kode Status[M/S] : ";cin >> kry[i].kode_status;
if (kry[i].kode_jabatan == 1)
{
kry[i].jabatan = "Administrasi";
kry[i].gaji_pokok = 800000;
strlwr(kry[i].kode_status);
if (!strcmp(kry[i].kode_status,"m"))
{
kry[i].status = "Menikah";
kry[i].tunjangan = 200000;
}
else if (!strcmp(kry[i].kode_status,"s"))
{
kry[i].status = "Single";
kry[i].tunjangan = 100000;
}else{
kry[i].status = "Tidak Tersedia";
kry[i].tunjangan = 0;
}
}
else if (kry[i].kode_jabatan == 2)
{
kry[i].jabatan = "Operasioanl";
kry[i].gaji_pokok = 850000;
strlwr(kry[i].kode_status);
if (!strcmp(kry[i].kode_status,"m"))
{
kry[i].status = "Menikah";
kry[i].tunjangan = 250000;
}
else if (!strcmp(kry[i].kode_status,"s"))
{
kry[i].status = "Single";
kry[i].tunjangan = 150000;
}else{
kry[i].status = "Tidak Tersedia";
kry[i].tunjangan = 0;
}
}else{
kry[i].jabatan = "Tidak Tersedia";
kry[i].gaji_pokok = 0;
}
cout << endl;
kry[i].total_gaji = kry[i].gaji_pokok + kry[i].tunjangan;
kry[i].no = i+1;
}
//perhitungan navigasi
mulai = 1;
akhir = 3;
jumlah_halaman = data_count/akhir;
sisa = data_count%akhir;
if(sisa>0) {
jumlah_halaman++;
}
//looping do while untuk navigasi
do{
system("cls");
//selection navigasi
if(move=='b' || move=='B')
{ //jika N maka akan lanjut
if(akhir < data_count)
{
page+=1;
mulai+=3;
akhir+=3;
total = 0;
}
}
else if(move=='s' || move=='S')
{ //jika P maka akan kembali
if(mulai >= 3)
{
page-=1;
mulai-=3;
akhir-=3;
total = 0;
}
}
//memanggil fungsi garis
//memanggil fungsi header
header();
cout << "Bulan : " << bulan << endl;
garis2();
cout << " No NIP Karyawan Nama Karyawan Jabatan Status Gaji Pokok Tunjangan Total Gaji" << endl;
garis2();
for(int i=mulai-1;i<akhir;i++) {
//menyembunyikan file sampah
if(kry[i].no!=0 && kry[i].nip!=0 && kry[i].nama!=0 && kry[i].jabatan!=0 && kry[i].status!=0 && kry[i].gaji_pokok!=0 && kry[i].tunjangan!=0 && kry[i].total_gaji!=0){
cout << " " << left <<
setw(13) << kry[i].no <<
setw(15) << kry[i].nip <<
setw(9) << kry[i].nama <<
setw(15) << kry[i].jabatan <<
setw(12) << kry[i].status <<
setw(15) << kry[i].gaji_pokok <<
setw(15) << kry[i].tunjangan <<
setw(10) << kry[i].total_gaji << endl;
//memanggil fungsi garis
garis();
}
}
for(int i=mulai-1;i<akhir;i++){
total = total+kry[i].total_gaji;
grand_total = grand_total + kry[i].total_gaji;
}
cout << "Total Gaji Karyawan : " << total<< endl;
if (akhir > data_count)
{
cout << "Grand Total : " << grand_total << endl;
grand_total = 0;
}
garis();
//menampilkan halaman ke berapa dari berapa halaman
cout<<"Halaman Ke "<<page<<" Dari "<<jumlah_halaman<<" Halaman" << endl;
garis();
cout<<"\t\t\t\t\t ";
//navigasi nomor di bawah tabel
for(nav=1;nav<=jumlah_halaman;nav++){
if(nav==page){
cout<<"["<<nav<<"]";
} else {
cout<<" "<<nav<<" ";
}
}
cout<<endl<<endl;
cout << "Berikutnya[B] / Sebelumnya[S] / Keluar [Tekan Apa Saja] : ";cin >> move;
}while(move=='B' || move=='S' || move=='s' || move=='b');
return 0;
}
#include <iomanip>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;
int garis() {
int garis;
for (garis=0;garis<=106;garis++) {
cout << "-";
}
cout << endl;
}
int garis2() {
int garis;
for(garis=0;garis<=106;garis++) {
cout << "=";
}
cout << endl;
}
void header() {
cout << "\t\t\t\t\tDaftar Gaji Karyawan" << endl;
cout << "\t\t\t\t\t\"PT YUVERTY SEJAHTERA\"" << endl;
}
struct karyawan {
char null[0];
int no,nip;
char nama[100],kode_status[100];
char* jabatan;
char* status;
int kode_jabatan,tunjangan,gaji_pokok,total_gaji;
};
int main() {
karyawan kry[100];
int data_count;
int jumlah_halaman,akhir,nav,mulai,sisa,page=1;
char move;
int bulan;
int total = 0;
int total_count;
int grand_total = 0;
//memasukan nilai data_count sebagai banyaknnya data
cout << "Jumlah Karyawan : ";cin >> data_count;
cout << "Bulan : ";cin >> bulan;
garis();
cout << "Input Data Karyawan" << endl;
//looping untuk menyimpan data
for(int i=0;i<data_count;i++) {
cout << "Data Karyawan Ke : " << (i+1) << endl;
cout << "NIP Karyawan : ";cin >> kry[i].nip;
gets(kry[i].null);
cout << "Nama Karyawan : ";gets(kry[i].nama);
cout << "Kode Jabatan[1/2] : ";cin >> kry[i].kode_jabatan;
cout << "Kode Status[M/S] : ";cin >> kry[i].kode_status;
if (kry[i].kode_jabatan == 1)
{
kry[i].jabatan = "Administrasi";
kry[i].gaji_pokok = 800000;
strlwr(kry[i].kode_status);
if (!strcmp(kry[i].kode_status,"m"))
{
kry[i].status = "Menikah";
kry[i].tunjangan = 200000;
}
else if (!strcmp(kry[i].kode_status,"s"))
{
kry[i].status = "Single";
kry[i].tunjangan = 100000;
}else{
kry[i].status = "Tidak Tersedia";
kry[i].tunjangan = 0;
}
}
else if (kry[i].kode_jabatan == 2)
{
kry[i].jabatan = "Operasioanl";
kry[i].gaji_pokok = 850000;
strlwr(kry[i].kode_status);
if (!strcmp(kry[i].kode_status,"m"))
{
kry[i].status = "Menikah";
kry[i].tunjangan = 250000;
}
else if (!strcmp(kry[i].kode_status,"s"))
{
kry[i].status = "Single";
kry[i].tunjangan = 150000;
}else{
kry[i].status = "Tidak Tersedia";
kry[i].tunjangan = 0;
}
}else{
kry[i].jabatan = "Tidak Tersedia";
kry[i].gaji_pokok = 0;
}
cout << endl;
kry[i].total_gaji = kry[i].gaji_pokok + kry[i].tunjangan;
kry[i].no = i+1;
}
//perhitungan navigasi
mulai = 1;
akhir = 3;
jumlah_halaman = data_count/akhir;
sisa = data_count%akhir;
if(sisa>0) {
jumlah_halaman++;
}
//looping do while untuk navigasi
do{
system("cls");
//selection navigasi
if(move=='b' || move=='B')
{ //jika N maka akan lanjut
if(akhir < data_count)
{
page+=1;
mulai+=3;
akhir+=3;
total = 0;
}
}
else if(move=='s' || move=='S')
{ //jika P maka akan kembali
if(mulai >= 3)
{
page-=1;
mulai-=3;
akhir-=3;
total = 0;
}
}
//memanggil fungsi garis
//memanggil fungsi header
header();
cout << "Bulan : " << bulan << endl;
garis2();
cout << " No NIP Karyawan Nama Karyawan Jabatan Status Gaji Pokok Tunjangan Total Gaji" << endl;
garis2();
for(int i=mulai-1;i<akhir;i++) {
//menyembunyikan file sampah
if(kry[i].no!=0 && kry[i].nip!=0 && kry[i].nama!=0 && kry[i].jabatan!=0 && kry[i].status!=0 && kry[i].gaji_pokok!=0 && kry[i].tunjangan!=0 && kry[i].total_gaji!=0){
cout << " " << left <<
setw(13) << kry[i].no <<
setw(15) << kry[i].nip <<
setw(9) << kry[i].nama <<
setw(15) << kry[i].jabatan <<
setw(12) << kry[i].status <<
setw(15) << kry[i].gaji_pokok <<
setw(15) << kry[i].tunjangan <<
setw(10) << kry[i].total_gaji << endl;
//memanggil fungsi garis
garis();
}
}
for(int i=mulai-1;i<akhir;i++){
total = total+kry[i].total_gaji;
grand_total = grand_total + kry[i].total_gaji;
}
cout << "Total Gaji Karyawan : " << total<< endl;
if (akhir > data_count)
{
cout << "Grand Total : " << grand_total << endl;
grand_total = 0;
}
garis();
//menampilkan halaman ke berapa dari berapa halaman
cout<<"Halaman Ke "<<page<<" Dari "<<jumlah_halaman<<" Halaman" << endl;
garis();
cout<<"\t\t\t\t\t ";
//navigasi nomor di bawah tabel
for(nav=1;nav<=jumlah_halaman;nav++){
if(nav==page){
cout<<"["<<nav<<"]";
} else {
cout<<" "<<nav<<" ";
}
}
cout<<endl<<endl;
cout << "Berikutnya[B] / Sebelumnya[S] / Keluar [Tekan Apa Saja] : ";cin >> move;
}while(move=='B' || move=='S' || move=='s' || move=='b');
return 0;
}
Senin, 15 Oktober 2018
Menghitung Tarif Pemotongan Rumput (Source Code C++)
Berikut adalah kodingan dari soal Menghitung Tarif Pemotongan Rumput
#include <iostream>
using namespace std;
int main() {
int pjg_tnh,lbr_tnh,pjg_rmh,lbr_rmh,luas_tnh,luas_rmh,trf_waktu,ttl_tarif,wkt_rr_pemotongan,wkt_pengerjaan,sisa_tnh;
trf_waktu = 100000/60; //per jam atau per 60 menit
wkt_rr_pemotongan = 2; // meter per menit
cout << "-----------------------------------" << endl;
cout << "Menghitung Tarif Pemotong Rumput" << endl;
cout << "-----------------------------------" << endl;
cout << endl;
cout << "-----------------------------------" << endl;
cout << " Bidang Tanah " << endl;
cout << "-----------------------------------" << endl;
cout << "Panjang Tanah (m) : ";cin >> pjg_tnh;
cout << "Lebar Tanah (m) : ";cin >> lbr_tnh;
cout << endl;
cout << "-----------------------------------" << endl;
cout << " Bidang Rumah " << endl;
cout << "-----------------------------------" << endl;
cout << "Panjang Rumah (m) : ";cin >> pjg_rmh;
cout << "Lebar Rumah (m) : ";cin >> lbr_rmh;
cout << endl;
luas_tnh = pjg_tnh*lbr_tnh;
luas_rmh = pjg_rmh*lbr_rmh;
sisa_tnh = luas_tnh-luas_rmh;
wkt_pengerjaan = sisa_tnh/wkt_rr_pemotongan;
ttl_tarif = wkt_pengerjaan*trf_waktu;
cout << "------------------------------------------" << endl;
cout << "Luas Tanah (m2) : " << luas_tnh << endl;
cout << "Luas Rumah (m2) : " << luas_rmh << endl;
cout << "------------------------------------------" << endl;
cout << "Sisa Tanah Yang Tersedia (m2) : " << sisa_tnh << endl;
cout << "------------------------------------------" << endl;
cout << "Rata-rata Pemotongan rumput : 2m / menit" << endl;
cout << "Lama Pengerjaan (menit) : " << wkt_pengerjaan << endl;
cout << "Tarif per 60menit : Rp.100.000" << endl;
cout << "------------------------------------------" << endl;
cout << endl;
cout << "Tarif Yang Harus Dibayar : Rp." << ttl_tarif << endl;
return 0;
}
#include <iostream>
using namespace std;
int main() {
int pjg_tnh,lbr_tnh,pjg_rmh,lbr_rmh,luas_tnh,luas_rmh,trf_waktu,ttl_tarif,wkt_rr_pemotongan,wkt_pengerjaan,sisa_tnh;
trf_waktu = 100000/60; //per jam atau per 60 menit
wkt_rr_pemotongan = 2; // meter per menit
cout << "-----------------------------------" << endl;
cout << "Menghitung Tarif Pemotong Rumput" << endl;
cout << "-----------------------------------" << endl;
cout << endl;
cout << "-----------------------------------" << endl;
cout << " Bidang Tanah " << endl;
cout << "-----------------------------------" << endl;
cout << "Panjang Tanah (m) : ";cin >> pjg_tnh;
cout << "Lebar Tanah (m) : ";cin >> lbr_tnh;
cout << endl;
cout << "-----------------------------------" << endl;
cout << " Bidang Rumah " << endl;
cout << "-----------------------------------" << endl;
cout << "Panjang Rumah (m) : ";cin >> pjg_rmh;
cout << "Lebar Rumah (m) : ";cin >> lbr_rmh;
cout << endl;
luas_tnh = pjg_tnh*lbr_tnh;
luas_rmh = pjg_rmh*lbr_rmh;
sisa_tnh = luas_tnh-luas_rmh;
wkt_pengerjaan = sisa_tnh/wkt_rr_pemotongan;
ttl_tarif = wkt_pengerjaan*trf_waktu;
cout << "------------------------------------------" << endl;
cout << "Luas Tanah (m2) : " << luas_tnh << endl;
cout << "Luas Rumah (m2) : " << luas_rmh << endl;
cout << "------------------------------------------" << endl;
cout << "Sisa Tanah Yang Tersedia (m2) : " << sisa_tnh << endl;
cout << "------------------------------------------" << endl;
cout << "Rata-rata Pemotongan rumput : 2m / menit" << endl;
cout << "Lama Pengerjaan (menit) : " << wkt_pengerjaan << endl;
cout << "Tarif per 60menit : Rp.100.000" << endl;
cout << "------------------------------------------" << endl;
cout << endl;
cout << "Tarif Yang Harus Dibayar : Rp." << ttl_tarif << endl;
return 0;
}
Kamis, 11 Oktober 2018
Menghitung Tarif Pemotongan Rumput (Psedeucode)
Header
à
Menghitung tarif pemotongan rumput
Deklarasi
à
Int
pjg_tnh,lbr_tnh,pjg_rmh,lbr_rmh,luas_tnh,luas_rmh,trf_waktu,ttl_tarif,wkt_rr_pemotongan,wkt_pengerjaan,sisa_tnh
trf_waktu = 100000/60 Menit
wkt_rr_pemotongan = 2
Deskripsi
à
Masukan pjg_tnh
à
Masukan lbr_tnh
à
Masukan pjg_rmh
à
Masukan lbr_rmh
à
luas_tnh = pjg_tnh * lbr_tnh
à
luas_rmh = pjg_rmh*lbr_rmh
à
sisa_tnh = luas_tnh – luas_rmh
à
wkt_pengerjaan = sisa_tnh/ wkt_rr_pemotongan
à
ttl_tarif = wkt_pengerjaan * trf_waktu
à Cetak luas_tnh
à
Cetak luas_rmh
à
Cetak sisa_tnh
à
Cetak wkt_rr_pemotongan
à
Cetak wkt_pengerjaan
à
Cetak ttl_tarif
à
End
Minggu, 23 September 2018
Model Spiral..
Definisi
Model Spiral
(spiral model) adalah salah satu bentuk dari Metode Pengembangan Perangkat
Lunak atau yang disebut SDLC (Software Development Life Cycle), yang sangat
populer digunakan dalam bidang teknologi informasi. Model Spiral adalah
gabungan dari Model Prototyping dan Model Waterfall dengan penekanan yang
tinggi pada analisis risiko tiap tahapannya.
Bentuk ini
bersifat iteratif atau berulang dengan mengontrol aspek yang teratur dari
sekuensial linier. Fungsi Model Spiral ini adalah untuk melakukan perubahan,
penambahan dan pengembangan suatu software dengan deretan pertambahan menjadi
lebih baik secara cepat dan tepat berdasarkan keinginan dan kebutuhan
penggunanya.
Karakteristik
Spiral model
adalah penggabungan antara prototyping
model dan waterfall model , metode iterasi yang ada pada prototyping model dan
tahap sistematis yang digunakan dalam waterfall model digabungkan menjadi satu
sehingga menciptakan model baru.
Model Spiral ini
dapat digunakan sepanjang kehidupan artinya pada model ini tidak akan berakhir
jika terus dikembangkan dimana awal bisa menjadi pengembangan lagi pada suatu
perangkat lunak dan pada model ini bisa terjadi pemberhentian dimana jika kita
tidak menggunakan perangkat lunak tersebut lagi atau tidak ingin mengembangkannya
lagi maka bisa saja terjadi pemberhentian seperti ini tapi jika perangkat lunak
tersebut kita ingin kembangkan lagi maka prosesnya bisa dimulai lagi. Model
spiral ini biasanya digunakan atau dipakai oleh perusahaan - perusahaan besar
yang membutuhkan perangkat lunak yang terus di kembangkan.
Sejarah Spiral
Model
Tahun 1986, model ini dikenalkan pertama kali oleh
Barry Boehm pada makalahnya yang berjudul “A Spiral Model of Software
Development and Enhancement”. Makalah tersebut menjelaskan tentang sebuah
diagram yang dihasilkan dari berbagai publikasi yang mendiskusikan tentang Model
Spiral ini. Model ini merupakan model yang sudah lama, tetapi sangat berguna
untuk melakukan pembangunan proyek-proyek besar.
Pada makalah awal yang dibuatnya, Barry Boehm
menganggap bahwa Model Spiral adalah suatu model proses yang berhubungan dengan
inkrementasi, Model Waterfall dan Model Prototyping.
Namun dalam publikasi selanjutnya, Boehm
menjelaskan bahwa Model Spiral sebagai model proses generator yang mana pilihan
berdasarkan risiko proyek untuk menghasilkan suatu model proses yang tepat
untuk proyek tersebut. Dengan demikian, inkrementasi, Model Waterfall dan Model
Prototyping adalah kasus khusus dengan pola risiko proyek tertentu dari Model
Spiral.
Tahap-tahap Spiral
Model
Dalam Model Spiral terdapat lima tahap untuk
merealisasikan penggunaannya sebagai berikut :
1. Tahap Liason
Tahap ini berhubungan dengan komunikasi antara
orang yang akan mengembangkan software (system analyst) dengan pelanggan.
Tujuannya adalah agar dapat memuaskan pelanggan dengan memperbaiki dan
mengembangkan software sesuai dengan kebutuhan, kepentingan dan keinginannya.
2. Tahap Planning
Tahap perencanaan meliputi estimasi biaya yang
digunakan, batas waktu, pengaturan jadwal, identifikasi lingkungan kerja,
sumber-sumber infomasi untuk melakukan iterasi. Hasilnya adalah dokumen spesifikasi
kebutuhan sistem dan bisnis.
3. Tahap Analisis Risiko
Tahap ini berfungsi untuk mengidentifikasi risiko
yang berpotensial untuk terjadi dan menghasilkan suatu solusi alternatif secara
teknis dan manajemen saat strategi mitigasi risiko direncanakan dan
diselesaikan.
4. Tahap Rekayasa (engineering)
Pada tahap ini, yang dilakukan adalah sebagai
berikut :
·
Menguji, coding dan mengembangkan software
·
Menginstal software
·
Membuat prototipe
·
Mendesain dokumen
·
Meringkas suatu pengujian software
·
Membuat laporan atas kekurangan dari software agar segera diperbaiki
5. Tahap Evaluasi
Peran pelanggan sangat diperlukan pada tahap ini.
Mereka dapat memberikan masukan dan tanggapan, mengevaluasi produk kerja dan
memastikan bahwa produk yang dibutuhkan sesuai dengan semua ketentuan. Jika
terdapat perubahan, semua tahapan akan diperbaiki sesuai dengan kepuasan
pelanggan. Namun, mengidentifkasi dan memantau risiko yang terjadi juga
diperlukan, seperti cost overrun.
Penggunaan Spiral
Model
Model Spiral tepat digunakan dalam hal sebagai
berikut :
·
Ketika memiliki sebuah proyek dengan risiko sedang hingga tinggi
·
Komitmen proyek jangka panjang karena potensi perubahan pada prioritas
ekonomi dalam perubahan waktu
·
Lini produk baru yang harus dirilis secara bertahap untuk mendapatkan
feedback pelanggan dengan cukup
·
Ketika penciptaan prototipe berlaku
·
Perubahan signifikan yang diharapkan dalam produk selama siklus
pengembangan
·
Persyaratan yang kompleks dan memerlukan suatu evaluasi
Referensi :
Referensi :
https://www.academia.edu/9477741/SPIRAL_MODEL_REKAYASA_PERANGKAT_LUNAK
https://www.dictio.id/t/apa-yang-dimaksud-dengan-model-spiral-dalam-pengembangan-perangkat-lunak/15028/2
(reza/12164003)