Rabu, 14 Desember 2016

Perkembangan Basis Data

Standard
Pertama Database dibuat dalam bentuk RDBMS (Relational Database management system) yaitu tabel-tabel antar database yang memiliki relasi satu dengan yang lain. Seiring berkembang nya jaman , database berkembang menjadi NO SQL Database yaitu database yang tidak memiliki relasi antar tabel nya, biasanya dalam bentuk plain text, json, xml dsb.

Terdapat beberapa istilah dalam perkembangan basis data.



a.       Data Warehouse : Proses pengumpulan dan analisa dari historical transaksi data, bisa dari database internal maupun sumber database yang lain.
Contohnya : Proses data warehousing di supermarket

b.      Data Mart : Bentuk sederhana dari sebuah data warehouse yang difokuskan pada single subject atau functional seperti penjualan, pembelian, keuangan, pemasaran.Contohnya : data penjualan, pembelian, keuangan, pemasaran di supermarket

c.       Data Mining : sebuah praktis otomatisasi dari sebuah data yang sangat besar untuk memperoleh pola dan tren yang melampaui analisa-analisa sederhana.

Contohnya : Menebak target pasar, Melihat pola beli dari waktu ke waktu, melihat hubungan antara satu produk dengan produk lainnya, melihat profil pembeli sehingga dapat diketahui kelompok pembeli tertentu cenderung kepada suatu produk apa saja.

Keuntungan dari Client – Server

Standard
-          Jika sebuah mesin macet, bisnis tetap berjalan
-          Sistem memberikan kekuatan dalam melaksanakan suatu tugas tanpa memonopoli sumber-sumber daya. Pemakai akhir diberi hak untuk bekerja secara local
-          Menawarkan keluwesan untuk melakukan pembelian pada hal-hal lain atau untuk meningkatkan keuntungan
-          Bebas memilih perangkat keras, perangkat lunak, dan layanan dari berbagai vendor
-          Mudah untuk memperbaharui system
-          Dapat mencampur dan mencocokkan platform komputer yang gsesuai dengan kebutuhan masing-masing departemen dan pemakai

Keuntungan dan Kerugian Basis Data Terdistribusi

Standard
Keuntungan-keuntungan dari database terdistribusi :
1.       Pengawasan distribusi dan pengambilan data
Jika sejumlah site yang berbeda dihubungkan satu sama lain, lalu seorang pemakai yang berada pada satu site dapat mengakses data yang tersedia pada site lain. Sebagai contoh : sistem distribusi pada sebuah bank memungkinkan seorang pemakai pada salah satu cabang dapat mengakses data cabang lain.
2.       Reliability dan availability
Sistem distribusi dapat terus menerus berfungsi dalam menghadapi kegagalan dari site individu atau mata rantai komunikasi antar site. Misal : jika site-site gagal dalam sebuah sistem distribusi, site-site lainnya dapat melanjutkan operasi jika data telah direplikasi pada beberapa site
3.       Kecepatan pemrosesan query
Jika sebuah query melibatkan data pada beberapa site, memungkinkan membagi query ke dalam sub query yang dapat dieksekusi dalam bentuk parallel oleh beberapa site. Perhitungan secara parallel mempercepat pemrosesan dari seorang pemakai query
4.       Otonomi local
Pendistribusian sistem mengizinkan sekelompok individu dalam sebuah perusahaan untuk melatih pengawasan lokal melalui data mereka sendiri. Dengan kemampuan ini dapat mengurangi ketergantungan pada pusat pemrosesan.
5.       Efisien dan fleksibel
Data dalam sistem distribusi dapat disimpan dekat dengan titik di mana data tersebut dipergunakan. Data dapat secara dinamik bergerak atau disalin, atau salinannya dapat dihapus.

