Tuesday, March 30, 2021

Cara Melihat Spefisikasi Harddisk di Komputer/Server Linux


 

Pada tutorial kali ini kita akan melihat detil spesifikasi sebuah harddisk yang terpasang di komputer Linux. Tutorial ini bisa dipakai pada komputer maupun server yang menggunakan OS Linux.

Untuk kebutuhan tutorial kali ini kita akan menggunakan perintah hdparm. Biasanya sudah terpasang dihampir semua distro Linux.

Cara menggunakannya seperti berikut:

sudo hdparm -I /dev/sda

dengan /dev/sda adalah simbol harddisk di komputer. (biasanya sda untuk harddisk utama, dilanjut dengan sdb, sdc, dan seterusnya).

contoh hasilnya:

  /dev/sda:

ATA device, with non-removable media
    Model Number:       KINGSTON SA400S37480G                  
    Serial Number:      50026B7783B41E9A   
    Firmware Revision:  SBFKK1C3
    Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
    Used: unknown (minor revision code 0x011b)
    Supported: 10 9 8 7 6 5
    Likely used: 10
Configuration:
    Logical        max    current
    cylinders    16383    16383
    heads        16    16
    sectors/track    63    63
    --
    CHS current addressable sectors:    16514064
    LBA    user addressable sectors:   268435455
    LBA48  user addressable sectors:   937703088
    Logical  Sector size:                   512 bytes
    Physical Sector size:                   512 bytes
    Logical Sector-0 offset:                  0 bytes
    device size with M = 1024*1024:      457862 MBytes
    device size with M = 1000*1000:      480103 MBytes (480 GB)
    cache/buffer size  = unknown
    Nominal Media Rotation Rate: Solid State Device
Capabilities:
    LBA, IORDY(can be disabled)
    Queue depth: 32
    Standby timer values: spec'd by Standard, no device specific minimum
    R/W multiple sector transfer: Max = 1    Current = 1
    Advanced power management level: 254
    DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
         Cycle time: min=120ns recommended=120ns
    PIO: pio0 pio1 pio2 pio3 pio4
         Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
    Enabled    Supported:
       *    SMART feature set
            Security Mode feature set
       *    Power Management feature set
       *    Write cache
       *    Look-ahead
       *    Host Protected Area feature set
       *    WRITE_BUFFER command
       *    READ_BUFFER command
       *    NOP cmd
       *    DOWNLOAD_MICROCODE
       *    Advanced Power Management feature set
       *    48-bit Address feature set
       *    Mandatory FLUSH_CACHE
       *    FLUSH_CACHE_EXT
       *    General Purpose Logging feature set
       *    WRITE_{DMA|MULTIPLE}_FUA_EXT
       *    64-bit World wide name
       *    WRITE_UNCORRECTABLE_EXT command
       *    {READ,WRITE}_DMA_EXT_GPL commands
       *    Segmented DOWNLOAD_MICROCODE
       *    Gen1 signaling speed (1.5Gb/s)
       *    Gen2 signaling speed (3.0Gb/s)
       *    Gen3 signaling speed (6.0Gb/s)
       *    Native Command Queueing (NCQ)
       *    Phy event counters
       *    READ_LOG_DMA_EXT equivalent to READ_LOG_EXT
       *    DMA Setup Auto-Activate optimization
            Device-initiated interface power management
       *    Software settings preservation
       *    WRITE BUFFER DMA command
       *    READ BUFFER DMA command
       *    Data Set Management TRIM supported (limit 8 blocks)
Security:
    Master password revision code = 65534
        supported
    not    enabled
    not    locked
        frozen
    not    expired: security count
        supported: enhanced erase
    20min for SECURITY ERASE UNIT. 60min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 50026b7783b41e9a
    NAA        : 5
    IEEE OUI    : 0026b7
    Unique ID    : 783b41e9a
Checksum: correct

Cara Mengaktifkan SNMP di CentOS/RHEL

 


