Sabtu, 31 Maret 2012

Sejarah C++

Tahun 1978, Brian W. Kerninghan & Dennis M. Ritchie dari AT & T Laboratories mengembangkan bahasa B menjadi bahasa C. Bahasa B yang diciptakan oleh Ken Thompson sebenarnya merupakan pengembangan dari bahasa BCPL ( Basic Combined Programming Language ) yang diciptakan oleh Martin Richard.

Sejak tahun 1980, bahasa C banyak digunakan pemrogram di Eropa yang sebelumnya menggunakan bahasaB dan BCPL. Dalam perkembangannya, bahasa C menjadi bahasa paling populer diantara bahasa lainnya, seperti PASCAL, BASIC, FORTRAN.

Tahun 1989, dunia pemrograman C mengalami peristiwa penting dengan dikeluarkannya standar bahasa C oleh American National Standards Institute (ANSI). Bahasa C yang diciptakan Kerninghan & Ritchie kemudian dikenal dengan nama ANSI C.

Mulai awal tahun 1980, Bjarne Stroustrup dari AT & T Bell Laboratories mulai
mengembangkan bahasa C. Pada tahun 1985, lahirlah secara resmi bahasa baru hasil pengembangan C yang dikenal dengan nama C++. Sebenarnya bahasa C++ mengalami dua tahap evolusi. C++ yang pertama, dirilis oleh AT&T Laboratories, dinamakan cfront. C++ versi kunoini hanya berupa kompiler yang menterjemahkan C++ menjadi bahasa C.

Pada evolusi selanjutnya, Borland International Inc. mengembangkan kompiler C++ menjadi sebuah kompiler yang mampu mengubah C++ langsung menjadi bahasa mesin (assembly). Sejak evolusi ini, mulai tahun 1990C++ menjadi bahasa berorientasi obyek yang digunakan oleh sebagian besar pemrogram professional.

C bisa disebut bahasa pemrograman tingkat menengah (middle level programming language). Arti tingkat (level) disini adalah kemampuan mengakses fungsi-fungsi dan perintah-perintah dasar bahasa mesin/hardware (machine basic instruction set). Semakin tinggi tingkat bahasa pemrograman (misalnya:java), semakin mudahlah bahasa pemrograman dipahami manusia, namun membawa pengaruh semakin berkurang kemampuan untuk mengakses langsung instruksi dasar bahasa mesin. Demikian juga sebaliknya dengan bahasa pemrograman tingkat rendah (misalnya: assembler), yang semakin sulit dipahami manusia dan hanya berisi perintah untuk mengakses bahasa mesin. Dalam perspektif mudahnya dipahami manusia, C bisa digolongkan dalam bahasa tingkat tinggi, namun C juga menyediakan kemampuan yang ada pada bahasa tingkat rendah, misalnya operasi bit, operasi byte, pengaksesan memori, dsb.

Beberapa alasan mengapa memakai bahasa C:

* C adalah bahasa pemrograman yang paling populer saat ini, Dengan banyaknya programmer bahasa C, membawa pengaruh semakin mudahnya kita menemukan pemecahan masalah yang kita dapatkan ketika menulis program dalam bahasa C. Pengaruh positif lain adalah semakin banyaknya kompiler yang dikembangkan untuk berbagai platform (berpengaruh ke portabilitas).
* C adalah bahasa pemrograman yang memiliki portabilitas tinggi, Program C yang kita tulis untuk satu jenis platform, bisa kita kompile dan jalankan di platform lain dengan tanpa ataupun hanya sedikit perubahan. Ini bisa diwujudkan dengan adanya standarisasi ANSI untuk C.
* C adalah bahasa pemrograman yang fleksibel, Dengan menguasai bahasa C, kita bisa menulis dan mengembangkan berbagai jenis program mulai dari operating system, word processor, graphic processor, spreadsheets, ataupun kompiler untuk suatu bahasa pemrograman.
* C adalah bahasa pemrograman yang bersifat moduler, Program C ditulis dalam routine yang biasa dipanggil dengan fungsi. Fungsi-fungsi yang telah kita buat, bisa kita gunakan kembali (reuse) dalam program ataupun aplikasi lain.
Sumber : wikipedia.org

Deadlock

B. Deadlock

Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses itu menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan tersebut. Terdapat kaitan antara overhead dari mekanisme koreksi dan manfaat dari koreksi deadlock itu sendiri. Pada beberapa kasus, overhead atau ongkos yang harus dibayar untuk membuat sistem bebas deadlock menjadi hal yang terlalu mahal dibandingkan jika mengabaikannya. Sementara pada kasus lain, seperti pada real-time process control, mengizinkan deadlock akan membuat sistem menjadi kacau dan membuat sistem tersebut tidak berguna.

Contoh berikut ini terjadi pada sebuah persimpangan jalan. Beberapa hal yang dapat membuat deadlock pada suatu persimpangan, yaitu:

· Terdapat satu jalur pada jalan.

· Mobil digambarkan sebagai proses yang sedang menuju sumber daya.

· Untuk mengatasinya beberapa mobil harus preempt (mundur).

· Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak akan mendapatkan sumber daya).

1. Peranan Deadlock

Menurut Coffman dalam bukunya "Operating System" menyebutkan empat syarat bagi terjadinya deadlock, yaitu:

a. Mutual Exclusion

b. Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu proses pada suatu waktu.

c. Hold and Wait

