GSP1096

Ringkasan
Lab ini memberi Anda pengalaman langsung dalam men-deploy SingleStoreDB dan menggabungkannya dengan produk berbasis cloud milik Google Cloud seperti Pub/Sub, Dataflow, dan Cloud Storage. Untuk mendemonstrasikan fitur produk ini, gunakan set data taksi publik NYC.
Alur lab ini adalah men-deploy SingleStoreDB terlebih dahulu melalui browser lokal Anda dan membuat skema yang sesuai. Kemudian, gunakan Pub/Sub untuk mengirim data ke Cloud Storage secara real time dengan bantuan Dataflow. Data yang dihasilkan dan disimpan di penyimpanan objek akan dikelola menggunakan pipeline native SingleStoreDB. Setelah SingleStoreDB menyerap data, Anda menjalankan kueri dan berinteraksi dengan SingleStore.
Yang akan Anda pelajari
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Login dan membuka Google Cloud.
- Membuat instance/cluster SingleStore DB.
- Menggunakan Cloud Shell untuk menghubungkan dan membuat skema di SingleStoreDB.
- Membuat topik dan langganan Pub/Sub, serta mengambil dan mengirim data ke layanan lain.
- Membuat tugas streaming Dataflow.
- Menggunakan pipeline native SingleStore untuk memuat data dari penyimpanan objek.
- Menjalankan kueri dan berinteraksi dengan data Anda di SingleStore.
Prasyarat
Anda harus memiliki akses ke akun email pribadi yang memungkinkan Anda merespons email verifikasi dari SingleStore. Anda harus merespons kode verifikasi selama lab ini, dan Anda hanya dapat melakukannya dengan email pribadi.
Pemahaman tentang Google Cloud dan SingleStore akan sangat membantu, tetapi sifatnya tidak wajib.
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.Cara memulai lab dan login ke Google Cloud Console
- 
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut: 
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
 
- 
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome). Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in. Tips: Atur tab di jendela terpisah secara berdampingan. Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
- 
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in. {{{user_0.username | "Username"}}}Anda juga dapat menemukan Username di panel Lab Details. 
- 
Klik Next. 
- 
Salin Password di bawah dan tempel ke dialog Welcome. {{{user_0.password | "Password"}}}Anda juga dapat menemukan Password di panel Lab Details. 
- 
Klik Next. Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. 
 
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
- 
Klik halaman berikutnya: 
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
 
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
 
Tugas 1. Meluncurkan cluster SingleStore Anda sendiri
Pada tahap ini, Anda harus login ke Konsol Google Cloud di jendela Samaran.
- Pada tab lain di jendela Samaran yang telah Anda buka, akses SingleStore Portal. Anda akan melihat halaman di bawah ini:
 
- Klik Sign up dan masukkan detail tentang diri Anda.
- Untuk Company email address, masukkan alamat email pribadi Anda.
- Klik Continue.
- Masukkan sandi unik, lalu klik Continue untuk login ke SingleStore.
- Masukkan kode verifikasi yang diterima di alamat email Anda, lalu klik Submit.
- Pilih kotak centang untuk Terms of Service + Privacy Policy, lalu klik Continue.
- Di layar About your project, pilih salah satu opsi, lalu klik Next.
- Klik View my Deployment untuk membuka SingleStore Customer Portal.
- Klik Start Using SingleStore saat Anda melihat Your free starter workspace is ready!
Membuat Ruang Kerja
- 
Di pojok kiri atas, klik + Create New, lalu pilih Deployment. 
- 
Di halaman Create Workspace, konfigurasi setelan berikut: 
- Workspace Group Name: Workshop
- Cloud Provider: GCP
- Region: US East 4 (N.Virginia), region ini seharusnya menjadi setelan default. Jika tidak demikian, ubah sesuai kebutuhan.
 
Konfigurasi Anda akan terlihat seperti ini:

- 
Klik Next. 
- 
Di halaman Workspace Details, biarkan setelan default, lalu klik Create Workspace. 
Tunggu beberapa menit hingga ruang kerja Anda dijalankan. Tindakan ini akan menghasilkan contoh database untuk Anda, yang tidak akan Anda gunakan untuk lab ini.
Tugas 2. Terhubung ke SingleStore dan Google Cloud
- 
Sebelum terhubung ke SingleStore Workspace, buka kembali Konsol Google Cloud. 
- 
Buka jendela Cloud Shell baru dengan mengklik ikon Activate Cloud Shell ( ) di pojok kanan atas konsol. Jika diminta, klik Continue, lalu Authorize. ) di pojok kanan atas konsol. Jika diminta, klik Continue, lalu Authorize.
 
