Pertemuan 2: Prinsip Desain Software

tugas 1

Nama    : Clarissa Luna maheswari
NRP      : 5025211003

               Perkuliahan di minggu lalu berfokus tentang prinsip desain software. Di pertemuan tersebut, dijelaskan bahwa tahapan desain menerjamahkan kebutuhan perangkat lunak ke dalam model yang dapat dipahami oleh pengembang. Terdapat beberapa hal penting yang perlu diperhatikan supaya perangkat lunak yang dikembangkan menjadi fleksibel dan komponen-komponennya dapat digunakan ulang. 

                Sesuai tugas yang diberikan, saya telah mengidentifikasi berbagai jenis desain yang ada di dalam salah satu jurnal penelitian berjudul A Mobile Application for Easy Design and Testing of Algorithms to Monitor Physical Activity in the WorkplacePenelitian ini menyoroti pembuatan aplikasi smartphone untuk memonitor aktivitas fisik individu di tempat kerja menggunakan teknologi sensor accelerometer dan HAR.


Mengapa Saya Memilih Jurnal Tersebut?

            Saya memilih jurnal ini untuk mempelajari konsep desain perangkat lunak karena jurnal tersebut memberikan pemahaman mendalam tentang tahapan desain dalam pengembangan perangkat lunak, yang sesuai dengan materi kuliah sebelumnya. Dalam jurnal ini, diuraikan dengan detail tentang pentingnya tahap desain dalam menerjemahkan kebutuhan perangkat lunak ke dalam model yang dapat dipahami oleh pengembang. Selain itu, jurnal ini juga membahas prinsip-prinsip desain yang penting, seperti abstraksi, keterikatan modul, dan pemisahan antarmuka dan implementasi, yang sesuai dengan konsep yang telah saya pelajari sebelumnya. Dengan membahas kegiatan-kegiatan dalam tahap desain, seperti mendefinisikan tujuan desain, subsistem, dan pengelolaan data persisten, jurnal ini membantu saya memahami bagaimana proses desain sebenarnya dilakukan dalam praktiknya. Oleh karena itu, jurnal ini merupakan sumber yang sangat relevan dan bermanfaat untuk mendalami konsep dan praktik desain perangkat lunak.

Identifikasi Desain

            Saya mengidentifikasi desain yang terdapat pada proses perancangan perangkat lunak berdasarkan Jurnal A Mobile Application for Easy Design and Testing of Algorithms to Monitor Physical Activity in the WorkplaceDesain-desain yang ditemukan diklasifikasikan menjadi empat jenis sesuai dengan materi kuliah di pekan lalu. Terdapat 13 Tabel dan 13 Gambar pada jurnal tersebut.

A) Apa itu Desain Arsitektur?

        Desain arsitektur perangkat lunak merupakan tahap awal dalam pengembangan perangkat lunak yang berfokus pada struktur keseluruhan sistem. Hal ini melibatkan pengambilan keputusan terkait dengan organisasi komponen-komponen perangkat lunak, interaksi antara komponen-komponen tersebut, serta distribusi fungsi-fungsi pada level sistem. Desain arsitektur menentukan kerangka kerja umum dan prinsip-prinsip desain yang akan menjadi landasan untuk pengembangan selanjutnya.

Penerapan Desain Arsitektur pada Jurnal

1. Tabel Karakter dari Sistem HAR


    Tabel ini termasuk dalam desain arsitektur karena mengorganisir dan menampilkan karakteristik utama dari berbagai sistem Pengenalan Aktivitas Manusia (Human Activity Recognition/HAR). Dalam desain arsitektur, penting untuk memahami dan merencanakan karakteristik utama dari sistem, seperti apakah sistem akan dieksekusi secara online atau offline, apakah sistem akan mampu menggeneralisasi pengenalan aktivitas, dan berbagai karakteristik lainnya yang dijelaskan dalam tabel. Informasi ini membantu dalam merancang struktur keseluruhan dari sistem HAR, termasuk bagaimana komponen-komponen sistem akan berinteraksi dan beroperasi sesuai dengan kebutuhan pengguna. Dengan demikian, tabel ini memberikan wawasan yang penting dalam perencanaan dan desain arsitektur dari sebuah sistem HAR.

