09.16.06

Tutorial RPM

Ditulis dalam Linux, komputer pada 4:14 am oleh fuad

Rpm adalah salah satu software manager di Linux yang bertugas mengatur program, dengan Rpm(distro yang menggunakan antara lain Redhat, Fedora, Mandriva, dan Suse) akan mudah bagi seorang pengguna linux untuk menginstall, mengupdate, dan menghapus program di Linux. Selain Rpm ada beberapa varian software manager lain yang juga terkenal seperti dpkg(distro yang menggunakan antara lain Debian, Ubuntu, Kubuntu)
Untuk menginstall program pada distro yang berbasis Rpm anda membutuhkan file yang berekstensi *.rpm (untuk menginstall program pada distro yang menggunakan dpkg dibutuhkan file berekstensi *.deb) misal anda ingin menginstall file powermanga-0.80-1.fc5.i386.rpm. maka perintah yang harus anda ketikkan adalah “rpm -ivh powermanga-0.80-1.fc5.i386.rpm”. pada user root. Untuk melihat semua software yang telah terinstall pada komputer anda gunakan perintah “rpm -qa”. Jika anda ingin mengetahui apakah suatu software tertentu telah terinstall atau tidak gunakan perintah “rpm -qa | grep <nama program>”, misal untuk mengetahui apakah software powermanga telah terinstall dengan benar maka gunakan “rpm -qa | grep powermanga”. Untuk menghapus program gunakan perintah “rpm -e <nama program>”, jika ingin menghapus powermanga maka perintahnya menjadi “rpm -e powermanga”.

Selanjutnya dengan rpm anda juga bisa mengetahui program apa saja pada yang dependencynya(software yang dibutuhkan oleh software yang lain) kurang. Hal ini terjadi jika saat anda menginstall program anda menggunakan opsi “–nodeps” yang mengakibatkan rpm tidak akan mengecek dependency dari software yang akan diinstall. Untuk mengatasi ini gunakan perintah “rpm -Va –nofiles”. Perintah ini akan mencetak ke layar software yang dependencynya kurang dan software software apa saja yang ia butuhkan.

Kadang kadang seorang pengguna Linux terutama seorang programmer/developer saat menginstall distro tertentu, memilih untuk menginstall semua library(pustaka) yang disediakan. Padahal tidak semua library ini dibutuhkan, untuk mengetahui library mana saja yang tidak dibutuhkan saya punya programnya. Prinsipnya sederhana, cuman mengecek setiap program yang ada pada database Rpm lalu akan mengecek apakah software ini butuh library atau tidak.

download kode dumplibraray.c , untuk menggunakannya kompile terlebih dahulu dengan perintah
[fuad@fuad cpp]$ gcc dumplibrary.c -lrpm -o dumplibrary.exe
perintah di atas akan mengasilkan file “dumplibaray.exe”, untuk menjalankanyya ketikkan
[fuad@fuad cpp]$ ./dumplibrary.exe

Kepastian yang bernama mati

Ditulis dalam Kehidupanku pada 4:05 am oleh fuad

Kematian adalah salah satu misteri terbesar di alam dunia ini dan setiap orang takut akan yang satu ini, padahal dalam Al Qur’an Allah SWT telah menegaskan bahwa tiap tiap yang berjiwa akan merasakan mati, dan itu berarti setiap manusia yang pernah hidup di dunia pasti akan mati. Menurut Quraish Shihab dalam bukunya Wawasan Quran, manusia takut akan kematian disebabkan ketidaktahuan akan apa yang akan terjadi setelahnya, bagaimana nasibnya setelah kematian dan ketakutan akan nasib keluarga yang ditinggalkan. Kejadian sesudah kematian adalah sesuatu yang gaib yang menjadi objek iman, disamping hal hal gaib yang lain. Salah satu dari hikmah kematian yang dikaji oleh salah seorang ulama adalah untuk memotivasi manusia dalam kehidupan agar selalu beriman dan berusaha mengerjakan amal kebaikan menurut standar ALLAH SWT. Dengan adanya kematian yang waktunya tidak diketahui membuat seorang manusia seperti musafir yang singgah di suatu tempat , dalam keadaan seperti ini tentunya sang musafir tidak akan gegabah berleha leha di tempat persinggahannya karena ia tahu bukan itu tujuannya. Ia akan istrihat menyimpan tenaga dan mengisi perbekalan agar selamat sampai tujuan. Di samping itu dengan kematian ALLAH SWT akan menyempurnakan “nilai keadilan”. Bukankah masih banyak orang yang berbuat kebaikan tapi belum mendapatkan genjaran kebaikannya secara sempurna dan bukankah pula sekian banyak orang melakukan kejahatan dan belum mendapatkan balasan kejahatanyya.
“Jangan takut mati karena pasti terjadi, tapi takutlah akan kehidupan sesudah kematian”