- 
Di Cloud Shell, jalankan perintah berikut untuk meng-clone repositori GitHub guna mendownload kode untuk workshop. 
git clone https://github.com/mlochbihler/singlestore-gcp-looker-devday-01
cd singlestore-gcp-looker-devday-01/section_b
- Kembali ke SingleStore Portal. Setelah ruang kerja Anda diinisialisasi, klik panah dropdown di samping Connect, lalu pilih CLI Client.

- 
Di halaman Connect to Workspace, salin terlebih dahulu sandi yang dibuat untuk Anda. Ada ikon salin di samping sandi. Sebaiknya simpan sandi ini dalam file lokal karena Anda akan memerlukannya nanti di lab ini. 
- 
Klik ikon Copy di sebelah kanan MySQL Command. Tindakan ini akan menyalin perintah tersebut ke papan klip Anda. 
Perintah MySQL akan terlihat seperti ini: mysql -u admin -h svc-b675ae2f-b129-4baf-86ca-0a03c2c31d19-dml.gcp-virginia-1.svc.singlestore.com -P 3306 --default-auth=mysql_native_password --password
Catatan: 
Anda mungkin melihat sandi yang baru saja dibuat di perintah MySQL di atas. Hal ini hanya terjadi saat Anda membuka jendela tersebut untuk pertama kalinya. Setelah itu, sandi tidak akan ditampilkan lagi. Oleh karena itu, penting untuk menyimpannya.
Jika Anda tidak dapat terhubung ke SingleStore DB karena alasan tertentu, Anda dapat mereset sandi dengan membuka tab Access, lalu mengklik Reset.
- 
Kembali ke Konsol Google Cloud dan instance Cloud Shell Anda. 
- 
Tempel perintah MySQL ke terminal. 
- 
Masukkan sandi yang Anda salin sebelumnya jika diminta. Anda sekarang berada di prompt mysql>. 

Catatan: 
Jika deployment Anda berhenti merespons perintah MySQL, periksa status ruang kerja di SingleStore. Status ini dikonfigurasi untuk dijeda jika dibiarkan tidak ada aktivitas selama lebih dari 20 menit. Jika demikian, tombol akan menampilkan Resume. Klik untuk melanjutkan operasinya. Proses ini hanya memerlukan waktu beberapa menit.
Tugas 3. Membuat skema dan berinteraksi dengan SingleStore
Di bagian ini, Anda akan membangun skema tabel.
Gunakan DDL berikut untuk membuat database baru bernama nyc_taxi.
- Pada prompt mysql>, jalankan kode berikut:
source create_nyctaxi_tables.ddl;
use nyc_taxi; show tables;Anda akan mendapatkan hasil yang mirip dengan output berikut.
Output:
Database changed
+--------------------+
| Tables_in_nyc_taxi |
+--------------------+
| avgcost            |
| avgdist            |
| avgriders          |
| avgridetime        |
| avgwait_driver     |
| avgwait_passenger  |
| drivers            |
| nab_nyctaxi_scored |
| neighborhoods      |
| trips              |
| triptotals         |
| triptotalsc        |
+--------------------+
12 rows in set (0.05 sec)
Anda berhasil membuat Skema dan tabel Database telah tercantum.
- Jalankan perintah berikut:
select * from avgcost limit 5;Output kueri ini adalah "Empty set" or "0". Output ini muncul karena Anda hanya membuat Skema, sedangkan Tabel kosong.
Berhenti sejenak di sini. Anda berhasil membuat dan terhubung ke SingleStore Database. Skema telah disiapkan, tetapi data belum tersedia.
Jika ada waktu luang, silakan lihat dan pelajari SingleStore.
Tugas 4. Menjelajahi data di lab (Opsional)
Di lab kali ini, Anda akan menggunakan data NYC Taxi. Data ini dapat ditemukan di set data publik BigQuery atau di situs NYC Open Data.
Data ini telah dimasukkan ke bucket Cloud Storage untuk Anda sebelumnya, jadi Anda tidak perlu mendownload/mengimpornya ke Google Cloud. Anda dapat menjelajahi data tersebut jika mau.
Situs NYC Open Data menyediakan set data gratis yang terkait dengan New York City, termasuk data taksi, pendidikan, kepolisian, dan lain-lain.
Di lab ini, Anda akan bekerja sama dengan Neighborhood Tabulation Areas (NTA) dari NYC Department of City Planning yang menyediakan informasi tentang perkiraan zona dan kawasan di NYC. Anda akan menggunakan informasi ini bersama dengan data NYC Taxi untuk melihat lokasi penjemputan dan pengantaran penumpang.
Di situs ini, Anda dapat memvisualisasi data berdasarkan kawasan:
 
