ALGORITMA DAN PEMROGRAMAN

PROGRAM HITUNG PANGKAT

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

int main(int argc, char** argv) {
    int i, hasil,a,n;
    hasil=1;
    cout<<"Program Menghitung Pangkat"<<endl<<endl;
    cout<<"Masukkan nilai A : ";
    cin>>a;
    cout<<"Masukkan nilai N : ";
    cin>>n;
        for(i=1;i<=n;i++){
            hasil = hasil * a;
        }
    cout<<"Hasil A pangkat N adalah : "<<hasil;
    cout<<endl;
    return 0;
}



PROGRAM TUKAR 3 BILANGAN

#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
    int x,y,z,q;
    cout<<"menukar bilangan"<<endl;
    cout<<"x= ";cin>>x;
    cout<<"y= ";cin>>y;
    cout<<"z= ";cin>>z;
    q=x;
    x=y;
    y=z;
    z=q;
   
    cout<<"setelah ditukar\n";
    cout<<"x ="<<x<<endl;
    cout<<"y ="<<y<<endl;
    cout<<"z ="<<z;
   
    return 0;
}


PROGRAM POINTER

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

class node {
    public :
   
    int data;
    node *berikut;
};

int main(int argc, char *argv[]) {


// langkah satu
    node *p;
    p = new node;
    p->data = 1;
    p->berikut = NULL;
    cout << "Isi data node p adalah : " << p->data << endl;

// langkah dua
    node *q;
    q = new node;
    q->data = 8;
    q->berikut = NULL;
    cout << "Isi data node q adalah : " << q->data << endl;

// langkah tiga : menyambung rantai
    p->berikut = q;
    cout << "Isi data node q dicetak dari node p adalah : ";
    cout << p->berikut->data << endl <<endl;
   
// menambah pointer
    node *r;
    r = new node;
    r ->data= 4;
    r ->berikut = NULL;
    cout << "Isi data node r adalah : "<< r->data << endl <<endl;

// langkah empat
    p ->berikut=r;
    r ->berikut=q;
    node *kepala = p;
    cout << "Mencetak node pertama dari pointer kepala : ";
    cout << kepala->data << endl;
    cout << "Mencetak node kedua dari pointer kepala : ";
    cout << kepala->berikut->data << endl;
    cout << "Mencetak node ketiga dari pointer kepala : ";
    cout << kepala->berikut->berikut->data <<endl<<endl;

// langkah lima : pointer yang jalan-jalan   
    cout << "Menggunakan perulangan untuk mencetak setiap data pada rantai\n";
    node *jalan = kepala;
    int i = 1;
    while (jalan != NULL) {
    cout << "Data ke-" << i << " > " << jalan->data << endl;
    i++;
    jalan = jalan->berikut;
}
// langkah enam : bukti bahwa pointer kepala tidak kehilangan data

    cout << "Mencetak node pertama dari pointer kepala : ";
    cout << kepala->data << endl;
    cout << "Mencetak node kedua dari pointer kepala : ";
    cout << kepala->berikut->data << endl;
    cout << "Mencetak node ketiga dari pointer kepala : ";
    cout << kepala->berikut->berikut->data <<endl;

    return 0;
}




GAJI KARYAWAN PASCAL



Program Gaji_Pegawai;
{Dibaca data pegawai dari suatu table lalu diolah datanya seperti soal,
dibuat oleh Ibnu Kautsar 1400018234 tanggal 05 Juni 2015}

type karyawan = record
     nik:string[15];
     nama:string[25];
     jk:string[1];
     jamkerja:integer;
     gaji:longint;
end;

const nmak=200;
type Arraykaryawan = Array[1..nmak]of karyawan;

var kary:Arraykaryawan;

Procedure Baca_Pegawai(n:integer);
var
   i:integer;
begin

    for i:=1 to n do
    begin
         write('Masukan nik :');
         readln(kary[i].nik);
         write('Masukan nama :');
         readln(kary[i].nama);
         write('Masukan jenkel :');
         readln(kary[i].jk);
         write('Masukan jamkerja :');
         readln(kary[i].jamkerja);
    end;

end;

Procedure HitungGaji(n:integer);
var
   i:integer;
   const gapok=800000;
   const lembur=25000;