Pada tutorial kali ini kita akan mengaktifkan fitur SNMP pada komputer/server yang menggunakan CentOS dan RHEL atau turunannya. SNMP sendiri adalah singkatan dari Simple Network Management Protocol. 

Untuk menginstall SNMP di CentOS dan RHEL, silakan gunakan perintah:

yum install net-snmp

setelah terpasang, kita butuh konfigurasi SNMP tersebut. semua konfigurasinya bisa dilakukan dengan tool net-snmp-utils

yum install net-snmp-utils

untuk mengonfigurasi, ada tool dengan nama snmpconf. silakan gunakan, contoh:

snmpconf -g basic_setup

dimana hasilnya nanti ada file baru di /root/snmpd.conf, yang harus dipindah ke /etc/snmp/snmpd.conf.

jangan lupa setelah melakukan konfigurasi, restart dulu daemon snmp dengan perintah:

service snmpd restart

dan cek sudah enable atau belum saat boot dengan perintah:

chkconfig snmpd on

selamat mencoba!

Sunday, March 28, 2021

Cara Mengetahui Process Zombie/Rootkit di Server

 Pada tutorial kali ini kita akan mengetahui beberapa cara untuk mendapatkan detil informasi tentang process/task di server yang merupakan aplikasi yang berjalan secara zombie ataupun merupakan sebuah rootkit/backdoor.

Cara pertama, jika sudah mengetahui nama dari process/task yang di anggap zombie/aneh/backdoor itu:

# ps aux | grep "kinsing"

dengan "kinsing" adalah nama dari process tersebut.

kemudian, untuk melihat berapa jumlah task/process jahat tersebut bisa menggunakan perintah

# ps aux | awk {'print $8'}|grep -c Z

dengan Z adalah namanya.

untuk melihat PID mana saja yang merupakan proses/task zombie tersebut. silakan gunakan perintah:

# ps aux | awk '{ print $8 " " $2 }' | grep -w Z


Tuesday, March 23, 2021

Cara Mengetahui Last Boot Sebuah Kernel Linux

Untuk mengetahui last boot time dari sebuah kernel yang berjalan di komputer Linux, kita bisa memanfaatkan perintah stat. Stat ini sebuah aplikasi yang melakukan pencatatan hal-hal detil yang dilakukan OS. Salah satunya tentang booting kernel Linux.

silakan gunakan perintah:

stat -c %x /boot/vmlinuz-5.4.0-64-generic  

dengan -c adalah parameter khusus untuk format tampilan console, dan %x dalam format readable for human.

contoh:



Cara Mencari Semua Kernel Linux Yang Terinstall


 Untuk tutorial singkat kali ini, bagaimana cara melihat semua kernel linux yang terpasang di komputer kita? Secara simple bisa dilihat dengan melihat file-file kernel yang ada di folder /boot

find /boot/vmli*

contoh hasilnya:

/boot/vmlinuz /boot/vmlinuz-5.4.0-64-generic /boot/vmlinuz-5.4.0-65-generic /boot/vmlinuz.old

VirtualBox vs VMware Comparison Table

ComparisonVirtualBoxVMware
Software VirtualizationYesNo
Hardware VirtualizationYesYes
Host Operating SystemsLinux, Windows, Solaris, macOS, FreeBSDLinux, Windows + macOS (requires VMware Fusion)
Guest Operating SystemsLinux, Windows, Solaris, macOS, FreeBSDLinux, Windows, Solaris, FreeBSD + macOS (with VMware Fusion)
User InterfaceGraphical User Interface (GLI) and Command Line Interface (CLI)Graphical User Interface (GLI) and Command Line Interface (CLI)
SnapshotsYesSnapshots only supported on paid virtualization products, not on VMware Workstation Player
Virtual Disk FormatVDI, VMDK, VHD, HDDVMDK
Virtual Disk Allocation TypePreallocated: fixed disks;

