• Tidak ada hasil yang ditemukan

Tugas II II5166 (Keamanan Informasi Lanjut)

N/A
N/A
Protected

Academic year: 2021

Membagikan "Tugas II II5166 (Keamanan Informasi Lanjut)"

Copied!
7
0
0

Teks penuh

(1)

Tugas II

II5166 (Keamanan Informasi Lanjut)

Membuat aplikasi TWITTER yang mengambil data dari API-nya TWITTER

Semester 1 - 2012/2013

Dosen: Dr. Ir. Budi Rahardjo

Dikerjakan Oleh:

23512036 - Wahyu Widodo

23512076 - Perdana Kusumah

23512098 - Aries Syamsuddin

LAYANAN TEKNOLOGI INFORMASI

S

EKOLAH

T

EKNIK

E

LEKTRO DAN

I

NFORMATIKA

I

NSTITUT

T

EKNOLOGI

B

ANDUNG

2012

(2)

Tata Cara Pembuatan Aplikasi

Aplikasi yang dibuat menggunakan

tool

pengembangan Microsoft Visual Studio .NET, dengan bahasa

pemrograman C#. Aplikasi tersebut merupakan aplikasi

desktop-based

.

Urutan cara kerja pengerjaannya:

1.

Baca API yang disediakan oleh

twitter

, dengan parameter masukan berupa

userID

yang akan

diambil datanya.

2.

Ambil datanya dalam bentuk XML.

3.

Baca

tag

XML yang diambil, kemudian masukkan ke dalam

object

penampung.

4.

Object

penampung tersebut akan terisi dengan

nodes

XML (berbentuk

tree

).

5.

Ekstrak

nodes

yang diperlukan.

6.

Isi ke dalam suatu penampung yang bertindak sebagai

viewer

(dapat berupa

listbox

,

combobox

,

datagrid

, dan lain-lain).

Pada pembuatan aplikasi ini, hanya memastikan bahwa fungsi pengambilan data dari twitter berhasil

dilakukan, belum meng-cover masalah

error-handling

.

Tampilan / Screenshot

1.

Tampilan awal, berisi 1

field

untuk

input

data dari

user

dan 3

fields

untuk penampung

output

dari

hasil

searching

userID

ke dalam

twitter.com

.

Gambar 1. Awal

2.

Entri parameter masukan

userID

, pengguna aplikasi hanya perlu memasukkan data

userID

atau

(3)

Gambar 2.

Input user

3.

Output

aplikasi, hasil

searching

akan menghasilkan data

profile

dari seseorang yang memiliki

account

twitter

, daftar

friends

-nya, dan daftar

follower

-nya. Untuk data

friends

dan

followers

hanya dimunculkan data 100 besarnya saja.

Gambar 3.

Output

(4)

LAMPIRAN – Source-code Aplikasi

//given-library using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; //tambahan library using System.Xml; using System.Net; using System.IO; using System.Data; namespace TugasTwitter { /// <summary>

/// Interaction logic for MainWindow.xaml

/// </summary>

public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } /// <summary>

/// fungsi mengambil data XML dari API-nya TWITTER

/// </summary>

/// <param name="uri"></param>

/// <returns></returns>

public static XmlDocument GetResponse(string uri) {

//kamus data

WebRequest req; XmlDocument doc; //algoritma

req = WebRequest.Create(new Uri(uri)); doc = new XmlDocument();

doc.Load(req.GetResponse().GetResponseStream()); return doc;

}

/// <summary>

/// fungsi mengambil data XML dari API-nya TWITTER, menggunakan username dan password

/// </summary> /// <param name="uri"></param> /// <param name="username"></param> /// <param name="password"></param> /// <param name="post"></param> /// <returns></returns>

