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;
}

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;
}

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 :


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)



http://www.resepkuekeringku.com/2014/11/resep-donat-empuk-ala-dunkin-donut.html http://www.resepkuekeringku.com/2015/03/resep-kue-cubit-coklat-enak-dan-sederhana.html http://www.resepkuekeringku.com/2014/10/resep-donat-kentang-empuk-lembut-dan-enak.html http://www.resepkuekeringku.com/2014/07/resep-es-krim-goreng-coklat-kriuk-mudah-dan-sederhana-dengan-saus-strawberry.html http://www.resepkuekeringku.com/2014/06/resep-kue-es-krim-goreng-enak-dan-mudah.html http://www.resepkuekeringku.com/2014/09/resep-bolu-karamel-panggang-sarang-semut-lembut.html