09.09.06

RPM API Pada Java Dengan JNI

Ditulis dalam Java, komputer pada 3:55 am oleh fuad

Sebelum membahas lebih lanjut, saya akan memberi perkenalan singkat apa itu JNI. JNI adalah kependekan dari Java Native Interface. Dengan JNI, kelas kelas di Java bisa memanggil prosedur/method yang dibuat dengan menggunakan C/C++ dan sebaliknya program yang kita buat dengan C/C++ bisa menggunakan kelas kelas yang dibuat dengan Java.
Pada Tutorial ini saya akan membahas bagaimana membuat program Java yang mencetak ke konsole dependency dari suatu paket RPM yang telah terinstall sebelumnya.

Catatan:

Tutorial ini dibuat dan dicoba pada sistem operasi linux, dengan Java terinstall pada /usr/java/jdk1.5.0_06/ dan direktori kerja pada /home/fuad/java/JNI

Langkah 1:
Ketiklah kode di bawah ini dan simpan pada file dengan nama RpmProject.java:

public class RpmProject {
public native static Object[] getDependencies();

static{
System.loadLibrary(“RpmProject”);
}
public static void main(String[] args) {
Object [] str=RpmProject.getDependencies();
for(int i=0; i<str.length; i++)
System.out.println(str[i]);
}

}

metode getDescriptionAndDependencies() adalah metode yang akan diimplementasikan dengan cara native dengan menggunakan C/C++. Untuk memberitahu ini pada kompiler maka kita memberinya keyword native.

static{
System.loadLibrary(“RpmProject”);
}

kode di atas digunakan untuk memuat(menload) library yang bernama(“libRpmProject”, perhatikan library yang dimuat adalah libRpmProject.so/.dll bukan RpmProject.so/.dll) Library yang dimuat adalah library yang berisi implementasi dari method native, dalam tutorial ini adalah method getDescriptionAndDependencies().

Langkah 2:
Kompile kelas di atas
[fuad@fuad JNI]$ javac RpmProject.java

Selanjutnya buat file header kelas di atas dengan
[fuad@fuad JNI]$ gjnih RpmProject, jika menggunakan java GNU atau
[fuad@fuad JNI]$ javah RpmProject, jika menggunakan Java Sun.
Hal yang perlu diperhatikan di sini adalah yang menjadi parameter adalah class pada java(tidak berekstensi) bukan kode sumber(*.java).
langkah di atas akan menghasilkan header “RpmProject.h”.

Langkah 3:
Buka file “RpmProject.h” tambahkan variabel pada kedua parameter, dengan nama terserah anda.
file awal “RpmProject.h” :
/* DO NOT EDIT THIS FILE – it is machine generated */
#include <jni.h>
/* Header for class RpmProject */

