Senin, 31 Oktober 2011

Program Pointer


Contoh program pointer

#include <iostream>  
using namespace std;

enum Type {
INT,
FLOAT,
STRING,
};

void Display(void *pVoid, Type eType) {
switch (eType) {
case INT:
cout << *(int*)pVoid << endl;
break;
case FLOAT:
cout << *(float*)pVoid << endl;
break;
case STRING:
cout << (char*)pVoid << endl;
break;
}
}

int main()
{
int a = 10;
float b = 987.654;
char *c =
"Art is a lie that makes us realize the truth.";
Display(&a, INT);
Display(&b, FLOAT);
Display(c, STRING);
return 0;
}

Source code program C menghitung nilai kombinasi Dan Permutasi

Berikut ini merupakan source code bahasa C untuk membuat program penghitung nilai dari kombinasi bilangan

# include <stdio.h>
long int faktorial (unsigned int n)
{
if(n==1||n==0)
return 1;
else
return n*faktorial (n-1);
}
int main()
{
int a,b;
long int hasil;
printf("\t Menghitung Rumus Kombinasi\n\n");
printf("Masukkan nilai a = ");

scanf("%d",&a);
printf("Masukkan nilai b = ");
scanf("%d",&b);
hasil = faktorial(a)/faktorial(b)*faktorial(a-b);
printf ("%d!=%d\n",a,faktorial(a));
printf ("%d!=%d\n",b,faktorial(b));
printf ("%d-%d!=%d\n",a,b,faktorial(a-b));
printf("%d C %d = %d\n\n",a,b,hasil);
return 0;
}





Source code program C menghitung nilai Permutasi
Berikut ini merupakan source code bahasa C untuk membuat program penghitung nilai dari permutasi bilangan
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{
int x,y,m,n,z=0,nilai=1;
system(“color d”);
puts(“\t\t=========================================================”);
puts(“\n\t\t =============== \2\4 PROGRAM PERMUTASI \4\2 ===============”);
puts(“\n\t\t=========================================================”);
printf(“\n\nmasukkan banyak angka yang akan di cari permutasinya : “, x);
scanf(“%d”,&x);
system(“color b”);
puts(“\n===========================”);
printf(“Hasil Permutasinya”);
puts(“\n===========================”);
for(n=0;n<x;n++)
{
n=nilai*x;
nilai=n;
}
int p[x];
for(y=0;y<x;y++)
p[y]=1;
for(y=0;y<nilai;y++)
{
for(m=0;m<x;m++)
printf(“%d  “,p[m]);
p[x-1]++;
printf(“\n”);
for(m=x-1;m>0;m–)
{
if(p[m]>x)
{
p[m]=1;
p[m-1]++;
}
}
}
puts(“\n===========================”);
getch();
}

Selasa, 11 Oktober 2011

Contoh Program Antrian


Source Code C++:
#include <iostream.h>
#include <conio.h>

int main()
{
    int cek=0, data[20], x, hapus;
    char pil;
    do {
           
           cout<<"1. Tambah Antrian"<<endl;
           cout<<"2. Hapus Antrian"<<endl;
           cout<<"3. Lihat Antrian"<<endl;
           cout<<"4. Keluar"<<endl;
         cout<<endl;
           cout<<"Silahkan masukkan pilihan anda = ";
            pil=getche();
         cout<<endl;
if(pil!='1' && pil !='2' && pil !='3' && pil!='4' )
          cout<<"Andasalah mengetikkan inputan";
            else
            {
               if(pil=='1')   //PUSH
               {
                   if(cek==20)
                       cout<<"Antrian Penuh";
                   else
                   {
                   cout<<"Masukkan nilai = ";
              cin>>x;
                       data[cek]=x;
                       cek++;
                   }
               }
               else
               {
                   if(pil=='2')     //POP
                   {
                       if(cek==0)
                           cout<<"Antrian kosong";
                       else
                       {
                           hapus=data[0];
                           for(int v=0;v<cek;v++)
                               data[v]=data[v+1];
                           data[cek-1]=NULL;
                           cek--;
                      cout<<"Data dengan nilai "<<hapus<<"terhapus";
                       }
                       getch();
                   }
                   else
                   {
                       if(pil=='3')   //CEK DATA
                       {
                           if(cek==0)     
                               cout<<"Antrian Kosong";

                           else
                           {
                               cout<<endl;
                               for(int z=0;z<cek;z++)
                               {
                                   cout<<" | ";
                                   cout<<" "<<data[z];
                                   cout<<" | ";
                               }

                           }
                           getch();
                           return 0;
                       }
                   }
               }
            }

    }while(pil!='4');
}

Selasa, 04 Oktober 2011

Bapepam minta perusahaan asuransi perluas pasar