Kerugian-kerugian dari database terdistribusi :
1.       Harga software yamg mahal
Hal ini disebabkan sangat sulit untuk membuat sistem database distribusi
2.       Kemungkinan kesalahan lebih besar
Site-site yang termasuk dalam sistem distribusi beroperasi secara parallel sehingga menjadi lebih sulit untuk menjamin kebenaran dari algoritma. Adanya kesalahan mungkin tak dapat diketahui
3.       Biaya pemrosesan tinggi
Perubahan pesan-pesan dan penambahan perhitungan dibutuhkan untuk mencapai koordinasi antar site.
Dalam memilih sebuah disain untuk sistem database, perancang harus mengimbangi keuntungan dan kerugian dari database terdistribusi.

Selasa, 10 November 2015

Membuat Input dan Output Array 2 Dimensi C++

Standard
Berikut Source Code nya, Copy dan jalankan aplikasi dev cpp atau yang lain :

#include <iostream>
using namespace std;


struct hitung {
    int awal [3];
    int akhir [3];
}calc;
 int n,array_length, result=0;

int main ()
{
 
array_length = 3;
for ( n=0; n<array_length; n++ ){
     cout<<n+1<<". input awal = ";
     cin>>calc.awal[n];
     cout<<"input akhir = ";
     cin>>calc.akhir[n];
  }
cout<<"\nResult : \n";
 for ( n=0; n<array_length; n++ )  {
    result = calc.awal[n] * calc.akhir[n];
    cout <<  calc.awal[n] <<" * "<<calc.akhir[n] <<" = "<< result<<"\n";
   
  }

return 0;

}

Berikut Screenshot atau hasil source code yang di jalankan ;


Terima Kasih Semoga bisa membantu ...

Senin, 09 November 2015

Linked List Node Insert Kiri, Insert Kanan, Insert Tengah, Delete Kiri, Delete Kanan, Delete Tengah

Standard
#include <iostream>
#include <cstdlib>
#include <stdlib.h>
#include <conio.h> 
using namespace std;
struct node 
{
  int urut;
  node *next; 
}; 


node *awal_ptr = NULL;
  node *posisi;         //digunakan untuk membaca sepanjang list 
  int option = 0; 

void tambah_awal_list()
{
  node *baru;
  baru = new node;
  cout << "Masukkan Data     : ";
  cin >> baru->urut;
  baru->next = NULL;
  if(awal_ptr == NULL)
  {
    awal_ptr=baru;
    awal_ptr->next = NULL;
  }
  else
  {
    baru->next = awal_ptr;
    awal_ptr = baru;
  }
} 

void menambah_node_di_akhir()
  {
  node *temp, *temp2;   // Temporary pointers 
  // menciptakan node baru 
  temp = new node; 
  cout << "Masukkan urut     : ";
  cin >>   temp->urut;
  temp->next = NULL; 

// Set up link pada node
  if (awal_ptr == NULL)
  {
    awal_ptr = temp;
    posisi = awal_ptr;
  }
  else
  {
    temp2 = awal_ptr;
    // node tidak NULL – list tidak kosong
    while (temp2->next != NULL)
    {
      temp2 = temp2->next; 
      // Memindahkan pada next link dalam rantai
    }
  temp2->next = temp;
  }
} 

void display_list()
{
  node *temp;
  temp = awal_ptr;
  cout << endl;
cout << "DATA [";  
  if (temp == NULL)
    cout << "List kosong!" << endl;
  else
  {
    while (temp != NULL)
    {  // Menampilkan detail data
     
     cout << "" << temp->urut << ",";
     
     if (temp == posisi)
        cout << "     <<<< posisi node";
//     cout << endl;
     temp = temp->next; 
    }
    cout << "] ";  
    cout << "Akhir list!" << endl;
  }
  
} 

void hapus_awal_node()
{
  node *temp;
  temp = awal_ptr;
  awal_ptr = awal_ptr->next;
  delete temp;
} 

