Sabtu, 14 Juni 2014

Contoh Query mySQL utk Menghadapi Responsi Praktikum Basis Data

Berikut adalah beberapa Contoh Query mySQL utk Menghadapi Responsi Praktikum Basis Data:

Mengganti field Description di table categories menjadi VARCHAR(255);


Tambahkan satu data pada table shipper: companyname= express DHL, Phone: (021) 777751
INSERT INTO `shippers` (`CompanyName`,`Phone`)
    -> VALUES ('express DHL','(021) 777751');
tampilkan nama customers yang nama companyname depannya huruf A

SELECT * FROM `customers` WHERE `CompanyName` LIKE 'a%';
Tampilkan nama produk dan nama supplier
SELECT
p.`ProductName`,
s.`ContactName`
FROM
products AS p JOIN suppliers AS s
ON p.`SupplierID`=s.`SupplierID`;
5. Berapa jumlah customers yang bukan dari negara Berlin dan Madrid
SELECT COUNT(*) FROM `customers` WHERE `Country` NOT IN ('Berlin', 'Madrid');
Tampilkan 6 nama lengkap dan usia data pekerja diurutkan dari usia tertua
SELECT CONCAT(TitleOfCourtesy, FirstName, ' ', LastName) fullname, YEAR(NOW())-YEAR(`BirthDate`) AS usia
FROM employees ORDER BY usia DESC LIMIT 0,6;
Lengkapi data kelamin di table employess dengan ketentuan sebagai berikut:
Jika TitleOfCourtesy nya 'ms' atau 'mrs' maka kolom sex diisi F(female) dan sebaliknya; sql-nya hanya satu baris/perintah query
UPDATE `employees` SET sex=IF(`TitleOfCourtesy` IN('Ms.', 'Mrs'), 'F','M');
Tampilkan nama lengkap dan tanggal lahir employees
select
concat(TitleOfCourtesy, FirstName, ' ', LastName) fullname, BirthDate
from employees
Tampilkan nama lengkap dan tempat/tanggal lahir employees yang ada di London
select
concat(TitleOfCourtesy, FirstName, ' ', LastName) as Fullname, concat_ws(',',City, BirthDate) as TTL
from employees
where city='London';
Tampilkan nama depan dan tahun lahir (gunakan substr)
select FirstName, substr(BirthDate,1,4) tahun_lahir
from employees;
Tampilkan nama produk dengan karakter terpanjang
select  ProductName, length(ProductName) as panjang
from products
order by panjang desc
limit 1;
Menampilkan nama employee yang usianya paling tua diambil sebanyak 5 data 
select concat(TitleOfCourtesy, FirstName, ' ', LastName) as fullname, (year(now())- year(BirthDate)) usia, e.BirthDate
from employees as e
order by 1 desc limit 5;

Jumat, 13 Juni 2014

Fantasy World Cup Mc Donald 2014

Menyemarakkan World Cup 2014 dengan main game fantasinya di: http://en.mcdonalds.fantasy.fifa.com/
Sapa tau bisa dapet hadiah dari temen-temen kantor, spt pas Piala Eropa beberapa tahun lalu.


Rabu, 11 Juni 2014

Program Gaji C++ dg array dan user defined function

Sebuah perusahaan PT. AMHARLE akan membuat aplikasi penggajian karyawan dengan ketentuan sebagai berikut:

Gaji Pokok(Gapok)
Gaji pokok dihitung berdasarkan lama kerja (tahun) sebagai berikut:
<= 1Tahun = 850000
2 s/d 3Tahun = 1000000
4 s/d 5Tahun = 1250000
> 5tahun     = 2500000

Tunjangan Transport
tunjangan transport dihitung per hari sebesar 25000

Tunjangan Keluarga
Tunjangan keluarga diberikan untuk yang menikah sebesar 150000 jika belum miliki anak.
Jika sudah memiliki anak sebesar 150000 ditambah 75000 per anak (maksimal jumlah anak 3)

Bonus Ketertiban
Bonus ketertiban dihitung dari hari masuk tepat waktu sebesar 20000

Bonus Level
bonus level ditentukan sebagai berikut:
kode                Nama              besar bonus
1                      Junior              125000
2                      Senior              200000
3                      Expert              350000

Total gaji adalah hasil penjumlahan dari Gapok, Tunjangan Transport, tunjangan Keluarga, bonus ketertiban dan bonus level.

Program:

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<cstring>

/*
jumkar untuk menyimpan jumlah karyawan
atrinputpeg adalah jumlah atribut input data karyawan selain nama
 (Lama kerja, Jumlah masuk kerja, Jumlah masuk tepat waktu,
 level karyawan (1/2/3), Status menikah (Y/T) dan Jumlah Anak)
atroutputpeg adalah jumlah atribut output data karyawan selain nama
 (gaji pokok, tunjangan transport, tunjangan keluarga, bonus ketertiban,
 bonus level dan total gaji)
*/