begin

    for i:=1 to n do
    begin
         if kary[i].jamkerja > 48 then
         begin
             kary[i].gaji:=gapok+((kary[i].jamkerja-48)*lembur);
         end
         else
         begin
             kary[i].gaji:=gapok;
         end;

    end;

end;

Procedure tampil_pegawai(n:integer);
var
   i:integer;
begin

    writeln('  NIK    Nama    Jenkel    Jam Kerja    Gaji  ');
    for i:=1 to n do
    begin
        write(' ',kary[i].nik,'      ');
        write(kary[i].nama,'    ');
        write(kary[i].jk,'    ');
        write(kary[i].jamkerja,'        ');
        writeln(kary[i].gaji,'    ');
    end;

end;

Function min_jm_kerja(n:integer):integer;
var
   i:integer;
   banding,indek:integer;
begin
    banding:=kary[1].jamkerja;
    indek:=1;
    for i:=2 to n do
    begin
         if kary[i].jamkerja < banding then
         begin
             banding:=kary[i].jamkerja;
             indek:=i;
         end;
    end;
    min_jm_kerja := indek;
end;

Function max_jm_kerja(n:integer):integer;
var
   i:integer;
   banding,indek:integer;
begin
    banding:=kary[1].jamkerja;
    indek:=1;
    for i:=2 to n do
    begin
         if kary[i].jamkerja > banding then
         begin
             banding:=kary[i].jamkerja;
             indek:=i;
         end;
    end;
    max_jm_kerja := indek;
end;

Function rata2jamkerja(n:integer):real;
var
  i : integer;
  tjam : integer;
begin
    tjam:=0;
    for i:=1 to n do
    begin
         tjam:=tjam+kary[i].jamkerja;
    end;
    rata2jamkerja := tjam/n;
end;

Function banyaklembur(n:integer):integer;
var
  i : integer;
  nkarylembur : integer;
begin
    nkarylembur:=0;
    for i:=1 to n do
    begin
         if kary[i].jamkerja > 48 then
         begin
              nkarylembur:=nkarylembur+1;
         end;
    end;
    banyaklembur := nkarylembur;
end;

Function jamkerja48(n:integer):integer;
var
  i : integer;
  nkary48 : integer;
begin
    nkary48:=0;
    for i:=1 to n do
    begin
         if kary[i].jamkerja = 48 then
         begin
              nkary48:=nkary48+1;
         end;
    end;
    jamkerja48 := nkary48;
end;


var x:integer;
    min,maks : integer;
    rata2 : real;
    nkarylembur,nkary48 : integer;

begin
     write('Masukan banyak data karyawan :');
     readln(x);
     Baca_Pegawai(x);
     hitunggaji(x);
     tampil_pegawai(x);
     min := min_jm_kerja(x);
     maks := max_jm_kerja(x);
     rata2 := rata2jamkerja(x);
     nkarylembur := banyaklembur(x);
     nkary48 := jamkerja48(x);

     writeln('Jam kerja paling sedikit adalah ',kary[min].jamkerja);
     writeln('Dengan NIK : ',kary[min].nik);
     writeln('Nama : ',kary[min].nama);
     writeln('Dan Gaji : ',kary[min].gaji);

     writeln('');
     writeln('Jam kerja paling banyak adalah ',kary[maks].jamkerja);
     writeln('Dengan NIK : ',kary[maks].nik);
     writeln('Nama : ',kary[maks].nama);
     writeln('Dan Gaji : ',kary[maks].gaji);

     writeln('');
     writeln('Rata rata jamkerja semua karyawan : ',rata2);

     writeln('');
     writeln('Banyak karyawan yang lembur : ',nkarylembur);

     writeln('');
     writeln('Banyak karyawan yang jamkerjanya 48 jam : ',nkary48);
end.


PROGRAM FIBONANCI

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

int main(int argc, char** argv) {
    int a, b, c, d, e;
   
    cout<<"Deret Fibonacci\n";
    cout<<"Masukkan bilangan : ";cin>>a;
     c=1;d=1;
     cout<<c<<endl<<d<<endl;
     for(int b=3; b<=a; b++)
    {
    e = c + d;
    c = d;
    d = e;

     cout<<e<<endl;
     }
    return 0;
}



PROGRAM GAJI KARYAWAN

#include <iostream>
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

