Menu
CoddyTech

Alias Paket

Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 54 dari 68.

Terkadang, kamu perlu memberi package yang diimpor nama lain di dalam file-mu. Ini disebut pemberian alias package, dan Go membuatnya mudah dengan sintaks yang sederhana.

Untuk membuat alias, tentukan nama baru sebelum path package dalam pernyataan import:

import f "fmt"

Sekarang, alih-alih menggunakan fmt.Println(), kamu bisa menggunakan f.Println() yang lebih singkat. Ini sangat berguna dalam dua situasi: saat nama package sangat panjang dan ingin kamu singkat, atau saat kamu perlu menghindari bentrokan nama antara package yang memiliki nama sama.

package main

import f "fmt"

func main() {
    f.Println("Hello with an alias!")
}

Alias package memberimu fleksibilitas dalam merujuk package yang diimpor, membuat kodemu lebih mudah dibaca dan membantumu mengelola skenario impor yang rumit.

challenge icon

Tantangan

Mudah

Buat program yang menunjukkan penggunaan alias package dengan mengimpor beberapa package menggunakan alias khusus dan memakainya untuk melakukan berbagai operasi. Tantangan ini akan menguji kemampuanmu membuat alias yang bermakna untuk package dan menggunakannya secara konsisten di seluruh programmu.

Kamu akan menerima dua input:

  • Sebuah string yang berisi definisi alias package dalam format "package1:alias1,package2:alias2,package3:alias3" (misalnya, "fmt:output,strings:text,strconv:convert")
  • Sebuah string yang berisi operasi yang akan dilakukan dalam format "operation1:data1|operation2:data2|operation3:data3" (misalnya, "print:Hello World|upper:go programming|parse:42")

Tugasmu adalah:

  1. Urai input pertama dengan memisahkannya berdasarkan koma untuk mendapatkan definisi alias package satu per satu
  2. Untuk setiap definisi alias, pisahkan berdasarkan titik dua untuk mendapatkan nama package asli dan aliasnya
  3. Impor package menggunakan alias yang ditentukan:
    • Impor fmt dengan alias yang diberikan
    • Impor strings dengan alias yang diberikan
    • Impor strconv dengan alias yang diberikan
  4. Tampilkan informasi penyiapan alias:
    • "=== PACKAGE ALIAS DEMONSTRATION ==="
    • "Setting up package aliases:"
    • Untuk setiap alias: "- [original_package] aliased as '[alias]'"
  5. Urai input kedua dengan memisahkannya berdasarkan karakter pipa untuk mendapatkan operasi satu per satu
  6. Untuk setiap operasi, pisahkan berdasarkan titik dua untuk mendapatkan jenis operasi dan data
  7. Tampilkan header operasi: "Performing operations using aliases:"
  8. Untuk setiap operasi, lakukan tindakan yang sesuai menggunakan package beralias:
    • Untuk operasi "print": Gunakan alias fmt untuk mencetak "[fmt_alias].Println: [data]"
    • Untuk operasi "upper": Gunakan alias strings untuk mengubah data menjadi huruf besar dan mencetak "[strings_alias].ToUpper: [uppercase_data]"
    • Untuk operasi "lower": Gunakan alias strings untuk mengubah data menjadi huruf kecil dan mencetak "[strings_alias].ToLower: [lowercase_data]"
    • Untuk operasi "parse": Gunakan alias strconv untuk mengurai data sebagai bilangan bulat dan mencetak "[strconv_alias].Atoi: [parsed_number]"
    • Untuk operasi "format": Gunakan alias fmt untuk memformat dan mencetak "[fmt_alias].Sprintf: Formatted -> [data]"
  9. Hitung dan tampilkan statistik operasi:
    • "Operation Summary:"
    • "Total operations performed: [total_operations]"
    • "Packages used: [comma_separated_list_of_aliases_used]"
  10. Tampilkan manfaat penggunaan alias:
    • "Benefits demonstrated:"
    • "- Shorter function calls using aliases"
    • "- Improved code readability"
    • "- Avoided potential naming conflicts"
  11. Tampilkan pesan penyelesaian: "Package aliasing demonstration completed successfully"

Gunakan package strings untuk memisahkan string input dan memanipulasi teks, package strconv untuk mengonversi string menjadi bilangan bulat, dan package fmt untuk output berformat. Ingat untuk menggunakan alias secara konsisten di seluruh programmu, bukan nama package aslinya. Tantangan ini menunjukkan bagaimana penggunaan alias package dapat membuat kodemu lebih ringkas dan mudah dibaca sekaligus menghindari konflik nama.

Coba sendiri

package main

import (
	"bufio"
	f "fmt"
	"os"
	"sort"
	c "strconv"
	s "strings"
)

func main() {
	// Baca input dengan bufio.Scanner agar spasi tertangani dengan benar
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	aliasInput := scanner.Text()
	
	scanner.Scan()
	operationsInput := scanner.Text()
	
	// Uraikan definisi alias
	aliasDefinitions := s.Split(aliasInput, ",")
	
	// Uraikan operasi
	operations := s.Split(operationsInput, "|")
	
	// TODO: Tulis kodemu di bawah ini
	// 1. Uraikan setiap definisi alias untuk mendapatkan nama package dan alias (periksa panjangnya)
	// 2. Tampilkan judul demonstrasi alias package dan informasi penyiapan
	// 3. Proses setiap operasi menggunakan package beralias yang sesuai
	// 4. Hitung operasi dan catat alias yang digunakan (pertahankan urutannya atau urutkan)
	// 5. Tampilkan ringkasan operasi dan manfaatnya
	
	// Ingatlah untuk menggunakan alias secara konsisten di seluruh programmu
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Go online