Kode Isi File login.html

Kode Isi File login.html


Bantu buatkan kode isi file login.html

FarmerSmartAI - Halaman Login


Berikut kode lengkap untuk file login.html (halaman login) FarmerSmartAI:


```html

<!DOCTYPE html>

<html lang="id">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Login - FarmerSmartAI</title>

    <style>

        :root {

            --primary: #2e7d32;

            --primary-dark: #1b5e20;

            --primary-light: #4caf50;

            --secondary: #ff9800;

            --accent: #8bc34a;

            --light: #f5f5f5;

            --dark: #333;

            --gray: #757575;

            --white: #ffffff;

            --error: #f44336;

            --success: #4caf50;

        }

        

        * {

            margin: 0;

            padding: 0;

            box-sizing: border-box;

            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

        }

        

        body {

            background: linear-gradient(135deg, var(--primary-light), var(--primary-dark));

            height: 100vh;

            display: flex;

            align-items: center;

            justify-content: center;

            color: var(--dark);

        }

        

        .login-container {

            display: flex;

            width: 90%;

            max-width: 1000px;

            background-color: var(--white);

            border-radius: 15px;

            overflow: hidden;

            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);

        }

        

        .login-left {

            flex: 1;

            background: linear-gradient(rgba(46, 125, 50, 0.8), rgba(27, 94, 32, 0.9)), url('https://images.unsplash.com/photo-1500382017468-9049fed747ef?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80');

            background-size: cover;

            background-position: center;

            color: var(--white);

            padding: 50px;

            display: flex;

            flex-direction: column;

            justify-content: center;

        }

        

        .login-right {

            flex: 1;

            padding: 50px;

            display: flex;

            flex-direction: column;

            justify-content: center;

        }

        

        .logo {

            display: flex;

            align-items: center;

            margin-bottom: 30px;

        }

        

        .logo-icon {

            font-size: 2.5rem;

            color: var(--primary);

            margin-right: 15px;

        }

        

        .logo h1 {

            color: var(--primary);

            font-size: 1.8rem;

        }

        

        .welcome-text h2 {

            font-size: 2rem;

            margin-bottom: 10px;

            color: var(--dark);

        }

        

        .welcome-text p {

            color: var(--gray);

            margin-bottom: 30px;

        }

        

        .login-form {

            width: 100%;

        }

        

        .form-group {

            margin-bottom: 20px;

            position: relative;

        }

        

        .form-group label {

            display: block;

            margin-bottom: 8px;

            font-weight: 500;

            color: var(--dark);

        }

        

        .input-with-icon {

            position: relative;

        }

        

        .input-with-icon i {

            position: absolute;

            left: 15px;

            top: 50%;

            transform: translateY(-50%);

            color: var(--gray);

        }

        

        .form-control {

            width: 100%;

            padding: 15px 15px 15px 45px;

            border: 1px solid #ddd;

            border-radius: 5px;

            font-size: 1rem;

            transition: border 0.3s, box-shadow 0.3s;

        }

        

        .form-control:focus {

            border-color: var(--primary);

            box-shadow: 0 0 0 2px rgba(46, 125, 50, 0.2);

            outline: none;

        }

        

        .password-toggle {

            position: absolute;

            right: 15px;

            top: 50%;

            transform: translateY(-50%);

            background: none;

            border: none;

            color: var(--gray);

            cursor: pointer;

        }

        

        .form-options {

            display: flex;

            justify-content: space-between;

            align-items: center;

            margin-bottom: 25px;

        }

        

        .remember-me {

            display: flex;

            align-items: center;

        }

        

        .remember-me input {

            margin-right: 8px;

        }

        

        .forgot-password {

            color: var(--primary);

            text-decoration: none;

            font-size: 0.9rem;

        }

        

        .forgot-password:hover {

            text-decoration: underline;

        }

        

        .btn-login {

            width: 100%;

            padding: 15px;

            background-color: var(--primary);

            color: white;

            border: none;

            border-radius: 5px;

            font-size: 1rem;

            font-weight: 600;

            cursor: pointer;

            transition: background 0.3s;

            margin-bottom: 20px;

        }

        

        .btn-login:hover {

            background-color: var(--primary-dark);

        }

        

        .divider {

            text-align: center;

            margin: 20px 0;

            position: relative;

            color: var(--gray);

        }

        

        .divider::before {

            content: '';

            position: absolute;

            top: 50%;

            left: 0;

            right: 0;

            height: 1px;

            background-color: #ddd;

        }

        

        .divider span {

            background-color: var(--white);

            padding: 0 15px;

        }

        

        .social-login {

            display: flex;

            gap: 15px;

            margin-bottom: 25px;

        }

        

        .btn-social {

            flex: 1;

            padding: 12px;

            border: 1px solid #ddd;

            border-radius: 5px;

            background-color: white;

            display: flex;

            align-items: center;

            justify-content: center;

            cursor: pointer;

            transition: background 0.3s;

        }

        

        .btn-social:hover {

            background-color: #f9f9f9;

        }

        

        .btn-social i {

            margin-right: 8px;

            font-size: 1.2rem;

        }

        

        .btn-google i {

            color: #DB4437;

        }

        

        .btn-facebook i {

            color: #4267B2;

        }

        

        .register-link {

            text-align: center;

            margin-top: 20px;

        }

        

        .register-link a {

            color: var(--primary);

            text-decoration: none;

            font-weight: 500;

        }

        

        .register-link a:hover {

            text-decoration: underline;

        }

        

        .back-to-home {

            text-align: center;

            margin-top: 15px;

        }

        

        .back-to-home a {

            color: var(--gray);

            text-decoration: none;

            font-size: 0.9rem;

        }

        

        .back-to-home a:hover {

            text-decoration: underline;

        }

        

        .app-features {

            margin-top: 40px;

        }

        

        .feature-item {

            display: flex;

            align-items: center;

            margin-bottom: 20px;

        }

        

        .feature-icon {

            font-size: 1.5rem;

            margin-right: 15px;

            color: var(--accent);

        }

        

        .feature-text h4 {

            margin-bottom: 5px;

            font-size: 1.1rem;

        }

        

        .feature-text p {

            font-size: 0.9rem;

            color: rgba(255, 255, 255, 0.8);

        }

        

        /* Alert Messages */

        .alert {

            padding: 12px 15px;

            border-radius: 5px;

            margin-bottom: 20px;

            display: none;

        }

        

        .alert-error {

            background-color: #ffebee;

            border: 1px solid var(--error);

            color: var(--error);

        }

        

        .alert-success {

            background-color: #e8f5e9;

            border: 1px solid var(--success);

            color: var(--success);

        }

        

        /* Responsive Design */

        @media (max-width: 768px) {

            .login-container {

                flex-direction: column;

                max-width: 450px;

            }

            

            .login-left {

                padding: 30px;

            }

            

            .login-right {

                padding: 30px;

            }

            

            .social-login {

                flex-direction: column;

            }

        }

        

        @media (max-width: 480px) {

            .login-left, .login-right {

                padding: 25px;

            }

            

            .form-options {

                flex-direction: column;

                align-items: flex-start;

            }

            

            .forgot-password {

                margin-top: 10px;

            }

        }

    </style>

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">

</head>

<body>

    <div class="login-container">

        <!-- Left Side: Branding and Features -->

        <div class="login-left">

            <div class="logo">

                <i class="fas fa-seedling logo-icon"></i>

                <h1>FarmerSmartAI</h1>

            </div>

            <div class="app-features">

                <div class="feature-item">

                    <i class="fas fa-satellite-dish feature-icon"></i>

                    <div class="feature-text">

                        <h4>Monitoring Real-time</h4>

                        <p>Pantau kondisi lahan Anda secara real-time dengan sensor IoT</p>

                    </div>

                </div>

                <div class="feature-item">

                    <i class="fas fa-robot feature-icon"></i>

                    <div class="feature-text">

                        <h4>Analisis Berbasis AI</h4>

                        <p>Dapatkan rekomendasi cerdas untuk meningkatkan produktivitas</p>

                    </div>

                </div>

                <div class="feature-item">

                    <i class="fas fa-chart-line feature-icon"></i>

                    <div class="feature-text">

                        <h4>Prediksi Panen Akurat</h4>

                        <p>Perkirakan hasil panen dengan algoritma prediktif canggih</p>

                    </div>

                </div>

            </div>

        </div>

        

        <!-- Right Side: Login Form -->

        <div class="login-right">

            <div class="welcome-text">

                <h2>Selamat Datang Kembali</h2>

                <p>Masuk ke akun FarmerSmartAI Anda untuk mengakses dashboard</p>

            </div>

            

            <!-- Alert Messages -->

            <div class="alert alert-error" id="errorAlert">

                <i class="fas fa-exclamation-circle"></i> <span id="errorMessage">Email atau password salah</span>

            </div>

            

            <div class="alert alert-success" id="successAlert">

                <i class="fas fa-check-circle"></i> <span id="successMessage">Login berhasil! Mengarahkan ke dashboard...</span>

            </div>

            

            <form class="login-form" id="loginForm">

                <div class="form-group">

                    <label for="email">Email</label>

                    <div class="input-with-icon">

                        <i class="fas fa-envelope"></i>

                        <input type="email" id="email" class="form-control" placeholder="Masukkan email Anda" required>

                    </div>

                </div>

                

                <div class="form-group">

                    <label for="password">Password</label>

                    <div class="input-with-icon">

                        <i class="fas fa-lock"></i>

                        <input type="password" id="password" class="form-control" placeholder="Masukkan password Anda" required>

                        <button type="button" class="password-toggle" id="togglePassword">

                            <i class="fas fa-eye"></i>

                        </button>

                    </div>

                </div>

                

                <div class="form-options">

                    <div class="remember-me">

                        <input type="checkbox" id="remember">

                        <label for="remember">Ingat saya</label>

                    </div>

                    <a href="#" class="forgot-password">Lupa password?</a>

                </div>

                

                <button type="submit" class="btn-login">Masuk</button>

                

                <div class="divider">

                    <span>Atau masuk dengan</span>

                </div>

                

                <div class="social-login">

                    <button type="button" class="btn-social btn-google">

                        <i class="fab fa-google"></i> Google

                    </button>

                    <button type="button" class="btn-social btn-facebook">

                        <i class="fab fa-facebook-f"></i> Facebook

                    </button>

                </div>

                

                <div class="register-link">

                    Belum punya akun? <a href="register.html">Daftar di sini</a>

                </div>

                

                <div class="back-to-home">

                    <a href="index.html"><i class="fas fa-arrow-left"></i> Kembali ke halaman utama</a>

                </div>

            </form>

        </div>

    </div>


    <script>

        // Toggle password visibility

        document.getElementById('togglePassword').addEventListener('click', function() {

            const passwordInput = document.getElementById('password');

            const icon = this.querySelector('i');

            

            if (passwordInput.type === 'password') {

                passwordInput.type = 'text';

                icon.classList.remove('fa-eye');

                icon.classList.add('fa-eye-slash');

            } else {

                passwordInput.type = 'password';

                icon.classList.remove('fa-eye-slash');

                icon.classList.add('fa-eye');

            }

        });

        

        // Form submission handling

        document.getElementById('loginForm').addEventListener('submit', function(e) {

            e.preventDefault();

            

            const email = document.getElementById('email').value;

            const password = document.getElementById('password').value;

            const errorAlert = document.getElementById('errorAlert');

            const successAlert = document.getElementById('successAlert');

            

            // Hide previous alerts

            errorAlert.style.display = 'none';

            successAlert.style.display = 'none';

            

            // Simple validation (in a real app, this would be done server-side)

            if (email === '' || password === '') {

                showError('Harap isi semua field');

                return;

            }

            

            // For demo purposes, accept any non-empty credentials

            // In a real application, this would be an API call to authenticate

            if (email && password) {

                // Show success message

                successAlert.style.display = 'block';

                

                // Simulate API call delay

                setTimeout(function() {

                    // Redirect to dashboard (in a real app, this would happen after successful authentication)

                    window.location.href = 'farmer_smart_ai_dashboard.html';

                }, 1500);

            } else {

                showError('Email atau password salah');

            }

        });

        

        function showError(message) {

            const errorAlert = document.getElementById('errorAlert');

            const errorMessage = document.getElementById('errorMessage');

            

            errorMessage.textContent = message;

            errorAlert.style.display = 'block';

            

            // Scroll to error message

            errorAlert.scrollIntoView({ behavior: 'smooth', block: 'center' });

        }

        

        // Demo credentials info (for testing purposes)

        console.log("Demo Credentials:\nEmail: demo@farmersmartai.com\nPassword: demo123");

    </script>

</body>

</html>

```


Fitur Halaman Login.html:


1. Desain Modern & Responsif - Tampilan yang menarik dan mudah digunakan di semua perangkat

2. Form Login Lengkap - Input email dan password dengan validasi

3. Fitur Toggle Password - Tombol untuk menampilkan/menyembunyikan password

4. Opsi "Ingat Saya" - Checkbox untuk menyimpan login

5. Link Lupa Password - Tautan untuk reset password

6. Login Media Sosial - Opsi login dengan Google dan Facebook

7. Link Pendaftaran - Tautan ke halaman registrasi untuk pengguna baru

8. Link Kembali ke Beranda - Navigasi kembali ke halaman utama

9. Pesan Error/Success - Notifikasi untuk feedback pengguna

10. Branding dan Fitur Aplikasi - Panel kiri yang menampilkan fitur unggulan FarmerSmartAI


Kredensial Demo (untuk testing):


· Email: demo@farmersmartai.com

· Password: demo123


File ini dapat disimpan sebagai login.html dan akan menjadi halaman login yang fungsional dan menarik bagi pengguna FarmerSmartAI.


Bersambung ke: Kode Isi File register.html 



















Comments

Popular posts from this blog

Aplikasi FarmerSmartAI:

icon-generator.html