struct Karyawan{
    int jamkerja, gaji;
    string nama, JK, NIK;
}krywn[500];

void baca_pegawai(int N, Karyawan krywn[]){
    int i,perjam, gapok, galem;
    for(i=0; i<N; i++){
        cout<<"Masukkan nama karyawan : ";
        cin>>krywn[i].nama;
        cout<<"Masukkan JK : ";
        cin>>krywn[i].JK;
        cout<<"Masukkan NIK : ";
        cin>>krywn[i].NIK;
        cout<<"Masukkan lama jam kerja : ";
        cin>>krywn[i].jamkerja;
        gapok = 960000;
        galem = krywn[i].jamkerja%48*25000;
        perjam=20000;
        if(krywn[i].jamkerja>48)
            krywn[i].gaji = gapok+((krywn[i].jamkerja-48)*25000);
        else
            krywn[i].gaji = krywn[i].jamkerja*perjam;
        cout<<endl;
       
    }
}

void tampil_pegawai(int N){
    int i;
    cout<<"Nama\tJenis Kelamin\tNIK\tJam Kerja\tGaji"<<endl;
    for(i=0; i<N; i++){
        cout<<krywn[i].nama<<"\t";
        cout<<krywn[i].JK<<"\t\t";
        cout<<krywn[i].NIK<<"\t";
        cout<<krywn[i].jamkerja<<"\t\t";
        cout<<krywn[i].gaji<<"\t";
        cout<<endl;   
    }
}

float min_jamkerja(int N, Karyawan krywn[]){
    int i, min;
    min=krywn[0].jamkerja;
    for(i=1; i<N; i++){
        if(krywn[i].jamkerja<min)
            min=krywn[i].jamkerja;
    }
    return (min);
}

float maks_jamkerja(int N, Karyawan krywn[]){
    int i, maks;
    maks=krywn[1].jamkerja;
    for(i=0; i<N; i++){
        if(krywn[i].jamkerja>maks)
            maks=krywn[i].jamkerja;
    }
    return (maks);
}

float rata_rata(int N, Karyawan krywn[]){
    int i;
    float jum;
    jum = 0;
    for(i=0; i<N; i++){
        jum = jum + krywn[i].jamkerja;
       
    }
    return(jum/N);
}

float banyak_karyawan_lembur(int N, Karyawan krywn[]){
    int i, banyak, jamkerja;
    banyak=0;
    for(i=0; i<N; i++){
        if(krywn[i].jamkerja>48)
            banyak=banyak+1;
    }
    return (banyak);
}

float banyak_karyawan_48jam(int N, Karyawan krywn[]){
    int i, total, jamkerja;
    total=0;
    for(i=0; i<N; i++){
        if(krywn[i].jamkerja==48)
            total=total+1;
    }
    return (total);
}

int main(int argc, char *argv[]) {
    int N,min,maks;
    float rerata,jum,banyak,total;
    cout<<"Masukkan banyak pegawai : ";
    cin>>N;
    cout<<endl;
    baca_pegawai(N,krywn);
    tampil_pegawai(N);
   
    min=min_jamkerja(N,krywn);
    cout<<endl;
    cout<<"_______________________________________________________________"<<endl;
    cout<<"Minimal jam kerja : "<<min;
   
    maks=maks_jamkerja(N,krywn);
    cout<<endl;
    cout<<"Maksimal jam kerja : "<<maks;
    cout<<endl;
   
    rerata=rata_rata(N,krywn);
    cout<<"Rata - rata Jam Kerja : "<<rerata;
    cout<<endl;
   
    banyak=banyak_karyawan_lembur(N,krywn);
    cout<<"Banyaknya karyawan yang lembur : "<<banyak;
    cout<<endl;
   
    total=banyak_karyawan_48jam(N,krywn);
    cout<<"Banyaknya karyawan jam Kerjanya 48 Jam : "<<total;
    return 0;
 }



PROGRAM FIBONANCI PASKAL

program fibonanci;
var a,b,c,d,e:integer;
begin
        writeln('Masukkan Bilangan : ');
        readln(a);
        c:=1;
        d:=1;
        for b:=1 to a do
                begin
                if(b=1) or(b=2) then
                write(c,' ')
                else
                begin
                        e:=c+d;
                        c:=d;
                        d:=e;
                        write(e,' ');
                end;
        end;
        readln;
end.