Usman Didi Khamdani
Notes of Journey (Catatan-catatan Perjalanan)

Meski chatting kini tidak lagi melulu dilakukan melalui Yahoo! Messenger (YM), namun bisa juga melalui media yang lain seperti Facebook yang sedang ramai belakangan ini, tetap saja YM mempunyai nilai plus. Selain terintegrasi dengan layanan Yahoo! lainnya seperti email, YM juga kini mempunyai versi webnya yang tidak lagi mengharuskan kita menginstal aplikasinya di komputer kita untuk dapat melakukan chatting. Juga, YM dapat terintegrasi dengan layanan-layanan instant messaging semacam eBuddy, dan bisa langsung diakses dari ponsel. Satu lagi, status online dan offline kita dapat kita tampilkan di situs atau blog kita yang tentu hal ini dapat membantu orang lain menghubungi kita, karena selain tampilan status, orang lain juga dapat langsung menghubungi kita dengan mengklik ikon status yang ada, dengan syarat, pada komputer tempat mengakses situs atau blog kita, telah tersedia aplikasi YM.

Untuk memasang ikon tampilan status di web ataupun blog kita, caranya sangat mudah. Cukup copy & paste script berikut di halaman web ataupun blog Anda:

<a href="ymsgr:sendIM?ID_YM_ANDA"><img style="border: 0px" src="http://opi.yahoo.com/online?u=ID_YM_ANDA&m=g&t=2" alt="YM STATUS" /></a>

Setelah Anda tempel script tersebut (jangan lupa ganti kata ID_YM_ANDA dengan ID YM Anda), maka pada tempat tersebut akan muncul gambar di bawah ini. Gambar sebelah kiri adalah tampilan jika status kita sedang online, sedang gambar di sebelah kanan adalah tampilan saat kita sedang offline.




Mengetahui Status ID YM Orang Lain

Nah, sekarang bagaimana, kalau kita yang ingin tahu status ID YM teman kita (tanpa kita harus login ke YM) dan ternyata dia tidak memasang statusnya di web atau blognya (karena memang tidak punya web ataupun blog :D)?

Mudah saja, cukup copy bagian script di atas: http://opi.yahoo.com/online?u=ID_YM_ANDA&m=g&t=2, ganti ID_YM_ANDA dengan ID YM teman kita, lalu paste di kotak address browser kita, enter ... Cling!! Gambar status seperti di atas pun akan muncul.

By the way, namun coba, ID YM yang Anda masukkan sembarang atau keliru, yang mana ID tersebut ternyata tidak atau belum ada yang menggunakan (misal ID teman kita bocah_ganteng tapi kita salah ketik jadi bovah_ganteng), upss.. ternyata gambarnya nongol juga dengan status offline (padahal kalau kita masukkan ID-nya dengan dengan benar, ternyata dia sedang online) dan parahnya, kita tidak sempat mengkoreksi apakah ID yang kita masukkan benar atau salah. What happened??

Setelah coba-coba browsing sana browsing sini, don't worry, ada kok cara atau script untuk mengetahui ID seseorang bener-bener merupakan ID Yahoo! atau cuman rekaan saja. Dan setelah saya kombinasikan dengan script lain, jadilah class php di bawah ini. Output dari class ini adalah memberitahukan apakah ID Yahoo! yang kita masukkan valid atau tidak. Jika valid, maka akan ada tambahan statusnya, online atau offline.

<?php

# this class is used to check validity and online status of a YM ID
# this class in developed base on script at http://www.gsdesign.ro/blog/how-to-check-if-a-yahoo-user-exits-using-php & http://www.rumahweb.com/journal/yahoo-messenger-indikator-bag-2.htm

# developed by usman didi khamdani at usmankhamdani@gmail.com