#define jumkar 100
#define atrinputpeg 6
#define atroutputpeg 6

int tgl, bln, thn;
int lagi, i;
char y, statusmenikah;
string namakaryawan[jumkar];
int indatapeg[jumkar][atrinputpeg];
long outdatapeg[jumkar][atroutputpeg];


/*
function gapok untuk menghitung gaji pokok dimana
ketentuan besarnya gaji pokok berdasarkan lama kerja (tahun)
*/
long gapok (int lamakerja)
{
long gajipokok;
   if (lamakerja<=1)
{
    gajipokok = 850000;
   }
   else if(lamakerja<=3)
   {
    gajipokok = 1000000;
   }
   else if(lamakerja<=5)
   {
    gajipokok = 1250000;
   }
   else
   {
    gajipokok = 2500000;
   }
   return (gajipokok);
}

/*
function ttrans untuk menghitung tunjangan transport dimana perhari 25000
*/
long ttrans (int harikerja)
{
return (harikerja * 25000);
}

/*
function tkel untuk menghitung tunjangan keluarga diberikan untuk
yang menikah sebesar 150000 jika belum miliki anak.
Jika sudah memiliki anak sebesar 150000 ditambah 75000 per anak
(maksimal jumlah anak 3)
*/
long tkel (int status, int anak)
{
long tunjangankel;
   if (status == 1)
   {
    if (anak <= 3)
      {
      tunjangankel = 150000 + anak*75000;
      }
      else
      {
      tunjangankel = 150000 + 3*75000;
      }
   }
   else
   {
    tunjangankel = 0;
   }
   return (tunjangankel);
}

/*
function bket untuk menghitung bonus ketertiban,
yang dihitung dari hari masuk tepat waktu sebesar 20000
*/
long bket (int haritepat)
{
return (haritepat * 20000);
}

// function blevel untuk menghitung bonus level
long blevel (int kodelevel)
{
switch (kodelevel)
   {
    case 1: return (125000); break;
      case 2: return (200000); break;
      default: return (350000); break;
   }
}