Seperti yang telah dilakukan oleh adira asuransi kendaraan terbaik Indonesia yang telah melakukan perluasan pangsa pasat. Badan Pengawas Pasar Modal dan Lembaga Keuangan (Bapepam-LK) menilai, perusahaan asuransi belum menjangkau masyarakat menengah ke bawah. Padahal, Kepala Bapepam-LK Nurhaida bilang, perluasan pasar ini merupakan bagian rencana induk pasar modal dan industri keuangan non bank tahun 2010-2014.

Nurhaida mnilai, saat ini baru kalangan menengah ke atas yang tersentuh asuransi. "Regulator berharap industri asuransi menciptakan produk untuk pihak-pihak yang punya pendapatan menengah ke bawah," kata Nurhaida di hadapan pelaku industri asuransi di Jakarta, Jumat (16/9).

Nurhaida juga meminta industri asuransi memperluas jaringannya di luar Jawa. "Asuransi jangan terkonsentrasi di Jakarta," ujarnya. Daerah luar Jawa, menurut Nurhaida, juga punya potensi cukup bagus.

Direktur Eksekutif Asosiasi Asuransi Jiwa Indonesia (AAJI) Benny Waworuntu sependapat dengan Nurhaida. "Masyarakat bawah justru paling stabil. Mereka adalah captive market," ujarnya.

Begitu pula dengan potensi daerah luar Jawa. Berdasarkan pengalaman Benny sebelumnya sebagai Wakil Presiden Direktur dan Chief Agency Officer PT Asuransi Jiwa Manulife Indonesia, banyak polis besar terjual di sana.

Hanya saja, lanjut Benny, produk asuransi saat ini sebagian besar berupa unit link yang lebih mengarah ke investasi. "Masyarakat bawah belum berpikir ke arah sana," kata Benny.

Produk yang tepat untuk kelas ini menurutnya adalah asuransi jiwa whole life yang pembayarannya bisa dilakukan per tahun sehingga preminya bisa lebih murah.

Cara ini sudah dilakukan oleh perusahaan asuransi lokal. Di tengah banyaknya investor asing yang meminati industri asuransi di Indonesia, menurut Benny, perusahaan lokal bisa mengambil ceruk pasar yang belum digarap maksimal.

Upaya lain adalah lebih gencar sosialisasi. Sebab, dia mengatakan, masyarakat masih lebih familiar dengan produk perbankan ketimbang asuransi. "Untungnya kami terbantu bancassurance," kata Benny.

AAJI juga berencana menambah agen berlisensi, dari 220.000 saat ini menjadi 500.000 sampai akhir tahun.

Berdasarkan catatan AAJI, saat ini pemegang polis asuransi jiwa tercatat baru 7% dari seluruh penduduk Indonesia. "Kalau bisa 20% saja sudah bagus sekali," pungkas Benny.

Kamis, 07 Juli 2011

Mempercepat Koneksi Tekomflash

Kalo koneksi intetnet kamu pakai telkomflash, pasti ngerasa kesel banget kan kalo quotanya dah abis buat download pasti lolanya gak ketulungan, untuk download file 4MB aja harus nunggu 15menit bau selesai padahal itu juga dah pake IDM yang membuat koneksi buat browsingnya jadi lambat, nah disini ane coba kasih trik yang mungkin bisa berguna bagi agan agan sekalian trik ini ane kutip dari kaskus forum favorit ane, dah gak usah basa basi lagi langsung ikuti triknya gan

# siapin tool buat loncatin kodok nya (mdma dan dan reconnect dial ---> cari sendiri di google ya) >> trik yg masih ampuh sampe saat ini buat sedot bandwith si kampredd...!!(kampredd=telkomflash)

# pada mdma set gprs/edge only terlebih dahulu..

# dial si kampret dr reconnect dial..ini di gunakan untuk jaga2 disco ya gan...

# setelah konek cek ip client nya,,kalo ane seh demen sama kepala 182 pada paket ini

# selanjut nya buka broser agan,, lalu masuk link speedtest,,, misalnya http://speedtest.indosatm2.com/ atau link2 lain yg menyediakan speedtest bandwith kita....

# silahkan mulai speedtest dengan klik start pada link td

# untuk mendapatkan bandwith yg kenceng,,,koneksi agan sampe disini harus tetep gprs/edge only..

# begitu hasil angka PING keluar pada speedtest td,,,skrng agan pindah kan koneksi nya pada 3G only pada aplikasi mdma nya...

Minggu, 26 Juni 2011

Menejemen Sistem Input Output Di Linux Debian

