Minggu, 17 Desember 2023

PBKK - FP - Cloud Based Data Search with Google Apps Script

Nama : Richie Seputro, Andhika Lingga Mariano, Frederick Yonatan Susanto

Referensi Jurnal:

 

Buatlah deskripsi studi kasus aplikasi ditinjau dari MVC nya(individu)

Aplikasi kami adalah aplikasi yang berupa aplikasi web yang terintegrasi dengan Google

Apps Script yang bisa menampilkan data dari spreadsheet ke view website, meng-insert

data dari view website ke spreadsheet, dan bisa melakukan read/menampilkan data sesuai

dengan search term user dan bisa diurutkan berdasarkan kolom


  • Model: 

Satu sheet (table) yang bernama Produk. Atribut: ID Produk, Nama Produk,
Deskripsi Produk, Kategori Produk, Negara Asal, Kondisi Produk (baru atau bekas),
Harga, Stok, dan Timestamp ketika produk di-insert atau di-update.


  • View:

  1. Insert view (memasukkan data produk)

  2. List view (lihat semua data produk, juga mengandung fungsionalitas delete)

  3. Search view (lihat semua data produk yang sesuai dengan search terms)

  4. Edit view (memodifikasi data produk)


  • Controller:

  1. InsertController: menambahkan data produk baru ke spreadsheet

  2. ListController: menampilkan seluruh data produk

  3. SearchController: menampilkan data produk sesuai dengan pencarian

  4. EditController: meminta data baru kepada pengguna dan mengubah data di sheets

  5. DeleteController: menghapus record data yang dipilih


Buatlah rancangan umum arsitektur atau fitur yang ada dalam aplikasi  (individu)

Website kami terdiri dari satu tampilan utama yang mana mengandung berbagai view yang
disebutkan di atas. Aplikasi dibuat demikian agar seorang pengguna dapat dengan mudah
melakukan semua fungsionalitas CRUD dengan cepat dan tanpa distraksi.


Fitur-fitur yang ada adalah aplikasi kami meliputi:

  1. Create

  2. Read

  3. Update

  4. Delete

     


Rancang desain databasenya  (individu)




Buat desain front end  (individu)




Tentukan Control yang akan menghandle logika back end.  (individu)


1. Fungsi Create Record untuk membuat record baru : 


function createRecord(values) {


  try {

    let valueRange = Sheets.newRowData();

    valueRange.values = values;


    let appendRequest = Sheets.newAppendCellsRequest();

    appendRequest.sheetId = SPREADSHEETID;

    appendRequest.rows = valueRange;


    Sheets.Spreadsheets.Values.append(valueRange, SPREADSHEETID,
        DATARANGE, { valueInputOption: "RAW" });

  } catch (err) {

    console.log('Failed with error %s', err.message);

  }

}


2. Fungsi Read Record untuk membaca record yang ada :

function readRecord(range) {

  try {

    let result = Sheets.Spreadsheets.Values.get(SPREADSHEETID, range);

    return result.values;

  } catch (err) {

    console.log('Failed with error %s', err.message);

  }

}


3. Fungsi Update Record untuk mengupdate record yang ada :

function updateRecord(values, updateRange) {

  try {

    let valueRange = Sheets.newValueRange();

    valueRange.values = values;

    Sheets.Spreadsheets.Values.update(valueRange, SPREADSHEETID,

       updateRange, { valueInputOption: "RAW" });

  } catch (err) {

    console.log('Failed with error %s', err.message);

  }

}


4. Fungsi Delete Record untuk delete record yang ada :

function deleteRecord(id) {

  const rowToDelete = getRowIndexById(id);

  const deleteRequest = {

    "deleteDimension": {

      "range": {

        "sheetId": DATASHEETID,

        "dimension": "ROWS",

        "startIndex": rowToDelete,

        "endIndex": rowToDelete + 1

      }

    }

  };

  Sheets.Spreadsheets.batchUpdate({ "requests": [deleteRequest] },

      SPREADSHEETID);

  return getLastTenRecords();

}


5. Fungsi Search Record untuk mencari record dari record-record yang ada :

function searchRecords(formObject) {

  let result = [];

  try {

    if (formObject.searchText) {//Execute if form passes search text

      const data = readRecord(DATARANGE);

      const searchText = formObject.searchText;


      // Loop through each row and column to search for matches

      for (let i = 0; i < data.length; i++) {

        for (let j = 0; j < data[i].length; j++) {

          const cellValue = data[i][j];

          if (cellValue.toLowerCase().includes(searchText.toLowerCase())) {

            result.push(data[i]);

            break; // Stop searching for other matches in this row

          }

        }

      }

    }

  } catch (err) {

    console.log('Failed with error %s', err.message);

  }

  return result;

}



Implementasikan rancangan yang sudah dibuat  menggunakan Framework NET, CI

ataupun Framework Google (pilih salah satu - bisa kelompok maks 3)



Buat video presentasinya, upload di youtube, dan didokumentasikan di blog.

 


 

Tidak ada komentar:

Posting Komentar

PBKK - FP - Cloud Based Data Search with Google Apps Script

Nama : Richie Seputro, Andhika Lingga Mariano, Frederick Yonatan Susanto NRP : 5025211213, 5025211161, 5025211121 Kelompok: 22 Kelas : Pemro...