8
PEMROGRAMAN JARINGAN, Vol.1, No.1, Juni 2015, pp. 1~6 1 Implementation Publish and Subscribe Mechanism In Portal Liputan6.com and Okezone.com Fajar Faruq Maulana, Ferdi Alvianda, Agung Kharisma Sukarno, I Gde Yogi Mahatma, Wafina Nurul Adila University Of Brawijaya Jl. Veteran Malang, East Java, Phone:+62 0341 551611/ Fax:+62 0341 565420 e-mail: [email protected] , [email protected] , [email protected] , [email protected] , [email protected] Abstrak Saat ini, teknologi informasi sudah sangat berkembang. Dengan berkembangnya teknologi informasi, informasi seakan menjadi kebutuhan yang harus dipenuhi oleh semua orang. Dengan besarnya kebutuhan akan informasi, mengharuskan sebagian orang berlangganan situs berita online. Tak jarang, situs berita online pun juga berlangganan pada situs berita lainnya. Dengan publish dan subscribe menjadikan salah satu pengguna sebagai subscriber yang menerima berita dan satu lainnya sebagai publisher yang memberikan berita. Publisher mengumpulkan berita yang kemudian akan diambil oleh subscriber. Di paper ini, publisher mengumpulkan berita dari Liputan6.com dan Okezone.com. Sedangkan subscriber mengambil berita berdasarkan kategori yang diinginkan. Kata kunci: Berita, Publish, Subscribe, Publisher, Subscriber. Abstract Nowadays, information technology is already highly developed. With the development of information technology, information as a requirement that must be met by everyone. With the great need for information, requires some people to subscribe online news sites. Not infrequently, online news sites also subscribe to the others news sites. With publish and subscribe making one user as a subscriber who receives news and the other one as a publisher who providing the news. Publisher collecting news and subscriber taking the news. In this paper, publisher collecting news from Liputan6.com and Okezone.com. While subscriber taking news based on the desired category. Keywords: News, Publish, Subscribe, Publisher, Subscriber. 1. Introduction Saat ini informasi sudah menjadi kebutuhan yang harus dipenuhi oleh semua orang. Tidak hanya perorangan tapi juga kelompok atau organisasi kecil atau besar [1]. Informasi bisa didapat dari mulut, koran, televisi atau yang sedang populer dan menjadi primodona saat Received June 1, 2015;

Implementasi Pub Sub Pada Portal Berita

Embed Size (px)

DESCRIPTION

Implementasi dari publish and subscribe pada portal berita. satu user sebagai publisher dan satu yang lainnya sebagai subscriber. Portal berita yang digunakan adalah liputan6.com dan okezone.com

Citation preview

Sebuah Kajian Pustaka:

PEMROGRAMAN JARINGAN, Vol.1, No.1, Juni 2015, pp. 1~6 14 5PEMROGRAMAN JARINGAN

Implementation Publish and Subscribe Mechanism In Portal Liputan6.com and Okezone.com

Fajar Faruq Maulana, Ferdi Alvianda, Agung Kharisma Sukarno, I Gde Yogi Mahatma, Wafina Nurul AdilaUniversity Of BrawijayaJl. Veteran Malang, East Java, Phone:+62 0341 551611/ Fax:+62 0341 565420e-mail: [email protected], [email protected], [email protected], [email protected], [email protected]

AbstrakSaat ini, teknologi informasi sudah sangat berkembang. Dengan berkembangnya teknologi informasi, informasi seakan menjadi kebutuhan yang harus dipenuhi oleh semua orang. Dengan besarnya kebutuhan akan informasi, mengharuskan sebagian orang berlangganan situs berita online. Tak jarang, situs berita online pun juga berlangganan pada situs berita lainnya. Dengan publish dan subscribe menjadikan salah satu pengguna sebagai subscriber yang menerima berita dan satu lainnya sebagai publisher yang memberikan berita. Publisher mengumpulkan berita yang kemudian akan diambil oleh subscriber. Di paper ini, publisher mengumpulkan berita dari Liputan6.com dan Okezone.com. Sedangkan subscriber mengambil berita berdasarkan kategori yang diinginkan.Kata kunci: Berita, Publish, Subscribe, Publisher, Subscriber.

AbstractNowadays, information technology is already highly developed. With the development of information technology, information as a requirement that must be met by everyone. With the great need for information, requires some people to subscribe online news sites. Not infrequently, online news sites also subscribe to the others news sites. With publish and subscribe making one user as a subscriber who receives news and the other one as a publisher who providing the news. Publisher collecting news and subscriber taking the news. In this paper, publisher collecting news from Liputan6.com and Okezone.com. While subscriber taking news based on the desired category.Keywords: News, Publish, Subscribe, Publisher, Subscriber.