class YM {

var $ID; // YM ID will be checked

function Status() {
// firstly, check the validity of ID
$check = file_get_contents('https://edit.yahoo.com/reg_json?PartnerName=yahoo_default&AccountID='.$this->ID.'&ApiName=ValidateFields');
if ( strpos($check,'SUCCESS')===false ) { // if ID is valid, then check the status
$open = fopen("http://opi.yahoo.com/online?u=".$this->ID."&m=t","r");

if(!$open) {
die ("<img src=\"http://opi.yahoo.com/online?u=".$id."&m=g&t=2\"/>");
}

while($read = fread($open, 2048)) {
$status .= $read;
}
fclose($open);

if($status == $this->ID." is ONLINE"){ // output if status is online
echo "<b>".$this->ID."</b> is a valid Yahoo! ID and now is <span style=\"color:#0000ff\">online</span>";
} else {
// output if status is offline
echo "<b>".$this->ID."</b> is a valid Yahoo! ID and now is <span style=\"color:#ff0000\">offline</span>";
}
} else {
// output if ID is not valid
echo "<span style=\"color:#ff0000\"><b>".$this->ID."</b> is not a valid Yahoo! ID</span>";
}
}
}

?>

Simpan terlebih dahulu class tersebut dalam sebuah file, misalnya check_ym.class.php. Untuk menggunakannya, kita tinggal memanggil class tersebut, seperti contoh berikut:

<?php include("check_ym.class.php"); ?>

<!DOCTYPE HTML>
<html>
<head>
<title>Check The Validity and Status of a Yahoo! ID</title>
<meta name="keywords" content="ym,yahoo,yahoo messenger,yahoo!,yahoo! messenger,check,status" />
<meta name="description" content="Script to check if someone has a valid Yahoo! ID or not and to check if someone online or not in YM" />
</head>
<body>
<h3>Check The Validity and Status of a Yahoo! ID</h3>
<hr />

<?php

if(isset($_POST['ID'])) {
$YM = new YM();
$YM->ID = $_POST['ID'];
$status = $YM->Status()."<hr />";
} else {
}

if(isset($status)) {
echo $status;
} else {
}

?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>Yahoo! ID: <input type="text" name="ID" /> <input type="submit" value="Check" />
</form>
</body>
</html>

Klik di sini untuk download source file-nya.

Adakalanya untuk aplikasi yang kita buat, memerlukan perangkat pendukung yang terhubung melalui port serial pada komputer, seperti perangkat modem dan atau ponsel untuk aplikasi sms server. Sebenarnya, untuk mengetahui apakah suatu perangkat sudah terhubung atau tidak, kita bisa "membacanya" dari Device Manager yang ada (klik start->Control Panel->System->Hardware->Device Manager atau klik start->run ketik devmgmt.msc lalu OK). Toh, pada kenyataannya, seringkali hal ini dirasa kurang praktis, terlebih jika penggunaan aplikasi, melibatkan operator atau orang yang tidak begitu familiar dengan sistem komputer.

Device Manager

Pada Visual Basic, persoalan ini bisa ditanggulangi dengan memanfaatkan kontrol MSComm, yang memang disediakan sebagai sarana komunikasi berbasis comm-port. Dengan kontrol ini, dimungkinkan terjadinya pengiriman data dari atau melalui suatu port serial ke aplikasi yang kita buat dan sebaliknya. Seperti misalnya membaca sms yang masuk ke ponsel dan sekaligus melakukan pengiriman sms dari aplikasi kita melalui ponsel tersebut, yang terhubung melalui suatu port serial.

Berikut adalah salah satu cara yang bisa kita gunakan untuk mengecek pada port yang mana suatu perangkat dihubungkan. Jika nantinya perangkat tersebut sudah digunakan untuk aplikasi yang lain, maka hasil yang ada adalah nihil, artinya perangkat tersebut tidak bisa digunakan untuk aplikasi kita. Sebaliknya, jika perangkat tersebut sudah terhubung secara benar dan masih free, akan dihasilkan output berupa nilai COM-nya, misal COM1, COM4 atau COM6. Basis penulisan menggunakan Visual Basic 6.0 dengan output berupa array yang akan ditampilkan pada combo-box.

Untuk menggunakan kontrol MSComm, terlebih dahulu kita harus memasukkannya ke Toolbox, karena secara default kontrol ini tidak ditampilkan di Toolbox.

Pertama, kita buka window Components. Ada beberapa cara untuk membukanya:
1. Klik menu Project->Components
2. Klik Ctrl+T
3. Klik kanan pada Toolbox, lalu pilih Components

