DSN Less Connection (Connection String) Untuk Menghubungkan PHP Dan DBF File

Thread kali ini adalah mengenai koneksi PHP dengan Database FoxPro / File DBF. Agar bisa koneksi dengan file DBF, biasanya kita perlu koneksi melalui ODBC DSN atau bisa diganti dengan ConnectionString. Namun lebih banyak yang memakai ConnectionString untuk Driver Connectionnya, maka ini saya share 1 ConnectionString yang dapat mengubungkan PHP dengan DBF.

Contohnya adalah sebagai berikut :

<?php
// setting koneksi
// getcwd = fungsi php untuk mengambil direktori yang aktif
// ini berarti mengambil tabel DBF yang berada sama satu direktori
// dengan file yang aktif
$dataSource = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=".getcwd().";";
$conn = odbc_connect($dataSource, "", "");

// set query untuk pemanggilan recordnya
// nama tabelnya adalah OPSTOK.DBF
$sql = 'SELECT * FROM OPSTOK.DBF';
$query = odbc_exec($conn, $strsql) or die (odbc_errormsg());
while($row = odbc_fetch_array($query)){
    echo 'Kolom 1 : '.$row['OPNUMB'].'';
    echo 'Kolom 2 : '.$row['OPNUMBSTAT'].'';
    echo '<hr/>';
}

// tutup koneksi
odbc_close($conn);
?>

Untuk kumpulan ConnectionString di tiap database bisa kalian kunjungi web berikut :

  1. http://www.devlist.com/ConnectionStringsPage.aspx
  2. http://connectionstrings.com/

Contoh Program Deteksi Info Hardware – PERL (Linux)

Selamat siang semua πŸ™‚
Kali ini saya ingin share mengenai bagaimana kita membuat program yang bisa menampilkan properties / detil singkat dari hardware PC/Noteboook kita, dan program ini dibuat menggunakan Bahasa Pemrograman PERL.
Contoh program ini saya gunakan di Ubuntu. Ini merupakan salah satu jawaban dari Soal Praktikum Sistem Operasi saya :mrgreen:

Source codenya adalah sebagai berikut :

$q = "y";
while($q=="y"){
print "\n++++++++++ Program Identifikasi Hardware ++++++++++\n";
print "1). LAN CARD\n";
print "2). DVD/CD RW\n";
print "3). PROCESSOR\n";
print "4). MOTHERBOARD\n";
print "5). HARDDISK\n";
print "6). CHIPSET\n";
print "7). AUDIO\n";
print "Pilih no ? ";
$pilihan = &lt;STDIN&gt;;
if($pilihan==1){
print "LAN CARD : ";
system("lspci | grep \"Ethernet controller:\" | cut -c 30-98");
}elsif($pilihan==2){
print "DVD/CD RW : ";
system("cat /proc/sys/dev/cdrom/info | sed ':a;N;$!ba;s/\n/ /g' | cut -c 1-60");
}elsif($pilihan==3){
print "PROCESSOR : ";
system("lshw -short -class processor | sed ':a;N;$!ba;s/\n/ /g' | cut -c 163-200");
}elsif($pilihan==4){
print "MOTHERBOARD : ";
system("dmidecode --type 2 | sed ':a;N;$!ba;s/\n/ /g;s/ / /' | cut -c 97-140 | sed 's/\t/ /'");
}elsif($pilihan==5){
print "HARDDISK : ";
system("lshw -short -class disk | sed ':a;N;$!ba;s/\n/ /g' | cut -c 163-200");
}elsif($pilihan==6){
print "CHIPSET : ";
system("dmidecode --type 2 | sed ':a;N;$!ba;s/\n/ /g;s/ / /' | cut -c 100-140 | sed 's/\t/ /'");
}elsif($pilihan==7){
print "AUDIO : ";
system("lspci | grep Audio | cut -c 23-90");
}else{
print "Apakah Anda mau mengulang ? (y/n) ";
$q = &lt;STDIN&gt;;
print "\n";
}
}

Mohon maaf jika coding nya agak aneh, maklum masih newbie di PERL πŸ˜€
Semoga bermanfaat

Query SQL Untuk Menghitung Total Record (COUNT) Dari Setiap Value / Primary Yang Berbeda (DISTINCT)