2. Tabel Kategori dan Tipe Aktivitas


        Tabel ini juga termasuk dalam desain arsitektur karena menyajikan informasi tentang kategori dan jenis aktivitas yang umumnya diakui dalam literatur terkait. Pengetahuan tentang jenis-jenis aktivitas ini penting dalam perencanaan dan desain sistem HAR karena mempengaruhi bagaimana sistem tersebut harus diatur untuk mengenali dan memantau aktivitas-aktivitas tersebut. Dengan memahami kategori dan jenis aktivitas yang berbeda, para perancang dapat mengembangkan algoritma pengenalan aktivitas yang lebih efektif dan akurat. Oleh karena itu, tabel ini memberikan wawasan yang penting dalam perencanaan dan desain arsitektur dari sebuah sistem HAR.

3. Tabel Sensor Hardware dan Software







  

        Tabel ini termasuk dalam desain arsitektur karena memberikan informasi tentang berbagai sensor perangkat keras (HW) dan perangkat lunak (SW) yang tersedia dalam platform Android. Pengetahuan tentang sensor-sensor ini penting dalam perencanaan arsitektur sistem HAR karena memengaruhi bagaimana data sensor dikumpulkan, diproses, dan digunakan untuk mengenali aktivitas manusia. Dengan memahami sensor-sensor yang tersedia, para perancang dapat memilih sensor-sensor yang paling sesuai untuk memantau aktivitas tertentu dan merancang alur kerja atau struktur sistem yang efektif untuk mengintegrasikan data dari sensor-sensor tersebut. Oleh karena itu, tabel ini memberikan informasi kunci yang dibutuhkan dalam merencanakan dan merancang arsitektur dari sebuah sistem HAR.

4. Tabel Fitur

        
          Tabel ini juga termasuk dalam desain arsitektur karena memberikan daftar fitur umum yang digunakan dalam sistem Pengenalan Aktivitas Manusia (HAR), yang telah dikelompokkan berdasarkan domain penggunaannya. Pengetahuan tentang fitur-fitur ini sangat penting dalam perencanaan dan desain sistem HAR karena mempengaruhi bagaimana data dari sensor diproses dan aktivitas manusia dianalisis. Dengan memahami fitur-fitur yang umum digunakan dalam sistem HAR, para perancang bisa memilih fitur yang paling cocok untuk tujuan pengenalan aktivitas tertentu dan merancang model atau algoritma yang sesuai untuk mengimplementasikan fitur-fitur tersebut. Jadi, tabel ini memberikan informasi yang sangat berguna untuk merencanakan dan merancang arsitektur dari sebuah sistem HAR.

5. Diagram Kelas-kelas Pencacahan dan Manipulasi Data dari Layanan Latar Belakang


        Diagram tersebut menggambarkan kelas-kelas yang terkait dengan akuisisi dan manipulasi data dalam layanan latar belakang (BackgroundSensorsService class). Sebab itulah diagram ini termasuk dalam desain arsitektur, karena diagram tersebut memberikan representasi visual dari struktur kelas-kelas yang terlibat dalam proses akuisisi dan manipulasi data dalam layanan latar belakang. Penggunaan diagram ini membantu dalam pemahaman tentang bagaimana bagian-bagian dari sistem berinteraksi dan bekerja bersama untuk mencapai tujuan akhirnya. 

B) Apa itu Desain Interface?

          Desain interface berkaitan dengan cara pengguna berinteraksi dengan perangkat lunak. Ini mencakup desain tata letak, elemen grafis, navigasi, dan pengalaman pengguna secara keseluruhan. Tujuannya adalah untuk membuat antarmuka yang intuitif, mudah digunakan, dan menarik bagi pengguna akhir. Desain interface mencakup aspek visual dan interaksi antara pengguna dan sistem.

Penerapan Desain Interface pada Jurnal

1.  Gambar Menu Pilihan Atas dan Samping


            Gambar di atas merupakan penerapan desain interface pada jurnal. Gambar tersebut menjelaskan menu pemilihan atas dan samping memungkinkan pengguna untuk mengakses fungsi-fungsi aplikasi. Ketika pengguna mengklik salah satu item dalam salah satu dari dua menu tersebut, antarmuka baru untuk fungsi atau visualisasi yang diinginkan akan dimulai. Menu samping digunakan untuk mengakses pengaturan aplikasi, sementara menu atas menyediakan semua fungsi aktual. Berbagai antarmuka diimplementasikan melalui fragmen Android independen yang saling menggantikan. Desain antarmuka ini masuk dalam desain interface karena mengatur tata letak dan navigasi antarmuka pengguna, sesuai dengan prinsip-prinsip Material Design.