public static XmlDocument GetResponse(string uri, string username, string password, bool post) {

//kamus data

WebRequest req; XmlDocument doc; //algoritma

req = WebRequest.Create(new Uri(uri)); if (post)

(5)

if ((username != null) && (username.Trim() != String.Empty) && (!String.IsNullOrEmpty(password)))

req.Credentials = new NetworkCredential(username.Trim(), password); doc = new XmlDocument();

doc.Load(req.GetResponse().GetResponseStream()); //return value return doc; } /// <summary>

/// Fungsi tambahan apabila ingin memasukkan data XML ke dalam String

/// </summary>

/// <param name="xml"></param>

/// <returns></returns>

public static string ConvertXml2String(XmlDocument xml) {

//kamus data

StringWriter stringWriter; XmlTextWriter xmlTextWriter; //algoritma

//inisialisasi create object

stringWriter = new StringWriter();

xmlTextWriter = new XmlTextWriter(stringWriter); xml.WriteTo(xmlTextWriter);

//return value

return stringWriter.ToString(); }

/// <summary>

/// Fungsi tambahan apabila ingin memasukkan data XML ke dalam Dataset

/// </summary>

/// <param name="fileName"></param>

/// <returns></returns>

public static DataSet ConvertXml2Dataset(string fileName) {

//kamus

DataSet dataSet; //algoritma

//inisialisasi

dataSet = new DataSet(); //read into dataset

dataSet.ReadXml(fileName);

//return single table inside of dataset

return dataSet; }

/// <summary>

/// fungsi search data dari suatu account twitter, merupakan gabungan dari beberapa fungsi yang telah didefinisikan

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void btnSearch_Click(object sender, RoutedEventArgs e) {

//KAMUS DATA

XmlDocument doc, docFriends, docFollower; XmlElement rootUser, rootFriends, rootFollowers; XmlNodeList elemListFriends, elemListFollowers; //ALGORITMA //inisialisasi lbInfoUser.Items.Clear(); lbFriends.Items.Clear(); lbFollower.Items.Clear(); //ambil data dari TWITTER API

(6)

doc = GetResponse("http://api.twitter.com/1/users/show.xml?screen_name=" + textBox1.Text +

"");

docFriends = GetResponse("http://api.twitter.com/1/statuses/friends.xml?screen_name=" + textBox1.Text + "");

docFollower = GetResponse("http://api.twitter.com/1/statuses/followers.xml?screen_name=" + textBox1.Text + "");

imgUser.Source = new BitmapImage(new

Uri("http://api.twitter.com/1/users/profile_image?screen_name=" + textBox1.Text + "&size=normal"));

//informasi user

rootUser = doc.DocumentElement;

//informasi friends

rootFriends = docFriends.DocumentElement; //root-nya adalah <users type="array"></users>

elemListFriends = rootFriends.ChildNodes; //elemennya terdiri dari <user></user> ... <user></user> //informasi follower rootFollowers = docFollower.DocumentElement; elemListFollowers = rootFollowers.ChildNodes;

//memuculkan informasi USER

lbInfoUser.Items.Add("Nama Lengkap: " + rootUser.GetElementsByTagName("name").Item(0).InnerText); lbInfoUser.Items.Add("Alias: " +

rootUser.GetElementsByTagName("screen_name").Item(0).InnerText); lbInfoUser.Items.Add("Lokasi: " +

rootUser.GetElementsByTagName("location").Item(0).InnerText); lbInfoUser.Items.Add("Deskripsi: " +

rootUser.GetElementsByTagName("description").Item(0).InnerText);

//entri data ke dalam listbox FRIENDS

for (int i = 0; i < elemListFriends.Count; i++) {

// Item(i) mengambil satu demi satu node user,

// ChildNodes[...] mengambil komponen dari suatu node user

lbFriends.Items.Add((i + 1).ToString() + ". Nama Lengkap: " + elemListFriends.Item(i).ChildNodes[1].InnerText);

lbFriends.Items.Add(" Alias: " + elemListFriends.Item(i).ChildNodes[2].InnerText); lbFriends.Items.Add(" Lokasi: " + elemListFriends.Item(i).ChildNodes[3].InnerText); lbFriends.Items.Add(" ");

}

//entri data ke dalam listbox FOLLOWER

for (int i = 0; i < elemListFollowers.Count; i++) {

// Item(i) mengambil satu demi satu node user,

// ChildNodes[...] mengambil komponen dari suatu node user

lbFollower.Items.Add((i + 1).ToString() + ". Nama Lengkap: " + elemListFollowers.Item(i).ChildNodes[1].InnerText); lbFollower.Items.Add(" Alias: " + elemListFollowers.Item(i).ChildNodes[2].InnerText); lbFollower.Items.Add(" Lokasi: " + elemListFollowers.Item(i).ChildNodes[3].InnerText); lbFollower.Items.Add(" "); }

//apabila ingin dimasukkan ke dalam datagrid

//string[] col = {"name"};

//DataTable dt = ConvertXmlNodeListToDataTable2(elemList, col);

//dataGrid1.ItemsSource = dt.AsDataView();

}

/// <summary>

/// Fungsi tambahan apabila ingin memasukkan data XML ke dalam DataTable

/// </summary>

/// <param name="xnl"></param>

/// <returns></returns>

public static DataTable ConvertXmlNodeListToDataTable(XmlNodeList xnl) {

//kamus

DataTable dt; int TempColumn;

(7)

//algoritma

//inisialisasi

dt = new DataTable(); TempColumn = 0;

foreach (XmlNode node in xnl.Item(0).ChildNodes) {

TempColumn++;

DataColumn dc = new DataColumn(node.Name, System.Type.GetType("System.String")); if (dt.Columns.Contains(node.Name))

{

dt.Columns.Add(dc.ColumnName = dc.ColumnName + TempColumn.ToString()); } else { dt.Columns.Add(dc); } }

int ColumnsCount = dt.Columns.Count; for (int i = 0; i < xnl.Count; i++) {

DataRow dr = dt.NewRow();

for (int j = 0; j < ColumnsCount; j++) { dr[j] = xnl.Item(i).ChildNodes[j].InnerText; } dt.Rows.Add(dr); } //return value return dt; } /// <summary>

/// Fungsi tambahan apabila ingin memasukkan data XML ke dalam DataTable

/// </summary>

/// <param name="xmlNodeList"></param>

/// <param name="Columns"></param>

/// <returns></returns>

public DataTable ConvertXmlNodeListToDataTable2(XmlNodeList xmlNodeList, string[] Columns) {

//kamus

DataTable dataTable; //algoritma

//Creating the DataTable.

using (dataTable = new DataTable("DataTable")) {

//Adding data Table columns based on the columns parameter

foreach (string column in Columns) {

dataTable.Columns.Add(column); }

//Adding rows with values.

DataRow dataRow;

foreach (XmlNode node in xmlNodeList) {

dataRow = dataTable.NewRow(); foreach (string column in Columns) { if (node != null) { dataRow[column] = node.SelectSingleNode(column).InnerText; } } dataTable.Rows.Add(dataRow); } //return value return dataTable; } } } }

Gambar

Gambar 1. Awal
Gambar 2. Input user

Referensi

Dokumen terkait

Dalam kedudukannya sebagai pengelola barang, dan dihubungkan dengan amanat pasal 6 ayat (2) Undang-undang nomor 17 tahun 2003, Gubernur juga berwenang mengajukan usul untuk

Masa pemerintahan : Portugis datang ke Maluku dan berhasil mendirikan Benteng Sao Paulo di Ternate, sedangkan Spanyol menjalin kerjasama dengan Kerajaan

Hasil penelitian menunjukkan bahwa pengembangan LKPD interaktif berbasis web dengan pendekatan CTL telah memenuhi kriteria valid, praktis, dan efektif untuk digunakan

Berdasarkan akurasi tersebut citra Aerial videography dengan sistem yang dibangun pada penelitian ini layak untuk dijadikan alternatif sumber data spasial untuk materi

Hasil penelitian tentang kajian kesejahteraan sapi pada beberapa peternakan di kota Pangkalpinang menunjukkan bahwa berdasarkan Animal Needs Index (ANI) kondisi peternakan

7 Pada teknik caption yang telah dilakukan di Panti Lansia Budi Dharma, muncul beberapa kategori antara lain signage, furniture, idle space, sanitasi, interaksi

Sendi-sendi normatif yang terkandung dalam ‘ASEAN Way’ antara lain adalah prinsip untuk melakukan kerja sama secara damai, harmonis, saling menghormati kedaulatan wilayah

Dan (juga) orang-orang yang apabila mengerjakan perbuatan keji atau menganiaya diri sendiri, mereka ingat akan Allah, lalu memohon ampun terhadap dosa-dosa mereka