#ifndef _Included_RpmProject
#define _Included_RpmProject
#ifdef __cplusplus
extern “C” {
#endif
/*
* Class: RpmProject
* Method: getDescriptionAndDependencies
* Signature: ()[Ljava/lang/Object;
*/
JNIEXPORT jobjectArray JNICALL Java_RpmProject_getDependencies
(JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif

file "RpmProject.h" setelah diedit:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class RpmProject */

#ifndef _Included_RpmProject
#define _Included_RpmProject
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: RpmProject
* Method: getDescriptionAndDependencies
* Signature: ()[Ljava/lang/Object;
*/
JNIEXPORT jobjectArray JNICALL Java_RpmProject_getDependencies
(JNIEnv *env, jclass cl);

#ifdef __cplusplus
}
#endif
#endif
Langkah 4:
Buat implementasi dari file header di atas dengan nama RpmProject.c#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

#include <rpm/rpmlib.h>
#include <rpm/rpmts.h>
#include <rpm/rpmdb.h>
#include <rpm/rpmds.h>

#include "RpmProject.h"
JNIEXPORT jobjectArray JNICALL Java_RpmProject_getDependencies (JNIEnv *env, jclass cl){
rpmdb * pdb;
rpmReadConfigFiles(NULL,NULL);
printf("Config files read \n");

int dbStatus = rpmdbOpen("", &pdb, O_RDONLY, 0644);

if (dbStatus) {
// error opening
printf("Error on opening RPM Database: (%d) %s\n", rpmErrorCode(), rpmErrorString());
} else {
printf("RPM Database opened!\n");
}

rpmdbMatchIterator mi = rpmdbInitIterator(pdb, RPMDBI_PACKAGES, NULL, 0);
rpmdbSetIteratorRE(mi,RPMTAG_NAME, RPMMIRE_DEFAULT, "gstreamer");
printf("Iterator initialized!\n");
Header header;
int i;
jobjectArray array;
while (header = rpmdbNextIterator(mi)) {
rpmds Rpmds=rpmdsNew(header, RPMTAG_REQUIRENAME , (RPMSENSE_EQUAL|RPMSENSE_LESS));
jstring kal=(*env)->FindClass(env,"java/lang/String");
array = (*env)->NewObjectArray(env,rpmdsCount(Rpmds),kal,NULL);
for(i=0; i<rpmdsCount(Rpmds); i++){
rpmdsNext(Rpmds);
(*env)->SetObjectArrayElement(env, array, i, (*env)->NewStringUTF(env,rpmdsN(Rpmds)));
}
rpmdsFree(Rpmds);

}

rpmdbFreeIterator(mi);
printf("Iterator Finished!\n");
rpmdbClose(pdb);
printf("RPM Database closed!\n");

return array;

}

Penjelasan

rpmReadConfigFiles(NULL,NULL);, berfungsi membaca konfigurasi dari database rpm yang ada pada sebuah sistem/komputer. kode ini wajib adanya.

int dbStatus = rpmdbOpen("", &pdb, O_RDONLY, 0644); berfungsi membuka database RPM

rpmdbMatchIterator mi = rpmdbInitIterator(pdb, RPMDBI_PACKAGES, NULL, 0); berfungsi mengambil semua paket/software yang ada pada database.

rpmdbSetIteratorRE(mi,RPMTAG_NAME, RPMMIRE_DEFAULT, "gstreamer"); berfungsi memfilter/menyaring paket yang telah dimuat tadi berdasarkan nama paket(RPMTAG_NAME). Nama paket yang digunakan di sini adalah "gstreamer".

jobjectArray array; adalah variabel khsusus pada JNI. untuk komunikasi antara Java dengan C/C++ digunakan suatu variabel khusus (http://java.sun.com/developer/onlineTraining/Programming/JDCBook/index.html). Karena pada metode getDependencies pada kelas Java tadi meminta mengembalikan nilai yag bertipe array objek, maka nilai yang dikembalikan pada fungsi ini harus variabel JNI yang bertipe jobjectArray.

rpmds Rpmds=rpmdsNew(header, RPMTAG_REQUIRENAME , (RPMSENSE_EQUAL|RPMSENSE_LESS));
Kode di atas mengambil semua dependency dari sebuah paker berdasarkan nilai headernya

jstring kal=(*env)->FindClass(env,"java/lang/String");
Memanggil kelas pada java yang akan digunakan pada pengembalian nilai nanti.

array = (*env)->NewObjectArray(env,rpmdsCount(Rpmds),kal,NULL);
Membuat array objek baru yang berisi string(sesuai tipe variabel "kal") dengan panjang sebanyak rpmdsCount(Rpmds)

for(i=0; i<rpmdsCount(Rpmds); i++){
rpmdsNext(Rpmds);
(*env)->SetObjectArrayElement(env, array, i, (*env)->NewStringUTF(env,rpmdsN(Rpmds)));
}

Untuk setiap dependency yang dimuat akan dimasukkan ke dalam variabel array pada indeks i.

Langkah 5:

Kompile file di atas
[fuad@fuad JNI]$ gcc -c -fPIC -I/usr/java/jdk1.5.0_06/include/ -I/usr/java/jdk1.5.0_06/include/linux/ RpmProject.c
hasil dari kompilasi di atas adalah file RpmProject.o

Selanjutnya buat library libRpmProject.so dengan cara
[fuad@fuad JNI]$ gcc -shared -o libRpmProject.so RpmProject.o -lrpm -lrpmdb
hasil dari kompilasi di atas adalah file libRpmProject.so

Langkah 6:

Setelah kelima langkah di atas berhasil maka kelas java “RpmProject” sudah bisa dijalankan
[fuad@fuad JNI]$ java RpmProject

jika saat menjalankan anda mendapatkan error:
Exception in thread “main” java.lang.UnsatisfiedLinkError: no RpmProject in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at RpmProject.<clinit>(RpmProject.java:10)
maka anda harus terlebih dahulu mengeset variabel LD_LIBRARY_PATH yang menunjuk file libRpmProject.so.
[fuad@fuad JNI]$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/fuad/java/JNI/

H+7 KKN

Ditulis dalam Kehidupanku pada 3:39 am oleh fuad

Minggu ini adalah minggu pertamaku kuliah lagi setelah dua bulan turun gunung, mendalami ilmu di perguruan  kkn Bid. Dalam minggu ini aku betul betul merasa kehilangan suasana Kkn, kehilangan internet, kehilangan berita yang selalu up to date, kehilangan teman teman Kkn. Hari hari ku diisi dengan pencarian ide untuk tugas akhir, topik yang kuambil adalah sistem cerdas. Jadi aku mengeksplorasi hal yang menyangkut Intelligent agent, Data mining, Jaringan syaraf tiruan, Algoritma genetika, dll. Sempat ada beberapa ide sih tapi tidak tau bakal diterima sama dosen pembimbing ku  atau tidak.  Minggu ini juga aku dapat berita kalau bapak dari salah satu teman Kkn ku meninggal dunia. Innalillahi Wa innailaihi rajiun. Semoga amal ibadah beliau diterima di sisiNYA.  ”Selalu lah mengingat mati, sesungguhnya selalu mengingat kematian adalah sesuatu yang bijak”.

Hari seninku diisi dengan pencarian ide tugas akhir, niat awalnya mau kuliah tapi berhubung kesehatan badan kurang mendukung terpaksa seharian di kamar depan komputer, bosan juga tapi asyik.

Hari selasa, ada wawancara dengan calon pemandu Aai(Asistensi Agama Islam) dilanjutkan dengan kunjungan ke pameran buku islami. Dari hasil kunjungan berhasil kubawa pulang tiga buku yang sudah lama kucari(Alhamdulillah) dan satu pengetahuan baru, bahwa ternyata rata rata tafsir Qur’an yang dijual di Indonesia  dijual satu paket(Juz 1 sampai Juz 30) dengan harga mendekati Satu Juta Rupiah. Kalau harganya kayak gitu mana bisa dibeli sama kalangan bawah.

Di hari yang sama aku membaca salah satu artikel di internet yang membahas tentang persekongkolan Barat, Israel dan Kalangan Syiah(golongan dalam islam) untuk membuat negara persia raya di Timur tengah. Dalam artikel itu disebutkan juga bahwa perang antara Hizbullah(milisi Syiah) dengan Israel adalah perang sandiwara dan negara yang selama ini dipublikasi oleh media bertentangan dengan AS seperti Iran dan Suriah. Sebenarnya bersekongkol dengan AS  dalam masalah ini. Betul betul membingungkan, apa ini yang betul betul terjadi atau ini hanya politik adu domba Amerika untuk memecah belah kaum muslimin.

(” Ya ALLAH tampakkanlah bagi saya hal hal yang baik di mata saya menjadi baik dan berilah kekuatan untuk mengikutinya dan tampakkanlah hal hal yang buruk di mata saya menjadi buruk dan berilah kekuatan pada hamba mu ini untuk menghindarinya”)

Hari Rabu ikut rapat persiapan Ramadhan di masjid dekat kos-kosan ku. Aku ambil bagian jadi seksi ibadah, tugasnya sederhana saja mempersiapkan shalat lima waktu, shalat tarawih, dan tadarusan Al Quran setiap hari selama sebulan penuh. Lumayan investasi akhirat. Ya Ramadhan penghulu dari segala bulan beberapa minggu lagi mampir, manfaatkan betul betul peluang emas ini untuk meningkatkan kualitas ketakwaan kita agar di akhirat kelak kita menjadi orang orang yang beruntung. Sejenak mari kita renungkan betapa kita harus bersyukur karena bertemu kembali bulan Ramadhan yang penuh ampunan.
Hari kamis, Jumat nemu fenomena aneh, dari beberapa blog teman Kkn ku yang kubaca rata rata curhat kalo mereka mengalami Cinlok(Cinta lokasi) , Ha…ha…ha…

Hari Sabtu, nulis Tutorial Penggunaan RPM API di JAVA menggunakan JNI.

09.02.06

Selamat Tinggal KKN

Ditulis dalam Kehidupanku pada 1:45 am oleh fuad

Akhirnya Kkn tematik yang saya jalani berakhir juga, dua bulan berlalu terasa sangat cepat. Alhamdulillah semua program kerja yang kami rencanakan berjalan dengan cukup baik, walaupun masih banyak kekurangan di sana sini. Untuk program kerja sub unit ku pembuatan data centre Alhamdulillah tidak molor seperti yang diperkirakan di awal, Aku baru tau ternyata project leader data centre ini awalnya juga tidak yakin kalau proyek ini bakal selesai dia ngomong pas penarikan Kkn kemarin, ku kira cuma aku yang tidak yakin. Ternyata positif thinking itu betul betul berguna, yang pasti jangan berprasangka negatif.

” Hai orang yang beriman, jauhilah prasangka karena sesungguhnya sebagian dari sangkaan sangkaan itu adalah dosa ” (QS. al Hujurat:12)

Tim KKN BID 2006

Tim Developer

Sahal : Visioner, Punya kemampuan melihat peluang sekecil apapun. Kalau di dunia sepak bola Big Boss developer ini seperti Andrea Pirlo di ACMilan atau Deco di Barcelona, Walaupun kadang kadang punya perbedaan dengan saya(ni orang penggemar Gnome(Window Manager di Linux) aku penggemar KDE, Dia .NET maniak, saya Java maniak). Tapi perbedaan di antara kita memberi warna di kehidupan sehingga dunia tetap berputar mengiringi zaman. Lihat saja di sekitar kita alam berpadu berjuta ragam, saling berkait menyatu diri atas sunnah Ilahi.

Wim : Penanggung jawab dokumentasi data centre, penulis handal, Bersemangat di manapun berada, Selalu berprasangka baik, Pandai bergaul (ini kayaknya bakat alam), dan teman diskusi yang asyik.

Toni : Programmer modul jalan, super baik, Gitaris dan Atlet yang serba bisa, mirip Gus Dur soalnya kadang kadang bikin komentar yang bikin heboh.

Azis : Programmer modul sekolah, baik banget(boncengin aku dua bulan penuh, man), Selalu ingin tahu, kadang agak pemalu tapi kadang juga bisa jadi gila.

Agro : Programmer modul organisasi, Guru dari segala guru, Master dari segala master, Gro makasih ilmunya.

Dimaz : Programmer modul pasar, Ketua angkatan ilkom 2003, Punya jiwa pemimpin, religius, Peduli pada kepentingan orang.

Sukma : Programmer modul organisasi, orangnya humoris suka sekali ketawa, dijuluki miss developer, pokoknya kalo dekat dia dijamin bakal ketawa melulu.

Tri : Programmer modul industri dan rumah, Tri dan saya punya situs wajib yang sama(infopalestina.com, hari gini ga peduli sama palestina !), Saleh, Rendah hati, Ayo semangat Tri, istiqamah di Jalannya yang lurus.

Joshua : Programmer modul penduduk. Orangnya susah ditebak, aku kira dulunya si Joshua ini gak bisa melucu, tapi ternyata .Story teller yang baik, walaupun dari luar agak seram tapi dia sebenarnya hatinya baik.
Jo tetap semangat, wikipedia mania.

Arifin: Database dan System Administrator server lapis. cool, pendiam, baik, Anggota developer yang paling senang nongkrong di posko.

Tim Maintenace

Syafiq : Boss Maintenance, dijuluki kompeni soalnya ada keturunan luar negeri, katanya sih orangya lucu, punya integritas tinggi.

Iriano : Walaupun anak ilkom juga tapi aku jarang liat ni orang, Jago Hardware dan jaringan komputer, baik, suka nolongin orang.

Ridho : Master web, waktu awal awal dia bantuin aku ngatasi masalah opera yang bandel, baik, Langit terbuka luas, kenapa tidak dengan pikiranmu, dan jangan lupa hati juga harus terbuka dan bersih. Sering sering ngunjungu blog ku ya, biar hitsnya nambah.

Arnanto : Aku kenalnya pertama kali di SIC, “mas ngopi flash disk mas”, oo iya sama sering ketemu di warung lotek dekat kos2an ku, yang pasti orangnya baik dan humoris.

Wib : Teman sekelasku, jagoan teka teki, tebak tebakan dan sejenisnya. Lucu tapi bisa juga serius.

Aufa : Modista, Keren, pesanku buat Aufa, Temukan pusat orbit dan garis edarmu niscaya hidupmu akan lebih indah dan bernilai(kalau mau referensi liat di buku ESQ Ary Ginanjar Agustian).

Andy : Cool, pendiam, katanya mirip Ariel, Sebenarnya dah sering liat tapi baru sekarang akarabnya.

Bayu : Jiwa pemimpinnya keliatan sekali, Kadang kadang ketemu di angkringan dekat kosan ku, Blogger(kapan kapan tukaran link ya, biar blog kita ratingnya nambah di Google ).

Arif : Ustadz kita, aku liat liat dia punya bakat nulis, tulisan di blognya menyentuh, Aktivis islam, rif istiqamahlah pada tali agamanya yang lurus.

Iim : Selama aku satu tim sama dia, selalu jadi sekertaris, memang bakat alam mungkin ya. baik, saleh, pendiriannya kuat, Istiqamah, Sudah menemukan pusat orbit dan garis edar hidupnya.

Laksmi : Dengan iim bagai pinang di belah dua, Jagoan flash, Jagoan bahasa inggris, saleh, Laks kalo aku punya salah dimaafkan ya ! .

Tim Sosialisasi Migrasi

Devi: Bos S/M, Penanggung jawab data penduduk

Juwita : Walaupun satu prodi, tapi aku akrab dengan juwita baru pas kkn ini, Aku liat juwita itu ulet pantang menyerah, pas entry data kemarin dia yang datanya paling banyak tapi dia asyik asyik aja.

Hanna : Sama Hanna setali tiga uang dengan juwita, akrabnya baru di kkn ini.

Hakim : Kormanit kita, Jiwa kepemimpinnya keliatan sekali, punya kharisma, pemimpin yang patut diteladani terutama disiplinnya

Agung : Alias Bowo, anak statistika tapi anehnya jarang ketemu walaupun satu Jurusan.

Indra : Anak Fisipol, Sepupu Tri, Salah satu korban kampanye Igo Agro.

Mbak Nyunyu: Kormahur, tapi aku hura huranya jarang ikut, teman mbak Nita, princess frog( baru dengar yang ada kan pangeran kodok)

Tya : Makasih komputernya ya, dipinjamin dua bulan. sorry ndak pernah dibersihin. Kapan kapan coba pakai Linux asyik, nggak mbajak lagi.

Mutiara : Penggemar buku, tiada hari kkn tanpa baca, selama kkn habisin buku berapa?

Widya : Pemenang kompetisi entry data kkn, dikit dikit bisa bahasa makassar(asyik juga klo ngobrol sama dia serasa pulang ke rumah)

Mbak Nita: Partnernya Si Jay, Penanggung jawab entry data pasar, suka nolongin orang, supel, salah satu dari sedikit wanita penggemar bola. Yang paling kuingat dia suka suplay makanan buat developer(sering sering aja) kayaknya juga koki handal dan yang khas gaya jaket diikat di pinggang.

Insyaallah ukhuwah di antara kita tidak akan pernah terputus.
” Siapa yang mau agar umurnya panjang dan rizkinya luas, hendaklah ia menghubungkan silaturahmi”
(HR. Bukhari)