Nama : Akmal
Alfarisi
Kelas : 1IA17
NPM : 50414710
Mata Kuliah : Algoritma & Pemrograman 1A
Dosen : Kunto Bayu A,ST
Kelas : 1IA17
NPM : 50414710
Mata Kuliah : Algoritma & Pemrograman 1A
Dosen : Kunto Bayu A,ST
PENERAPAN
KONSEP TABEL
I. Argumen
Dan Fungsi
Tabel
merupakan data pembantu dalam pengolahan data.
Misalnya, dalam suatu lembar
dokumen terdapat data pegawai sebagai berikut :
Dari data
pegawai tersebut tidak dapat diketahui nama setiap pegawai.
Untuk itu dapat
dibuat suatu table yang berisi khusus untuk nama pegawai seperti yang terlihat
berikut ini.
Item NIP
merupakan item yang dipakai sebagai acuan untuk mencari data nama pegawai
didalam table.
Item ini berfungsi sebagai control field, yang sering disebut
sebagai ARGUMEN.
Sedangkan item NAMA merupakan FUNCTION dari table tersebut.
II. Penggunaan
Storage Untuk Penyimpanan Tabel
Data didalam
media penyimpanan seperti disk, kartu, dokumen, dan lain-lain yang berfungsi
sebagai table disebut external table.
Dalam proses
pengolahan data, external table ini sebaiknya dipindahkan ke memori agar proses
menjadi cepat.
Didalam memori external table menempati lokasi yang disebut
storage.
Di storage ini terbentuk suatu table yang disebut sebagai internal
table.
Selanjutnya proses pengolahan menggunakan internal table.
Oleh karena
itu, pada awal proses pengolahan data harus di susun terlebih dahulu proses
untuk memindahkan external table ke dalam storage sehingga terbentuk internal
tabel.
Dibawah ini
terlampir flowchart yang memperlihatkan proses pembentukan internal tabel.
Tabel ini dibentuk berdasarkan external tabel pada pembahasan sebelumnya yaitu
TABEL NAMA PEGAWAI.
Data dari external tabel diinput melalui keyboard dan
proses input berakhir jika operator mengetik 0 untuk NIP.
Perhatikan flowchart diatas.
Terlihat bahwa setiap data yang dibaca dari external tabel
disimpan didalam NIPTAB(I) dan NMTAB(I).
Variabel ini merupakan variabel
berindeks atau sering disebut sebagai variabel array.
Variabel
array merupakan satu variabel dengan beberapa tempat penyimpanan. Gambar
dibawah ini memperlihatkan ilustrasi variabel array NIPTAB.
Penyimpanan ke dalam variabel array NIPTAB dilakukan berdasarkan nilai indeksnya.
Pada
flowchart di atas nilai indeks ditentukan melalui variabel I. Pada saat data
NIP pertama diinput, nilai I = 1.
Dengan demikian NIP yang pertama diinput
disimpan didalam variabel NIPTAB(1), demikian seterusnya.
Sehingga terbentuk
variabel NIPTAB dan NMTAB dengan isi seperti yang terlihat dibawah ini.
III. Proses
Pencarian ( Searching )
Proses
pencarian (searching) didalam internal tabel dilakukan dengan berpatokan pada
nilai indeksnya.
Misalnya untuk mencari nama pegawai dengan NIP = 10203 maka
dapat digambarkan melalui flowchart berikut :
Flowchart di
atas disusun dengan asumsi internal tabel telah terbentuk. Proses pencarian
nama pegawai dapat diurutkan sebagai berikut :
1. Pada awal
proses, variabel NO diisi nilai sesuai dengan NIP yang akan dicari. Sedangkan
variabel I digunakan sebagai indeks untuk menentukan posisi variabel array
internal tabel.
2. Nilai I
ditambah 1.
3. Periksa
isi variabel NIPTAB dengan lokasi sesuai indeks pada variabel I.
Jika isinya
sama dengan isi variabel NO, lakukan :
• cetak isi variabel
NMTAB dengan lokasi sesuai indeks pada variabel I
• proses
selesai. Sebaliknya, jika isinya tidak sama lakukan langkah 4
4. Kembali ke
langkah 2
Contoh :
Dalam suatu
lembar dokumen terdapat data Gaji Pegawai dan Tabel Nama Pegawai
Jika Gaji
dihitung berdasarkan GAJI POKOK + TUNJANGAN, maka buat flowchart untuk mencetak
laporan seperti berikut :
TEKNIK SWITCHING
Definisi
:
Tehnik Switching merupakan cara memperpendek jalur proses yang memakai suatu
indikator untuk mengantisipasi proses yang akan dilakukan selanjutnya.Indikator ini dimisalkan seperti switch pada tombol lampu yang dapat mengatur dua
kondisi yaitu nyala dan padam.
Dalam flowchart, switch merupakan variabel yang (biasanya) diisi dengan dua kondisi yaitu 0 dan 1.Melalui isi variabel tersebut dapat diketahui kondisi proses yang telah dilakukan.
Sehingga dapat dilakukan pengalihan proses tanpa melalui proses sebelumnya atau mempersingkat alur proses.
Contoh Soal :
Suatu perusahaan akan membuat laporan gaji pegawainya berdasarkan golongannya.
Data yang dibaca terdiri dari nomor pegawai, nama pegawai, golongan dan gaji bersih.
yang dibaca sudah urut per golongan yang terdiri dari : golongan 1, 2, 3, 4.
Jika golongan berubah maka cetak TOTAL GAJI per golongan dan ganti halaman baru serta NOMOR dimulai dari 1.
Pada akhir laporan cetak TOTAL SELURUH GAJI yaitu jumlah total gaji seluruh golongan.
Data yang dibaca terdiri dari nomor pegawai, nama pegawai, golongan dan gaji bersih.
yang dibaca sudah urut per golongan yang terdiri dari : golongan 1, 2, 3, 4.
Jika golongan berubah maka cetak TOTAL GAJI per golongan dan ganti halaman baru serta NOMOR dimulai dari 1.
Pada akhir laporan cetak TOTAL SELURUH GAJI yaitu jumlah total gaji seluruh golongan.
Flowchart :
Database :
Script :
Flowchart diatas dijemahkan ke script. Untuk
mudahnya gunakan bahasa PHP + database MySQL. Script ditulis dengan aplikasi gPHPEdit, Kompozer dibantu
dengan tool Adee HTML to PHP Converter dan Adee HTML Parser
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'server';
$dbname = 'latihan';
$sw = 0;
$tot_gaji_gol=0;
$tot_gaji_all=0;
$no=0;
$gol_current=0;
$flag_awal=0;
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error Koneksi');
mysql_select_db($dbname);
$perintah = "select * from gaji order by golongan asc";
$hasil=mysql_query($perintah);
while ($row=mysql_fetch_array($hasil)){
$nopeg=$row["nopeg"];
$nama=$row["nama"];
$golongan=$row["golongan"];
$gaji=$row["gaji"];
$no=$no+1;
if($golongan <> $gol_current) {
$gol_current = $golongan;
$sw=0;
}
//cek switch, jika 0 cetak judul & header tabel, ubah switch jadi 1
if($sw==0){
//tutup tabel
if ($flag_awal > 0) {
echo "</tbody>";
echo "</table>";
echo "Total Gaji : " . $tot_gaji_gol;
echo "<p></p>";
}
//cetak judul
echo "<strong>Tabel Gaji PT.ABC</strong>";
echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>";
echo "<tbody>";
echo "<tr>";
echo "<td style='vertical-align: top; background-color: rgb(204, 204, 255);'>NO<br></td>";
echo "<td style='vertical-align: top; background-color: rgb(204, 204, 255);'>NOPEG<br></td>";
echo "<td style='vertical-align: top; background-color: rgb(204, 204, 255);'>NAMA<br></td>";
echo "<td style='vertical-align: top; background-color: rgb(204, 204, 255);'>GOLONGAN<br></td>";
echo "<td style='vertical-align: top; background-color: rgb(204, 204, 255);'>GAJI<br></td>";
echo "</tr>";
$sw=1;
$flag_awal=$flag_awal+1;
$gol_current=$golongan;
$tot_gaji_gol = 0;
}
echo "<tr>";
echo "<td style='vertical-align: top;'>$no<br></td>";
echo "<td style='vertical-align: top;'>$nopeg<br></td>";
echo "<td style='vertical-align: top;'>$nama<br></td>";
echo "<td style='vertical-align: top;'>$golongan<br></td>";
echo "<td style='vertical-align: top;'>$gaji<br></td>";
echo "</tr>";
$tot_gaji_gol=$tot_gaji_gol + $gaji;
$tot_gaji_all =$tot_gaji_all + $gaji;
}
// tutup tabel
echo "</tbody>";
echo "</table>";
echo "Total Gaji : " . $tot_gaji_gol;
echo "<p></p>";
echo "Total Seluruh Gaji : " . $tot_gaji_all;
?>
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'server';
$dbname = 'latihan';
$sw = 0;
$tot_gaji_gol=0;
$tot_gaji_all=0;
$no=0;
$gol_current=0;
$flag_awal=0;
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error Koneksi');
mysql_select_db($dbname);
$perintah = "select * from gaji order by golongan asc";
$hasil=mysql_query($perintah);
while ($row=mysql_fetch_array($hasil)){
$nopeg=$row["nopeg"];
$nama=$row["nama"];
$golongan=$row["golongan"];
$gaji=$row["gaji"];
$no=$no+1;
if($golongan <> $gol_current) {
$gol_current = $golongan;
$sw=0;
}
//cek switch, jika 0 cetak judul & header tabel, ubah switch jadi 1
if($sw==0){
//tutup tabel
if ($flag_awal > 0) {
echo "</tbody>";
echo "</table>";
echo "Total Gaji : " . $tot_gaji_gol;
echo "<p></p>";
}
//cetak judul
echo "<strong>Tabel Gaji PT.ABC</strong>";
echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>";
echo "<tbody>";
echo "<tr>";
echo "<td style='vertical-align: top; background-color: rgb(204, 204, 255);'>NO<br></td>";
echo "<td style='vertical-align: top; background-color: rgb(204, 204, 255);'>NOPEG<br></td>";
echo "<td style='vertical-align: top; background-color: rgb(204, 204, 255);'>NAMA<br></td>";
echo "<td style='vertical-align: top; background-color: rgb(204, 204, 255);'>GOLONGAN<br></td>";
echo "<td style='vertical-align: top; background-color: rgb(204, 204, 255);'>GAJI<br></td>";
echo "</tr>";
$sw=1;
$flag_awal=$flag_awal+1;
$gol_current=$golongan;
$tot_gaji_gol = 0;
}
echo "<tr>";
echo "<td style='vertical-align: top;'>$no<br></td>";
echo "<td style='vertical-align: top;'>$nopeg<br></td>";
echo "<td style='vertical-align: top;'>$nama<br></td>";
echo "<td style='vertical-align: top;'>$golongan<br></td>";
echo "<td style='vertical-align: top;'>$gaji<br></td>";
echo "</tr>";
$tot_gaji_gol=$tot_gaji_gol + $gaji;
$tot_gaji_all =$tot_gaji_all + $gaji;
}
// tutup tabel
echo "</tbody>";
echo "</table>";
echo "Total Gaji : " . $tot_gaji_gol;
echo "<p></p>";
echo "Total Seluruh Gaji : " . $tot_gaji_all;
?>
Result :
Dari penjelasan diatas, dapat kita lihat implementasi dan korelasi nyata dari
soal cerita, flowchart, desain database, sampai dengan scripting.
Teknik switching sebenarnya sederhana, artinya kita harus bisa menentukan kapan script akan mencetak header tabel.
Berikut hasilnya :
Teknik switching sebenarnya sederhana, artinya kita harus bisa menentukan kapan script akan mencetak header tabel.
Berikut hasilnya :
Sumber :
0 komentar:
Posting Komentar