Window Components

Selanjutnya akan terbuka window Components. Pada tab Control, cari dan centang Microsoft Comm Control 6.0, lalu klik OK. Nah, sekarang kontrol MSComm telah ditampilkan di Toolbox, dengan ikon berupa gambar telepon. Klik dan seret gambar telepon tersebut ke dalam area form. Pada penggunaannya, kontrol ini tidak akan ditampilkan saat aplikasi dijalankan, tidak seperti ComboBox, TextBox ataupun ButtonCommand. Jadi, tidak masalah mau menempatkan kontrol ini di mana saja.

Kontrol MSComm di Toolbox

Berikutnya, dikarenakan nantinya output akan ditampilkan pada ComboBox, kita perlu memasukkan kontrol ini pula ke dalam form.

Form

Setelah kontrol MSComm dan ComboBox masuk ke dalam form, sekarang kita buka editor Code. Untuk membukanya, ada beberapa cara:
1. Klik ganda pada sembarang area form atau klik ganda pada salah satu kontrol yang ada di form
2. Klik menu View->Code
3. Klik ikon View Code di pojok kanan atas window Project

Setelah editor Code terbuka, pada combo-box Object di bagian kanan atas editor, pilih form hingga pada kotak editor akan muncul:

Private Sub Form_Load()

* tulis kode perintah di sini

End Sub


Ketikkan kode perintah berikut di dalamnya:

    On Error Resume Next

Dim i As Integer

For i = 1 To 100
MSComm1.CommPort = i
MSComm1.PortOpen = True

If MSComm1.PortOpen Then
Combo1.AddItem "COM" & i
MSComm1.PortOpen = False
Else
End If
Next


Sekarang coba klik F5 untuk melihat preview aplikasi. Lihat pada combo-box. Kosong?
Tutup preview aplikasi. Sekarang kita sambungkan kabel data atau sejenisnya ke salah satu port serial. Klik lagi F5. Lihat pada combo-box. Bagaimana??



Penjelasan:

Metode yang kita lakukan adalah mengecek satu persatu port yang ada. Saat port tersebut ditemukan aktif dan masih free (belum dipakai aplikasi apapun), akan ditampilkan nilai COM-nya, sebaliknya, nilai tampilan adalah kosong.

Pertama, kita definisikan variable untuk nilai portnya. Kita gunakan variable i yang kita definisikan sebagai integer: Dim i As Integer

Nilai variable ini adalah dari 1 hingga 100. Sebenarnya tidak harus 100. Angka ini (100) hanya untuk memastikan kemungkinan keberadaan port yang aktif. Jika ragu atau tidak diperlukan, angka ini bisa ditambahkan, atau sebaliknya, dikurangi.

Kedua, dengan menggunakan perintah pengulangan For .. Next, kita lakukan pengecekan melalui perintah: MSComm1.CommPort = i dan MSComm1.PortOpen = True

Perintah MSComm1.CommPort = i menunjuk port mana yang akan dieksekusi (dimulai dari COM1 hingga COM100). Sementara perintah MSComm1.PortOpen = True untuk menguji apakah port tersebut aktif. Jika benar port tersebut aktif dan bisa digunakan, akan dilanjutkan dengan perintah Combo1.AddItem "COM" & i dan MSComm1.PortOpen = False. Sebaliknya, jika ternyata salah (error; port tersebut tidak aktif atau sedang aktif tapi telah digunakan oleh aplikasi lain), tidak ada tindak eksekusi apa-apa.

Perintah
Combo1.AddItem "COM" & i menyatakan untuk menampilkan port yang bersangkutan dalam daftar combo-box. Sementara perintah MSComm1.PortOpen = False adalah untuk mengakhiri uji koneksi terhadap port tersebut.

Agar proses pengujian keberadaan port aktif bisa terus dilakukan berulang hingga port terakhir, kita tambahkan perintah On Error Resume Next. Sebab jika tidak, misalkan ternyata COM1 tidak aktif maka proses akan terhenti hanya sampai pengujian port tersebut.

(Berbagai Sumber)