Manajemen Sistem M/K ( I/O)
Pekerjaan utama yang paling sering dilakukan oleh sistem komputer selain melakukan komputasi adalah Masukan/Keluaran (M/K). Dalam kenyataannya, waktu yang digunakan untuk komputasi lebih sedikit dibandingkan waktu untuk M/K. Ditambah lagi dengan banyaknya variasi perangkat M/K sehingga membuat manajemen M/K menjadi komponen yang penting bagi sebuah sistem operasi. Sistem operasi juga sering disebut device manager, karena sistem operasi mengatur berbagai macam perangkat ( device).
Fungsi-fungsi sistem operasi untuk sistem M/K:
• Penyanggaan ( buffering). Menampung data sementara dari/ke perangkat M/K
• Penjadwalan ( scheduling). Melakukan penjadualan pemakaian M/K sistem supaya lebih efisien.
• Spooling. Meletakkan suatu pekerjaan program pada penyangga, agar setiap perangkat dapat mengaksesnya saat perangkat tersebut siap.
• Menyediakan driver perangkat yang umum. Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras M/K yang umum, seperti optical drive, media penyimpanan sekunder, dan layar monitor.
• Menyediakan driver perangkat yang khusus. Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras M/K tertentu, seperti kartu suara, kartu grafis, dan motherboard
Manajemen Sistem I/O
Sering disebut device manager. Menyediakan device driveryang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis,menutup). Contoh: pengguna menggunakan operasi yang sama untuk membaca berkas pada perangkat keras, CD-ROM dan floppy disk .
Manajemen sistem I/O merupakan aspek perancangan sistem operasi yang terluas disebabkan sangat beragamnya perangkat dan begitu banyaknya aplikasi dari perangkat- perangkat itu.
Sistem operasi bertanggung jawab dalam aktivitas yang berhubungan dengan manajemen sistem/perangkatI/O:
• Mengirim perintah ke perangkat I/O agar menyediakan layanan.
• Menangani interupsi perangakat I/O .
• Menangani kesalahan pada perangakat I/O.
• Menyediakan antarmuka ke pengguna.
Ada juga beberapa perangkat keras yang terdapat pada I/O manajemen yaitu :
1. Pooling
• Busy-waiting/ polling adalah ketika host mengalami looping yaitu membaca status register secara terus-menerus sampai status busy di-clear.
• Pada dasarnya polling dapat dikatakan efisien. Akan tetapi polling menjadi tidak efisien ketika setelah berulang-ulang melakukan looping, hanya menemukan sedikit device yang siap untuk men-service, karena CPU processing yang tersisa belum selesai.
2. Interupsi
Mekanisme Dasar Interupsi :
• Ketika CPU mendeteksi bahwa sebuah controller telah mengirimkan sebuah sinyal ke interrupt
request line (membangkitkan sebuah interupsi), CPU kemudian menjawab interupsi tersebut (juga disebut menangkap interupsi) dengan menyimpan beberapa informasi mengenai state terkini CPU–contohnya nilai instruksi pointer, dan memanggil interrupt handler agar handler tersebut dapat melayani controller atau alat yang mengirim interupsi tersebut.
• Fitur Tambahan pada Komputer Modern :
• Pada arsitektur komputer modern, tiga fitur disediakan oleh CPU dan interrupt controller (pada perangkat keras) untuk dapat menangani interrupsi dengan lebih bagus. Fitur-fitur ini antara lain adalah kemampuan menghambat sebuah proses interrupt handling selama prosesi berada dalam critical state, efisiensi penanganan interupsi sehingga tidak perlu dilakukan polling untuk mencari device yang mengirimkan interupsi, dan fitur yang ketiga adalah adanya sebuah konsep multilevel interupsi sedemikian rupa sehingga terdapat prioritas dalam penanganan interupsi (diimplementasikan dengan interrupt priority level system).
Penyebab Interupsi
• Interupsi dapat disebabkan berbagai hal, antara lain exception, page fault, interupsi yang dikirimkan oleh device controllers, dan system call Exception adalah suatu kondisi dimana terjadi sesuatu/ dari sebuah operasi didapat hasil tertentu yang dianggap khusus sehingga harus mendapat perhatian lebih, contoh nya pembagian dengan 0 (nol), pengaksesan alamat memori yang restricted atau bahkan tidak valid, dan lain-lain.
• System call adalah sebuah fungsi pada aplikasi (perangkat lunak) yang dapat mengeksekusikan instruksi khusus berupa software interrupt atau trap.
3. DMA
• DMA adalah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO).
4. Handshaking

Penjadwalan Proses Linux Debian

