SInTA UKDW Google Desktop Gadget


Tanggal 31 Maret 2010 yang lalu, saya mencoba membuat sebuah gadget desktop dengan platform Google. Dengan menggunakan Google Desktop Gadget SDK yang bisa di download dari web site mereka, kita dapat membuat sebuah gadget yang cukup mudah. Dengan SDK kita dapat membuat rancangan antarmuka gadget dan juga dibuatkan sebuah file javascript.

Pengalaman saya membuat gadget dengan Google Desktop SDK ini cukup mudah untuk dipelajari. Ada beberapa objek javascript API yang sudah disediakan dan tinggal kita gunakan. Dokumentasi API tersebut dapat dibaca di google desktop gadget api. Contoh hasil SInTA UKDW Google desktop Gadget dapat dilihat pada gambar di bawah ini.

Jika Anda ingin mencobanya, silahkan download dan pasang di google desktop Anda dari sinta.ukdw.ac.id.

Iklan

Parsing JSON dengan google-gson


Melanjutkan artikel contoh pengaksesan SInTA RESTful, ada satu layanan SInTA yang mengembalikan json array objek yang memiliki struktur class sebagai berikut :

public class SearchData {
    private String judul;
    private String nama;
    private String prodi;
    private String tahun;
    private String[] mtk;
    private String abstrak;

    // semua get dan set method terhadap atribut di atas
} 

Dalam sebuah aplikasi client yang memanggil layanan RESTful SInTA ini, kita harus melakukan parsin format JSON Array Objek yang pada umumnya memiliki format :

[{“field”:”value”, …}, …]

Oleh karena saya menggunakan bahasa pemrograman Java untuk mengakses layanan SInTA ini, saya mencoba menggunakan pustaka berlisensi Apache yang bernama google-gson. Saya merasa lebih nyaman ketika menggunakan pustaka ini untuk memparsing data JSON. Berikut adalah main program yang saya gunakan untuk memparsing JSON Array objek di atas:

public class TestQueryWS {

    public static void main(String[] args) {

        try {
            String query = "kompresi sms";
            String username = "<masukkan username Anda>";
            String key = "<masukkan key API Anda>";

            RestResponse result = Rootsinta.search(query, username, key);
            String data = result.getDataAsString();

            Gson gson = new Gson();
            Type listType = new TypeToken<List<SearchData>>() {}.getType();

            List<SearchData> s = new ArrayList<SearchData>();
            s = gson.fromJson(data, listType);

            for(SearchData i:s) {
                System.out.println(i.getJudul());
            }

        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }
}

Hasilnya sangat memuaskan!

Akses SInTA RESTful dengan Java


Sekarang, saya akan memaparkan bagaimana mudahnya mengakses web service SInTA dengan menggunakan Netbean. Saya menggunakan Netbeans 6.7. Berikut beberapa tahapan yang perlu dilakukan:

Pada bagian (tab) Services, tambahkan Sinta WS

Setelah itu Anda akan mendapatkan sebuah item Web Service bernama sinta seperti pada gambar berikut:

Jika ingin dilihat WADLnya, silahkan klik kanan sinta, pilih View WADL.

Selanjutnya, Anda buat sebuah project baru:

  • Pilih New > Project > Java > Java Application
  • beri nama SintaSample, klik create Main Class
  • klik Finish
  • Dalam posisi jendela editor Main Class, dragging salah satu method sinta WS (Misal pustaka) dari jendela Services ke dalam jendela editor.
  • muncul dialog sebagai berikut :

  • klik OK
  • secara otomatis Netbeans akan membuatkan template buat Anda
  • di sana Netbeans juga membuatkan dua packages org.netbeans.saas.root dan org.netbeans.saas. Berikut contoh method yang dihasilkan dalam package org.netbeans.saas.root terhadap layanan pustaka:
        public static RestResponse pustaka(String nim, String username, String key) throws IOException {
            String[][] pathParams = new String[][]{};
            String[][] queryParams = new String[][]{{"nim", nim}, {"username", username}, {"key", key}};
            RestConnection conn = new RestConnection("http://222.124.22.27:81/sinta/resources/pustaka", pathParams, queryParams);
            sleep(1000);
            return conn.get();
        }
    