Dynamically allocated: dynamically allocated disks;

Preallocated: provisioned disks;

Dynamically allocated: thin provisioned disks;

Virtual Network ModelsNot attached, NAT, NAT Network, Bridged adapter, Internal network, Host-only adapter, Generic (UDP, VDE)NAT, Bridged, Host-only + Virtual network editor (on VMware workstation and Fusion Pro)
USB Devices SupportUSB 2.0/3.0 support requires the Extension Pack (free)Out of the box USB device support
3D GraphicsUp to OpenGL 3.0 and Direct3D 9;

Max of 128 MB of video memory;

3D acceleration enabled manually

Up to OpenGL 3.3, DirectX 10;

Max of 2GB of video memory;

3D acceleration enabled by default

IntegrationsVMDK, Microsoft’s VHD, HDD, QED, Vagrant, DockerRequires additional conversion utility for more VM types;

VMware VSphere and Cloud Air (on VMware Workstation)

VirtualBox Guest Additions vs. VMware ToolsInstalled with the VBoxGuestAdditions.iso fileInstall with a .iso file used for the given VM (linux.iso, windows.iso, etc.)
API for DevelopersAPI and SDKDifferent APIs and SDKs
Cost and LicensesFree, under the GNU General Public LicenseVMware Workstation Player is free, while other VMware products require a paid license

Sunday, March 21, 2021

Penasaran Soal IoT (Internet of Things) di Google Cloud? Ikuti Event ini

Penasaran dengan implementasi solusi ngetrendnya Internet of Things di platform Google Cloud? silakan ikuti event dari Cloud Ace berikut. Cloud Ace akan menyelenggarakan sebuah webinar gratis bekerjasama dengan APTIKNAS yang membahas tentang Google Cloud Platform dan IoT.

Webinar yang diselenggarakan via Google Meet ini akan dilaksanakan tanggal 24 Maret 2021 pukul 10.00 WIB. Peserta dari webinar ini juga akan mendapat sertifikat elektronik kepesertaan dari APTIKNAS.

Untuk link pendaftaran silakan buka halaman ini ya.


Friday, March 19, 2021

Cara Disable Antimalware Service Executable di Windows 10

Disadari atau tidak, Windows 10 (dan juga windows-windows lainnya) hadir dengan banyak sekali aplikasi bloatware (aplikasi yang tidak perlu-perlu amat dimiliki oleh end user). Contohnya, adalah aplikasi yang seharusnya sudah tergantikan fungsinya oleh antivirus, seperti Antimalware Service Executable.

Aplikasi ini dicurigai membuat Windows 10 mengalami inefisiensi memori/RAM, memakan resource yang tinggi, dengan Load yang tinggi (tanpa limit terkadang). Nah, berikut adalah cara men-disable nya:

  1. Tekan tombol Windows + I untuk membuka apliaksi Windows Setting.
  2. Pilih icon menu Update and Security
  3. Pilih lagi menu disamping kiri Windows Security
  4. Pada jendela baru yang muncul, ada pilihan Virus & Threat protection Klik ini
  5. Lalu matikan proses Real-time protection tersebut.

Dengan Regedit.

  1. Buka dialog regedit, Windows + R dan ketik ‘regedit’
  2. Cari Folder regedit ini HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender
  3. Buat sebuah DWORD baru dengan klik kanan dan pilih ‘Choose New”
  4. tuliskan ini: DisableAntiSpyware dengan value 1.

Selamat mencoba!

Operasi logika dasar AND, OR dan NOT

 Suatu fungsi logika atau operasi logika yang dimaksud dalam aljabar Boolean adalah suatu kombinasi variable biner seperti misalnya pada masukan dan keluaran dari suatu rangkaian digital yang dapat ditunjukkan bahwa di dalam aljabar Boolean semua hubungan logika antara variable variable biner dapat dijelaskan oleh tiga operasi logika dasar yaitu :
