update
|
@ -11,7 +11,9 @@
|
|||
"laravel/tinker": "^2.9"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/dbal": "^4.2",
|
||||
"fakerphp/faker": "^1.23",
|
||||
"kitloong/laravel-migrations-generator": "^7.1",
|
||||
"laravel/pail": "^1.1",
|
||||
"laravel/pint": "^1.13",
|
||||
"laravel/sail": "^1.26",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "626b9e7ddd47fb7eff9aaa53cce0c9ad",
|
||||
"content-hash": "f864784c78bab537f2b3426794daaf69",
|
||||
"packages": [
|
||||
{
|
||||
"name": "brick/math",
|
||||
|
@ -5800,6 +5800,160 @@
|
|||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"version": "4.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/dbal.git",
|
||||
"reference": "33d2d7fe1269b2301640c44cf2896ea607b30e3e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/33d2d7fe1269b2301640c44cf2896ea607b30e3e",
|
||||
"reference": "33d2d7fe1269b2301640c44cf2896ea607b30e3e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/deprecations": "^0.5.3|^1",
|
||||
"php": "^8.1",
|
||||
"psr/cache": "^1|^2|^3",
|
||||
"psr/log": "^1|^2|^3"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "12.0.0",
|
||||
"fig/log-test": "^1",
|
||||
"jetbrains/phpstorm-stubs": "2023.2",
|
||||
"phpstan/phpstan": "2.1.1",
|
||||
"phpstan/phpstan-phpunit": "2.0.3",
|
||||
"phpstan/phpstan-strict-rules": "^2",
|
||||
"phpunit/phpunit": "10.5.39",
|
||||
"slevomat/coding-standard": "8.13.1",
|
||||
"squizlabs/php_codesniffer": "3.10.2",
|
||||
"symfony/cache": "^6.3.8|^7.0",
|
||||
"symfony/console": "^5.4|^6.3|^7.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\DBAL\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/dbal.html",
|
||||
"keywords": [
|
||||
"abstraction",
|
||||
"database",
|
||||
"db2",
|
||||
"dbal",
|
||||
"mariadb",
|
||||
"mssql",
|
||||
"mysql",
|
||||
"oci8",
|
||||
"oracle",
|
||||
"pdo",
|
||||
"pgsql",
|
||||
"postgresql",
|
||||
"queryobject",
|
||||
"sasql",
|
||||
"sql",
|
||||
"sqlite",
|
||||
"sqlserver",
|
||||
"sqlsrv"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/dbal/issues",
|
||||
"source": "https://github.com/doctrine/dbal/tree/4.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.doctrine-project.org/sponsorship.html",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://www.patreon.com/phpdoctrine",
|
||||
"type": "patreon"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-03-07T18:29:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
"version": "1.1.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/deprecations.git",
|
||||
"reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",
|
||||
"reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"phpunit/phpunit": "<=7.5 || >=13"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^9 || ^12 || ^13",
|
||||
"phpstan/phpstan": "1.4.10 || 2.1.11",
|
||||
"phpstan/phpstan-phpunit": "^1.0 || ^2",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12",
|
||||
"psr/log": "^1 || ^2 || ^3"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Deprecations\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
|
||||
"homepage": "https://www.doctrine-project.org/",
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/deprecations/issues",
|
||||
"source": "https://github.com/doctrine/deprecations/tree/1.1.5"
|
||||
},
|
||||
"time": "2025-04-07T20:06:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fakerphp/faker",
|
||||
"version": "v1.24.1",
|
||||
|
@ -5985,6 +6139,84 @@
|
|||
},
|
||||
"time": "2020-07-09T08:09:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "kitloong/laravel-migrations-generator",
|
||||
"version": "v7.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/kitloong/laravel-migrations-generator.git",
|
||||
"reference": "e46bdbe9308c211fd896cdc834b28d6b9f0dce3f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/kitloong/laravel-migrations-generator/zipball/e46bdbe9308c211fd896cdc834b28d6b9f0dce3f",
|
||||
"reference": "e46bdbe9308c211fd896cdc834b28d6b9f0dce3f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-pdo": "*",
|
||||
"illuminate/support": "^11.0|^12.0",
|
||||
"php": "^8.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"barryvdh/laravel-ide-helper": "^3.0",
|
||||
"friendsofphp/php-cs-fixer": "^3.1",
|
||||
"larastan/larastan": "^2.0|^3.0",
|
||||
"mockery/mockery": "^1.0",
|
||||
"orchestra/testbench": "^9.0|^10.0",
|
||||
"phpmd/phpmd": "^2.10",
|
||||
"phpstan/phpstan-mockery": "^1.0|^2.0",
|
||||
"slevomat/coding-standard": "^8.0",
|
||||
"squizlabs/php_codesniffer": "^3.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"KitLoong\\MigrationsGenerator\\MigrationsGeneratorServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"KitLoong\\MigrationsGenerator\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kit Loong",
|
||||
"email": "kitloong1008@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Generates Laravel Migrations from an existing database",
|
||||
"keywords": [
|
||||
"artisan",
|
||||
"generator",
|
||||
"laravel",
|
||||
"lumen",
|
||||
"migration",
|
||||
"migrations"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/kitloong/laravel-migrations-generator/issues",
|
||||
"source": "https://github.com/kitloong/laravel-migrations-generator/tree/v7.1.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.buymeacoffee.com/kitloong",
|
||||
"type": "buy_me_a_coffee"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/kitloong",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2025-02-27T12:06:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/pail",
|
||||
"version": "v1.2.2",
|
||||
|
@ -6975,6 +7207,55 @@
|
|||
],
|
||||
"time": "2025-02-06T16:10:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/cache",
|
||||
"version": "3.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/cache.git",
|
||||
"reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
|
||||
"reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Cache\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for caching libraries",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"psr",
|
||||
"psr-6"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/cache/tree/3.0.0"
|
||||
},
|
||||
"time": "2021-02-03T23:26:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
"version": "3.0.2",
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreatePenyakitGejalaTable extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('penyakit_gejala', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->unsignedBigInteger('penyakit_id');
|
||||
$table->unsignedBigInteger('gejala_id');
|
||||
$table->foreign('penyakit_id')->references('id')->on('penyakit')->onDelete('cascade');
|
||||
$table->foreign('gejala_id')->references('id')->on('gejala')->onDelete('cascade');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('penyakit_gejala');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('accounts', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('username', 50);
|
||||
$table->string('password');
|
||||
$table->string('alamat', 99);
|
||||
$table->string('email', 100);
|
||||
$table->string('umur', 11);
|
||||
$table->string('telp', 20);
|
||||
$table->string('role', 11);
|
||||
$table->dateTime('registered');
|
||||
$table->string('otp_code', 20)->nullable();
|
||||
$table->string('otp_expires_at', 20)->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('accounts');
|
||||
}
|
||||
};
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('gejala', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('kode_gejala', 99);
|
||||
$table->string('nama_gejala', 99);
|
||||
$table->string('gambar', 99);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('gejala');
|
||||
}
|
||||
};
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('penyakit', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('kode_penyakit', 11);
|
||||
$table->string('nama_penyakit', 11);
|
||||
$table->string('subjudul', 99);
|
||||
$table->text('deskripsi');
|
||||
$table->text('penanganan');
|
||||
$table->string('gambar', 40);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('penyakit');
|
||||
}
|
||||
};
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('riwayat', function (Blueprint $table) {
|
||||
$table->integer('id_riwayat', true);
|
||||
$table->integer('id_user')->index('id_user');
|
||||
$table->timestamp('tanggal')->useCurrentOnUpdate()->useCurrent();
|
||||
$table->integer('id_penyakit')->index('id_penyakit');
|
||||
$table->string('nilai', 99);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('riwayat');
|
||||
}
|
||||
};
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('rules', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('id_penyakit')->index('rules_ibfk_1');
|
||||
$table->integer('id_gejala')->index('rules_ibfk_2');
|
||||
$table->string('cf_pakar', 33);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('rules');
|
||||
}
|
||||
};
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('riwayat', function (Blueprint $table) {
|
||||
$table->foreign(['Id_user'], 'riwayat_ibfk_1')->references(['id'])->on('accounts')->onUpdate('restrict')->onDelete('restrict');
|
||||
$table->foreign(['id_penyakit'], 'riwayat_ibfk_2')->references(['id'])->on('penyakit')->onUpdate('restrict')->onDelete('restrict');
|
||||
$table->foreign(['id_user'], 'riwayat_ibfk_3')->references(['id'])->on('accounts')->onUpdate('restrict')->onDelete('restrict');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('riwayat', function (Blueprint $table) {
|
||||
$table->dropForeign('riwayat_ibfk_1');
|
||||
$table->dropForeign('riwayat_ibfk_2');
|
||||
$table->dropForeign('riwayat_ibfk_3');
|
||||
});
|
||||
}
|
||||
};
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('rules', function (Blueprint $table) {
|
||||
$table->foreign(['id_penyakit'], 'rules_ibfk_1')->references(['id'])->on('penyakit')->onUpdate('restrict')->onDelete('cascade');
|
||||
$table->foreign(['id_gejala'], 'rules_ibfk_2')->references(['id'])->on('gejala')->onUpdate('restrict')->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('rules', function (Blueprint $table) {
|
||||
$table->dropForeign('rules_ibfk_1');
|
||||
$table->dropForeign('rules_ibfk_2');
|
||||
});
|
||||
}
|
||||
};
|
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 379 KiB |
After Width: | Height: | Size: 424 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 136 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 83 KiB |
|
@ -143,7 +143,6 @@
|
|||
<option value="0.8">Hampir Pasti (80%)</option>
|
||||
<option value="0.6">Kemungkinan Besar (60%)</option>
|
||||
<option value="0.4">Mungkin (40%)</option>
|
||||
<option value="0">Tidak Tahu (0%)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -156,7 +155,6 @@
|
|||
<li><strong>Hampir Pasti (80%)</strong>: Anda cukup yakin gejala ini terjadi</li>
|
||||
<li><strong>Kemungkinan Besar (60%)</strong>: Anda melihat gejala ini ada tapi tidak terlalu jelas</li>
|
||||
<li><strong>Mungkin (40%)</strong>: Anda tidak yakin tapi ada kemungkinan gejala ini terjadi</li>
|
||||
<li><strong>Tidak Tahu (0%)</strong>: Anda sama sekali tidak yakin/tidak tahu</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
@ -278,10 +276,6 @@ function updateDropdownOptions() {
|
|||
value: '0.4',
|
||||
label: 'Mungkin (40%)',
|
||||
selected: currentValue === '0.4'
|
||||
}, {
|
||||
value: '0',
|
||||
label: 'Tidak Tahu (0%)',
|
||||
selected: currentValue === '0'
|
||||
}],
|
||||
'value',
|
||||
'label',
|
||||
|
|
|
@ -200,7 +200,8 @@
|
|||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
p{
|
||||
|
||||
p {
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
@ -217,14 +218,12 @@
|
|||
</div>
|
||||
<div class="bottom-subcontainer">
|
||||
<div class="left">
|
||||
<img src="assets/images/foto_pakar.jpg" alt="Gallyndra Fatkhu Dinata">
|
||||
<img src="assets/images/pakar.jpeg" alt="Gallyndra Fatkhu Dinata">
|
||||
</div>
|
||||
<div class="right">
|
||||
<h2 class="mb-2"><span>Gallyndra Fatkhu Dinata, S.P., M.P.</span></h2>
|
||||
<p>
|
||||
Gallyndra Fatkhu Dinata, S.P., M.P. merupakan dosen di Jurusan Produksi Pertanian, Politeknik Negeri Jember.
|
||||
Beliau memiliki keahlian dalam bidang budidaya pertanian dan pengelolaan tanaman hortikultura, serta aktif dalam berbagai kegiatan penelitian pada tanaman.
|
||||
Sebagai pakar, beliau telah banyak membantu mahasiswa dalam mengembangkan penelitian yang aplikatif di bidang pertanian modern.
|
||||
Gallyndra Fatkhu Dinata, S.P., M.P. adalah dosen tetap di Jurusan Produksi Pertanian, Politeknik Negeri Jember yang menekuni bidang fitopatologi, khususnya bakteriologi, mikologi, dan pengendalian hayati. Saat ini menjabat sebagai Kepala Laboratorium Perlindungan Tanaman dan mengampu mata kuliah terkait perlindungan tanaman. Beliau aktif dalam penelitian, pengabdian masyarakat, pengembangan bahan ajar, serta membimbing mahasiswa dalam kompetisi ilmiah seperti PKM dan Pimnas.
|
||||
</p>
|
||||
<table>
|
||||
<tr>
|
||||
|
@ -251,4 +250,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|