sqlQuery

Assalamualaikum … πŸ™‚
Kali ini aku mau share mengenai SQL Query, dimana dengan query berikut kita bisa mendapatkan Total Record atau kita bisa mengetahui berapa sih total data yang kita maksud ada di dalam rekord tabel?? Untuk lebih jelasnya bisa lihat contoh rekord tabel dibawah ini :

nama_mhs
Rendra
Eko
Budi
Rendra
Hermansah
Hermansah
Budi
Rendra

Nah, dari contoh tabel diatas, kita ingin tahu berapa kali nama Rendra, Eko, Budi dan Hermansah muncul ??? Dengan output / hasil akhir hanya menampilkan nama yang berbeda saja. Semoga kalian tau apa sebenernya aku maksudkan πŸ˜€
Oke, berikut adalah querynya :

SELECT nama_mhs, COUNT( * ) AS total_muncul FROM nama_tabel GROUP BY nama_mhs

Nanti hasil akhirnya adalah sebagai berikut :

nama_mhs total_muncul
Rendra 3
Eko 1
Budi 2
Hermansah 2

Sekian… semoga bisa bermanfaat πŸ˜€

Query Untuk Menghapus Data / Record Yang Sama (Duplikat) Di Dalam Suatu Tabel MySQL

Sesuai dengan judulnya, berikut adalah langkah – langkah yang bisa kalian pakai untuk menghapus data / record yang sama dalam suatu tabel di database MySQL hanya dengan satu Query saja. Pengetahuan ini akudapat dariΒ http://www.justin-cook.com/wp/2006/12/12/remove-duplicate-entries-rows-a-mysql-database-table/

Berikut penjelasan singkatnya …

  1. Buka MySQL Manager, pilih database yang akan diolah, kemudian masukkan query berikut, misal ini aku mau menghapus dari tabel yang bernama “pelanggan”
    CREATE TABLE tabelBaru AS SELECT * FROM pelanggan WHERE 1 GROUP BY email;
    

    “email” itu adalah field yang digunakan sebagai acuan kita untuk membedakan data yang tidak sama

  2. Setelah itu hapus tabel pelanggan, bisa dengan klik kanan – hapus tabel, atau bisa juga dengan sintaks “DROP TABLE pelanggan”
  3. Kemudian rename table “tabelBaru” dengan nama table “pelanggan”
  4. Selesai, coba cek dah sekarang record tabelnya πŸ˜€
Semoga bermanfaat …

Contoh Program Informatika Numerik Dengan Metode Newton Raphson Modifikasi

Thread kali ini aku mau ninggalin jejak / catatan untuk program yang sudah pernah saya buat untuk tugas mata kuliah Informatika Numerik dengan Metode Newton Raphson Modifikasi. Daripada programnya nganggur dan takut untuk ilang tapi suatu saat pengen dibuka lagi, biar gag ilang :mrgreen:
Sebelum itu akan saya bagi penjelasan sedikit mengenai pencarian akar ganda.

Akar ganda (yang biasanya muncul pada kasus2 polynomial berderajat banyak) memiliki karakteristik yang agak unik.
Pada polynomial berderajat genap, posisi kurva f(x) tidak memotong sumbu X. Sehingga yang disebut akar persamaan adalah titik β€˜sentuh/singgung’ kurva dengan sumbu X.
Sementara pada polynomial berderajat ganjil, akar2 tersebut muncul sebagai akibat perpotongan kurva f(x) dengan sumbu X.

Khusus untuk penanganan polynomial berderajat banyak, diperkenalkan metode numeris tertentu (yang dengan beberapa pertimbangan, metode2 ini tidak dapat digolongkan ke dalam kelompok Akolade atau Terbuka) :

  • Metode Faktorisasi
  • Metode Newton-Raphson yang Dimodifikasi

Pada metode Newton-Raphson yang dimodifikasi, dibuat sebuah fungsi baru yang merupakan perbandingan antara fungsi asli dengan turunannya.
u(x) = f(x) / f’(x)