void hapus_akhir_node()
{
  node *temp1, *temp2;
  if (awal_ptr == NULL)
    cout << "List kosong!" << endl;
  else
  {
    temp1 = awal_ptr;
    if (temp1->next == NULL)
    {
      delete temp1;
      awal_ptr = NULL;
    }
    else 
    {
      while (temp1->next != NULL)
      {
        temp2 = temp1;
        temp1 = temp1->next;
      }
      delete temp1;
      temp2->next = NULL;
    }

   }
} 

void pindah_posisi_sebelumnya()
{
  if (posisi->next == NULL)
  cout << "Kamu berada pada akhir list." << endl;
  else
  posisi = posisi->next; 
} 

void pindah_posisi_berikutnya()
{
  if (posisi == awal_ptr)
    cout << "Kamu berada pada awal list" << endl;
  else
  {
    node *previous;     // deklarasi pointer
    previous = awal_ptr; 
    while (previous->next != posisi) 
    { 
      previous = previous->next;
    }
    posisi = previous;
  }
}

void tambah_tengah_list()
{
  node *baru, *bantu;
  int posisi_sisip;
  if(awal_ptr != NULL)
  {
  
   
    cout<<"Akan disisip setelah Data Ke ? : ";
    cin>>posisi_sisip;
    baru =new node;
   bantu=awal_ptr;
     
    for(int i=1;i<posisi_sisip-1;i++) {
      if(bantu->next != NULL)
        bantu=bantu->next;
      else
        break; 
    }
  cout << "Masukkan urut     : ";
  cin >> baru->urut;
  baru->next=bantu->next;
  bantu->next=baru;
  }
  else
  {
    cout<<"Belum ada data !! silahkan isi data dulu....";
    getch();
  } 
} 
void Hapus_tengah_list()
{
  int banyakdata,posisi_hapus,poshapus;
  node *hapus, *bantu;
  if(awal_ptr != NULL)
  {
    cout<<" Akan dihapus pada data ke : ";
    cin>>posisi_hapus;
    banyakdata=1;
    bantu=awal_ptr;
    while(bantu->next != NULL)
    {
      bantu=bantu->next;
      banyakdata++;
    }
    if((posisi_hapus<1)||(posisi_hapus>banyakdata))
    {
      cout<<"Belum ada data !! masukkan Data dula aja...\n";
    }
    else
    {
      bantu=awal_ptr;
      poshapus=1;
      while(poshapus<(posisi_hapus-1))
      {
        bantu=bantu->next;
        poshapus++;
      }
      hapus=bantu->next;
      bantu->next=hapus->next;
      delete hapus;
    }
 }
 else 
    cout<<"Data Masih kosong, tidak bisa hapus data dari tengah! ";
 getch();
}
 

int init(int nilai){
 node *baru;
  baru = new node;
  baru->urut=nilai;
  baru->next = NULL;
  if(awal_ptr == NULL)
  {
    awal_ptr=baru;
    awal_ptr->next = NULL;
  }
  else
  {
    baru->next = awal_ptr;
    awal_ptr = baru;
  }
}

int main()
{
 cout << "===============================" << endl;
  cout << "NAMA : SYAHRIAL FANDRIANAH" << endl;
  cout << "NIM : 2014141125" << endl;
  cout << "STRUKTUR DATA" << endl;
  cout << "===============================" << endl;
  awal_ptr = NULL;
  init(10);
  init(12);
  init(5);
  init(7);
  init(22);
  do
  {
//    clrscr();
 
    display_list();
    cout << endl;
    cout << "MENU PILIHAN : " << endl;
    cout << "0. Keluar program." << endl;
    cout << "1. Tambah awal list." << endl;
    cout << "2. Tambah akhir list." << endl;
    cout << "3. Tambah tengah list."<< endl;
    cout << "4. Hapus awal list." << endl;
    cout << "5. Hapus akhir list." << endl;
    cout << "6. Hapus tengah list." << endl;
    cout << "7. Pindah posisi pointer ke berikutnya." << endl;
    cout << "8. Pindah posisi pointer ke sebelumnya." << endl;
    cout << endl << " Pilihan >> ";
    cin >> option; 

switch (option)
  {
  case 1 : tambah_awal_list(); 
    break;
  case 2 : menambah_node_di_akhir();
    break;
  case 3 : tambah_tengah_list();
    break;
  case 4 : hapus_awal_node();
    break;
  case 5 : hapus_akhir_node();
    break;
  case 6 : Hapus_tengah_list();
    break;
  case 7 : pindah_posisi_sebelumnya();
    break;
  case 8 : pindah_posisi_berikutnya();
  }
 }  
while (option != 0); 
}
Berikut Screenshotnya :
1. Tambah  Tengah


 2. Hapus Tengah



 3.Tambah Akhir
 4. Tambah Awal
 5. Hapus Akhir
 6. Hapus Awal

