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

Resume Praktikum Algoritma Pemrograman (C++)

Setelah bersusah payah mengikuti Praktikum Algoritma Pemrograman, dengan berburu Tanda Tangan, dan menghadapi bermacam – macam jenis manusia (Asisten Lab). Sengaja dipost, jaga – jaga kalau suatu saat ada yang butuh, kan bisa buat referensi ๐Ÿ™‚ …
Untuk lebih jelasnya, silahkan download saja file hasil Praktikum selama 4 Pertemuan, berisikan FLowchart dan Contoh Programnya, tidak lupa beserta laporannya :mrgreen: di link berikut : http://www.ziddu.com/download/12671208/Praktikum-AlPro.zip.html
Tambahan ni,,, kemungkinan file yang aku upload ini ada passwordnya, jika ya coba masukkan rendramm2.wordpress.com sebagai passwordnya ๐Ÿ˜€

Fungsi validasi HTML Form – Javascript

Untuk dapat memakai fungsi validasi ini dibutuhkan beberapa fungsi tambahan seperti fungsi ucwords(), startsWith() dan isEmail(), sedangkan fungsi pemanggilnya adalah validasi(). Berikut source code javascriptnya :

function validasi(delimiter,elementId){
	var formElement;
	var jumlahArray;
	var i;
	var formName = "";
	var messageAlert = "";

	formElement = elementId.split(delimiter);

	for(i=0;i<formElement.length;i++){
		if(formElement[i].startsWith("email")){
			if(document.getElementById(formElement[i]).value == ""){
				formName = formElement[i];
				messageAlert = "Form Email masih kosong";
				break;
			}else if(!isEmail(document.getElementById(formElement[i]).value)){
				formName = formElement[i];
				messageAlert = "Format Email Anda kurang tepat";
				break;
			}
		}else if(document.getElementById(formElement[i]).value == ""){
			formName = formElement[i];
			messageAlert = 'Maaf, silahkan isi form '+ucwords(formName);
			break;
		}
	}

	if(formName != ""){
		document.getElementById(formName).focus();
		alert(messageAlert);
		return false;
	}else{
		return true;
	}
}

Diatas hanyalah fungsi pemanggil, untuk mendapatkan fungsi pendukungnya silahkan download source file aslinya disini. Untuk implementasi dari fungsi tersebut diatas silahkan lihat source berikut :

<form method="post" action="">
	<table border="0" cellpadding="1" cellspacing="1">
		<tr>
			<td width="15%">Nama Lengkap</td>
			<td align="left"><input type="text" name="nama" id="nama lengkap"></td>
		</tr>
		<tr>
			<td align="left">Email</td>
			<td align="left"><input type="text" name="email" id="email"></td>
		</tr>
		<tr>
			<td align="left">Alamat Lengkap</td>
			<td align="left"><textarea name="address" id="alamat"></textarea></td>
		</tr>
		<tr>
			<td align="left" style="border:0px;">&nbsp;</td>
			<td align="left" style="border:0px;">
				<input type="submit" name="register" onclick="return validasiDaftar(',','nama lengkap,email,alamat')" value="Daftar Sekarang">
			</td>
		</tr>
	</table>
</form>

Single Linked List Head & Tail – C++ ( Struktur Data )

//index.cpp

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <singleLHT.cpp>

using namespace std;

int main(){
    int databaru,pil;
    char j,w;
    do{
		cout<< "berapa nilai yang ingin anda masukkan\n";
		cin>>databaru;
		cout<<"\ndepan(1) atau belakang(2)?\n";
		cin>>pil;
		if(pil==1){
			insertDepan(databaru);
		}else{
			insertBelakang(databaru);
		}
		tampil();
		cout<<"apakah anda ingin memasukkan data (y/t)? ";
		cin>>j;
    }
    while(j=='y');

    do{
		cout<<"hapus depan(1) dan hapus belakang(2)? ";
		cin>>pil;
		if(pil==1){
			hapusDepan();
		}else{
			hapusBelakang();;
		}
		tampil();
		cout<<"apakah anda ingin hapus data (y/t)? ";
		cin>>w;
    }
    while(w=='y');
    getch();
    return 0;
}