d. Kondisi yang menyatakan proses-proses yang sedang memakai suatu sumber daya dapat meminta sumber daya yang lain.

e. Non-pre-emptive

f. Kondisi dimana suatu sumber daya yang sedang berada pada suatu proses tidak dapat diambil secara paksa dari proses tersebut,sampai proses itu melepaskannya.

g. Circular Wait

h. Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber daya yang dimiliki oleh suatu proses oleh proses lainnya.

2. Resources-Allocation Graph

Sebuah cara visual (matematika) untuk menentukan apakah ada deadlock, atau kemungkinan terjadinya.

G = (V, E) Graf berisi node and edge. Node V terdiri dari proses-proses = {P1, P2, P3, ...} dan jenis resource. {R1, R2, ...} Edge E adalah (Pi, Rj) atau (Ri, Pj)

Sebuah panah dari process ke resource menandakan proses meminta resource. Sebuah panah dari resource ke process menunjukkan sebuah instance dari resource telah dtempatkan ke proses. Process adalah lingkaran, resource adalah kotak; titik-titik merepresentasikan jumlah instance dari resource Dalam tipe. Meminta poin-poin ke kotak, perintah datang dari titik.

Jika graf tidak berisi lingkaran, maka tidak ada proses yang deadlock. Jika membentuk lingkaran, maka:

a. jika tipe resource memiliki banyak instance, maka deadlock DAPAT ada.

b. jika setiap tipe resource mempunyai satu instance, maka deadlock telah terjadi.

3. Strategi menghadapi Deadlock

Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:

a. Mengabaikan adanya deadlock.

b. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock, tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock.

c. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling mendukung, yaitu:

· Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.

· Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.

Jumat, 30 Maret 2012

Menconvert PDF menggunakan PHP

Pertama-tama download dulu file ini
http://www.ziddu.com/download/18973695/fpdf.zip.html

lalu mari kita mulai ngoding


include('class.ezpdf.php');
$pdf = new Cezpdf();

//atur margin
$pdf->ezSetCmMargins(2,3,3,3);

//header dan footer didefinisikan diantara openObject dan closeObject
$all = $pdf->openObject();

//teks yang ada ditengah atas untuk judulnya
$pdf->addText(220,820,20,'Daftar Anggota');
$pdf->addText(220,800,18,'Nama Mahasiswa');

//garis atas untuk header
$pdf->line(10,795,578,795);

//garis bawah untuk footer
$pdf->line(10,50,578,50);

//teks kiri bawah
$pdf->addText(30,34,8,'Dicetak tanggal:'.date('d-m-Y,H:i:s'));

$pdf->closeObject();

//tampilkan object di semua halaman
$pdf->addObject($all,'all');

//koneksi ke db dan tambilkan datanya
mysql_connect('localhost','root','');
mysql_select_db('db_pdf');

$sql=mysql_query("SELECT * FROM `anggota`");
$i=1;
while($r=mysql_fetch_array($sql)){
$data[$i]=array(
'No'=>$i,
'Nama Mahasiswa'=>$r['nama'],
'Alamat'=>$r['alamat']
);
$i++;
}
//tampilkan data dalam bentuk tabel
$option = array('shaded'=>0,'width'=>220);
$pdf->ezTable($data,'','','');
//penomoran halaman
$pdf->ezStartPageNumbers(320,15,20);
$pdf->ezStream();
?>Terbitkan Entri

silahkan di running

Sumber : http://jannes.16mb.com

Kamis, 29 Maret 2012

PEMECAHAN MASALAH & PENGAMBILA KEPUTUSAN

Hasil dari aktivitas pemecahan masalah adalah solusi. Memikirkan masalah sebagai sesuatu hal yang selalu buruk adalah suatu hal yang mudah untuk dilakukan, karena kita jarang mengartikan frase mengambil keuntungan dari sebuah situasi sama halnya dengan kita mengartikan frase memperbaiki sebuah situasi yang buruk. Kita akan memperhitungkan peraihan kesempatan ke dalam pemecahan masalah dengan mendefinisikan masalah (problem) sebagai suatu kondisi atau peristiwa yang merugikan atau memiliki potensi untuk merugikan bagi sebuah perusahaan atau yang menguntungkan atau memiliki potensi untuk menghasilkan keuntungan. Selama proses pemecahan masalah, manajer akan terlibat dalam pengambilan keputusan, yaitu tindakan memilih berbagai alternatif tindakan. Keputusan adalah tindakan tertentu yang dipilih. Biasanya, pemecahan satu masalah akan membutuhkan beberapa keputusan.

TAHAPAN TAHAPAN PEMECAHAN MASALAH

Menurut Herbert A. Simon, pemecah masalah akan terlibat dalam empat hal:

  1. Aktivitas Intelijen. Mencari kondisi-kondisi yang membutuhkan solusi di dalam lingkungan.
  2. Aktivitas perancangan. Menemukan, mengembangkan, dan menganalisis kemungkinan-kemungkinan tindakan.
  3. Aktivitas pemilihan. Memilih satu tindakan tertentu dari berbagai tindakan yang tersedia.
  4. Akitivitas peninjauan. Menilai pilihan-pilihan masa lalu.

Untuk melakukan masing-masing aktivitas, pemecah masalah harus memiliki informasi. Sistem informasi, yang dikembangkan oleh pengguna (user) maupun spesialis informasi, akan memberikan informasi ini.