Ketika kernel telah mencapai titik penjadwalan ulang, entah karena terjadi interupsi penjadwalan ulang maupun karena proses kernel yang sedang berjalan telah diblokir untuk menunggu beberapa signal bangun, harus memutuskanproses selanjutnya yang akan dijalankan. Linux telah memiliki dua algoritma penjadwalan proses yang terpisah satu sama lain. Algoritma yang pertama adalah algoritma time-sharing untuk penjadwalan preemptive yang adil diantara sekian banyak proses. Sedangkan algoritma yang kedua didesain untuk tugas real-time dimana proritas mutlak lebih utama daripada keadilan mendapatkan suatu pelayanan.

Bagian dari tiap identitas proses adalah kelas penjadwalan, yang akan menentukan algoritma yang digunakan untuk tiap proses. Kelas penjadwalan yang digunakan oleh Linux, terdapat dalam standar perluasan POSIX untuk sistem komputer waktu nyata.

Untuk proses time-sharing, Linux menggunakan teknik prioritas, sebuah algoritma yang berdasarkan pada kupon. Tiap proses memiliki sejumlah kupon penjadwalan; dimana ketika ada kesempatan untuk menjalankan sebuah tugas, maka proses dengan kupon terbanyaklah yang mendapat giliran. Setiap kali terjadi interupsi waktu, proses yang sedang berjalan akan kehilangan satu kupon; dan ketika kupon yang dimiliki sudah habis maka proses itu akan ditunda dan proses yang lain akan diberikan kesempatan untuk masuk.

Jika proses yang sedang berjalan tidak meiliki kupon sama sekali, linux akan melakukan operasi pemberian kupon, memberikan kupon kepada tiap proses dalam sistem, dengan aturan main: kupon = kupon / 2 + prioritas Algoritma ini cenderung untuk menggabungkan dua faktor yang ada: sejarah proses dan prioritas dari proses itu sendiri. Satu setengah dari kupon yang dimiliki sejak operasi pembagian kupon terakhir akan tetap dijaga setelah algoritma
telah dijalankan, menjaga beberapa sejarah sikap proses. Proses yang berjalan sepanjang waktu akan cenderung untukmenghabiskan kupon yang dimilikinya dengan cepat, tapi proses yang lebih banyak menunggu dapat mengakumulasi kuponnya dari. Sistem pembagian kupon ini, akan secara otomatis memberikan proritas yang tinggi ke proses I/O bound ataupun interaktif, dimana respon yang cepat sangat diperlukan.

Kegunaan dari proses pemberian prioritas dalam menghitung kupon baru, membuat prioritas dari suatu proses dapat ditingkatkan. Pekerjaan background batch dapat diberikan prioritas yang rendah; proses tersebut akan secara otomatis menerima kupon yang lebih sedikit dibandingkan dengan pekerjaan yang interaktif, dan juga akan menerima persentase waktu CPU yang lebih sedikit dibandingan dengan tugas yang sama dengan prioritas yang lebih tinggi. Linux menggunakan sistem prioritas ini untuk menerapkan mekanisme standar pembagian prioritas proses yang lebih baik.

Penjadwalan waktu nyata Linux masih tetap lebih sederhana. Linux, menerapkan dua kelas penjadwalan waktu nyata yang dibutuhkan oleh POSIX 1.b: First In First Out dan round-robin. Pada keduanya, tiap proses memiliki prioritas sebagai tambahan kelas penjadwalannya. Dalam penjadwalan time-sharing , bagaimanapun juga proses dengan prioritas yang berbeda dapat bersaing dengan beberapa pelebaran; dalam penjadwalan waktu nyata, si pembuat jadwal selalu menjalankan proses dengan prioritas yang tinggi. Diantara proses dengan prioritas yang sama, maka proses yang sudah menunggu lama, akan dijalankan. Perbedaan satu - satunya antara penjadwalan FIFO dan round-robin adalah proses FIFO akan melanjutkan prosesnya sampai keluar ataupun diblokir, sedangkan proses round-robin akan dipreemptivekan setelah beberapa saat dan akan dipindahkan ke akhir antrian, jadi proses round-robin dengan prioritas yang sama akan secara otomatis membagi waktu jalan antar mereka sendiri.

Perlu diingat bahwa penjadwalan waktu nyata di Linux memiliki sifat yang lunak. Pembuat jadwal Linux menawarkan jaminan yang tegas mengenai prioritas relatif dari proses waktu nyata, tapi kernel tidak menjamin seberapa cepat penjadwalan proses waktu-nyata akan dijalankan pada saat proses siap dijalankan. Ingat bahwa kode kernel Linux tidak akan pernah bisa dipreemptive oleh kode mode pengguna. Apabila terjadi interupsi yang membangunkan proses waktu nyata, sementara kernel siap untuk mengeksekusi sebuah sistem call sebagai bagian proses lain, proses waktu nyata harus menunggu sampai sistem call yang sedang dijalankan selesai atau diblokir.