Nama
: Haryo Fajar Bhagaskoro
Kelas : 1IA17
NPM : 54414833
Mata Kuliah : Algoritma dan Pemrograman 1A
Dosen : Kunto Bayu A, ST.
Kelas : 1IA17
NPM : 54414833
Mata Kuliah : Algoritma dan Pemrograman 1A
Dosen : Kunto Bayu A, ST.
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. Data 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 :
CREATE TABLE `gaji` (
`nopeg` varchar(10) NOT NULL,
`nama` varchar(10) NOT NULL,
`golongan` int(1) NOT NULL,
`gaji` decimal(12,0) NOT NULL,
PRIMARY KEY (`nopeg`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
`nopeg` varchar(10) NOT NULL,
`nama` varchar(10) NOT NULL,
`golongan` int(1) NOT NULL,
`gaji` decimal(12,0) NOT NULL,
PRIMARY KEY (`nopeg`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Script :
Flowchart diatas saya terjemahkan ke
script. Untuk mudahnya saya menggunakan bahasa PHP + database MySQL. Script
saya tulis 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. Semoga bisa mengurangi kebingungan teman-teman, karena
masih banyak yang memahami teori (algoritma, etc), database, dan scripting
secara parsial.
Teknik switching sebenarnya sangat sederhana, artinya kita harus bisa menentukan kapan script akan mencetak header tabel.
Berikut hasilnya :
Teknik switching sebenarnya sangat sederhana, artinya kita harus bisa menentukan kapan script akan mencetak header tabel.
Berikut hasilnya :
Sumber : http://adiriswan.blogspot.com/2010/12/algoritma-pemrograman-teknik-switching.html
Tidak ada komentar:
Posting Komentar