Perbandingan Grafik Logaritma  dan{" "}
      .
    >
  }
  description="Perhatikan perbedaan arah grafik."
  data={[
    {
      points: Array.from({ length: 100 }, (_, i) => {
        const x = (i / 99) * 8 + 0.01;
        return { x, y: Math.log2(x), z: 0 };
      }),
      color: getColor("SKY"),
      labels: [{ text: "y = log₂ x (naik)", at: 40, offset: [0.5, 0.5, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 100 }, (_, i) => {
        const x = (i / 99) * 8 + 0.01;
        return { x, y: Math.log(x) / Math.log(0.5), z: 0 };
      }),
      color: getColor("ROSE"),
      labels: [
        { text: "y = log₀.₅ x (turun)", at: 40, offset: [0.5, -0.5, 0] },
      ],
      showPoints: false,
    },
    {
      points: [
        { x: 0, y: -4, z: 0 },
        { x: 0, y: 4, z: 0 },
      ],
      color: getColor("PURPLE"),
      labels: [{ text: "x = 0 (asimtot)", at: 1, offset: [0.5, 0, 0] }],
      showPoints: false,
    },
  ]}
  cameraPosition={[0, 0, 12]}
  showZAxis={false}
/>
| Sifat                |   |  |
| -------------------- | ---------------------------- | ------------------------------- |
| Arah grafik          | Naik (monoton naik)          | Turun (monoton turun)           |
| Domain               |   |      |
| Range                | Semua bilangan real          | Semua bilangan real             |
| Titik potong sumbu x |  |     |
| Asimtot vertikal     |   |      |
## Transformasi Grafik Logaritma
Grafik logaritma dapat ditransformasi dengan berbagai cara:
### Translasi Vertikal
Kita dapat menggeser grafik fungsi logaritma dengan menambahkan atau mengurangi konstanta  pada fungsi.
  
  
        Grafik bergeser ke atas jika  dan ke bawah
        jika .
      >
    }
    data={[
      {
        points: Array.from({ length: 100 }, (_, i) => {
          const x = (i / 99) * 10 + 0.1;
          return { x, y: Math.log2(x), z: 0 };
        }),
        color: getColor("PURPLE"),
        labels: [{ text: "y = log₂ x", at: 40, offset: [0.5, -1, 0] }],
        showPoints: false,
      },
      {
        points: Array.from({ length: 100 }, (_, i) => {
          const x = (i / 99) * 10 + 0.1;
          return { x, y: Math.log2(x) + 2, z: 0 };
        }),
        color: getColor("SKY"),
        labels: [{ text: "y = log₂ x + 2", at: 40, offset: [0.5, -1, 0] }],
        showPoints: false,
      },
      {
        points: Array.from({ length: 100 }, (_, i) => {
          const x = (i / 99) * 10 + 0.1;
          return { x, y: Math.log2(x) - 2, z: 0 };
        }),
        color: getColor("ROSE"),
        labels: [{ text: "y = log₂ x - 2", at: 40, offset: [0.5, -1, 0] }],
        showPoints: false,
      },
    ]}
    cameraPosition={[0, 0, 15]}
    showZAxis={false}
  />
### Translasi Horizontal
Kita dapat menggeser grafik fungsi logaritma dengan menambahkan atau mengurangi konstanta  pada fungsi.
  
  
        Grafik bergeser ke kanan jika  dan ke kiri
        jika .
      >
    }
    data={[
      {
        points: Array.from({ length: 100 }, (_, i) => {
          const x = (i / 99) * 10 + 0.1;
          return { x, y: Math.log2(x), z: 0 };
        }),
        color: getColor("PURPLE"),
        labels: [{ text: "y = log₂ x", at: 40, offset: [0.5, 1, 0] }],
        showPoints: false,
      },
      {
        points: Array.from({ length: 100 }, (_, i) => {
          const x = (i / 99) * 8 + 2.1;
          return { x, y: Math.log2(x - 2), z: 0 };
        }),
        color: getColor("EMERALD"),
        labels: [{ text: "y = log₂(x - 2)", at: 40, offset: [1, -1, 0] }],
        showPoints: false,
      },
    ]}
    cameraPosition={[0, 0, 15]}
    showZAxis={false}
  />
## Latihan
1. Buatlah tabel nilai dan gambarlah grafik fungsi:
   - 
   - 
2. Tentukan domain, range, dan asimtot dari fungsi .
3. Jika  dan , tentukan:
   - Pergeseran grafik  terhadap 
   - Domain dari 
4. Sketsa grafik  dan tentukan titik potong dengan sumbu y.
### Kunci Jawaban
1. Tabel nilai:
   Untuk :
   |  |  |  | 1 | 3 | 9 |
   |-------------------------|-------------------------------------|------------------------------------|----|----|----|
   |  | -2 | -1 | 0 | 1 | 2 |
   Untuk :
   |  |  |  | 1 | 2 | 4 |
   |-------------------------|-------------------------------------|------------------------------------|----|----|----|
   |  | 2 | 1 | 0 | -1 | -2 |
2. Untuk :
   - Domain: 
   - Range: Semua bilangan real
   - Asimtot vertikal: 
3. Untuk :
   - Pergeseran: 4 satuan ke kanan
   - Domain: 
4. Untuk :
   - Grafik  digeser 2 satuan ke atas
   - Tidak ada titik potong dengan sumbu y karena domain adalah 
   
     
           Sketsa Grafik 
         >
       }
       description="Grafik logaritma basis 3 yang digeser 2 satuan ke atas."
       data={[
         {
           points: Array.from({ length: 100 }, (_, i) => {
             const x = (i / 99) * 10 + 0.01;
             return { x, y: Math.log(x) / Math.log(3), z: 0 };
           }),
           color: getColor("PURPLE"),
           labels: [{ text: "y = log₃ x", at: 40, offset: [0.5, -0.5, 0] }],
           showPoints: false,
         },
         {
           points: Array.from({ length: 100 }, (_, i) => {
             const x = (i / 99) * 10 + 0.01;
             return { x, y: Math.log(x) / Math.log(3) + 2, z: 0 };
           }),
           color: getColor("EMERALD"),
           labels: [{ text: "y = log₃ x + 2", at: 50, offset: [0.5, 1, 0] }],
           showPoints: false,
         },
         {
           points: [
             { x: 1 / 9, y: Math.log(1 / 9) / Math.log(3) + 2, z: 0 },
             { x: 1 / 3, y: Math.log(1 / 3) / Math.log(3) + 2, z: 0 },
             { x: 1, y: 2, z: 0 },
             { x: 3, y: 3, z: 0 },
             { x: 9, y: 4, z: 0 },
           ],
           color: getColor("ROSE"),
           showPoints: true,
           labels: [
             { text: "(1, 2)", at: 2, offset: [0, 1, 0] },
             { text: "(3, 3)", at: 3, offset: [0, 0.5, 0] },
           ],
         },
         {
           points: [
             { x: -0.5, y: 2, z: 0 },
             { x: 10, y: 2, z: 0 },
           ],
           color: getColor("PURPLE"),
           labels: [{ text: "y = 2", at: 0, offset: [-0.5, 0.3, 0] }],
           showPoints: false,
         },
         {
           points: [
             { x: 0, y: -2, z: 0 },
             { x: 0, y: 5, z: 0 },
           ],
           color: getColor("PURPLE"),
           labels: [{ text: "x = 0 (asimtot)", at: 1, offset: [0.5, 0, 0] }],
           showPoints: false,
         },
       ]}
       cameraPosition={[0, 0, 15]}
       showZAxis={false}
     />