Exercise on API using Twitter4J
Buatlah aplikasi java twitter yaitu aplikasi yang untuk mengakses social media twitter melaui apikasi java. Aplikasi java twitter ini memiliki spesifikasi sebagai berikut
- 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)
-
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)
- terdapat method abstrak addListener
![18] (/asset/18.PNG)
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)
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)
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)
Buatlah class Controller.java sesuai class diagram berikut
![24] (/asset/24.PNG)
- kelas Controller implements ActionListener
- implementasikan method actionPerformed(ActionEvent ae)
- 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)
- method menginstansiasi gui ComposeTweet
- set visible view = true
- set lisener view dengan controller this
- set view = objek gui ComposeTweet
![26] (/asset/26.PNG)
- method menginstansiasi gui FollowUser
- set visible view = true
- set lisener view dengan controller this
- set view = objek gui FollowUser
![27] (/asset/27.PNG)
- Constructor menginstansiasi TwitterModel model
- Constructor memanggil method goToHomeTimeline
![28] (/asset/28.PNG)
- 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)
- Downcast view
- 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)
- Downcast view
- 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)
- Downcast view
- Buatlah class Driver.java yang memiliki main method (psvm)
- instansiasi objek Controller()
- cobalah aplikasi Java Twitter yang telah dibuat