Continue reading

Program Random Character C++

Program ini digunakan untuk mendpatkan hasil dari randomisasi character yang diacak dan dikumpulkan menjadi satu ke dalam suatu string / array character. Program ini dibuat menggunakan C++ dan IDE DevCPP, oke berikut source code nya :

#include <iostream>
#include <ctime>

using namespace std;

int main() {
    char hasil[10];
    srand((unsigned) time(NULL));
    const int passLen = 10;
    for (int i = 0; i < passLen; i++) {
        hasil[i] = (char) (rand() % ('z' - '0' + 1) + '0');
    }
    cout << hasil <<endl;
    system("pause");
}

Contoh Program Algoritma Pemrograman C++

Akhirnya bisa posting thread lagi di blog ini :), ya meskipun mungkin bahan postingannya kurang menarik. Cuma ini sebagai catatan digitalku saja dari tugas praktikum yang pernah aku jalani dan sempat membuat puyeng :mrgreen:, di dalam postingan ini terdapat beberapa contoh program algoritma pemrograman yang terbuat dari C++ dengan IDE DevCPP, diantaranya adalah sebagai berikut :

  1. Contoh program menampilkan persegi biner dengan tanda silang / tanda X yang tergambar di tengah persegi bintang C++ tersebut
  2. Contoh program yang menampilkan sebuah segitiga bintang biner C++
  3. Contoh program yang dapat mengkonversi sebuah inputan user menjadi kode ASCII
  4. Program yang menghitung perkalian matriks A dan B dengan ordo yang dinamis
  5. Program konversi waktu, dengan inputan user sebagai nilai awal

Diatas adalah list / daftar program yang akan dibahas di dalam postingan ini, untuk hasil eksekusi tiap program tersebut diatas bisa kalian lihat dibawah ini :

Berikut potongan source code dari semua program yang telah aku sebutkan diatas :

void persegi(){
    int baris, temp;
    cout << "Input batas : ";
    cin >> baris;
    temp = baris;
    for(int i=1; i<=baris; i++){
        for(int j=1; j<=baris; j++){
            if(j==i||j==temp)
                cout << "0 ";
            else
                cout << "1 ";
        }
        temp--;
        cout << endl;
    }
}

void segitiga(){
    int l, k, m = 1;
    cout << "Input batas : ";
    cin  >> l;
    for(int i=1;i<=(l+4);i++){
        if(i%2==0) k = 0; else k = 1;
        m = k;
        for(int j=1;j<=i;j++){
            m++;
            if(i+j<=(l+5)){
                if(m%2==1){
                    cout << "0 ";
                }else{
                    cout << "1 ";
                }
            }
        }
        cout<<endl;
    }
}

Diatas kan cuma potongan sekilas, jika ingin download sourcenya full silahkan download di link Download Contoh Program Algoritma Pemrograman ini

Program Perpustakaan Sederhana dengan Java

Perpustakaan Sederhana

Dapat tugas kuliah dari Mata Kuliah Pemrograman Berbasis Objek (PBO) untuk membuat sebuah program perpustakaan sederhana, hanya ada fitur peminjaman dan pengembalian buku. Nah, alhamdulillah ini udah jadi, Program Perpustakaan sederhana berbasis Java.
Database dalam program sederhana ini hanya memakai Array, jadi jika program ditutup, otomatis temporary data yang sudah tersimpan dalam array tertentu akan hilang :), namanya juga sederhana. Berikut selintas source codenya : Continue reading

Contoh Program Exchange Sort C++ dengan fitur Estimasi waktu proses Sorting

Berikut adalah contoh program sorting dengan C++ yang menggunakan metode Exchange Sort. Agak berbeda dengan yang ada pada umumnya, di source code ini aku tambahkan script yang dapat mengukur lamanya waktu saat proses Sorting, tentunya dengan data yang tidak sedikit baru estimasi / alokasi waktunya terlihat berapa detik proses sorting tersebut berlangsung.

#include<iostream>
#include<time.h>

/* =====================================
Program Sorting Data - Exchange Sort
- Rendra Kurniawan ( 06.2009.1.04900 )
========================================*/