Kemudian dilakukan pengembangan bentuk alternatif dari rumusan Newton-Raphson standar : xi+1 = xi – (u(xi)/u'(xi))
Selanjutnya kedua persamaan di atas (dengan persamaan u(x) yang telah didiferensiasi) disubstitusikan, dan menghasilkan : xi+1 = xi – ( (f(xi)f'(xi)) / (|f'(xi)|2) – f(xi)f”(xi) )

Sekian penjelasan singkat saya mengenai Newton Raphson Modifikasi, untuk Screen Shoot hasil programnnya adalah sebagai berikut :

Contoh Program Informatika Numerik Newton Raphson Modifikasi

Contoh Program Informatika Numerik Newton Raphson Modifikasi

Untuk lebih detailnya silahkan download contoh programnya di link Download Aplikasi Metode Newton Raphson Modifikasi

Membuat TextArea Yang Auto Height

Lama ga posting thread,,, :mrgreen:
Thread kali ini membahas tentang bagaimana caranya membuat suatu textarea yang sudah berisi text agar tidak mempunyai border, scrollbar dan yang lebih utama adalah textarea tersebut bisa otomatis menyesuaikan tingginya dengan isi / text yang ada, backgroundnya pun transparan jadi seakan tidak ada textarea πŸ™‚
Pertama mari kita buat file style css nya ( misal beri nama style.css ) dengan sintaks berikut :

.isiTextArea{
	font-family:"Lucida Sans Unicode",Corbel,TrebuchetMS,Verdana,sans-serif;
	font-weight:bold;
	letter-spacing:-1px;
	font-size:24px;
	line-height:1.2em;
	color:#333;
	border:0;
	overflow:auto;
	width:725px;
	background:transparent;
}

Kemudian buat suatu file html ( misal dengan nama index.html ) dengan isi sebagai berikut :

<html>
    <head>
        <title>Coba Text Area</title>
        <script>
        function autoHeightText(){
            var textArea = document.getElementById('textJudulArea');
            if (navigator.appName.indexOf("Microsoft Internet Explorer") == 0){
	        textArea.style.overflow = 'visible';
	        return;
            }

            while (textArea.scrollHeight > textArea.offsetHeight){
	        textArea.rows++;
            }
        }

        window.onload = autoHeightText;
        </script>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
<body>
<textarea readonly id="textJudulArea" class="isiTextArea">isi</textarea>
</body>
</html>

Dan coba jalankan / buka file index.html tadi menggunakan browser yang ada, semoga berhasil dan bermanfaat πŸ™‚

Contoh Aplikasi Penjadwalan Ujian Tugas Akhir Kuliah Menggunakan PHP

Dalam sistem ini ada beberapa golongan user / hak otorisasi seperti Administrator, Mahasiswa dan Dosen. Dilengkapi dengan messages, reminder dan beberapa fitur lain yang menarik. Jika ingin lebih tahu langsung download saja aplikasi Penjadwalan Tugas Akhir dengan PHP melalui link berikut ini : Download Aplikasi Penjadwalan Tugas Akhir

Tidak lupa juga, database untuk aplikasi tersebut, silahkan download Databasenya disini
Semoga bermanfaat :mrgreen:

Script PHP mengetahui apakah user browsing memakai Mobile Phone atau PC/Laptop

Dicatat aja deh, biar gag lupa siapa tau ada yang butuh, hehe. Ini juga hasil dari browsing sih, cuman lupa darimana aku dapet script ini. Udah lama soalnya dapetnya, baru saya posting. Mohon maaf :mrgreen:

<?php
function isMobile() {
	if(isset($_SERVER["HTTP_X_WAP_PROFILE"])) {
		return true;
	}

	if(preg_match("/wap\.|\.wap/i",$_SERVER["HTTP_ACCEPT"])) {
		return true;
	}

	if(isset($_SERVER["HTTP_USER_AGENT"])){
		$user_agents = array("midp", "j2me", "avantg", "docomo", "novarra", "palmos", "palmsource", "240x320", "opwv", "chtml", "pda", "windows\ ce", "mmp\/", "blackberry", "mib\/", "symbian", "wireless", "nokia", "hand", "mobi", "phone", "cdm", "up\.b", "audio", "SIE\-", "SEC\-", "samsung", "HTC", "mot\-", "mitsu", "sagem", "sony", "alcatel", "lg", "erics", "vx", "NEC", "philips", "mmm", "xx", "panasonic", "sharp", "wap", "sch", "rover", "pocket", "benq", "java", "pt", "pg", "vox", "amoi", "bird", "compal", "kg", "voda", "sany", "kdd", "dbt", "sendo", "sgh", "gradi", "jb", "\d\d\di", "moto");
		foreach($user_agents as $user_string){
			if(preg_match("/".$user_string."/i",$_SERVER["HTTP_USER_AGENT"])) {
				return true;
			}
		}
	}

	if(preg_match("/iphone/i",$_SERVER["HTTP_USER_AGENT"])) {
		return false;
	}

	return false;
}

if (isMobile()) {
	echo "mobile";
}else{
        echo "web";
}
?>

Jika saat eksekusi file/fungsi PHP tadi yang muncul adalah mobile maka Anda sedang menggunakan browser dari Mobile Phone, jika tidak maka menggunakan PC atau sejenisnya.

Fungsi Send SMS yang berisi 1 atau lebih dari 1 SMS dengan Gammu menggunakan PHP

Bingung mau posting apa, ya daripada kosong ni blog aku posting aja salah satu fungsi PHP yang pernah aku buat. Fungsi / Script PHP ini digunakan untuk kirim SMS dengan Gammu sebagai connectornya. Di dalam fungsi ini kalian bisa SMS dengan panjang karakter terserah kalian, jadi SMSnya mau berisi sampe lebih dari 153 Karakter (1 SMS) insyaAllah bisa kekirim jadi satu, karena udah aku buktikan dan sudah banyak aku pakai. Oke silahkan lihat sourcenya dibawah ini :

<?php
function sendSMS($nomorHP, $smsN){
	// $nomorHP = 08484565156,1516546565,61516165165;
	// $nomorHandPhone memecah data dari $nomorHP dalam bentuk array nomor handphone
	$nomorHandPhone = explode(",",$nomorHP);

	$noHp = $nomorHandPhone;
	// menghitung jumlah nomor yang akan dikirimi SMS
	$juml = count($noHp);

	for($i=0;$i<$juml;$i++){
		$qryStatus = "SHOW TABLE STATUS LIKE 'outbox'";
		$hasilQery = mysql_query($qryStatus);
		$dataQuery = mysql_fetch_array($hasilQery);
		// $newForSMS digunakan untuk menyimpan ID yang terbaru dari Primary Key yang ada di table outbox
		// ID ini nanti yang menghubungkan antara table "outbox" dengan table "outbox_multipart"
		$newForSMS = $dataQuery['Auto_increment'];

		$hp = $noHp[$i];

		// jika panjang pesan SMS kurang dari sama dengan 153 karakter
		// dalam gammu 153 karakter = 1 SMS
		if(strlen($smsN)<=153){
			mysql_query("INSERT INTO outbox (DestinationNumber, TextDecoded) VALUES ('".$hp."','".$smsN."')");
		}else{
			// pembulatan keatas berapa total SMS yang akan dikirimkan nantinya
			$jmlSMS = ceil(strlen($smsN)/153);
			// memecah pesan SMS per 153 karakter
			$pecah = str_split($smsN, 153);

			for($j=1;$j<=$jmlSMS;$j++){
				$udh = "050003A7".sprintf("%02s", $jmlSMS).sprintf("%02s", $j);
				$msg = $pecah[$j-1];
				if ($j==1){
					// pesan sms yang sudah dipecah per 153 karakter tadi
					// pecahan pertama disimpan dalam tabel outbox
					$querySend = "INSERT INTO outbox (DestinationNumber, UDH, TextDecoded, ID, MultiPart)
								  VALUES ('".$hp."', '$udh', '".$msg."', '$newForSMS', 'true')";
				}else{
					// pecahan selanjutnya disimpan pada tabel outbox_multipart
					$querySend = "INSERT INTO outbox_multipart(UDH, TextDecoded, ID, SequencePosition)
								  VALUES ('$udh', '".$msg."', '$newForSMS', '$j')";
				}
				mysql_query($querySend);
			}
		}
	}
}
?>

Semoga bermanfaat, mohon saran / kritiknya yang membangun πŸ˜€
Trima Kasih