2. Gambar Pengaturan Posisi Smartphone


           Gambar di atas juga termasuk tangkapan layar dari aplikasi. Pengguna harus memilih pengaturan yang tepat tentang posisi smartphone sebelum menggunakan aplikasi. Pada gambar, pengguna diminta untuk memilih posisi smartphone saat digunakan, yang mempengaruhi klasifikasi aktivitas oleh aplikasi. Desain interface ini penting karena memastikan aplikasi berfungsi sesuai dengan ekspektasi pengguna dan memungkinkan pengguna untuk mengatur parameter yang sesuai dengan preferensi mereka.

3. Gambar Antarmuka Pelacakan


        Tangkapan layar tersebut menunjukkan fitur pada aplikasi yang memungkinkan pengguna untuk memulai dan menghentikan pencatatan aktivitas mereka. Ketika pengguna memasukkan smartphone ke dalam saku mereka, aplikasi akan secara otomatis mulai merekam aktivitas. Pengguna juga akan diberitahu ketika smartphone dikeluarkan dari saku, dan pencatatan akan dihentikan secara otomatis. Desain interface ini mencakup elemen-elemen seperti tombol mulai dan hentikan yang memungkinkan pengguna untuk berinteraksi dengan aplikasi dengan mudah.


C) Apa itu Desain Data?

        Desain data adalah tentang bagaimana data disimpan, diatur, dan diakses dalam perangkat lunak. Ini mencakup pemodelan struktur data, pemilihan basis data, serta strategi pengelolaan dan manipulasi data. Desain data harus mempertimbangkan kebutuhan aplikasi, volume data, efisiensi operasional, serta integritas dan keamanan data.

Penerapan Desain Data pada Jurnal

1.Grafik Distribusi Usia


        Gambar tersebut termasuk dalam desain data karena memberikan informasi tentang distribusi usia di antara subjek-subjek dalam database yang direkam di dunia nyata. Data usia subjek-subjek ini merupakan bagian dari desain data karena membantu dalam pemahaman karakteristik dan profil dari subjek-subjek yang terdapat dalam database tersebut. Data tersebut diperlukan untuk proses pengelolaan dan analisis data yang berkaitan dengan database yang dimaksudkan pada jurnal.

2. Grafik Distribusi Tinggi Badan


        Grafik ini termasuk dalam desain data karena memberikan informasi tentang distribusi tinggi badan di antara subjek-subjek dalam database yang direkam di dunia nyata. Data tinggi badan subjek-subjek ini merupakan bagian dari desain data karena membantu dalam pemahaman karakteristik fisik dari subjek-subjek yang terdapat dalam database tersebut. Informasi tersebut dibutuhkan untuk melakukan analisis data yang berkaitan dengan database tersebut, seperti pemetaan tinggi badan subjek-subjek atau studi terkait karakteristik fisik.

3. Grafik Distribusi Berat Badan


        Grafik di atas termasuk dalam desain data karena memberikan informasi tentang distribusi berat badan di antara subjek-subjek dalam database yang direkam di dunia nyata. Data berat badan subjek-subjek ini merupakan bagian dari desain data karena membantu dalam pemahaman karakteristik fisik dari subjek-subjek yang terdapat dalam database tersebut. Data ini penting untuk analisis data terkait dengan database tersebut, seperti pemetaan berat badan subjek-subjek atau studi terkait karakteristik fisik dan kesehatan.

4. Tabel dan Diagram Distribusi Kelas untuk Dataset yang Diproses dari Rekaman Laboratorium


          Tabel dan diagram pie chart ini masuk dalam desain data. Hal ini dikarenakan tabel tersebut menyajikan distribusi kelas atau aktivitas dalam dataset yang telah diproses di laboratorium. Informasi ini digunakan untuk memberikan pemahaman tentang sebaran data yang digunakan dalam pengembangan dan pengujian algoritma pengenalan aktivitas. Walaupun diagram pie chart memberikan visualisasi yang lebih intuitif tentang distribusi kelas, keduanya tetap berfokus pada representasi dan pengorganisasian data dalam konteks pengumpulan data untuk penelitian atau pengembangan sistem.

5. Tabel dan Diagram Distribusi Kelas untuk Dataset yang Diproses dari Rekaman Dunia Nyata



            Tabel dan diagram tersebut masuk dalam desain data karena memberikan informasi tentang distribusi kelas atau aktivitas dalam dataset yang telah diproses dari rekaman dunia nyata. Data tersebut akan digunakan untuk memahami sebaran data yang digunakan dalam pengembangan dan pengujian algoritma pengenalan aktivitas.

