uraian ciptaan program komputer molearn (android)...
TRANSCRIPT
12.5%12.5% Results of plagiarism analysis from 2019-12-04 07:21 UTC
Uraian Ciptaan Program Komputer MoLearn (Android) v2.pdfUraian Ciptaan Program Komputer MoLearn (Android) v2.pdf
Date: 2019-12-04 07:19 UTC
All sources 3737 Internet sources 3030 Own documents 22 Organization archive 22 Plagiarism Prevention Pool 11
[2] "Tri Sagirani- Konasgi Bali.pdf" dated 2019-03-14
4.3%4.3% 9 matches
[3] "Tri Sagirani - buku.pdf" dated 2019-08-03
3.6%3.6% 7 matches
[4] "M.J. Dewiyani Sunarto - Konasgi Bali.pdf" dated 2019-03-14
2.4%2.4% 5 matches
[5] cmsdk.com/android/android-studio-how-to-generate-expandablelistview-from-json-volley.html
2.5%2.5% 8 matches
[6] www.programcreek.com/java-api-examples/index.php?api=com.android.volley.VolleyError
2.4%2.4% 8 matches
[7] androidforums.com/threads/jsonexception.1298354/
2.5%2.5% 8 matches
[8] www.journaldev.com/17198/android-volley-tutorial
2.3%2.3% 7 matches
[9] androidforums.com/threads/org-json-jsonexception-value-br-of-type-java-lang-string-cannot-be-converted-to-jsonobject.1272752/
2.3%2.3% 7 matches
[10] www.simplifiedcoding.net/android-volley-tutorial/
2.2%2.2% 6 matches
[11] www.programcreek.com/java-api-examples/?api=com.android.volley.Request
1.9%1.9% 6 matches
[12] www.codeplayon.com/2019/07/android-searchable-spinner-example/
1.6%1.6% 6 matches
[13] www.codeproject.com/Questions/1192256/Error-parsing-data-org-json-jsonexception-value-br
1.9%1.9% 7 matches
[14] www.simplifiedcoding.net/upload-image-to-server/
1.7%1.7% 5 matches
[15] www.c-sharpcorner.com/article/send-data-to-the-remote-database-in-android-application/
1.9%1.9% 5 matches
[16] www.thecrazyprogrammer.com/2016/09/android-upload-image-server-using-volley.html
1.7%1.7% 5 matches
[17] coderwall.com/p/dbyybw/volley-code-snippets
1.3%1.3% 4 matches
[18] mobikul.com/how-to-send-json-post-request-using-volley-rest-api/
1.6%1.6% 6 matches
[19] www.thecrazyprogrammer.com/2016/07/android-volley-tutorial.html
1.5%1.5% 4 matches
[20] gist.github.com/mstfldmr/f6594b2337e3633673e5
1.4%1.4% 3 matches
[21] cammykamal.blogspot.com/2015/05/posting-data-on-server-using-volley.html
1.3%1.3% 3 matches
[22] github.com/chthai64/SwipeRevealLayout/issues/6
1.1%1.1% 3 matches
[23] www.survivingwithandroid.com/android-volley-tutorial-post-download/
1.4%1.4% 3 matches
[24] gist.github.com/mombrea/7250835
1.4%1.4% 3 matches
[25] teamtreehouse.com/community/i-am-trying-to-do-a-json-post-request-in-android-studio-and-my-app-keeps-crashing-and-wont-go-throughwhats-wroung
1.3%1.3% 3 matches
[26] github.com/sephiroth74/HorizontalVariableListView/issues/33
1.1%1.1% 3 matches
1.1%1.1% 3 matches
[27] "2018-Januari-09-JURNAL.docx" dated 2018-01-09
1.0%1.0% 3 matches
[28] www.codeproject.com/questions/1038807/how-to-remove-jsonobjects-from-jsonarray-on-a-spec
1.2%1.2% 5 matches
[29] soba-ha-kenkou.hatenablog.com/entry/2015/09/26/163148
1.3%1.3% 3 matches
[30] gist.github.com/jchernandez/5bec1913af80e2923da8
1.2%1.2% 3 matches
[31] www.codeproject.com/Questions/1243053/How-to-solve-com-android-volley-parseerror-org-jso
1.0%1.0% 2 matches
[32] github.com/yuger/VPN2018/blob/master/app/src/main/java/com/wxy/vpn2018/MainActivity.java
0.7%0.7% 3 matches
[33] github.com/mcxiaoke/android-volley/issues/82
0.9%0.9% 2 matches
[34] docplayer.info/46291149-Tugas-akhir-skripsi-diajukan-kepada-fakultas-teknik-universitas-negeri-yogyakarta.html
0.4%0.4% 3 matches
[35] from a PlagScan document dated 2018-12-06 06:13
0.5%0.5% 2 matches 1 documents with identical matches
[37] fppti-jatim.or.id/public/keanggotaan/daftar-anggota-fppti-jatim/
0.3%0.3% 1 matches
19 pages, 1806 words19 pages, 1806 words
A very light text-color was detected that might conceal letters used to merge words.
PlagLevel: PlagLevel: 12.5%12.5% selected / selected / 36.1%36.1% overall overall65 matches from 38 sources, of which 31 are online sources.
Settings Settings Data policy: Compare with web sources, Check against my documents, Check against my documents in the organization repository, Check
against organization repository, Check against the Plagiarism Prevention PoolSensitivity: MediumBibliography: Consider textCitation detection: Reduce PlagLevelWhitelist: --
1
URAIAN CIPTAAN PROGRAM KOMPUTER MOLEARN (ANDROID) V2
Penyusun :
Tan Amelia, S.Kom, M.MT
Dr. Bambang Hariadi
Prof. Dr. Budi Jatmiko, M.Pd
Dr. M.J. Dewiyani Sunarto
Dr. Binar Kurnia Prahani, M.Pd
Tri Sagirani, S.Kom, M.MT
Julianto Lemantara, S.Kom, M.Eng
Nanda Rizka Maulana, S.Kom [37]
UNIVERSITAS DINAMIKA
(d/h Institut Bisnis dan Informatika Stikom Surabaya)
2019
2
URAIAN CIPTAAN PROGRAM KOMPUTER
A. Gambaran Umum MoLearn
MoLearn atau adalah media yang dibuat untuk menunjang kegiatan belajar Mobile Learning
mengajar di sekolah. MoLearn yang artinya adalah belajar dimanapun memiliki keunggulan dapat
diakses dimanapun melalui media gadget smartphone (laptop, , tablet, komputer) dengan
dukungan koneksi internet. Media pembelajaran ini memfasilitasi interaksi antara guru dan siswa
untuk menyediakan dan mendapatkan materi pembelajaran, memberikan tugas dan
mengumpulkan tugas, pelatihan mengerjakan ujian online, serta melakukan diskusi. Selain untuk
guru dan siswa, MoLearn dibuat untuk MGMP (Musyawarah Guru Mata Pelajaran) untuk
mengontrol materi pembelajaran sehingga dengan media ini diharapkan siswa tidak mendapatkan
materi yang menyimpang. Gambar 1 dibawah ini merupakan desain arsitektur aplikasi MoLearn:
Gambar 1. desain arsitektur MoLearn
3
B. Spesifikasi Teknis MoLearn
MoLearn adalah aplikasi berbasis dengan kebutuhan sistem sebagai Web dan Android
berikut:
1. Android memilki spesifikasi sistem operasi minimum yaitu ICS (Ice Cream soware[ 2 ]
Sandwich).
2. Android telah memiliki (ditandai dengan adanya Google Play Service Google Play Store[ 2 ]
dan aplikasi lainnya). Google
3. Spesifikasi pada Android yaitu RAM 1 GB CPU dan minimum hardware Processor Intel / [ 2 ]
Snap Dragon.
C. Android MoLearn v2
Ada beberapa hal yang diubah/ditambahkan pada Android MoLearn v2 ini, yaitu:
1. Perubahan tampilan UI/UX agar lebih mudah melakukan proses yang dibutuhkan, tampilan
lebih menarik dan kenyamanan dalam menggunakannya.
2. Fitur siswa dapat melakukan ujian melalui perangkat Android.
3. Fitur siswa dapat mengumpulkan tugas melalui perangkat Android.
D. Android MoLearn Keseluruhan
Android MoLearn terbagi menjadi 3 bagian yaitu MGMP (administrator MGMP), guru, dan
siswa. Masing-masing bagian memiliki menu yang berbeda sesuai dengan data dan informasi yang
dibutuhkan serta apa saja yang bisa dilakukan pada android MoLearn.
1. MGMP (Versi Mobile)
Aplikasi Molearn berbasis Android hanya memiliki sebagian fitur yang ada pada versi
website. Aplikasi Molearn versi Android sebagai pengguna MGMP memiliki fitur untuk [4]
menampilkan materi kompetensi, materi MGMP, dan materi yang diunggah guru, menampilkan
ujian, forum diskusi yang memiliki channel, dan pengumuman.
4
Gambar 2. Menu Utama MGMP
1.1. Materi Kompetensi
Materi kompetensi digunakan untuk menampilkan kompetensi yang telah di-entry-
kan oleh mgmp. Semua kompetensi mulai dari kompetensi dasar, kompetensi inti
hingga indikator ada pada menu ini.
Gambar 3. Kompetensi Dasar
5
1.2. Materi MGMP
Materi MGMP adalah menu yang berisikan materi-materi yang telah diunggah
melalui website molearn.net. Materi yang ditampilkan terbagi menjadi tiga macam [3]
yaitu materi dalam bentuk video, dalam bentuk dokumen yang dapat diunduh, dan
materi dalam bentuk ringkasan materi yang dapat langsung dibaca pada aplikasi
molearn.
Gambar 4. Materi MGMP
1.3. Materi yang diunggah Guru
Materi yang diunggah guru adalah materi yang telah diunggah oleh guru pada
website molearn.net dan dapat dilihat oleh MGMP. Sama seperti halnya dengan
materi yang ada pada MGMP, materi guru juga dibagi menjadi tiga jenis.
Gambar 5. Materi Guru
6
1.4. Menampilkan Ujian [ 3 ]
Admin MGMP dapat melihat soal berdasarkan pilihan kompetensi dasar, kompetensi
inti, dan indikator. Setelah dipilih maka aplikasi molearn akan menampilkan soal.
Gambar 6. Pilihan Soal
1.5. Forum diskusi
Forum diskusi dapat digunakan oleh tim MGMP untuk saling bertukar informasi dan
pendapat melalui sebuah wadah yang terintegrasi juga dengan forum yang ada di
website.
Gambar 7. Forum Diskusi
7
2. Guru [ 4 ]
Aplikasi Molearn versi Android untuk guru memiliki fitur untuk menampilkan materi MGMP,
materi guru, buat tugas, diskusi kelas, dan menampilkan soal ujian.
2.1. Menampilkan materi MGMP
Sama seperti user sebagai MGMP, pengguna sebagai guru juga dapat melihat materi
yang diunggah oleh mgmp sebagai referensi pembelajaran.
Gambar 8. Materi MGMP
2.2. Materi Guru
Materi guru ini adalah materi yang diunggah oleh guru itu sendiri. Materi guru sama [3]
seperti materi yang lainnya yang memiliki tiga bentuk materi yaitu materi dalam
bentuk video, materi dalam bentuk dokumen, dan materi dalam bentuk tulisan.
Gambar 9. Materi Guru
8
2.3. Buat Tugas
Sebagai guru dapat langsung membuat tugas melalui Aplikasi Android Molearn. Fitur
ini digunakan oleh guru untuk memberikan tugas kepada para siswa di kelas ajar.
Gambar . Buat tugas 10
Selain membuat tugas, guru juga dapat melihat tugas yang pernah diberikan pada
kelas yang diajar.
Gambar . Daftar tugas yang diberikan kepada siswa 11[27]
9
2.4. Diskusi kelas
Diskusi yang dilakukan oleh guru dibagi menjadi dua bagian yaitu diskusi kelas dan
diskusi bersama MGMP. Fitur diskusi ini adalah fitur yang digunakan untuk saling
berkomunikasi dengan siswa ataupun mgmp melalaui pesan tulisan.
Gambar . Diskusi Kelas 12
2.5. Melihat Jawaban Ujian Siswa
Guru dapat melihat jawaban ujian siswa
Gambar 13. Jawaban Ujian Siswa
10
3. Siswa (Versi Mobile) [ 4 ]
Selain pengguna sebagai MGMP dan guru, Aplikasi Molearn Android juga dapat digunakan
oleh pengguna sebagai siswa degan beberapa fitur yaitu menampilkan materi MGMP,
menampilkan materi guru, forum diskusi, dan menampilkan daftar tugas yang diberikan oleh guru.
3.1. Menampilkan materi MGMP [ 3 ]
Sama halnya seperti pengguna guru dan MGMP, siswa juga dapat melihat materi
yang diberikan oleh MGMP yang terbagi menjadi tiga jenis .
Gambar . Materi MGMP yang ada pada siswa 14
3.2. Menampilkan materi guru [ 3 ]
Sama halnya dengan pengguna sebagai guru dan MGMP, siswa juga dapat melihat
materi yang diberikan oleh guru sesuai dengan kelas ajarnya.
11
Gambar . Menampilkan materi guru 15
3.3. Forum Diskusi [ 2 ]
Forum diskusi pada siswa adalah forum untuk saling berdiskusi permasalahan pada
mata pelajaran yang berisikan siswa lainnya satu kelas beserta guru ajar.
Gambar . Diskusi Kelas 16
3.4. Menampilkan daftar tugas yang diberikan oleh guru [ 2 ]
Fitur untuk melihat tugas yang diberikan oleh guru ajar. Setiap tugas memiliki status [2]
yaitu status telah mengumpulkan dan belum mengumpulkan.
12
Gambar . Daftar Tugas 17
Gambar 18. Siswa Mengumpulkan Tugas
13
3.5. Ujian Siswa
Fitur siswa melakukan ujian
Gambar 19. Ujian Siswa
E. SOURCE CODE
1. Kompetensi
Source code di bawah digunakan untuk melakukan request data kompetensi pada server untuk
ditampilkan pada aplikasi.
StringRequest stringRequest = new StringRequest(Request.Method.GET, [5]
helperLink.END_POINT_GET_STANDAR_KOMPETENSI + + +"?ki_tingkat=" kelas_tingkat+"&mp_id=" mataPelajaranID, new Response.Listener String () {
[11]
@Override public void onResponse(String response) { Log. + response)d(TAG, "onResponse: " ;
[5]
try { JSONArray jsonArray = new JSONArray(response); if(jsonArray.length() ) { 0 progresBarFragment.setVisibility(View.GONE ); ; lv.setVisibility(View.GONE) else } { i = i jsonArray.length() i++) { for (int 0; ;
[6]
JSONObject jsonObject = new JSONObject(jsonArray.get(i).toString()); controllerKompetensi.addKompetensi(jsonObject.getString(helperKompetensi.ki_id), , jsonObject.getString(helperKompetensi. )mp_id , jsonObject.getInt(helperKompetensi.ki_urutan) , jsonObject.getString(helperKompetensi. )ki_desc , jsonObject.getInt(helperKompetensi. )ki_tingkat ; "") } customAdapterKompetensiKelas10 customAdapterKompetensi = new customAdapterKompetensiKelas10(getContext().getApplicationContext(), kelas_tingkat mataPelajaranID controllerKompetensi, , ); ; lv.setAdapter(customAdapterKompetensi)
14
; progresBarFragment.setVisibility(View.GONE) ; nodata.setVisibility(View.GONE) ; lv.setVisibility(View.VISIBLE) new lv.setOnItemClickListener( AdapterView.OnItemClickListener() {
[22]
@Override public void , , int onItemClick(AdapterView ? parent View view
[26]
position, long id) { Log.e("trace","itemclick kelas 10 inti");
[12]
new ; HashMap String,String map = HashMap () map.put( .getArrayListModelKompetensi().get(position).g"ki_id",controllerKompetensietKi_id()); , map.put("ki_urutan"String. ( .getArrayListModelKompetensi().get(position).gevalueOf controllerKompetensitKi_urutan())); , map.put("first_data"String. ( .getArrayListModelKompetensi().get(position).gevalueOf controllerKompetensitKi_urutan())+ .getArrayListModelKompetensi().get(position)"."+controllerKompetensi.getKi_desc()); ((KompetensiActivity) getActivity()).doCommunicate(fragmentKompetensiIntiKelas10. .getSimpleName()class , fragmentKompetensiDasarKelas10. .getSimpleName()class , ; map) //Toast.makeText(c, "I am clicked at kompetensi inti for " + controllerKompetensi.getArrayListModelKompetensi().get(position).getKi_id(), Toast.LENGTH_SHORT).show(); } });
[5]
} } (JSONException e) { catch e.printStackTrace(); } } }, new Response.ErrorListener() {
[6]
@Override public void onErrorResponse(VolleyError error) { Log. + error)d(TAG, "onErrorResponse: " ;
[5]
} }) { @Override protected , throws Map String String () getParams AuthFailureError { Map String String params = , new HashMap () ; , ; params.put("ki_tingkat" kelas_tingkat) , ; params.put("mp_id" mataPelajaranID) return ; params } }; AppController. ().addToRequestQueue(stringRequestgetInstance , "req_standar_kompetensi_kelas10");
2. Download File Materi
Source Code di bawah digunakan untuk melakukan proses download materi jika tipe materi
merupakan file.
if (controllerMateriMgmp.getArrayListModelMateriMgmp().get(position).getMf_tipe() == 1 && .getArrayListModelMateriMgmp().get(position).getMf_share() controllerMateriMgmp== ) { 1 CallBackFile() { new controllerDownloadFile(context, , pDialog getActivity(), new @Override public void , openFile(File file String pathFile) { Log. + pathFile)d(TAG, "openFile: pathFile - " ;
[14]
new ; Intent intent = Intent(Intent.ACTION_VIEW) , String substring3 = pathFile.substring(pathFile.length() - 3pathFile.length()); , String substring4 = pathFile.substring(pathFile.length() - 4pathFile.length()); if (substring3.equalsIgnoreCase("doc") ||
15
substring4.equalsIgnoreCase( ) || "docx" substring3.equalsIgnoreCase( ) || "ppt" substring4.equalsIgnoreCase( )) { "pptx" intent.setDataAndType(FileProvider.getUriForFile(context, "edu.stikom.molearn.util.GenericFileProvider" "text/*", file), ); ; intent.setFlags(Intent. )FLAG_GRANT_READ_URI_PERMISSION , startActivity(Intent. (intentcreateChooser "Pilih Untuk Membuka File")); else if } (substring3.equalsIgnoreCase("jpg") || substring4.equalsIgnoreCase( ) || "jpeg" substring3.equalsIgnoreCase( ) || "png" substring3.equalsIgnoreCase( )) { "bmp" intent.setDataAndType(FileProvider.getUriForFile(context, "edu.stikom.molearn.util.GenericFileProvider" "image/*", file), ); ; intent.setFlags(Intent. )FLAG_GRANT_READ_URI_PERMISSION , startActivity(Intent. (intentcreateChooser "Pilih Untuk Membuka File")); else if } (substring3.equalsIgnoreCase("pdf")) { intent.setDataAndType(FileProvider.getUriForFile(context, "edu.stikom.molearn.util.GenericFileProvider" "application/pdf", file), ); ; intent.setFlags(Intent. )FLAG_GRANT_READ_URI_PERMISSION , startActivity(Intent. (intentcreateChooser "Pilih Untuk Membuka File")); else } { Toast.makeText(getActivity(), "File tidak dapat dibuka karena tidak ada aplikasi yang membuka", ; Toast. ).show()LENGTH_LONG } } }).execute(helperLink. + END_POINT_MATERI_MGMP controllerMateriMgmp.getArrayListModelMateriMgmp().get(position).getMf_file(), controllerMateriMgmp.getArrayListModelMateriMgmp().get(position).getMf_file()); , ; Log. (i "ActionActivity" "File Downloaded....") }
3. Menampilkan tugas siswa
Source code di bawah ini merupakan fungsi yang digunakan untuk menampilkan daftar tugas
terbaru pada siswa.
public void readTugas() { progressBar.setVisibility(View.VISIBLE); new new Handler().postDelayed( Runnable() {
[32]
@Override public void run() { CallBackTugasKelas() { cTugasKelas.getTugasKelasVolley(new @Override public void onSuccess(List modelTugasKelas mTugasKelas) { progressBar.setVisibility(View.GONE); , ; Log. (d TAG "onSuccess: " + mTugasKelas.toString()) ; nodata.setVisibility(View.VISIBLE) if (mTugasKelas.size() ) { 0 nodata.setVisibility(View.GONE); } = rvTugasKelas new RecyclerViewTugasKelas(cTugasKelas, getActivity()); ; rvTugas.setHasFixedSize( )true new RecyclerView.LayoutManager mLayoutManager = LinearLayoutManager( )context ; ; rvTugas.setLayoutManager(mLayoutManager) new ; rvTugas.setItemAnimator( DefaultItemAnimator()) ; rvTugas rvTugasKelas.setAdapter( ) ; rvTugasKelas.notifyDataSetChanged() } @Override
16
public void onSuccessResponse(String response) { Log. + response)d(TAG, "onSuccessResponse: " ; } @Override public void onFail(String msg) { progressBar.setVisibility(View.GONE); , ; Log. (d TAG "onFail: " + msg) ; nodata.setVisibility(View.VISIBLE) } }, cSiswa.getSessionSiswa().get(helperSiswa.kp_id), cSiswa.getSessionSiswa().get(helperSiswa.siswa_id), , cMataPelajaran.getSesionMataPelajaran().get(helperMataPelajaran.MP_ID) , , cSiswa.getSessionGuruForSiswa().get(helperGuru.model_guru) view ; cSiswa.getSessionSiswa().get(helperSiswa.sekolah_id)) } }, ; 500)}
4. Mengirim pesan diskusi
Source code di bawah berfungsi untuk mengirimkan pesan diskusi kelas siswa.
if (v == ) { holder buttonSend. String isi_pesan = holder editTextIsiPesan. .getText().toString(); if (cSiswa.isLoggedIn()) { = holder.KP_ID cSiswa.getSessionSiswa().get(helperSiswa.kp_id); ; holder cSiswa.SISWA_OR_GURU_ID = .getSessionSiswa().get(helperSiswa.siswa_id) holder.SISWA_OR_GURU_NAMA = cSiswa.getSessionSiswa().get(helperSiswa.siswa_nama); else if } (cGuru.isLoggedIn()) { = holder.KP_ID intentBefore.getStringExtra(helperKelasPembelajaran.KP_ID); ; holder cGuru.SISWA_OR_GURU_ID = .getSesionGuru().get(helperGuru.guru_id) ; holder cGuru.SISWA_OR_GURU_NAMA = .getSesionGuru().get(helperGuru.guru_nama) } controllerChatKelas newChat = final new controllerChatKelas(); LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context. )LAYOUT_INFLATER_SERVICE ; ; View view1 ; TextView textViewChat ; TextView textViewChatName ; TextView textViewChateDate , null ; view1 = vi.inflate(R.layout.view_chat_me ) ; textViewChat = (TextView) view1.findViewById(R.id.textViewChatMe) ; textViewChatName = (TextView) view1.findViewById(R.id.textViewChatName) ; textViewChateDate = (TextView) view1.findViewById(R.id.textViewChateDate) ; textViewChat.setText(isi_pesan) if (cSiswa.isLoggedIn()) { textViewChatName.setText( .getSessionSiswa().get(helperSiswa. ))cSiswa siswa_nama ; else if } (cGuru.isLoggedIn()) { textViewChatName.setText(cGuru.getSesionGuru().get(helperGuru.guru_nama)); } textViewChateDate.setText(helperSembarang. (helperSembarang.getNewFormatDateTime getDateNowFortmat())); ; holder linearLayout. .addView(view1) ; holder editTextIsiPesan. .setText( )"" ; requestBottomFocus() new newChat.setChatDiskusiKelasVolley( CallBackChatKelas() { @Override public void onSuccess(List modelChatDiskusiKelas modelChatDiskusiKelasList) { Log. + d(TAG, "onSuccess: newChat:" modelChatDiskusiKelasList.get( ).getKdiPosting())0 ;
[18]
}
17
@Override public void onSuccessResponse(String response) { Log. + response)d(TAG, "onSuccessResponse: newChat JSONObject : " ; } @Override public void onFail(String msg) { Log. + msg)d(TAG, "onFail: newChat" ; } }, , holder KP_ID. isi_pesan, , , holder SISWA_OR_GURU_ID. holder SISWA_OR_GURU_NAMA.cFirebase.getTokenNumber(), cMataPelajaran.getSesionMataPelajaran().get(helperMataPelajaran.MP_ID)); }
5. Melihat hasil soal ujian
Source code di bawah digunakan untuk melakukan request pada server untuk menampilkan data
hasil ujian pada aplikasi.
cSoal.getSoalJawabanSiswaVolley(new CallBackSoalJawabanSiswa() { @Override public void final onSuccess( List modelSoal mSoal) { TIME_OUT = int 500; ; tempNilai = 0 new new Handler().postDelayed( Runnable() { @Override public void run() { = nilaiKeseluruhan new ArrayList (); , ; Log. (d TAG "onSuccess banyak soal: " + mSoal.size()) new RecyclerViewJawabanSoalSiswaNew rvJawabanSoalSiswa = RecyclerViewJawabanSoalSiswaNew(cSoal, cNilaiUjian.getModelKelompokUjianSiswa().getUs_id() getApplicationContext(), , new CallBackNilai() { @Override public void int , nilaiPerSoal( nilaiPersoal String soalID) { //Log.d(TAG, "nilaiPerSoal: " + nilaiPersoal); Log.d(TAG, "nilaiPerSoal: " " soal id " + nilaiPersoal + + soalID); ; tempNilai tempNilai = + nilaiPersoal new , nilaiKeseluruhan.add( classHelperNilai(nilaiPersoalsoalID)); ; Holder. .setText(String. ( ))textViewNilai valueOf tempNilai } @Override public void int , nilaiEssay( nilaiPersoal String soalID) { { try temporaryNilai = int 0;
[5]
for int ( i= i .size()0; nilaiKeseluruhan ;i++) { Log. + d(TAG, "nilaiEssay: posisi soal " nilaiKeseluruhan.get(i).getSoalID()); , Log. (d TAG "nilaiEssay: nilai persoal " + nilaiKeseluruhan.get(i).getNilaiPersoal()); if(nilaiKeseluruhan.get(i).getSoalID().equals(soalID)) { nilaiKeseluruhan.get(i).setNilaiPersoal(nilaiPersoal); } } (classHelperNilai row: ) { for nilaiKeseluruhan temporaryNilai = temporaryNilai + row.getNilaiPersoal(); } Holder. .setText(String. (temporaryNilai))textViewNilai valueOf ; catch } (IndexOutOfBoundsException exx) {
18
Log.d(TAG, "nilaiEssay: nilai masih IndexOutOfBoundsException" + exx.getMessage()); } } }); ; Holder. .setHasFixedSize( )recyclerView true new RecyclerView.LayoutManager mLayoutManager = LinearLayoutManager(getApplicationContext()); ; Holder. .setLayoutManager(mLayoutManager)recyclerView new ; Holder. .setItemAnimator(recyclerView DefaultItemAnimator()) ; Holder. .setAdapter(rvJawabanSoalSiswa)recyclerView new Holder. .addOnItemTouchListener(recyclerViewRecyclerTouchListener(getApplicationContext() Holder., recyclerView, new
[22]
ClickListener() { @Override public void , int onClick(View view position) { } @Override public void , int onLongClick(View view position) { } })); ; rvJawabanSoalSiswa.notifyDataSetChanged() ; Holder. .setVisibility(View. )progreBar GONE } }, TIME_OUT);
[18]
} @Override public void onSuccessResponse(String response) { Log. + response)d(TAG, "onSuccessResponse: " ; } @Override public void onFail(String msg) { Log. + msg)d(TAG, "onFail: " ; } } .getModelKelompokUjianSiswa().getUs_id(), cNilaiUjian , cNilaiUjian.getModelKelompokUjianSiswa().getKu_id());
19
F. Struktur Database