using namespace std;

int main(int argc, char *argv[]){
    int nInput, i=0, j;
    cout << "Berapa banyak inputan angka yang Anda ingin input ? ";
    cin >> nInput;
    // cek apakah yang diinput benar angka
    if(!cin.fail()){
        int kumpulanAngka[nInput];
        int tempKumpulanAngka[nInput];
        int swapExchange;
        time_t awal, akhir;

        // proses input data dan simpan data
        for(i;i<nInput;i++){
            cout << "\nMasukkan angka ke - " << (i+1) << " : ";
            cin >> kumpulanAngka[i];
            if(cin.fail()){
                kumpulanAngka[i] = 0;
            }
            tempKumpulanAngka[i] = kumpulanAngka[i];
        }

        // proses sorting dengan metode exchange sort
        awal = time(NULL);
        for(i=0;i<nInput;i++){
            for(j=(i+1);j<nInput;j++){
                if(kumpulanAngka[i]>kumpulanAngka[j]){
                    swapExchange = kumpulanAngka[j];
                    kumpulanAngka[j] = kumpulanAngka[i];
                    kumpulanAngka[i] = swapExchange;
                }
            }
        }
        akhir = time(NULL);

        double lamaWaktu = akhir - awal;

        cout <<endl<<endl << "Kumpulan data sebelum diurutkan : "<<endl;
        for(i=0;i<nInput;i++){
            cout << tempKumpulanAngka[i] << " ";
        }
        cout <<endl<<endl << "Kumpulan data setelah diurutkan : "<<endl;
        for(i=0;i<nInput;i++){
            cout << kumpulanAngka[i] << " ";
        }
        cout <<endl<<endl << "Lama waktu yang dibutuhkan sorting sekitar " << lamaWaktu << " detik";
        cout <<endl<<endl;
    }else{
        cout << "Maaf, inputan harus berupa angka";
    }
    system("pause");
    return EXIT_SUCCESS;
}

Interpolation Search dan Contohnya – C++

Interpolation Search adalah sebuah algoritma atau metode untuk mencari nilai key yang diberikan dalam array diindeks yang telah diperintahkan oleh nilai – nilai kunci. Metode ini didasari pada proses pencarian nomor telepon pada buku telepon yang mana manusia mencari melalui dengan nilai kunci yang terdapat pada buku. Teknik searching ini dilakukan dengan perkiraan letak data. Rumus posisi relatif kunci pencarian dihitung dengan rumus berikut ini :

Rumus Interpolation Search

– Jika data[posisi] > data yg dicari, high = pos โ€“ 1
– Jika data[posisi] < data yg dicari, high = pos + 1

UPDATE 26 Mei 2016
Setelah melihat bahwa peminat dari artikel ini sangat banyak, saya mohon maaf karena link download sebelumnya sudah hilang. Ini saya berikan link download terbaru :

Direct Download

Mirror Download

Oke, sekian pendahuluan mengenai Interpolation Search, sekarang aku ingin membagi sesuatu yang mungkin bisa bermanfaat buat temen – temen yang sedang ngerjakan tugas untuk Implementasi Interpolation Search dengan C++.
Source code dibawah ini adalah contoh implementasi dari satu fungsi yang aku buat tersendiri di luar fungsi main() yang bernilai int, dan bervalue / nilai yang dihasilkan fungsi ini adalah posisi index array dimana tempat / posisi data yang Anda cari pada suatu array / kumpulan data yang sudah ada.

#include <iostream>
#include <string.h>

using namespace std;