1. IntroductionSaat ini informasi sudah menjadi kebutuhan yang harus dipenuhi oleh semua orang. Tidak hanya perorangan tapi juga kelompok atau organisasi kecil atau besar [1]. Informasi bisa didapat dari mulut, koran, televisi atau yang sedang populer dan menjadi primodona saat ini adalah situs berita online. Tak jarang seseorang sampai berlangganan situs berita tersebut agar tidak ketinggalan informasi. Menanggapi permintaan konsumen akan sebuah informasi, tak jarang situs penyedia berita juga berlangganan pada situs berita lainnya [2].Publish-subscribe sistem merupakan sebuah sistem dimana publisher menggunakan service event to event dan subscriber bergabung dalam jaringan pada sebagian event melewati proses subscribtion. Publish-subscribe system digunakan pada kelompok domain yang luas [3]. Sistem ini juga merupakan komponen utama dari infrastruktur google, terkait dengan kebutuhan untuk penyebaran informasi pemasaran. Dapat kita ketahui bahwa google merupakan search engine berskala besar yang membutuhkan kemampuan untuk penyebaran informasi dalam skala besar dan cepat. Maka penggunaan system ini mutlak diperlukan [4].Dalam tulisan ini, kami mengimplementasikan pub-sub pada situs berita Liputan6.com, Kegunaan dari publisher tersebut sebagai pengumpul berita pada situs berita Liputan6 tersebut. Sedangkan subscriber sebagai pengambil berita sesuai kategori yang diinginkan.Pada penelitian ini Server publisher menggunakan sistem operasi Linux yang kami jalankan pada satu komputer pada virtual box begitu juga dengan Client sebagai subscriber. Pub-sub yang kami rancang ini menggunakan bahasa Python dengan library Zeromq. Zeromq adalah library yang digunakan untuk mendistribusikan pesan secara Asinkron secara bersamaan.

2. Research MethodInformasi yang diterbitkan ditandai ke dalam beberapa topik. Client berlangganan dalam satu atau lebih topik, dan client hanya menerima pesan yang menarik yang pernah di subscribe, tanpa mengetahui pengumpul informasi dalam mengoleksi informasi dari berbagai sumber [3]. Berikut adalah prosedur dimana pengirim (server) dari informasi yang tidak diprogram untuk mengirim informasi ke penerima tertentu (client) [4]:1. Pengiriman Pesan: informasi X dapat dikirim (alias broadcast) dari kode PubSub.2. Topik pesan: a. Setiap informasi/pesan memiliki "tipe": itu sesuai dengan "topik"b. Topik membentuk hierarki. 3. Pesan Penanganan: Semua penangan pesan harus mendaftar PubSub untuk menerima pesan dari topik tertentu.4. Pesan Pengiriman: Pesan yang dikirim akan dikirim ke semua handlders terdaftar (alias pendengar, juga penerima, maupun client) untuk suatu topik tertentu.5. Urutan pengiriman tidak diketahui: dapat berubah sewaktu-waktu.6. Pesan/Informasi yang disampaikan serentak.7. Pada saat pengumpulan berita zeromq akan melakukan pengumpulan berita dari RSS portal berita yang diinginkan setelah dibaca oleh feedparser. Dimana proses tersebut dilakukan pada server serta menggunakan port tertentu pada saat melakukan publisher. 8. Sebuah pesan yang dikirim akan dikirimkan segera dan kontrol akan dikembalikan ke pengirim hanya ketika sekali pesan telah disampaikan kepada semua penangan.9. Tidak ada hubungan antara urutan berlangganan (subscribe) dengan urutan pengiriman informasi.10. Sumber pesan: PubSub tidak memberikan informasi kepada penangan mengenai asal (sumber alias, atau asal) dari pesan.

Berikut merupakan gambar alur jalannya program:

Figure 1. Alur jalannya program

3. Hasil dan Analisis

3.1. Source Code Program

pub_server.py

import zmqimport randomimport sysimport timeimport feedparserimport unidecode# author fajar faruqclass Soket:def gensocket(self,link):port = "5556"if len(sys.argv) > 1: port = sys.argv[1] int(port)context = zmq.Context()socket = context.socket(zmq.PUB)socket.bind("tcp://*:%s" % port)feed = feedparser.parse(link)for post in feed.entries:topic = unidecode.unidecode(post.category) messagedata = unidecode.unidecode(post.title)print "%s : %s" % (topic, messagedata)socket.send("%s : %s" % (topic, messagedata)) time.sleep(1)def menu(self):print('''===== MENU =====|| 1. Liputan 6.com |||| 2. Okezone.com |||| 3. Keluar ||================== SILAHKAN PILIH =============== ''')option2 = input("Masukkan Pilihan : ")if(option2 == 1):self.gensocket('http://www.liputan6.com/feed/rss2.rss')elif(option2 == 2):self.gensocket('http://sindikasi.okezone.com/index.php/okezone/RSS2.0')elif(option2 == 3):exit()Soket().menu()