– Operasi NOT (negation)
– Operasi AND (conjuction)
– Operasi OR (disconjuction

Operasi operasi tersebut dijelaskan dalam tiga bentuk yaitu :
1. Tabel fungsi (tablel kebenaran) yang menunjukkan keadaan semua variabel masukan dan keluaran untuk setiap kemungkinan.
2. Simbol rangkaian untuk menjelaskan rangkaian digital.
3. Persamaan fungsi.

Operasi logika NOT
Fungsi NOT adalah membalik sebuah variable biner, misalnya jika masukannya adalah 0 maka keluarannya adalah 1. Gambar berikut memperlihatkan 3 macam bentuk penggambaran fungsi operasi NOT.

Operasi logika AND
Operasi AND menghubungkan paling sedikit dua masukan variable dan dapat lebih variabel masukannnya mulai x0, x1 sampai xn dan satu variabel keluaran y. Variabel keluaran akan berlogika 1 hanya jika semua masukannya x0, x1 sampai xn dalam keadaan 1.

Gambar berikut Menggambarkan 3 macam penggambaran fungsi operasi logika AND.

Operasi logika OR
Operasi OR juga menghubungkan paling sedikit dua masukan variable dan dapat lebih variabel masukannnya mulai x0, x1 sampai xn dan satu variabel keluaran y.
Variabel keluaran akan berlogika 0 hanya jika semua masukannya x0, x1
sampai xn dalam keadaan 0.

Gambar berikut Menggambarkan 3 macam penggambaran fungsi operasi
logika OR.

Pengertian Aplikasi Pengolah Kata

 Aplikasi pengolah kata (word processor) adalah perangkat lunak yang dirancang khusus untuk mengolah kata. Aplikasi pengolah kata merupakan salah satu program yang paling dibutuhkan dan banyak digunakan di berbagai bidang kehidupan, seperti bidang pendidikan, sosial dan ekonomi, keuangan, pemerintahan, kesehatan dan lain-lain. Dengan aplikasi ini Anda dapat berbagai dokumen seperti laporan, proposal, artikel, brosur, booklet, karya tulis, surat menyurat, dan sebagainya.

Dewasa ini, ada banyak aplikasi pengolah kata yang dibuat oleh produsen perangkat lunak. Sebagian aplikasi pengolah kata merupakan perangkat lunak berbayar, sebagian lagi merupakan perangkat lunak yang dapat Anda gunakan secara bebas (gratis). Beberapa pengolah kata yang terkenal adalah:
● WordStar (WS)
● WordPerfect (WP)
● AmiPro
● Kwrite
● AbiWord
● StarWriter
● OpenOffice.org Writer
● Notepad
● Wordpad
● Microsoft Word

Umumnya, aplikasi pengolah kata baru hadir dengan membawa fitur-fitur baru untuk mengatasi kekurangan aplikasi pengolah kata sebelumnya. Salah satu aplikasi dengan fitur lengkap dan cukup mudah digunakan adalah OpenOffice.org Writer.

Inilah Kode Negara Indonesia yang Berlaku Secara Internasional

 

Inilah kode-kode yang mewakili Negara Indonesia dan berlaku secara internasional. Setiap kode-kodenya diwakili dengan angka maupun aksara. Semuanya digunakan untuk kebutuhan-kebutuhan tertentu.

Kode Negara Indonesia menurut Standard ISO

Kode Negara Indonesia menurut ISO 3166-1 numeric adalah 360. ISO 3166-1 numeric adalah kode dalam berjumlah tiga angka yang merepresentasikan wilayah, pemerintahan, dan letak geografis sebuah negara. Biasanya dipakai dalam statistik-statistik milik PBB.

Kode Negara Indonesia menurut ISO 3166-1 alpha-3 IDN.

Kode Negara Indonesia menurut ISO 3166-1 alpha-2 ID.

Kode Negara Indonesia untuk Dunia Penerbangan

Kode Negara Indonesia menurut ICAO airport code prefix adalah WA, WI. Sedangkan untuk registrasi pesawat Indonesia menurut ICAO aircraft regis. prefix(es) adalah PK-.

Kode Negara Indonesia menurut standard nomor telepon dunia E.164 adalah +62

Kode Negara Indonesia menurut IOC country code adalah INA.

Kode Negara Indonesia menurut Country code top-level domain adalah .id

Thursday, March 18, 2021

Cara Install SQL Express Server 2019!


 

Pada tutorial kali ini kita akan menginstall SQL Express Server di Windows tahun 2021. Silakan download dulu installernya disini: download SQL Server 

Scroll sampai ke bawah dan cari SQL Server 2019. Unduh dengan klik tombol Download Now.

Kemudian setelah terunduh, silakan klik kanan dan Run as Administrator.


Pilih installation type sesuai kebutuhan: Basic, Custom dan Download Media. Kemudian ikuti pilihan yang ada.



Setelah itu lanjutkan dengan konfigurasi umum dari SQL Server Express ini dengan membuka aplikasi SQL Server Installation Center

Setujui lisensi yang ditawarkan:

Pilih pengaturan update:

Kemudian pilih rule yang dikehendaki:

Pilih fitur yang akan dipasang:

Konfigurasikan aplikasi SQL Express:

tentukan instalasi Java akan ditaruh dimana,

Kemudian konfigurasi Database seperti password

Setelah itu install Microsoft R:

dan Selesai.


Selamat mencoba!


Wednesday, March 17, 2021

Ayo Ikut Huawei Asia Pacific IP Club Carnival 2021!


 Mari ikuti event menarik dari Huawei Asia Pacific tahun ini, yang akan membahas tiga topik besar yaitu Campus Network Solution, Data Center Network Solution, dan CloudWAN Solution. Acara akan dilangsungkan secara online mulai tiap pukul 13.00 WIB tanggal 30 Maret 2021, kemudian 31 Maret dan 1 April 2021.

Silakan daftar disini: https://e.huawei.com/sg/special_topic/event/apac/apac_ip_club_carnival_2021?utm_campaign=Huawei+Asia+Pacific+IP+Club+Carnival+2021





Binance Tawarkan Flash Deal Gratis Beli Crypto dari Visa/Mastercard?

Mulai tanggal 17 Maret pukul 13.00 WIB sampai dengan 19 Maret 2021 pukul 13.00 WIB, platform binance akan menggratiskan biaya pembelian cyrptocurrency menggunakan kartu Visa dan Mastercard. Hal ini disampaikan dalam pemberitahuan singkat mereka di laman blog mereka di binance.cc.

Simak pengumumannya berikut:

Halo Binancians,


Hanya untuk 48 jam, kamu bisa Beli Crypto dengan Biaya Nol untuk pembelian menggunakan Visa atau Mastercard! Promo ini akan berlangsung dari 2021-03-17 13:00 PM WIB s/d 2021-03-19 13:00 PM WIB.


Mulai disini:

  • Beli Crypto dengan Kartu Debit/Kredit disini

  • Pelajari cara beli crypto dengan kartu debit/kredit disini.


Syarat & Ketentuan:

  • Aset kripto berikut berlaku untuk promo ini:

    • 1INCH, AAVE, ADA, ATOM, AVA, AVAX, BAKE, BAT, BCH, BNB, BTC, BTT, BUSD, CAKE, CHZ, COMP, DAI, DASH, DOGE, DOT, EOS, ETC, ETH, FIO, GRT, IDEX, LINK, LTC, LUNA, MATIC, MKR, NPXS, OMG, ORN, SNX, SOL, SXP, TRX, USDT, VET, WAVES, XLM, XRP, XTZ, YFI, ZEC, ZIL

  • Binance berhak untuk membatalkan atau mengubah Aturan Promo atau Promo atas kebijakan kami sendiri.

Terima Kasih,

Tim Binance

Peringatan Risiko: Perdagangan cryptocurrency melibatkan risiko yang signifikan dan dapat mengakibatkan hilangnya modal Anda. Anda tidak boleh berinvestasi lebih dari yang mampu Anda tanggung kerugiannya dan Anda harus memastikan bahwa Anda sepenuhnya memahami risiko yang terlibat. Sebelum berdagang, harap pertimbangkan tingkat pengalaman Anda, tujuan pembelian, dan dapatkan nasihat keuangan independen jika perlu. Merupakan tanggung jawab Anda untuk memastikan apakah Anda diizinkan untuk menggunakan layanan Binance berdasarkan persyaratan hukum di negara tempat tinggal Anda. Pembelian aset kripto tidak dilindungi oleh Layanan Ombudsman Keuangan atau tunduk pada perlindungan di bawah Skema Kompensasi Layanan Keuangan.


Wednesday, March 10, 2021

WordPress 5.7 Dengan Kode "Esperanza" Dirilis, Apa saja yang baru?

Apa saja yang baru dari kehadiran WordPress versi 5.7 yang dirilis pada tanggal 9 Maret 2021 kemarin? simak ulasannya.

WordPress 5.7 dirilis dengan nama kode "Esperanza" untuk menghormati kejeniusan musikus Esperanza Spalding, seorang musisi Jazz asal Amerika Serikat. Pada versi 5.7 kali ini, WordPress menawarkan warna baru yang lebih segar. Terutama di sektor editor yang kini bisa dijamah orang biasa tanpa harus menyentuh coding sama sekali. Layoutnya bisa diganti-ganti dengan mudah.

Dari sisi editor, kita punya utak-atik (adjustment) font yang lebih jelas, kemudian kita bisa menggunakan blocks yang sudah ada (reusable blocks), dan drag-n-drop yang lebih canggih. Lihat aja.


Fitur baru yang lain antara lain:

  • Full-height alignment
  • Buttons block
  • Social Icons block
  • Simpler color palette
  • Single click HTTP to HTTPS redirection
  • New Robot API, max-image-preview
  • Lazy-load iFrame
  • Update jQuery to version 3.5.1

Bagi yang ingin mencoba kegurihan WordPress 5.7, silakan update sekarang dan atau install baru dengan mengunduh software ini dari https://wordpress.org/

Referensi: https://wordpress.org/news/2021/03/esperanza/

Cara Menginstall Driver Printer HP Laserjet Pro M12W di Linux (Ubuntu/Debian)

 Pada tutorial kali ini kita akan menginstall driver untuk Printer HP Laserjet Pro M12W di Ubuntu. Keberadaan driver dan aplikasi HPLIP di Linux sementara ini tidak terlalu menolong, karena tidak mampu mengenali printer-printer baru seperti M12W dan penerus-penerusnya.

Untuk driver yang akan kita gunakan adalah aplikasi foo2zjs. Kita bisa download file sourcecodenya, kemudian melakukan compile dan install. Jangan gunakan paket RPM/DEB dari Debian/Redhat/CentOS, karena sudah usang.

Silakan ikuti perintah berikut:

wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz 

tar zxf foo2zjs.tar.gz 

cd foo2zjs 

kemudian lanjutkan dengan: 

make 

sudo make install 

 setelah itu restart cups dengan: 

sudo make cups 

Setelah itu baru kita add ke dialog Printer Settings di setting panel masing-masing distro linux.

Referensi: http://foo2zjs.rkkda.com/

Sunday, March 7, 2021

Cara Mengetahui Server Linux Virtual Atau Fisik

 Untuk mengetahui server linux yang kita gunakan berjalan secara virtual atau berjalan di atas hardware fisik (baremetal) kita bisa gunakan perintah dmidecode. contoh:

dmidecode -t system

contoh hasil:

dimana pada informasi diatas terlihat pabrikannya adalah Nutanix dengan produk AHV, yaitu Acropolis HyperVisor. Dengan kata lain, server yang kita coba identifikasi berjalan secara virtual (vm).


Cara Mengetest Bandwith dari Server Linux ke Server Lain

 Untuk tutorial kali ini kita akan mencoba mengetest bandwith sambungan antara satu server dengan server lain. 

Yang akan kita gunakan adalah program kecil di Linux dengan nama iperf. Silakan install terlebih dahulu sesuai distro masing-masing.

sudo apt install iperf3 #debian-ubuntu-mint

sudo dnf install iperf3 #centos-fedora-rhel

sudo zypper in iperf3 #opensuse

sudo pacman -Syu iperf3 #arch

Pada skenario lab testing yang kita punya, kita punya dua atau lebih server. Misal, A adalah server database, sedangkan B, C, D dan seterusnya adalah server aplikasi yang terkoneksi ke server database. B,C,D dll akan kita test bandwith koneksinya ke A.

Untuk server A, silakan jalankan perintah:

iperf3 -s

untuk server B dll silakan jalankan perintah:

iperf3 -c 192.168.108.1

dengan 192.168.108.1 sebagai contoh ip address dari server A

Friday, March 5, 2021

Cara Membuat Aplikasi RSS dengan Golang

Pada tutorial kali ini kita akan menggunakan Golang untuk membuat RSS content dengan Golang. Kita bisa integrasikan pada aplikasi berbasis web yang kita  buat dengan Golang.

Untuk source pertama, kita buat dulu file rss feed.go dengan isi sebagai berikut:

package main


import (

"encoding/json"

"github.com/gorilla/feeds"

"io/ioutil"

"log"

"os"

"time"

)


type FeedsData struct {

ID string `json:"id"`

Title string `json:"title"`

Description string `json:"description"`

}


func generateRssFeeds() *feeds.Feed {


//Initialize RSS Feeds

feed := &feeds.Feed{

Title: "RSS Feeds Example",

Link: &feeds.Link{Href: "/rssFeedsLink"},

Description: "This is RSS Feeds Example In Go language",

Author: &feeds.Author{Name: "author"},

Created: time.Now(),

}


//Get JSON data from file, here you can retrieve data from database table also.

feedsData := getJSONFeedsDataFromFile()

var feedItems []*feeds.Item


// Add items to RSS feeds

for i := 0; i < len(feedsData); i++ {


item := feedsData[i]


feedItems = append(feedItems,

&feeds.Item{

Id: item.ID,

Title: item.Title,

Link: &feeds.Link{Href: "/rssFeedsLink"},

Description: item.Description,

Created: time.Now(),

})

}


//Append Items

feed.Items = feedItems


return feed

}


func getJSONFeedsDataFromFile() []FeedsData {


//open JSON file

jsonFile, err := os.Open("feeds.json")

if err != nil {

log.Fatal(err)

}


//defer the closing of jsonFile, we can parse it later on

defer jsonFile.Close()


//read opened jsonFile as a byte array.

byteValue, _ := ioutil.ReadAll(jsonFile)


if err != nil {

log.Fatal(err)

}

// defer the closing of our jsonFile so that we can parse it later on

defer jsonFile.Close()


var data []FeedsData


// Unmarshal byteArray into FeedsData

err = json.Unmarshal(byteValue, &data)


if err != nil {

log.Fatal(err)

}


return data

}

dan kemudian gunakan function tersebut dengan membuat file main.go:

package main


import (

"fmt"

"github.com/gorilla/feeds"

)


func main() {


//generate RSS feeds data from JSON file

feedsData := generateRssFeeds()


/*

convert it to RSS.

github.com/gorilla/feeds also provides methods for converting to RSS, JSON and Atom

*/


rssFeed := (&feeds.Rss{Feed: feedsData}).RssFeed()


// Printing response to XML

xmlRssFeeds := rssFeed.FeedXml()


fmt.Println(xmlRssFeeds)

}

dan coba.