feat:menambahkan buttton di hasil prediksi dan memperbaiki button di testing

This commit is contained in:
muhamad fais aizat 2025-05-03 14:59:05 +07:00
parent 986b9d0b99
commit 357611bd50
3 changed files with 24 additions and 3 deletions

View File

@ -1,6 +1,7 @@
import React, { useState, useEffect } from "react"; import React, { useState, useEffect } from "react";
import { SearchNormal1 } from "iconsax-react"; import { SearchNormal1 } from "iconsax-react";
import { Input } from "@/components/ui/input"; import { Input } from "@/components/ui/input";
import { Button } from '@/components/ui/button'
import { import {
Table, Table,
TableBody, TableBody,
@ -21,6 +22,8 @@ import {
import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area";
import axios from 'axios'; import axios from 'axios';
import { API_URL } from "../../../helpers/networt"; import { API_URL } from "../../../helpers/networt";
import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';
@ -65,11 +68,27 @@ const Result = () => {
const endIndex = startIndex + ITEMS_PER_PAGE; const endIndex = startIndex + ITEMS_PER_PAGE;
const currentData = filteredData.slice(startIndex, endIndex); const currentData = filteredData.slice(startIndex, endIndex);
const unduhExcel = () => {
if (dataHarga.length === 0) {
alert("Tidak ada data untuk diunduh.");
return;
}
const worksheet = XLSX.utils.json_to_sheet(dataHarga);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, "Data Harga");
const excelBuffer = XLSX.write(workbook, { bookType: "xlsx", type: "array" });
const data = new Blob([excelBuffer], { type: "application/octet-stream" });
saveAs(data, "hasil_prediksi_seluruh_data_harga_tomat.xlsx");
};
return ( return (
<div className="w-full px-4 md:px-8 py-4 space-y-6"> <div className="w-full px-4 md:px-8 py-4 space-y-6">
{/* Header */} {/* Header */}
<div className="flex flex-col md:flex-row md:justify-between md:items-center gap-4"> <div className="flex flex-col md:flex-row md:justify-between md:items-center gap-4">
<h1 className="text-lg font-semibold">Hasil Harga Prediksi</h1> <h1 className="text-lg font-semibold">Hasil Harga Prediksi</h1>
<div className='xl:flex grid gap-3'>
<div className="relative w-full md:w-[308px] h-[40px]"> <div className="relative w-full md:w-[308px] h-[40px]">
<SearchNormal1 className="absolute left-4 top-1/2 transform -translate-y-1/2" size={16} /> <SearchNormal1 className="absolute left-4 top-1/2 transform -translate-y-1/2" size={16} />
<Input <Input
@ -82,6 +101,8 @@ const Result = () => {
}} }}
/> />
</div> </div>
<Button onClick={unduhExcel} className='h-[40px] xl:w-40 md:w-full w-full bg-gradient-to-r from-[#402412a8] to-[#9a070790]'>unduh excel</Button>
</div>
</div> </div>
{/* Table Container */} {/* Table Container */}

View File

@ -76,7 +76,7 @@ const HasilPrediksi = ({ result }) => {
<h1 className='text-[14px] font-semibold'>Hasil memprediksi Harga</h1> <h1 className='text-[14px] font-semibold'>Hasil memprediksi Harga</h1>
<p className='pr-[30px] text-[10px]'>Berikut hasil prediksi terhadap data uji:</p> <p className='pr-[30px] text-[10px]'>Berikut hasil prediksi terhadap data uji:</p>
</div> </div>
<div className='xl:flex sm:grid gap-3'> <div className='xl:flex grid gap-3'>
<div className="relative w-full md:w-[308px] h-[32px]"> <div className="relative w-full md:w-[308px] h-[32px]">
<SearchNormal1 className="absolute left-[16px] top-1/2 transform -translate-y-1/2" size={16} /> <SearchNormal1 className="absolute left-[16px] top-1/2 transform -translate-y-1/2" size={16} />
<Input <Input
@ -89,7 +89,7 @@ const HasilPrediksi = ({ result }) => {
}} }}
/> />
</div> </div>
<Button onClick={unduhExcel} className='h-[32px] bg-gradient-to-r from-[#402412a8] to-[#9a070790]'>unduh excel</Button> <Button onClick={unduhExcel} className='h-[32px] xl:w-40 md:w-full w-full bg-gradient-to-r from-[#402412a8] to-[#9a070790]'>unduh excel</Button>
</div> </div>
</div> </div>
<div className=""> <div className="">

View File

@ -81,7 +81,7 @@ const Preprocessing = ({ result }) => {
<h1 className='text-[14px] font-semibold'>Preprocessing</h1> <h1 className='text-[14px] font-semibold'>Preprocessing</h1>
<p className='pr-[30px] text-[10px]'>Tahap ini dilakukan untuk mengubah kolom angka menjadi tipe numerik, menghapus nilai yang kosong, mengubah format tanggal menjadi format date time, menambahkan fitur baru Harga 2Hari Lalu sebagai tambahan informasi historis.</p> <p className='pr-[30px] text-[10px]'>Tahap ini dilakukan untuk mengubah kolom angka menjadi tipe numerik, menghapus nilai yang kosong, mengubah format tanggal menjadi format date time, menambahkan fitur baru Harga 2Hari Lalu sebagai tambahan informasi historis.</p>
</div> </div>
<div className='xl:flex sm:grid gap-3'> <div className='xl:flex grid gap-3'>
<div className="relative w-full md:w-[308px] h-[32px]"> <div className="relative w-full md:w-[308px] h-[32px]">
<SearchNormal1 className="absolute left-[16px] top-1/2 transform -translate-y-1/2" size={16} /> <SearchNormal1 className="absolute left-[16px] top-1/2 transform -translate-y-1/2" size={16} />
<Input <Input