1. Melakukan inisiasi awal pada aplikasi dengan menginport masing-masing library. Import zmq : Merupakan library yang digunakan untuk melakukan publish and subcribe. Import sys : Digunakan untuk mengimport library sistem. Import feedparser: Digunakan untuk melakukan parsing terhadap data RSS. Unidecod : Merupakan library unidecode digunakan untuk menerjemahkan objek menjadi string.2. Melakukan inisiasi socket yaitu dengan menentukan port yang digunakan untuk melakukan publish, kami menggunakan dua cara yaitu : port = "5556" : merupakan default Dengan menentukan port sesuai yang diinginkan dengan menambahkan argument port pada perintah saat mengeksekusi program3. Menginisiasi context, socket dari zmq serta feedparser yang akan digunakan untuk melakukan parsing pada url RSS.4. Melakukan penerjemahan terhadap isi dari RSS dengan perulangan dan memasukkan hasil ke dalam variable .5. RSS selanjutnya akan diproses zeromq untuk dilakukan publish.6. Dalam program dapat memilih salah satu dari 2 sumber berita yang akan dilakukan publish yaitu Liputan6.com dan okezone.com.sub_client.py

import sysimport zmqport = "5556"# author fajar faruqif len(sys.argv) > 1:port = sys.argv[1]int(port)if len(sys.argv) > 2:port1 = sys.argv[2]int(port1)# Socket to talk to servercontext = zmq.Context()socket = context.socket(zmq.SUB)print "Collecting updates from server..."socket.connect ("tcp://localhost:%s" % port)if len(sys.argv) > 2:socket.connect ("tcp://localhost:%s" % port1)topicfilter = "Intern"socket.setsockopt(zmq.SUBSCRIBE, "")total_value = 0for update_nbr in range (1000):# string = socket.recv()# print stringstring = socket.recv()topic, messagedata = string.split(" : ")# total_value += int(messagedata)if topicfilter in topic :print topic," - ", messagedata#print "Average messagedata value for topic '%s' was %dF" % (topicfilter, total_value / update_nbr)

1. Melakukan inisiasi awal pada aplikasi dengan mengimport masing-masing library: import sys: digunakan untuk mengimport library system import zmq: digunakan untuk mengimport library zeromq2. Melakukan inisiasi socket yaitu dengan menentukan port yang digunakan untuk melakukan publish, kami menggunakan dua cara yaitu : port = "5556" : merupakan default Dengan menentukan port sesuai yang diinginkan dengan menambahkan argument port pada perintah saat mengeksekusi program3. Menginisiasi context, socket dari zmq yang akan digunakan untuk melakukan subscribe dari server publisher.4. Menyambungkan client ke server untuk selanjutnya diproses pada client.5. Menentukan topic yang akan difilter saat melakukan subcribe pada publisher.6. Menginisiasi socket zeromq sebagai subscriber.7. Menampilkan hasil output dari proses subscriber berupa topic dan judul dari RSS sesuai topic yang di tentukan.

3.2. Implementasi Server memilih salah satu rss yang tersedia. Pada hal ini server memilih rss yang ke-2 yaitu pada Okezone.com, kemudian program menampilkan seluruh informasi yang berada di okezone.com

Kemudian di sisi client, client mengakses berita yang diambil dari server sesuai kategori, yaitu kategori international

Jika server memilih salah satu selain rss Okezone.com, yaitu Liputan6.com, maka akan menampilkan seluruh informasi yang berada di Liputan6.com

Kemudian Client mendapatkan berita yang telah difilter sesuai kategori, yaitu kategori peristiwa

4. Kesimpulan dan SaranPada bab ini akan dijelaskan mengenai kesimpulan yang didapat beserta saran.Kesimpulan:1. Dari hasil penelitian yang dilakukan program dapat mengimplementasikan indirect communication yaitu publisher dan subscriber pada RSS berita dengan baik.2. Library zeromq merupakan salah satu library yang dapat mengimplementasikan metode publish and subscribe dari program tersebut. 3. Tidak semua Portal berita dapat dilakukan parsing data , hanya portal berita yang memiliki kategori saja yang dapat mengimplementasikan metode publish and subscribe.Saran:1. Program dapat dikembangkan dengan menambahkan GUI (Graphical User Interface).

References

[1] H. Liu, V. Ramasubramanian, E. G. Sirer. Client behavior and feed characteristics of RSS, a publish-subscribe system for web micronews. IMC. 2005; 1(1): 5.[2] Setty V, Kreitz G, Vitenberg R, Steen M, Urdaneta G, Gimaker S. The Hidden Pub/Sub of Spotify. Industry Arlington Article. 2013; 1(1): 10.[3] P. Eugster, P. Felber, R. Guerraoui, and A. Kermarrec. The Many Faces of Publish/Subscribe. ACM Computing Surveys. 2003; 1: 7.[4] G. Li. Optimal and Robust Routing of Subscriptions for Unifying Access to the Past and the Future in Publish/Subscribe. PhD thesis. Graduate Department of Computer Science. Toronto: University of Toronto; 2010.Received June 1, 2015;Publish and Subscribe in Liputan6.com and Okezone.com (Kelompok6)

Publish and Subscribe in Liputan6.com and Okezone.com (Kelompok6)