6. Visualisasi Distribusi Kelas Waktu Berjalan Kaki


           Grafik tersebut menunjukkan distribusi kelas yang dihasilkan dengan mengambil jendela waktu berjalan kaki dari kedua dataset laboratorium dan dunia nyata. Gambar ini melibatkan analisis dan presentasi data yang ada, sehingga digolongkan menjadi desain data.

7. Visualisasi Diagram Distribusi Kelas Berjalan Kaki dan Duduk


           Gambar tersebut lebih terkait dengan desain data karena fokus pada distribusi kelas yang dihasilkan dari pengambilan jendela waktu berjalan kaki dan duduk dari dua dataset yang berbeda. Oleh karenanya,  gambar ini digolongkan menjadi desain data pada jurnal.

D) Apa itu Desain Algoritma?

                Desain algoritma melibatkan pengembangan metode atau prosedur yang diperlukan untuk menyelesaikan masalah atau mencapai tujuan tertentu dalam perangkat lunak. Ini mencakup pemilihan dan pengoptimalan algoritma-algoritma yang sesuai untuk menangani tugas-tugas tertentu, serta pemetaan algoritma-algoritma tersebut ke dalam struktur keseluruhan sistem. Desain algoritma harus mempertimbangkan efisiensi, keandalan, dan ketersediaan sumber daya dalam implementasi perangkat lunak.


Penerapan Desain Algoritma pada Jurnal

1. Tabel Klasifikasi Algoritma


        Tabel ini termasuk ke dalam klasifikasi algoritma atau metode pemrosesan data dalam desain sistem HAR karena memberikan informasi tentang berbagai jenis klasifikasi yang digunakan dalam sistem Pengenalan Aktivitas Manusia (HAR), yang merupakan bagian penting dari algoritma yang diterapkan dalam sistem tersebut.

2. Tabel Ringkasan Parameter Waktu dan Parameter Pemrosesan


        Tabel ini tmasuk dalam desain algoritma karena tabel tersebut memberikan ringkasan parameter waktu dan parameter pemrosesan yang digunakan dalam sistem. Informasi ini berkaitan dengan bagaimana data sensor dikumpulkan, diproses, dan dipelajari oleh algoritma pengenalan aktivitas. Parameter-parameter seperti frekuensi sampling, ukuran jendela waktu, dan jenis filter yang digunakan memengaruhi cara data diproses dan akurasi pengenalan aktivitas. Oleh karena itu, tabel ini lebih berfokus pada rincian teknis dan algoritma yang diterapkan dalam sistem, sehingga termasuk dalam desain algoritma.

3. Gambar Pseudocode


        Gambar Pseudocode dengan label "Algorithm" tersebut adalah algoritma yang digunakan dalam proses klasifikasi pada implementasi aplikasi smartphone. Algoritma ini menjelaskan langkah-langkah yang dilakukan oleh aplikasi untuk memproses data masukan, menerapkan model klasifikasi yang telah dilatih, dan menghasilkan hasil klasifikasi. Langkah-langkahnya meliputi memuat header dataset, mengambil posisi dan properti atribut, deserialisasi model yang telah dilatih, dan melakukan proses klasifikasi pada setiap jendela waktu yang sudah siap. Ini membantu dalam memahami bagaimana aplikasi mengolah data untuk mengklasifikasikan aktivitas pengguna. Oleh karena itu, tabel tersebut masuk dalam desain algoritma.

4. Tabel Parameter default untuk classifier dasar: 𝑘-NN, NN, dan DT


           Tabel ini berisi daftar parameter default untuk classifier dasar seperti 𝑘-NN (nearest neighbors), NN (neural network), dan DT (decision tree). Hal tersebut adalah parameter yang digunakan dalam proses klasifikasi data, yang merupakan bagian dari desain algoritma.

5. Tabel Akurasi kelas oleh classifier dasar



        Tabel ini memberikan akurasi dari classifier dasar seperti DT (decision tree), 𝑘-NN (nearest neighbors), dan NN (neural network) untuk setiap kelas aktivitas yang merupakan bagian dari evaluasi kinerja algoritma klasifikasi, sehingga termasuk dalam desain algoritma.

6. Tabel Confusion Matrices


        Tabel ini menampilkan confusion matrix untuk classifier dasar seperti DT (decision tree), 𝑘-NN (nearest neighbors), dan NN (neural network). Matriks kebingungan adalah bagian dari evaluasi hasil klasifikasi dan digunakan untuk menganalisis kinerja algoritma klasifikasi. Karenanya, tabel ini termasuk dalam desain algoritma.