Tugas 5. Menyiapkan bucket Cloud Storage
- Sebelum memulai bagian ini, buka tab terminal Cloud Shell baru dengan mengklik tombol "+":
 
Di Google Cloud, ada dua cara utama untuk menyiapkan resource, yaitu melalui GUI dan CLI. Di lab ini, Anda akan menggunakan CLI untuk membuat bucket dan mendapatkan data kawasan terbaru dari situs taksi NYC.
- Salin dan jalankan perintah berikut untuk membuat bucket Anda sendiri dan mengimpor data dari bucket publik ke bucket Anda sendiri:
gcloud storage buckets create gs://$GOOGLE_CLOUD_PROJECT --location={{{ project_0.default_region | "REGION" }}}
gcloud storage cp -r gs://configuring-singlestore-on-gcp/drivers gs://$GOOGLE_CLOUD_PROJECT
gcloud storage cp -r gs://configuring-singlestore-on-gcp/trips gs://$GOOGLE_CLOUD_PROJECT
gcloud storage cp gs://configuring-singlestore-on-gcp/neighborhoods.csv gs://$GOOGLE_CLOUD_PROJECTJika diminta, klik Authorize
Perlu diperhatikan bahwa sudah ada bucket lain yang dibuat di project Anda. Jangan khawatir tentang bucket ini karena merupakan lokasi penyimpanan staging/temp untuk Dataflow.
- Buka Cloud Storage > Buckets, temukan bucket Anda (), dan pastikan bucket tersebut berisi 2 folder dan file CSV, yang akan terlihat seperti ini:

Klik Periksa progres saya untuk memverifikasi tujuan.
Menyiapkan bucket Cloud Storage
Tugas 6. Mengonfigurasi Pub/Sub dan tugas streaming Dataflow
Resource Pub/Sub dan Dataflow telah diisi otomatis di project Anda. Untuk melihat resource tersebut, gunakan kotak penelusuran di bagian atas Konsol Cloud Anda untuk menemukan Pub/Sub dan Dataflow.
- Untuk Pub/Sub, lakukan hal berikut:
- Periksa apakah ada Topik bernama "Taxi"
- Verifikasi apakah ada langganan bernama "Taxi-sub"
- Untuk Dataflow, lakukan hal berikut:
- Periksa apakah ada tugas bernama "GCStoPS" dengan status failed.
- 
Klik tugas, lalu klik Clone untuk menjalankan tugas yang sama persis. Ganti namanya dan periksa info tugas (yang terisi otomatis karena Anda telah meng-clone-nya) agar Anda tahu apa yang sedang Anda jalankan. Scroll ke bawah, lalu klik Run Job. 
- 
Kembali ke Dataflow jobs dan pastikan tugas Anda berstatus "running". 
Catatan: Tugas Dataflow Anda memerlukan waktu 5—7 menit untuk mulai melakukan streaming.
- Kembali ke Pub/Sub, temukan langganan Taxi-sub, klik Messages, lalu klik Pull. Pesan akan mulai berdatangan. Outputnya akan terlihat seperti berikut:

Anda kini telah menyimulasikan streaming data live. Sebagai contoh, jika Anda mengupload lebih banyak data ke GCS dan Pull di Pub/Sub, Dataflow akan memindahkan data secara langsung.
Klik Periksa progres saya untuk memverifikasi tujuan.
Meng-clone Tugas Dataflow
Tugas 7. Menyiapkan arsitektur streaming di Google Cloud
Arsitektur streaming umum di Google Cloud terdiri atas Pub/Sub > Dataflow > GCS. Dalam tugas ini, Anda akan menyiapkan arsitektur ini, lalu menghubungkan SingleStore ke GCS.
- 
Buka kembali Dataflow. 
- 
Klik Create a job from template, lalu beri nama pstogcs(PubSub to GCS).
 
- 
Pilih endpoint Regional sebagai . 
- 
Pilih template Dataflow berikut: Pub/Sub Subscription or Topic to Text Files on Cloud Storage. Sejumlah opsi akan muncul, jadi Anda mungkin perlu Memfilternya.
 