  • di dalam kedua package tersebut sudah tersedia class-class dispatcher untuk request dan retrieve
  • sekarang tinggal Anda masukan data parameter yang dibutuhkan!

Akses SINTA RESTful dengan VB.NET


Sinta adalah sebuah aplikasi information retrieval untuk dokumen-dokumen tugas akhir mahasiswa di lingkungan kampus UKDW Yogyakarta. Aplikasi ini merupakan aplikasi berbasis web (JSP/Servlet dan Alfresco) dan menggunakan WURLF untuk dapat menyesuaikan diri dalam tampilannya di ponsel. Selain itu Sinta juga menggunakan Jersey untuk penyediaan web service berbasis RESTful. Karena sudah tersedia WebService, maka mahasiswa UKDW dapat membuat program sendiri untuk mengakses data Sinta melalui web service ini (tentu saja harus melalui prosedur yang berlaku).

Pada artikel ini, saya akan memberikan contoh program yang mengakses Web Service SInTA dengan menggunakan VB.NET. Oleh karena yang dikembalikan oleh Web Service SInTA adalah JSON Array, maka dalam aplikasi sample .NET ini digunakan pustaka Jayrock untuk memparsing JSON Array tersebut.

Berikut adalah contoh modul aplikasinya:

Imports System.Net
Imports System.IO
Imports Jayrock.Json
Imports Jayrock.Json.Conversion

Module SintaWSSample
    Sub Main()
        Dim url As String = "http://222.124.22.27:81/sinta/resources/sintasrv?query=   &username=   &key=   "
        Dim req As HttpWebRequest
        Dim res As HttpWebResponse
        Dim reader As StreamReader
        Dim jarr As New JsonArray
        Dim str As String
        Dim strbuff As String = ""

        req = WebRequest.Create(url)
        res = req.GetResponse()
        If (res.StatusCode = 200) Then
            reader = New StreamReader(res.GetResponseStream())
            str = reader.ReadLine()
            If (Not String.IsNullOrEmpty(str)) Then
                While (str.Length > 0)
                    strbuff = strbuff + str
                    str = reader.ReadLine()
                    If (String.IsNullOrEmpty(str)) Then
                        str = ""
                    End If
                End While
            End If
            Console.WriteLine("Akhir")
            Dim aList = CType(JsonConvert.Import(strbuff), IList)
            For Each dev As IDictionary In aList
                For Each entry As DictionaryEntry In dev
                    Dim data As String = _
                        CStr(entry.Key) & _
                        " = " & entry.Value.ToString()
                    SaveTextToFile(data, "C:\hasil.txt")
                Next
                SaveTextToFile("----====----", "C:\hasil.txt")
            Next
        Else
            Console.WriteLine("Ada masalah dalam meminta layanan Sinta")
        End If
        Console.ReadLine()
    End Sub

    Public Function SaveTextToFile(ByVal strData As String, _
                                   ByVal FullPath As String, _
                                   Optional ByVal ErrInfo As String = "") As Boolean
        Dim bAns As Boolean = False
        Dim objReader As StreamWriter
        Try
            objReader = New StreamWriter(FullPath, True)
            objReader.WriteLine(strData)
            objReader.Close()
            bAns = True
        Catch Ex As Exception
            ErrInfo = Ex.Message
        End Try
        Return bAns
    End Function
End Module

Pada uri RESTful SInTA Web Service, tiap pengakses diwajibkan memberikan 3 paramter: yaitu query (berisi string query), username (user account SInTA), dan key yang berisi kunci API yang dapat diperoleh dari web SInTA.

sinta


Sinta adalah sistem temu kembali dokumen-dokumen tugas akhir mahasiswa UKDW Yogyakarta. Kemampuannya seperti halnya mesin pencari google, yahoo atau sejenis, namun dengan menekankan pada karakteristik metadata tugas akhir. Aplikasi ini berbasis j2ee, alfresco dan lucene.
Sinta dirancang dan dikerjakan secara mandiri oleh mahasiswa dan dosen ukdw, dan merupakan proyek unit Perpustakaan UKDW. Rencana akan di release pada tanggal 24 Agustus 2009. Saat ini sudah 85% selesai. Sementara Sinta hanya dapat diakses dilingkungan UKDW. Di tunggu saja.

sinta