/*
function utama tanpa nilai balik untuk mendefinisikan menu utama
dimana terdapat pilihan 1 s.d 4
*/
void utama ()
{
   int pilihan;
   clrscr();
   cout <<"Aplikasi Penggajian Karyawan PT. AMHARLE \n";
   cout <<"Menu Utama: \n";
   cout <<"1. Atur Tanggal Penggajian \n";
cout <<"2. Entri Data \n";
cout <<"3. List Data \n";
cout <<"4. Exit \n";
cout <<"Pilihan Anda (1-4) ? ";
   cin>>pilihan;
   switch (pilihan)
   {
    //pilihan pertama untuk mengatur tanggal
      case 1:
      {
      clrscr();
         cout<< " Masukkan Tanggal, Bulan dan Tahun Penggajian \n";
    cout<< " Tanggal : "; cin>>tgl;
    cout<< " Bulan   : "; cin>>bln;
cout<< " Tahun : "; cin>>thn;
         cout<< "\n Kembali ke menu utama (tekan sembarang tombol)\n";
         getch();
         utama ();
         break;
      }
      //pilihan kedua untuk input data karyawan
      case 2:
      {
      clrscr();
         lagi = 0;
         i = 1;
         while (lagi<1)
    {
          cout<<"\nNama : "; cin>>namakaryawan[i];
      cout<<"\Lama kerja(tahun): "; cin>>indatapeg[i][1];
      cout<<"\Jumlah masuk kerja: "; cin>>indatapeg[i][2];
      cout<<"\Jumlah masuk tepat waktu: "; cin>>indatapeg[i][3];
      cout<<"\Level Karyawan (1/2/3): "; cin>>indatapeg[i][4];
     cout<<"\Status Menikah (Y/T): "; cin>>statusmenikah;
      if ((statusmenikah == 'Y') || (statusmenikah == 'y'))
     {
      indatapeg[i][5] = 1;
        cout<<"\Jumlah anak : "; cin>>indatapeg[i][6];
      }
     else if ((statusmenikah == 'T') || (statusmenikah == 't'))
      {
      indatapeg[i][5] = 0;
        indatapeg[i][6] = 0;
      }

      //menghitung besarnya gaji pokok berdasarkan lama kerja (tahun)
      outdatapeg[i][1]= gapok(indatapeg[i][1]);

      //menghitung besarnya tunjangan transport dihitung perhari sebesar 25000
      outdatapeg[i][2] = ttrans(indatapeg[i][2]);

//menghitung besarnya tunjangan keluarga
      outdatapeg[i][3]= tkel (indatapeg[i][5],indatapeg[i][6]);

      //menghitung besarnya bonus ketertiban dihitung dari hari masuk tepat waktu
outdatapeg[i][4] = bket(indatapeg[i][3]);

      //menghitung besarnya bonus level
      outdatapeg[i][5] = blevel (indatapeg[i][4]);

      //menghitung total gaji (gaji bersih) setiap karyawan
      outdatapeg[i][6] = outdatapeg[i][1]+outdatapeg[i][2]+outdatapeg[i][3]+outdatapeg[i][4]+outdatapeg[i][5];

      cout<<"\nULANGI LAGI [Y/T] ? ";
      y = getche();
    {
    if (y=='Y'||y=='y')
          lagi =- 1;
          i++;
      }
      lagi++;
      cout<<"\n";
         }
      cout<< " Kembali ke menu utama (tekan sembarang tombol)\n";
         getch();
         utama ();
         break;
      }

      //pilihan ketiga untuk menampilkan data karyawan yang telah diinputkan
      case 3:
      {
      clrscr();
    cout <<"\nList gaji karyawan PT. AMHARLE Yogyakarta\n";
  cout <<"Tanggal " << tgl << " " << bln << " " << thn << "\n";
  cout <<"+---+---------+-------+-------+-------+--------+-------+-------+-------+-------+\n";
  gotoxy(1,5); cout <<"|No.";
  gotoxy(5,5); cout<<"| Nama";
  gotoxy(15,5);cout<<"| LK(Th)";
  gotoxy(23,5);cout<<"| Level";
  gotoxy(31,5);cout<<"| Gapok";
gotoxy(39,5);cout<<"| T.Trans";
  gotoxy(48,5);cout<<"| T.Kel";
  gotoxy(56,5);cout<<"| B.Ket";
  gotoxy(64,5);cout<<"|B.Level";
  gotoxy(72,5);cout<<"| Total |";
gotoxy(1,6); cout <<"+---+---------+-------+-------+-------+--------+-------+-------+-------+-------+\n";

    //menghitung total gaji semua karwayan (gajikeluar)
  for (int j=1;j<i;j++)
  {
    gotoxy(1,6+j); cout <<"|"<<j;
  gotoxy(5,6+j); cout<<"|"<<namakaryawan[j];
    gotoxy(15,6+j);cout<<"|"<<indatapeg[j][1];
  if (indatapeg[j][4]==1)
      {
      gotoxy(23,6+j);cout<<"|Junior";
      }
      else if (indatapeg[j][4]==2)
     {
      gotoxy(23,6+j);cout<<"|Senior";
     }
      else if (indatapeg[j][4]==3)
     {
        gotoxy(23,6+j);cout<<"|Expert";
     }
    gotoxy(31,6+j);cout<<"|"<<outdatapeg[j][1];
     gotoxy(39,6+j);cout<<"|"<<outdatapeg[j][2];
  gotoxy(48,6+j);cout<<"|"<<outdatapeg[j][3];
  gotoxy(56,6+j);cout<<"|"<<outdatapeg[j][4];
    gotoxy(64,6+j);cout<<"|"<<outdatapeg[j][5];
  gotoxy(72,6+j);cout<<"|"<<outdatapeg[j][6];
      gotoxy(80,6+j);cout<<"|";
  }
gotoxy(1,6+i); cout <<"+---+---------+-------+-------+-------+--------+-------+-------+-------+-------+\n";
         cout<< "\n Kembali ke menu utama (tekan sembarang tombol)\n";
         getch();
         utama ();
         break;
      }

      //pilihan keempat untuk keluar dari aplikasi
      case 4:
      {
      cout<<"\nSelesai \n";
         cout<<"Terimakasih";
         getch();
         break;
      }
   }
}

void main() {
clrscr();
   utama();
}

Minggu, 08 Juni 2014

Program Bash Script Linux: Hitung Gaji

Soal

program shell
1. masukkan gaji
2. masukkan jumlah anak
3. tampilkan gaji
4. keluar

ad 1 -> gaji pokok :
tunjangan :
ad 2 -> jumlah anak :
ad 3 -> gaji total :
jml potongan :
gaji bersih :

jumlah potongan adalah
* jika mempunyai anak maka 2.5% dari gaji pokok
* jika belum punya anak maka 5% dari gaji pokok

Jawaban

#!/bin/sh
clear
while :
do
  echo "[1] Masukkan Gaji"
  echo "[2] Masukkan Jumlah Anak"
  echo "[3] Tampilkan Gaji"
  echo "[4] Keluar"
  echo -n "Ketik angka pilihan Anda [1-4]: "
  read pil
  case $pil in
    1) echo -n "Gaji Pokok : "
read gpokok
echo -n "Tunjangan  : "
read tunjangan
echo " " ; read ;;
    2) echo -n "Jumlah Anak       : "
read janak
echo " " ; read ;;
    3)  if [ "$janak" -eq 0 ]
then
panak=$[gpokok*5/100]
else
panak=$[gpokok*25/1000]
fi
gbersih=$[gpokok+tunjangan-panak]
echo "Gaji Total:"
echo "* Jumlah Potongan = $panak"
echo "* Gaji Bersih = $gbersih"
echo " " ; read ;;
    4) exit 0 ;;
    *) echo "Sing teliti to bro !!! Ayo baleni maneh" ; read ;;
  esac
done