- 
Untuk Target, klik Browse, lalu pilih bucket yang Anda buat sebelumnya, yang bernama . Anda ingin output tugas ini ditempatkan di bucket yang Anda buat sebelumnya di lab. Klik Select. 
- 
Biarkan awalan nama file output sebagai output. Hal ini untuk menandai file output dengan jelas.
 
- 
Luaskan Optional Source Parameters. Untuk Pub/Sub input subscription, pilih Taxi-sub yang baru saja Anda lihat pesan masuknya. Anda tidak perlu menyertakan topik input. 
- 
Biarkan semuanya dalam setelan default-nya, lalu buka bagian bawah halaman, dan klik RUN JOB. 
Catatan: 
Jika Anda mengalami error saat mencoba menjalankan tugas, periksa apakah masalahnya ada di kolom Custom Pattern untuk tanggal dan waktu. Jika demikian, hapus nilai di semua kolom tersebut, lalu coba lagi. 
Tugas Dataflow ini akan membaca pesan yang Anda lihat sebelumnya di Pub/Sub dan Men-streaming pesan tersebut ke bucket Cloud Storage Anda.
Catatan: Tugas Dataflow Anda memerlukan waktu 5—7 menit untuk mulai melakukan streaming.
- 
Buka Cloud Storage > Buckets, lalu buka bucket Anda, . Anda akan melihat file output yang diberi stempel waktu di bucket. 
- 
Klik file output, lalu pilih Download. Anda akan melihat data Taksi yang menyertakan nama, koordinat, dan waktu 
 
Klik Periksa progres saya untuk memverifikasi tujuan.
Menyiapkan arsitektur streaming di Google Cloud
Mengaktifkan Gemini Code Assist di Cloud Shell IDE
Anda dapat menggunakan Gemini Code Assist di lingkungan pengembangan terintegrasi (IDE) seperti Cloud Shell untuk menerima panduan tentang kode atau menyelesaikan masalah dengan kode Anda. Sebelum mulai menggunakan Gemini Code Assist, Anda perlu mengaktifkannya.
- Di Cloud Shell, aktifkan Gemini for Google Cloud API dengan perintah berikut:
gcloud services enable cloudaicompanion.googleapis.com
- Klik Open Editor di toolbar Cloud Shell.
Catatan: Untuk membuka Cloud Shell Editor, klik Open Editor di toolbar Cloud Shell. Anda dapat beralih antara Cloud Shell dan Editor kode dengan mengklik Open Editor atau Open Terminal, sesuai kebutuhan.
- 
Di panel kiri, klik ikon Settings, lalu di tampilan Settings, cari Gemini Code Assist. 
- 
Temukan dan pastikan kotak centang dipilih untuk Geminicodeassist: Enable, lalu tutup Settings. 
- 
Klik Cloud Code - No Project di status bar di bagian bawah layar. 
- 
Berikan otorisasi pada plugin seperti yang ditunjukkan. Jika project tidak dipilih secara otomatis, klik Select a Google Cloud Project, lalu pilih . 
- 
Pastikan project Google Cloud Anda () ditampilkan dalam pesan status Cloud Code di status bar. 
Menghubungkan Cloud Storage ke SingleStore
Sekarang Anda perlu membuat Kunci untuk menghubungkan bucket Cloud Storage pribadi ini ke SingleStore.
- 
Di Cloud Storage, buka Settings (di Navigation menu). 
- 
Klik tab Interoperability. Di bagian bawah, klik Create a Key. 
Selanjutnya, Anda akan menyerap data ke SingleStore dengan pipeline dan memulai prosedur yang tersimpan.
- Kembali ke tab Cloud Shell dengan SingleStore Terminal terbuka.
- 
Untuk membuat pipeline SingleStore awal: 
- Dari tab CloudShell pertama, klik Open Editor. Jika diminta, klik Open in a new window.
- Buka file singlestore-gcp-looker-devday-01 > section b > create_nyctaxi_pipelines.dml.
 Tindakan ini mengaktifkan Gemini Code Assist, seperti yang ditunjukkan oleh keberadaan ikon  di pojok kanan atas editor. di pojok kanan atas editor.
 
Menggunakan Gemini Code Assist untuk mempelajari file pipeline SingleStore
- 
Klik ikon Gemini Code Assist: Smart Actions  , lalu pilih Explain this. , lalu pilih Explain this.
 