int main(int argc, char *argv[]){
    int tempFound = 0;
    int kodeBarang[] = {101,102,201,301,401,402,501,601,602,701};
    string namaBarang[] = {"Flashdisk Kingston", "Flashdisk Data Traveler", "RAM VGEN",
                           "VGA ATI RADEON", "Laptop Asus", "Netbook HP", "CD ROM", "Mouse",
                           "Keyboard", "Monitor LG"};
    int stokBarang[] = {5, 7, 8, 9, 2, 3, 4, 6, 4, 5};
    string lokasiBarang[] = {"Rak 5B", "Rak AA", "Rak 12D", "Rak B6", "Rak VC7", "Rak AB12",
                             "Rak G23", "Rak K9", "Rak 5J", "Rak D5"};
    int kodeKunci;
    cout << "\n\tMasukkan kode barang : "; cin >> kodeKunci;

    tempFound = interpolationSearch(kodeBarang, kodeKunci, (sizeof(kodeBarang)/4));
    if(tempFound>=0){
        cout << "\n\n\tBarang yang Anda cari ditemukan, berikut detailnya : " <<endl;
        cout << endl;
        cout << "\tNama Barang : " << namaBarang[tempFound] <<endl;
        cout << "\tStok Barang : " << stokBarang[tempFound] <<endl;
        cout << "\tLokasi      : " << lokasiBarang[tempFound] <<endl <<endl;
        cout << "\t";
    }else{
        cout << "\n\n\tMohon maaf, barang yang Anda cari belum ada\n\t" <<endl;
    }

    system("pause");
    return EXIT_SUCCESS;
}

Dari source code tersebut diatas, dapat kita lihat satu baris yang menunjukkan pemakaian dari fungsi Interpolation Search yang dibuat diluar fungsi main() c++, kode tersebut adalah tempFound = interpolationSearch(kodeBarang, kodeKunci, (sizeof(kodeBarang)/4));
Untuk source code lengkapnya silahkan download file Tugas Struktur Dataku ini, mengenai Interpolation Search dengan C++

Hitung Jarak Antara 2 Tanggal V.2 PHP

Hihi,,, aku telah menemukan cara bagaimana kita bisa menghitung jarak antara 2 buah tanggal dengan lebih simple dan lebih mudah. Karena saya tahu di postingan yang sama sebelumnya mengenai hitung jarak antara 2 tanggal scriptnya begitu rumit. Karena itu sekarang aku mau berbagi kepada para pembaca tentang Bagaimana Cara Menghitung Jarak Antara 2 Tanggal Menggunakan PHP. Silahkan pahami source code di bawah ini :

<?php
$tglAwalย  = '2009-11-13';
$tglAkhir = '2010-1-5';
print ((strtotime($tglAkhir)-strtotime($tglAwal))/86400);
// akan menghasilkan nilai 53, itu menunjukkan jaraknya adalah 53 hari
?>

Yaph,,, gimana, mudah bukan :mrgreen:

Update lagi ni … untuk yang ini bisa diaplikasikan buat mencari umur atau juga mengetahui jarak antara 2 tanggal di PHP secara detail, silahkan disimak :

<?php
function datediff($tgl1, $tgl2){
    $tgl1 = (is_string($tgl1) ? strtotime($tgl1) : $tgl1);
    $tgl2 = (is_string($tgl2) ? strtotime($tgl2) : $tgl2);
    $diff_secs = abs($tgl1 - $tgl2);
    $base_year = min(date("Y", $tgl1), date("Y", $tgl2));
    $diff = mktime(0, 0, $diff_secs, 1, 1, $base_year);
    return array( "years" => date("Y", $diff) - $base_year,
                  "months_total" => (date("Y", $diff) - $base_year) * 12 + date("n", $diff) - 1,
                  "months" => date("n", $diff) - 1,
                  "days_total" => floor($diff_secs / (3600 * 24)),
                  "days" => date("j", $diff) - 1,
                  "hours_total" => floor($diff_secs / 3600),
                  "hours" => date("G", $diff),
                  "minutes_total" => floor($diff_secs / 60),
                  "minutes" => (int) date("i", $diff),
                  "seconds_total" => $diff_secs,
                  "seconds" => (int) date("s", $diff)  );
}

echo '<form name="form1" method="post" action="">';
echo '<input type="text" name="tgl" id="tgl"><input type="submit" name="hitung" id="hitung" value="Hitung"></form>';
$a = datediff($_POST['tgl'], date("Y/m/d/ h:m:s"));
if($_POST['tgl']){
    echo 'umur anda '.$a[years].' tahun, '.$a[months].' bulan, '.$a[days].' hari, '.$a[hours].' jam, '.$a[minutes].' menit, '.$a[seconds].' detik';
}
?>