Jumat, 02 Januari 2015

C++ Contoh Looping Array Switch Case

Example programs
If Then Else use
Use Switch Case
Looping use Array

#include<iostream.h>
#include<conio.h>

/*
Menu Aplikasi
1. Penggunaan If Then Else
2. Penggunaan Switch Case
3. Penggunaan Looping Array
Dikerjakan oleh Yoga/12131295
*/

void main() {
 clrscr();
   unsigned int pilihan, pil;
   char satu_jwb;
   bool ulang;
   ulang = true;
int data[5];
int i;
   do
   {
    clrscr();
    cout << "-------------- \n";
    cout << "Menu Pilihan : \n";
    cout << "-------------- \n";
    cout << "1: Penggunaan If Then Else \n";
    cout << "2: Penggunaan Switch Case \n";
    cout << "3: Penggunaan Looping Array \n";
    cout << "4: Exit \n";
    cout << "Masukkan pilihan [1/2/3/4] : ";
    cin >> pilihan;
    cout << "\n \n";

  switch (pilihan)
      {
   case 1:
      cout << "Apakah Anda ingin dapat nilai A [y/t]? ";
      cin >> satu_jwb;
      if (satu_jwb =='y')
      {
      cout << "semoga nilai Anda A";
      }
      else
      {
      cout << "walau tidak ingin dapat A, tetap kami doakan semoga dapat A";
      }
      getch();
      break;

   case 2:

cout<<"=============================================================="<<endl;
      cout<<"1.SENIN  2.SELASA  3.RABU  4.KAMIS  5.JUMAT  6.SABTU  7.MINGGU "<<endl;
      cout<<"=============================================================="<<endl;
      cout<<endl;
      cout<<"masukkan sebuah huruf (1..7) : ";
      cin>>pil;
      switch (pil)
      {
      case 1 : cout<<"HARI SENIN"<<endl;
         break;
         case 2 : cout<<"HARI SELASA"<<endl;
         break;
         case 3 : cout<<"HARI RABU"<<endl;
         break;
         case 4 : cout<<"HARI KAMIS"<<endl;
         break;
         case 5 : cout<<"HARI JUMAT"<<endl;
         break;
         case 6 : cout<<"HARI SABTU"<<endl;
         break;
         case 7 : cout<<"HARI MINGGU"<<endl;
         break;
         default : cout<<"tidak terdapat nama hari"<<endl;
      }

      getch();
      break;

   case 3:
cout << "Masukkan data" << endl;
for (i=0; i < 5;i++)
{
cout << "Data ke-" << i << ": ";
cin >> data[i];
}
cout << "Berikut Hasil Inputan" << endl;
for (i=0;i < 5; i++)
{
cout << "Data ke-" << i << "= " << data[i] << endl;
}
getch();
      break;

   case 4:
      cout << "Terima Kasih \n";

      ulang = false;
            break;

         default:
         cout << "Pilihan yang Anda masukkan Salah. Pilihan yang diijinkan hanya: 1 / 2 /3 /4. \n";
         cout << "\n<Tekan ENTER untuk kembali ke Menu Pilihan>";
         getch();
         break;


  }
   }
  while( ulang);

  getch();
  }

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


Jumat, 16 Mei 2014

Pemberian kewenangan akses database level DML

Misalkan ada seorang pegawai database engineer baru, dan kemudian akan diberikan hak akses untuk melakukan select, update data di database maka harus ada hal-hal yang perlu kita persiapkan dahulu. Berikut adalah langkah-langkah untuk memberikan akses DML tanpa akses penghapusan data:

Buat user baru
Mysql> Create user ‘tikno’@’%’ identified by ‘tiknopassword’;
Berikan grant privileges utk DML yang tanpa boleh menghapus data

Mysql> grant select, insert, update on ‘tikno’@’%’ to *.*;

Lakukan flush privileges
Mysql> flush privileges
.

Perbedaan Join: Left, Right, Inner, Straight, Natural, Cross Join

perbedaan dalam penggunaan JOIN berikut ini :

  1. Left Outer Join 
  2. Right Outer Join 
  3. Inner Join 
  4. Straight Join 
  5. Natural Join 
  6. Cross Join


Left Outer Join
Left Join digunakan untuk menampilkan semua record pada table di sebelah kiri.
SELECT `odID`,`ProductName`, `Quantity`
FROM `order_details`
LEFT JOIN `products`
ON `order_details`.`ProductID` = `products`.`ProductID`;
Right Outer Join
Kebalikan dari left join ,right join digunakan untuk menampilkan semua record pada table di sebelah kanan.
SELECT `odID`,`ProductName`, `Quantity`
FROM `order_details`
RIGHT JOIN `products`
ON `order_details`.`ProductID` = `products`.`ProductID`;
Inner Join
Operasi Join tipe ini akan hanya menampilkan tabel sisi kiri yang datanya sama dengan data di pasangan joinnya yg disisi kanan.
Contoh query:
SELECT `odID`,`ProductName`, `Quantity`
FROM `order_details` INNER JOIN `products`
ON `order_details`.`ProductID` = `products`.`ProductID`
Natural JOIN
Jika menggunakan Natural Join, kita tidak perlu menyebutkan kolom yang akan di-join-kan dengan syarat, nama kolom antara kolom pada tabel1 dan tabel2 harus sama. Jika pada tabel1 dan tabel2 ada lebih dari satu kolom yang namanya sama, maka semua kolom yang sama tersebut akan dibandingkan.
Contoh query
SELECT `odID`,`ProductName`, `Quantity`
FROM `order_details` NATURAL JOIN `products`
CROSS JOIN
Perbedaan dengan query biasa adalah di bagian FROM: tanda koma diganti dengan kata ‘cross join’ dan tidak perlu ada koma setelah nama table disebutkan di belakang katan ‘from’.
Contoh query:

SELECT products.ProductID, products.ProductName, suppliers.CompanyName
FROM `products`
CROSS JOIN `suppliers`
WHERE products.`SupplierID`=`suppliers`.`SupplierID`;

.