- 
Gemini Code Assist akan membuka panel chat dengan perintah yang telah diisi sebelumnya, yakni Explain this. Di kotak teks inline chat Code Assist, ganti perintah yang sudah terisi dengan perintah berikut, lalu klik Send:
 
You are an expert Data Engineer at Cymbal AI. A new team member is unfamiliar with this SingleStore Pipelines code. Explain this "create_nyctaxi_pipelines.dml" file in detail, breaking down its key components used in the code.
For the suggested improvements, don't update this file.Penjelasan untuk kode dalam file create_nyctaxi_pipelines.dml akan muncul dalam percakapan Gemini Code Assist.
- Lakukan perubahan berikut pada file:
- Pada baris 4, ubah nama bucket menjadi nama bucket Anda.
- Pada baris 5, tambahkan ID Akses Bucket Penyimpanan dan Kunci Rahasia yang baru saja Anda buat.
- Pada baris 12, ubah nama bucket menjadi nama bucket Anda.
- Pada baris 13, tambahkan ID Akses Bucket Penyimpanan dan Kunci Rahasia yang baru saja Anda buat.
- Pada baris 22, ubah nama bucket menjadi nama bucket Anda, dan .tsvmenjadi.csv.
- Pada baris 23, tambahkan ID Akses Bucket Penyimpanan dan Kunci Rahasia yang baru saja Anda buat.
- Pada baris 26, ubah /tmenjadi,.
File Anda akan terlihat seperti berikut:

- Klik Save.
- 
Kembali ke Terminal Cloud Shell. Hubungkan ke SingleStore menggunakan perintah MySQL yang Anda gunakan sebelumnya. Anda dapat menggunakan perintah yang sama seperti sebelumnya untuk terhubung ke SingleStore. 
- 
Di prompt MySQL, jalankan perintah berikut untuk membuat pipeline: 
source create_nyctaxi_pipelines.dml;
show pipelines;Output akan terlihat seperti berikut.
Output:
| Pipelines_in_nyc_taxi | State   | Scheduled |
| --------------------- | ------- | --------- |
| neighborhoods         | Stopped | False     |
| drivers               | Stopped | False     |
| trips                 | Stopped | False     |
Tugas 8. Memulai pipeline
- Jalankan perintah berikut untuk memulai pipeline:
source start_nyctaxi_pipelines.dml;
show pipelines;Output:
| Pipelines_in_nyc_taxi | State   | Scheduled |
| --------------------- | ------- | --------- |
| neighborhoods         | Running | False     |
| drivers               | Running | False     |
| trips                 | Running | False     |
- Pastikan status Pipeline untuk ketiganya adalah Running.
Tugas 9. Menjalankan kueri analisis operasional
- Jalankan perintah berikut untuk menjalankan kueri analisis operasional:
select * from trips limit 5;
select * from drivers limit 5;
select * from neighborhoods limit 5; 
Laporan 1: Total jumlah perjalanan untuk setiap kawasan.
- Lalu, jalankan:
source total_trips.sql;Laporan 2: Rata-rata durasi waktu antara seseorang yang meminta perjalanan dan waktu penjemputannya.
- Selanjutnya, jalankan:
source average_wait.sql;Laporan 3: Jarak rata-rata perjalanan.
- Jalankan perintah berikut:
source average_distance.sql;Laporan 4: Rata-rata durasi waktu antara penjemputan dan pengantaran seseorang.
- Jalankan perintah berikut:
source average_ride_time.sql;Laporan 5: Biaya rata-rata perjalanan.
- Jalankan perintah berikut:
source average_cost.sql;Laporan 6: Rata-rata durasi waktu yang dibutuhkan pengemudi dari saat menerima perjalanan hingga menjemput penumpang.
- Jalankan perintah berikut:
source average_wait2.sql;Laporan 7: Rata-rata jumlah penumpang per perjalanan.
- Terakhir, jalankan perintah berikut:
source average_num_riders.sql;Selamat.
Selamat. Di lab ini, Anda telah men-deploy SingleStoreDB dan menggabungkannya dengan produk berbasis cloud milik Google Cloud seperti Pub/Sub, Dataflow, dan Cloud Storage. Anda juga telah menggunakan pipeline native SingleStoreDB untuk menyerap data dari Cloud Storage dan menjalankan kueri analisis operasional.
Anda dapat mempelajari lebih lanjut SingleStore di SingleStore.com.
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 4 September 2025
Lab Terakhir Diuji pada 4 September 2025
Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.