Iklan

Monday, 5 July 2021

Cara Membuat Report Portable Document File (PDF)

 

Laporan adalah salah satu fitur yang selalu ada dalam sebuah aplikasi berbasis web, jadi skill untuk bisa menyajikan laporan adalah hal wajib yang dikuasai oleh developer, biasanya format laporan yang sering digunakan adalah dalam format PDF, Excel atau Ms Word. dalam tutorial ini anda akan belajar membuat laporan PDF Dengan bahasa pemograman PHP Dan Database MySQL.

 

1.    Library FPDF Untuk Membuat Laporan PDF

Salah satu library yang paling banyak digunakan oleh web developer adalah FPDF, library ini punya banyak fitur seperti bisa membuat posisi text dan gambar berdasarkan koordinat, mengganti font yang akan digunakan, menambahkan garis dan masih banyak lagi.

sekarang kita akan belajar cara membuat laporan PDF dengan PHP menggunakan library FPDF ini, silahkan download library nya pada situs resmi FPDF (http://www.fpdf.org).  kemudian silahkan buat sebuah folder baru dengan nama phpfpdf pada C:\xampp\htdocs\phpfpdf dan extract file fpdf181.zip ke folder tersebut.

 

Membuat Script Laporan PDF Dengan PHP Dan MySQL

sekarang kita akan membuat sebuah file baru dengan nama index.php, file ini nanti yang bertugas menampilkan laporan pdf pada browser, setelah membuat file index.php lalu tulislah script berikut :

 

<?php

// memanggil library FPDF

require('fpdf.php');

// intance object dan memberikan pengaturan halaman PDF

$pdf = new FPDF('P','mm','A4');

// membuat halaman baru

$pdf->AddPage();

// setting jenis font yang akan digunakan

$pdf->SetFont('Arial','B',16);

// mencetak string

$pdf->Cell(40,10,'Belajar Membuat Laporan PDF Dengan FPDF');

$pdf->Output();

?>

kemudian silahkan save file index.php tadi dan sekarang silahkan akses http://localhost/phpfpdf/ menggunakan web browser anda,

 

Membuat Laporan PDF Aplikasi Berita Dengan PHP MySQL

Sekarang kita akan membuat laporan PDF Dengan PHP Dan Data nya dari database MySQL, pertama silahkan buat sebuah database baru dengan nama tutorial dan buatlah sebuah tabel dengan struktur sebagai berikut :

Langkah selanjutnya silahkan insert beberapa data yang akan ditampilkan nantinya, kemudian silahkan buat sebuah file baru dengan nama koneksi.php untuk menyimpan konfigurasi koneksi ke database MySQL, silahkan tulis script berikut :

 

<?php

$host       = "localhost";

$user       = "root";

$password   = "";

$database   = "profnews";

$connect    = mysqli_connect($host, $user, $password, $database);

?>

 

lalu silahkan save untuk menyimpan perubahan, kemudian silahkan modifikasi script Laporan_PDF.php menjadi seperti dibawah ini :

 

<?php

// memanggil library FPDF

require('fpdf16/fpdf.php');

// intance object dan memberikan pengaturan halaman PDF

$pdf = new FPDF('l','mm','legal');

// membuat halaman baru

$pdf->AddPage();

// setting jenis font yang akan digunakan

$pdf->SetFont('Arial','B',16);

// mencetak string

$pdf->Cell(190,7,'STMIK Profesional Makassar',0,1,'C');

$pdf->SetFont('Arial','B',12);

$pdf->Cell(190,7,'DAFTAR BERITA TERBARU',0,1,'C');

 

// Memberikan space kebawah agar tidak terlalu rapat

$pdf->Cell(10,7,'',0,1);

$pdf->SetFont('Arial','B',10);

$pdf->Cell(50,6,'JUDUL',1,0);

$pdf->Cell(120,6,'HEADLINE',1,0);

$pdf->Cell(90,6,'ISI',1,0);

$pdf->Cell(80,6,'PENGIRIM',1,1);

$pdf->SetFont('Arial','',10);

include 'koneksi.php';

$berita = mysqli_query($koneksi, "select * from berita");

while ($row = mysqli_fetch_array($berita)){

    $pdf->Cell(50,6,$row['judul'],1,0);

    $pdf->Cell(120,6,$row['headline'],1,0);

    $pdf->Cell(90,6,$row['isi'],1,0);

    $pdf->Cell(80,6,$row['pengirim'],1,1);

}

$pdf->Output();

?>

Jangan lupa melakukan save untuk menyimpan perubahan, kemudian silahkan akses lagi http://localhost/aplikasi_berita/laporan_pdf.php.

Begitulah cara membuat laporan dalam bentuk PDF dengan bahasa pemograman PHP, sebenarnya masih banyak fitur lain yang bisa anda coba seperti menampilkan gambar, garis dan lainya yang bisa anda pelajari melalui halaman dokumentasi library FPDF.

 

2.    Library DOMPDF Untuk Membuat Laporan PDF

Dompdf adalah salah satu library yang digunakan untuk membuat report berupa PDF dengan menggunakan PHP, sebenarnya banyak sekali library lain yang dapat digunakan untuk membuat report PDF, tetapi menurut kita library DOMPDF ini lebih mudah digunakan, serta lebih flexible dalam pembuatan reportnya.

Cara kerja DOMPDF ini adalah mengkonversi dari skrip HTML, menjadi bentuk PDF. Nah dalam tutorial ini kita akan membuat sebuah database dengan nama db_siswa, dimana didalamnya terdapat tabel tb_siswa yang didalamnya terdapat beberapa data siswa, berikutnya data tersebut akan kita export menjadi bentuk PDF menggunakan library DOMPDF.

 

Persiapan

Untuk persiapan tools yang kita gunakan antara lain :

Xampp / Wampp sebagai aplikasi yang menyediakan web server dan database server didalamnya, atau teman – teman bisa menggunakan tools lain, dalam contoh ini kita gunakan xamp.

Text editor bisa menggunakan notepad++, visual studio code, sublime atau text editor yang lain.

Library dompdf, bisa didownload di sini : 

https://github.com/dompdf/dompdf/releases/download/v0.8.3/dompdf_0-8-3.zip

saat tutorial ini dibuat, dompdf berada di versi 0.8.3, versi ini sudah mensupport PHP 7.3

 

Membuat Project Laporan_Berita

Langkah berikutnya kita akan mulai untuk membuat file PHPnya, dalam contoh ini kita menggunakan xampp, sehingga folder projectnya kita letakkan di C:/xampp/htdocs, contohnya didalam folder htdocs kita buat folder dengan nama aplikasi_berita dan silahkan buat beberapa file sebagai berikut :

Ø  koneksi.php (kalau belum ada)

Ø  Laporan_berita.php

serta extract file dompdf_0-8-3.zip hasil download library dompdf sebelumnya

sehingga tampilannya kurang lebih seperti ini :

 

 Membuat File koneksi.php

Silahkan buka file koneksi.php menggunakan text editor, lalu isikan code seperti berikut ini :

<?php

$host       = "localhost";

$user       = "root";

$password   = "";

$database   = "profnews";

$koneksi    = mysqli_connect($host, $user, $password, $database);

?>

Keterangan :

Ø  Perintah diatas digunakan untuk koneksi ke database profnews yang sebelumnya telah kita buat.

Ø  $host dengan nilai “localhost” yang merupakan alamat server databasenya

Ø  $user dengan nilai “root” yang merupakan user dari databasenya

Ø  $password dengan nilai “” yang merupakan password untuk mengakses database, nilainya kosong karena default dari xampp untuk password user root adalah kosong

Ø  $database dengan nilai “profnews” yang merupakan nama dari database yang sebelumnya telah kita buat

Ø  Baris 6 adalah perintah untuk melakukan koneksi ke database, dan hasilnya disimpan di variabel $koneksi.

 

Membuat File Laporan_berita.php

Silahkan buka file report.php menggunakan text edit, lalu isikan code seperti berikut ini :

 

<?php

include('koneksi.php');

require_once("dompdf/autoload.inc.php");

use Dompdf\Dompdf;

$dompdf = new Dompdf();

$query = mysqli_query($koneksi,"select * from berita");

$html = '<center><h3>Daftar berita terbaru</h3></center><hr/><br/>';

$html .= '<table border="1" width="100%">

 <tr>

 <th>No</th>

 <th>judul</th>

 <th>headline</th>

 <th>Isi</th>

 <th>Pengirim</th>

 <th>Tanggal</th>

 </tr>';

$no = 1;

while($row = mysqli_fetch_array($query))

{

 $html .= "<tr>

 <td>".$no."</td>

 <td>".$row['judul']."</td>

 <td>".$row['headline']."</td>

 <td>".$row['isi']."</td>

 <td>".$row['pengirim']."</td>

 <td>".$row['tanggal']."</td>

 </tr>";

 $no++;

}

$html .= "</html>";

$dompdf->loadHtml($html);

// Setting ukuran dan orientasi kertas

$dompdf->setPaper('A4', 'landscape');

// Rendering dari HTML Ke PDF

$dompdf->render();

// Melakukan output file Pdf

$dompdf->stream('laporan_berita.pdf');

?>

 

Penjelasan Skrip :

 

include('koneksi.php');

 

Baris 2 kita menginclude file koneksi.php untuk dapat terkoneksi dengan database profnews

 

require_once("dompdf/autoload.inc.php");

 

Baris 3 kita menginclude file autoload.inc.php yang berada di folder dompdf, perbedaan fungsi include dan include_once sudah dibahas di tutorial kita sebelumnya : mengenal fungsi include dan required di PHP

 

use Dompdf\Dompdf;

 

Baris 4 kita menggunakan namespace Dompdf

 

$dompdf = new Dompdf();

 

Baris 5 kita membuat object dompdf dengan class Dompdf

 

$query = mysqli_query($koneksi,"select * from berita");

 

Baris 6 kita menuliskan perintah query untuk mendapatkan data di tabel tb_siswa dan hasilnya disimpan kedalam variabel $query

 

$html = '<center><h3>Daftar berita terbaru</h3></center><hr/><br/>';

$html .= '<table border="1" width="100%">

        <tr>

            <th>No</th>

            <th>Nama</th>

            <th>Kelas</th>

            <th>Alamat</th>

        </tr>';

 

Baris 7 – 14 kita membuat variabel dengan nama $html, didalam di variabel ini berisi kode HTML yang digunakan untuk membuat judul tabel serta header tabel, jadi sederhananya kita harus membuat sebuah variabel yang berisi code HTML, dan code ini akan diconvert menjadi bentuk PDF

Jika anda bingung itu di variabel $html di baris 8 kok ada titik sebelumnya tanda sama dengan, itu adalah concatination di PHP, untuk memperlajari lebih lanjut bisa membaca tutorial kita sebelumnya : Mengenal Jenis Operator di PHP

 

$no = 1;

 

Baris 15 kita membuat variabel $no untuk memberi nomor urut disetiap data di tabel tb_siswa yang akan ditampilkan

 

while($row = mysqli_fetch_array($query))

{

    $html .= "<tr>

        <td>".$no."</td>

        <td>".$row['judul']."</td>

     <td>".$row['headline']."</td>

 <td>".$row['isi']."</td>

     <td>".$row['pengirim']."</td>

     <td>".$row['tanggal']."</td>

    </tr>";

    $no++;

}

 

Baris 16 – 25 kita extract data di variabel $query menggunakan perintah while, setiap datanya akan disimpan di variabel $row, karena kita menggunakan perintah mysqli_fetch_array, dan data tersebut akan digabung dengan string yang ada di variabel $html

 $html .= "</html>";

 Baris 26 kita memberikan tutup html, dengan menambahkan string di variabel $html

 $dompdf->loadHtml($html);

 Baris 27 kita melakukan konversi dari code html yang ada di variabel $html, menjadi bentuk PDF

 $dompdf->setPaper('A4', 'potrait');\

 Baris 29 kita melakukan setting ukuran kertas, dan orientasi kertas (potrait, landscape) tersebut hasil report PDF nantinya

 $dompdf->render();

 Baris 31 melakukan rendering dari report PDF

 $dompdf->stream('laporan_berita.pdf');

 Baris 33 melakukan output file PDF dengan nama laporan_siswa.pdf, anda dapat mencustom dari nama reportnya.

 

 

 

Mencoba Mengakses Report

Untuk mencoba skrip tersebut, anda bisa mengakses melalui alamat : 

http://localhost/aplikasi_berita/laporan_berita.php

Maka browser secara otomatis akan meminta untuk mendownload file laporan_berita.pdf, 

Pilih Open with Firefox dan klik tombol OK, maka browser akan menampilkan hasilnya.

Selamat Belajar dan Semangat Mencoba !


 

CRUD Aplikasi Berita-2

 1. Arsip_berita.php

skrip

<?php
include "koneksi.php";
?>
<html>
<head><title>Arsip Berita</title>
<link rel="stylesheet" href="style.css">
<script language="javascript">

function tanya() {
if (confirm ("Apakah Anda yakin akan menghapus berita ini ?")) {
    return true;
} else {
    return false;
}
}

</script>
</head>
<body>
<a href="index.php">Halaman Depan</a> |
<a href="arsip_berita.php">Arsip Berita</a> |
<a href="input_berita.php">Input Berita</a> |
<a href="laporan_PDF.php">Laporan dengan FPDF</a> |
<a href="laporan_berita.php">Laporan dengan DOMPDF</a>;
<br><br>

<ol>
<?php
$query = mysqli_query($koneksi,"SELECT A.id_berita, B.nm_kategori, A.judul,A.pengirim, A.tanggal FROM berita A, kategori B WHERE A.id_kategori=B.id_kategori ORDER BY A.id_berita DESC");
while ($hasil = mysqli_fetch_array ($query)) {
$id_berita = $hasil['id_berita'];
$kategori = stripslashes ($hasil['nm_kategori']);
$judul = stripslashes ($hasil['judul']);
$pengirim = stripslashes ($hasil['pengirim']);
$tanggal = stripslashes ($hasil['tanggal']);
//
//tampilkan arsip berita
echo "<li><a href='berita_lengkap.php?id=$id_berita'>$judul</a><br>";
echo "<small>Berita dikirimkan oleh <b>$pengirim</b> pada tanggal <b>$tanggal</b> dalam kategori <b>$kategori</b><br>";
echo "<b>Action : </b><a href='edit_berita.php?halaman=editberita&id=$id_berita'>Edit</a>| ";
echo "<a href='delete_berita.php?id=$id_berita' onClick='return tanya()'>Delete</a> | ";

echo "</small></li><br><br>";
}
?>
</ol>
</body>
</html>

 

2. Edit_berita.php

skrip

<?php
include "koneksi.php";
if (isset($_GET['id'])) {
$id_berita = $_GET['id'];
} else {
die ("Error. No Id Selected! ");
}
$query = mysqli_query($koneksi,"SELECT id_berita, id_kategori, judul, headline, isi,pengirim, tanggal FROM berita WHERE id_berita='$id_berita'");
$hasil = mysqli_fetch_array ($query);
$id_berita = $hasil['id_berita'];
$id_kategori = stripslashes ($hasil['id_kategori']);
$judul = stripslashes ($hasil['judul']);
$headline = stripslashes ($hasil['headline']);
$isi = stripslashes ($hasil['isi']);
$pengirim = stripslashes ($hasil['pengirim']);
$tanggal = stripslashes ($hasil['tanggal']);

//proses edit berita
if (isset($_POST['Edit'])) {
$id_berita = $_POST['hidberita'];
$judul = addslashes (strip_tags ($_POST['judul']));
$kategori = $_POST['kategori'];
$headline = addslashes (strip_tags ($_POST['headline']));
$isi_berita = addslashes (strip_tags ($_POST['isi']));
$pengirim = addslashes (strip_tags ($_POST['pengirim']));
//update berita
$query = mysqli_query($koneksi,"UPDATE berita SET id_kategori='$kategori',judul='$judul',headline='$headline',isi='$isi_berita',pengirim='$pengirim' WHERE id_berita='$id_berita'");
if ($query) {
echo "<h2><font color=blue>Berita telah berhasil diedit</font></h2>";
} else {
echo "<h2><font color=red>Berita gagal diedit</font></h2>";
}
}
?>

<html>
<head><title>Edit Berita</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<a href="index.php">Halaman Depan</a> |
<a href="arsip_berita.php">Arsip Berita</a> |
<a href="input_berita.php">Input Berita</a>
<br><br>
<FORM ACTION="" METHOD="POST" NAME="input">
<table cellpadding="0" cellspacing="0" border="0" width="700">
<tr>
<td colspan="2"><h2>Edit Berita</h2></td>
</tr>
<tr>
<td width="200">Judul Berita</td>
<td>: <input type="text" name="judul" size="30" value="<?php echo $judul ?>"></td>
</tr>
<tr>
<td>Kategori</td>
<td>:
<select name="kategori">
<?php
$query = mysqli_query ($koneksi,"SELECT id_kategori, nm_kategori FROM kategori ORDER BY nm_kategori");
while ($hasil = mysqli_fetch_array($query)) {
$selected = ($hasil['id_kategori']==$id_kategori) ? "selected" : "";
echo "<option value='$hasil[id_kategori]' $selected>$hasil[nm_kategori]</option>";
}
?>
</select></td>
</tr>
<tr>
<td>Headline Berita</td>
<td>: <textarea name="headline" cols="50" rows="4"><?php echo $headline ?></textarea></td>
</tr>
<tr>
<td>Isi Berita</td>
<td>: <textarea name="isi" cols="50" rows="10"><?php echo $isi ?></textarea></td>
</tr>
<tr>
<td>Pengirim</td>
<td>: <input type="text" name="pengirim" size="20" value="<?php echo $pengirim ?>"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;&nbsp;
<input type="hidden" name="hidberita" value="<?php echo $id_berita ?>">
<input type="submit" name="Edit" value="Edit Berita">&nbsp;
<input type="reset" name="reset" value="Cancel"></td>
</tr>
</table>
</FORM>
</body>
</html>
 

 

3. Delete_berita.PHP

skrip

<?php
include "koneksi.php";

if (isset($_GET['id'])) {
    $id_berita = $_GET['id'];
} else {
die ("Error. No Id Selected! ");
}
?>
<html>
<head><title>Delete Berita</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<a href="index.php">Halaman Depan</a> |
<a href="arsip_berita.php">Arsip Berita</a> |
<a href="input_berita.php">Input Berita</a>
<br><br>
<?php
//proses delete berita
if (!empty($id_berita) && $id_berita != "") {
$query = mysqli_query($koneksi,"DELETE FROM berita WHERE id_berita='$id_berita'");

if ($query) {
echo "<h2><font color=blue>Berita telah berhasil dihapus</font></h2>";
} else {
echo "<h2><font color=red>Berita gagal dihapus</font></h2>";
}
echo "Klik <a href='arsip_berita.php'>di sini</a> untuk kembali ke halaman arsip berita";
} else {
die ("Access Denied");
}
?>
</body>
</html>
 

Tuesday, 29 June 2021

CRUD aplikasi berita - 1

 CRUD APLIKASI BERITA Menggunakan PHP-7 dan MySql-5

1. Koneksi.PHP

Skrip

<?php
$host       = "localhost";
$user       = "root";
$password   = "";
$database   = "profnews";
$koneksi    = mysqli_connect($host, $user, $password, $database);
?>

Monday, 13 March 2017

Jaringan Saraf Tiruan - Perceptron

Implementasi algoritma perceptron untuk pengenalan pola masukan biner maupun bipolar menggunakan borland delphi

Abstrak
Aplikasi pelatihan pengenalan pola masukan baik yang berbentuk biner maupun bipolar menggunakan metode perceptron merupakan solusi terbaik untuk mengenali bentuk berdasarkan  geometri ruang tiga dimensi yaitu memiliki panjang, lebar maupun tinggi. Sehingga diharapkan metode perceptron dapat mengenali gambar dengan bentuk aslinya dengan cepat dan akurat.
Pada penelitian ini metode jaringan saraf tiruan yang digunakan adalah metode perceptron yang merupakan metode kecerdasan buatan modern untuk mengenali pola masukan baik berbentuk biner maupun bipolar. Objek yang akan dijadikan sebagai masukan dalam aplikasi pelatihan perceptron ini adalah pengenalan huruf kapital. Dan untuk mengimplementasikan algoritma perceptron ini peneliti menggunakan aplikasi borland delphi.
Hasil yang diharapkan melalui penelitian ini adalah aplikasi pengenalan pola huruf kapital bisa lebih akurat dalam membedakan masukan dengan aslinya. Prosentase pengenalan pola huruf kapital diharapkan menghasilkan rate antara 75.50% hingga 93.70% dengan prosentase akurat hingga 90.00%.
Kata kunci : Perceptron, Pengenalan pola, Biner, Bipolar, Borland delphi

Pendahuluan
Pengenalan huruf  dalam bentuk gambar merupakan sesuatu yang menarik untuk dikaji. Aplikasi ataupun mesin pengenalan pola huruf sekarang ini belum maksimal menghasilkan keluaran yang terbaik. Sebut saja mesin scan dokumen yang masih memiliki banyak kesalahan frase dalam menangkap dan mengartikan gambar dokumen kedalam bentuk kata maupun kalimat. Sehingga terkadang hasil keluaran scan tetap harus diperbaiki hingga susunan kata maupun kalimatnya sama dengan aslinya.
Dalam kasus ini untuk mengenali pola beberapa huruf diperlukan beberapa neuron untuk membedakannya. Neuron-neuron akan menghasilkan nilai kombinasi yang digunakan untuk mengenal pola huruf-huruf tersebut. Dengan menggunakan pemodelan metode perceptron proses mengenal pola huruf kapital A, B, C, D dan E diharapkan akan lebih tepat dan akurat.

Tinjauan Pustaka
A. Jaringan Saraf Tiruan (JST)
Jaringan saraf tiruan adalah paradigma pengolahan informasi yang terinspirasi oleh sistem sara secara biologis, seperti proses informasi pada otak manusia. Elemen kuncu dari paradigma ini adalah struktur dari sistem pengolahan informasi yang terdiri dari sejumlah besar elemen pemrosesan yang saling berhubungan (neuron), bekerja serentak untuk menyelesaikan masalah tertentu. Cara kerja JST seperti cara kerja manusia, yaitu belajar melalui contoh. Sebuah JST dikonfigurasikan untuk aplikasi tertentu, seperti pengenalan pola atau klasifikasi data, melalui proses pembelajaran. Belajar dalam sistem biologis melibatkan penyesuaian terhadap koneksi synaptic yang ada antara neuron. Hal ini berlaku juga untuk JST [1].
Neuron adalah satuan unit pemroses terkecil pada otak, bentuk sederhana sebuah neuron yang oleh para ahli dianggap sebagai satguan unit pemroses tersebut digambarkan sebagai berikut :





Untuk lebih lengkapnya tentang isi jurnal ini bisa didownload disini

Monday, 14 December 2015

Pemodelan dan Metode numerik menggunakan borland delphi

METODE BAGI DUA (Bisection Method)

Prinsip :
Ide awal metode ini adalah metode table, dimana area dibagi menjadi N bagian. Hanya saja metode biseksi ini membagi range menjadi 2 bagian, dari dua bagian ini dipilih bagian mana yang mengandung dan bagian yang tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga diperoleh akar persamaan.
Langkah – langkah dalam menyelesaikan Metode Bagi Dua :

Langkah 1 :
Pilih a sebagai batas bawah dan b sebagai batas atas untuk taksiran akar sehingga terjadi perubahan tanda fungsi dalam selang interval. Atau periksa apakah benar bahwa f(a) . f(b) < 0


Taksiran nilai akar baru, c diperoleh dari :

Langkah 2 :



Menentukan daerah yang berisi akar fungsi:
Langkah 3 :
  • Jika z merupakan akar fungsi, maka f(x < z) dan f(x > z) saling berbeda tanda.
  • f(a)*f(c) negatif, berarti di antara a & c ada akar fungsi.
  • f(b)*f(c) positif, berarti di antara b & c tidak ada akar fungsi


Menentukan kapan proses pencarian akar fungsi berhenti:
Langkah 4 :
Proses pencarian akar fungsi dihentikan setelah keakuratan yang diinginkan dicapai, yang dapat diketahui dari kesalahan relatif semu.

Contoh implementasi dalam bahasa pemrograman delphi :
Listng source code program sebagai berikut :

unit Unit3;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Grids;
type
  TForm3 = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label5: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    StringGrid1: TStringGrid;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    Edit4: TEdit;
    Label7: TLabel;
    Edit5: TEdit;
    GroupBox3: TGroupBox;
    Label4: TLabel;
    Label6: TLabel;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form3: TForm3;
implementation
{$R *.dfm}

procedure TForm3.BitBtn1Click(Sender: TObject);
const g=9.8;v=40;t=10;
var m,a,b,c,fa,fb,fc,fca,err:Real;
    iterasi:byte;
begin
Stringgrid1.RowCount:=1;
Stringgrid1.Cols[0].Add('ITERASI');
Stringgrid1.Cols[1].Add('A');
Stringgrid1.Cols[2].Add('B');
Stringgrid1.Cols[3].Add('C');
Stringgrid1.Cols[4].Add('F(c)');
Stringgrid1.Cols[5].Add('Error');
m:=strtofloat(edit3.Text);
a:=strtofloat(edit1.Text);
b:=strtofloat(edit2.Text);
iterasi:=1;
fa:=0;
fb:=0;
err:=0;
fca:=0;
fc:=0;
repeat
c:=(a+b)/2;
fc:=((g*m)/c)*(1-exp(-((c/m)*t)))-v;
edit4.Text:=floattostr(c);
edit5.Text:=floattostr(fc);
err:=((fc-fca)/fc)*100;
Stringgrid1.RowCount:=Stringgrid1.RowCount+1;
Stringgrid1.Cols[0].Add(floattostr(iterasi));
Stringgrid1.Cols[1].Add(floattostr(a));
Stringgrid1.Cols[2].Add(formatfloat('#0.00',b));
Stringgrid1.Cols[3].Add(formatfloat('#0.00',c));
Stringgrid1.Cols[4].Add(formatfloat('#0.00',fc));
Stringgrid1.Cols[5].Add(formatfloat('#0.00',abs(err))+'%');
if fc>0 then
      b:=c
else
      a:=c;
iterasi:=iterasi+1;
fca:=fc;
until (abs(err)<=0.5) or (abs(err)<=0.1);
end;

procedure TForm3.FormShow(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit3.SetFocus;
Stringgrid1.RowCount:=1;
Stringgrid1.Cols[0].Add('ITERASI');
Stringgrid1.Cols[1].Add('A');
Stringgrid1.Cols[2].Add('B');
Stringgrid1.Cols[3].Add('C');
Stringgrid1.Cols[4].Add('F(c)');
Stringgrid1.Cols[5].Add('Error');
edit3.SetFocus;
end;

procedure TForm3.BitBtn2Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
Stringgrid1.RowCount:=1;
Stringgrid1.Cols[0].Add('ITERASI');
Stringgrid1.Cols[1].Add('A');
Stringgrid1.Cols[2].Add('B');
Stringgrid1.Cols[3].Add('C');
Stringgrid1.Cols[4].Add('F(c)');
Stringgrid1.Cols[5].Add('Error');
edit3.SetFocus;
end;

procedure TForm3.BitBtn3Click(Sender: TObject);
begin
form3.Close;
end;
end.

Sekian dulu dari saya...semoga bermanfaat !