Menghitung Biaya Kuliah Per sks menggunakan C++

Standard
Berikut Source Code nya, Copy dan jalankan aplikasi dev cpp atau yang lain :
#include <iostream>
#include <cstdlib>
#include <conio.h>
using namespace std;
struct hitung {
 int sks,type;
 double spp1,spp2;
}kuliah;
void init(),finish();
double total;
main()
{
 cout<<"Program Menghitung Biaya Kuliah \n";
 cout<<"=====================================>\n";
 cout<<"(1). D3 \n";
 cout<<"(2). S1 \n";
 init();

 cout<<"\n\n\n=====================================>";
 cout<<"\nThanks to all \n created by  \n";
 cout<<"NIM   : 2014141125\n";
 cout<<"NAMA  : Syahrial Fandrianah";
 cout<<"\n=====================================>\n";
 getch();
}
void finish(){
 char cek;
 
 cout<<"\nHitung Lagi (y/n) : ";
 cin>>cek;
 if(cek == 'y'){
  init();
 } else if(cek == 'n'){
  exit(0);
 } else {
  finish();
 }
}
 

void init(){
 cout<<"\nPilih Sesuai dengan Sarjana (1/2) :  ";
 cin>>kuliah.type;
    
 if(kuliah.type == 1){
  cout<<"\nMasukan Berapa SKS (ex:18) : ";
  cin>>kuliah.sks;
  cout<<"\n";
  kuliah.spp1 = 500000;
  kuliah.spp2 = 25000;
  total = kuliah.spp2 * kuliah.sks;
  cout<<"----------- Hasil Perhitungan D3 -----------";
 } else if(kuliah.type == 2){
  cout<<"\nMasukan Berapa SKS (ex:18) : ";
  cin>>kuliah.sks;
  cout<<"\n";
  kuliah.spp1 = 750000;
  kuliah.spp2 = 50000;
  total = kuliah.spp2 * kuliah.sks;
  cout<<"----------- Hasil Perhitungan S1 -----------";
 } else {
  init();
 }
 cout<<"\nSPP Tetap     : "<<kuliah.spp1;
 cout<<"\nSPP Var       : "<<kuliah.spp2<<"/sks ";
 cout<<"\n - Total Semua SKS = "<<kuliah.sks;
 cout<<"\n - Total Semua = "<<total;
 cout<<"\n------------------------------------------\n";
  finish();
}
Berikut Screenshot atau hasil source code yang di jalankan ;
 Terima Kasih Semoga bisa membantu ...

Membuat Array 2 Dimensi C++

Standard
Berikut Source Code nya, Copy dan jalankan aplikasi dev cpp atau yang lain :

#include <iostream>
using namespace std;

int awal [] = {5,7,8};
int akhir [] = {2,3,4};
int n,array_length, result=0;

int main () {
      array_length = sizeof(awal) / 4;
      for ( n=0 ; n           result = awal[n] * akhir[n];
           cout <<  awal[n] <<" * "<< akhir[n] << " = " << result<<"\n";
      }

     return 0;
}

Berikut Screenshot atau hasil source code yang di jalankan ;

Terima Kasih Semoga bisa membantu ...