/Task_6

Exercise on API using Twitter4J

Primary LanguageJava

Task_6

Exercise on API using Twitter4J

Aplikasi Java Twitter

Buatlah aplikasi java twitter yaitu aplikasi yang untuk mengakses social media twitter melaui apikasi java. Aplikasi java twitter ini memiliki spesifikasi sebagai berikut

0. Twitter OAuth Token

  • log in ke akun Twitter
  • buka halaman [apps.twitter.com] (apps.twitter.com)
  • buatlag aplikasi baru dengan mengekklik create new App
    ![a01] (/asset/a01.PNG)
  • tuliskan nama dan deskripsi aplikasi, tuliskan website aplikasi (jika ada) atau tuliskan alamat URL akun Twitter masing-masing
    ![a02] (/asset/a02.PNG)
  • check Developer Agreement, dan klik Create your Twitter application
    ![a03] (/asset/a03.PNG)
  • setelah aplikasi dibuat, navigasikan ke tab Keys and Access Tokens
  • akan terlihat 25-character Consumer Key dan 50-character Consumer Secret aplikasi yang baru dibuat
    ![a04] (/asset/a04.PNG)
  • scroll down dan klik create your new access token
    ![a05] (/asset/a05.PNG)
  • akan terlihat 49-digit-dash-character Access Token dan 45-character Access Token Secret
    ![a06] (/asset/a06.PNG)
  • buatlah sebuah file text dengan filename twitter4j.properties
    ![a07] (/asset/a07.PNG)
  • tuliskan Consumer Key, Consumer Secret, Access Token, and Access Token Secret ke dalam twitter4j.properties sebagai berikut
    ![a08] (/asset/a08.PNG)
  • twitter4j.properties telah terdaftar di dalam .gitignore, sehingga file twitter4j.properties tidak akan disinkronisasikan (push) ke repositori
  • see more [here] (https://dev.twitter.com/oauth/overview/application-owner-access-tokens)

1. TwitterModel.java

  • download library for Twitter API dari [Twitter4J] (http://twitter4j.org)

  • temukan lib jar twitter4j-core-4.0.1.jar

  • Buatlah sebuah project NetBeans

  • Copy kan library twitter4j-core-4.0.1.jar dan twitter4j.properties pada folder project anda

  • Tambahkan (add) seluruh library tersebut pada project NetBeans Anda

  • Buatlah sebuah kelas dengan nama TwitterModel.java dengan spesifikasi sbb:
    ![01] (/asset/01.PNG)

  • Tambahkan import twitter4j
    ![02] (/asset/02.PNG)

  • Terdapat sebuah variable private Twitter dengan nama twitter

  • a. Constructor TwitterModel

  • Constructor akan menginstansiasi object twitter
    ![03] (/asset/03.PNG)

  • b. Method tweetStatus ( tweet : String )

  • lakukan syntax berikut di dalam blok try-catch

  • Method akan mengirimkan String tweet ke akun twitter
    ![04] (/asset/04.PNG)

  • Tampilkan pesan status berhasil diposting dengan
    ![05] (/asset/05.PNG)

  • tambahkan pesan di blok catch untuk menampilkan pesan error
    ![06] (/asset/06.PNG)

  • c. Method getHomeTimeline() : String

  • lakukan syntax berikut di dalam blok try-catch

  • Method akan mengambil tweet yang ada pada home timeline dan mengembalikan isi String s
    ![07] (/asset/07.PNG)

  • tambahkan pesan di blok catch untuk menampilkan pesan error
    ![06] (/asset/06.PNG)

  • jika terjadi error, method akan mengembalikan nilai null

  • d. Method followUser ( user : String )

  • lakukan syntax berikut di dalam blok try-catch

  • Method akan membuat akun memfollow sebuah akun twitter dengan syntax
    ![08] (/asset/08.PNG)

  • tambahkan pesan di blok catch untuk menampilkan pesan error
    ![06] (/asset/06.PNG)

2. interface View.java

  • terdapat method abstrak addListener
    ![18] (/asset/18.PNG)

3. HomeTimeline.java

Buatlah class JFrame HomeTimeline.java dengan tampilan sebagai berikut
![09] (/asset/09.PNG)

  • terdapat komponen :
  • JTextArea : txAreaTimeline, set Editable = false
  • JButton : btnCompose, btnFollow, btnRefresh, btnExit
  • kelas mengimplementasikan interface View
  • hapus main method (psvm) di dalam GUI
  • tambahkan method getter objek untuk mengembalikan setiap objek button
    ![10] (/asset/10.PNG)
  • tambahkan method setTimeline untuk mengeset String pada text area Timeline
    ![11] (/asset/11.PNG)
  • tambahkan add listener pada setiap tombol dengan memanggil method addActionListener
    ![12] (/asset/12.PNG)

4. ComposeTweet.java

Buatlah class JFrame ComposeTweet.java dengan tampilan sebagai berikut
![13] (/asset/13.PNG)

  • terdapat komponen :
  • JTextArea : txAreaTweet
  • JButton : btnCancel, btnTweet
  • kelas mengimplementasikan interface View
  • hapus main method (psvm) di dalam GUI
  • tambahkan method getter objek untuk mengembalikan setiap objek button
    ![14] (/asset/14.PNG)
  • tambahkan method getTweet untuk mengambil String pada text area Tweet
    ![15] (/asset/15.PNG)
  • tambahkan add listener pada setiap tombol dengan memanggil method addActionListener
    ![17] (/asset/17.PNG)

5. FollowUser.java

Buatlah class JFrame FollowUser.java dengan tampilan sebagai berikut
![19] (/asset/19.PNG)

  • terdapat komponen :
  • JTextField : txFieldUser
  • JButton : btnCancel, btnFollow
  • kelas mengimplementasikan interface View
  • hapus main method (psvm) di dalam GUI
  • tambahkan method getter objek untuk mengembalikan setiap objek button
    ![20] (/asset/20.PNG)
  • tambahkan method getUser untuk mengambil String pada text area User
    ![21] (/asset/21.PNG)
  • tambahkan method setUser untuk mengeset String pada text area User
    ![22] (/asset/22.PNG)
  • tambahkan add listener pada setiap tombol dengan memanggil method addActionListener
    ![23] (/asset/23.PNG)

6. Controller.java

Buatlah class Controller.java sesuai class diagram berikut
![24] (/asset/24.PNG)

  • kelas Controller implements ActionListener
  • implementasikan method actionPerformed(ActionEvent ae)

a. Method goToHomeTimeline()

  • method menginstansiasi gui HomeTimeline
  • set visible view = true
  • set lisener view dengan controller this
  • set view = objek gui HomeTimeline
  • method mengeset text area timeline dengan String yang diambil dari getHomeTimeline dari model
    ![25] (/asset/25.PNG)

b. Method goToComposeTweet()

  • method menginstansiasi gui ComposeTweet
  • set visible view = true
  • set lisener view dengan controller this
  • set view = objek gui ComposeTweet
    ![26] (/asset/26.PNG)

c. Method goToFollowUser()

  • method menginstansiasi gui FollowUser
  • set visible view = true
  • set lisener view dengan controller this
  • set view = objek gui FollowUser
    ![27] (/asset/27.PNG)

d. Constructor Controller()

  • Constructor menginstansiasi TwitterModel model
  • Constructor memanggil method goToHomeTimeline
    ![28] (/asset/28.PNG)

e. Method actionPerformed(ActionEvent ae)

  • get Object source action event
    ![29] (/asset/29.PNG)
  • cek current view
  • jika view merupakan HomeTimeline :
    • Downcast view
      ![30] (/asset/30.PNG)
    • cek source action event
    • jika event berasal dari btnCompose :
      • panggil method goToComposeTweet()
      • dispose view home
      • ![31] (/asset/31.PNG)
    • jika event berasal dari btnFollow :
      • panggil method goToFollowUser()
      • dispose view home
      • ![32] (/asset/32.PNG)
    • jika event berasal dari btnRefresh :
      • set text area timeline dengan String yang diambil dari getHomeTimeline dari model
      • ![33] (/asset/33.PNG)
    • jika event berasal dari btnExit :
      • tampilkan pesan
      • hentikan program
      • ![34] (/asset/34.PNG)
  • jika view merupakan ComposeTweet :
    • Downcast view
      ![35] (/asset/35.PNG)
    • cek source action event
    • jika event berasal dari btnCancel :
      • panggil method goToHomeTimeline
      • dispose view compose
      • ![36] (/asset/36.PNG)
    • jika event berasal dari btnTweet :
      • ambil String status tweet dari text area tweet
      • post status tweet dengan memanggil method tweetStatus dari objek model
      • panggil method goToHomeTimeline
      • dispose view compose
      • ![37] (/asset/37.PNG)
  • jika view merupakan FollowUser :
    • Downcast view
      ![38] (/asset/38.PNG)
    • cek source action event
    • jika event berasal dari btnCancel :
      • panggil method goToHomeTimeline
      • dispose view follow
      • ![39] (/asset/39.PNG)
    • jika event berasal dari btnFollow :
      • ambil String user dari text field user
      • follow user dengan memanggil method followUser dari objek model
      • kosongkan text field user
      • ![40] (/asset/40.PNG)

7. Driver.java

  • Buatlah class Driver.java yang memiliki main method (psvm)
  • instansiasi objek Controller()
  • cobalah aplikasi Java Twitter yang telah dibuat