7. Ringkasan Perbandingan tiap classifier


        Berdasarkan informasi yang terdapat dalam gambar tersebut, karakteristik yang ditunjukkan oleh setiap base classifier seperti waktu pelatihan, kinerja, interpretabilitas, ukuran file, decision tree, k-Nearest Neighbors, dan Neural network lebih berkaitan dengan evaluasi dan perbandingan antara berbagai metode klasifikasi. Oleh karena itu, informasi dalam gambar tersebut lebih cenderung terkait dengan analisis dan perbandingan performa dari berbagai algoritma klasifikasi, yang dapat dikategorikan sebagai bagian dari desain algoritma.

8. Model Hierarki untuk Masalah Misklasifikasi


       Model tersebut menunjukkan bentuk hirarkis yang digunakan untuk memecahkan masalah kesalahan klasifikasi. Model hirarkis ini digunakan untuk mengatasi masalah ketidaksesuaian klasifikasi yang terjadi. Model ini saya klasifikasikan menjadi  desain algoritma karena menunjukkan struktur model hirarkis yang digunakan dalam proses pengklasifikasian data untuk memperbaiki masalah kesalahan klasifikasi.

9. Tabel Performa Subklasifikasi Perpindahan Kecil


          Tabel ini menyajikan hasil kinerja dari subclassifier yang digunakan untuk mendeteksi perpindahan kecil. Performa diukur melalui statistik seperti akurasi kumulatif, indeks kappa, kesalahan rata-rata, dan lainnya. Selain itu, matriks kebingungan memberikan informasi tentang bagaimana classifier mengklasifikasikan setiap kelas aktivitas. Detail akurasi per kelas termasuk presisi, recall, dan F-score dicantumkan sehingga memberikan wawasan lebih mendalam tentang kinerja classifier untuk setiap kelas aktivitas. Hal tersebut berkaitan langsung dengan proses algoritma klarifikasi.

10. Tabel Performa Klasifikasi dengan Data Berjalan yang Digeneralisasi


           Tabel di atas menggambarkan kinerja dari classifier ketika dilatih dengan data berjalan yang digeneralisasi. Seperti tabel sebelumnya, ini mencakup statistik kinerja seperti akurasi kumulatif, kappa statistic, dan error rate. Matriks kebingungan yang terdapat pada tabel juga memberikan informasi tentang distribusi klasifikasi pada setiap kelas aktivitas. Detail akurasi per kelas juga disajikan untuk memberikan gambaran yang lebih lengkap tentang kinerja classifier dalam mengenali setiap aktivitas, oleh karena itu tabel ini saya klasifikasikan pada desain algoritma.

11. Tabel Performa Akhir Klasifikasi Aktif/Tidak Aktif dengan Metode Bagging, juga Mempertimbangkan Klasifikasi dengan Posisi Smartphone yang Berbeda (terbalik).


        Tabel ini masuk ke dalam desain algoritma karena memperlihatkan kinerja dari classifier bagging dalam klasifikasi aktivitas aktif/tidak aktif, termasuk dengan mempertimbangkan posisi smartphone yang berbeda. Informasi yang disajikan berkaitan dengan evaluasi kinerja algoritma klasifikasi yang digunakan untuk membedakan antara aktivitas aktif dan tidak aktif.


Kesimpulan

        Dalam tugas yang telah dilakukan, saya telah melakukan analisis mendalam terhadap jurnal penelitian yang berjudul "A Mobile Application for Easy Design and Testing of Algorithms to Monitor Physical Activity in the Workplace". Dalam analisis ini, saya berfokus pada pengidentifikasian berbagai jenis desain yang terdapat dalam jurnal tersebut, serta menerapkan konsep-konsep yang telah dipelajari dalam materi kuliah sebelumnya. 

        Saya mengidentifikasi dan menganalisis berbagai jenis desain yang terdapat dalam jurnal tersebut, seperti desain arsitektur, desain interface, desain data, dan desain algoritma. Setiap jenis desain dianalisis secara terperinci berdasarkan elemen-elemennya yang terdapat dalam jurnal. Kesimpulan yang dapat diambil adalah pentingnya tahap desain dalam pengembangan perangkat lunak. Pada suatu proses pengembangan, menurut saya desain tidak melulu tentang aspek visual, tetapi juga tentang struktur keseluruhan sistem, interaksi pengguna, pengelolaan data, dan pemilihan algoritma yang tepat.


Comments

Popular posts from this blog

Pertemuan 13: Desain System Aplikasi Instagram