Reference dengan Struktur Data yang Lebih Rumit Lagi

use strict;

my @strikers = qw(barkoui zaenal brahima doni);
my @strikers_persib = ("strikers", \@strikers);
my @defenders = qw(antonio charis usep edi);
my @defenders_persib = ("defenders", \@defenders);
my @midfielders = qw(eka salim erik yaris);
my @midfielders_persib = ("midfielders", \@midfielders);

my @tim_persib =(\@strikers_persib,\@defenders_persib,
\@midfielders_persib);

Sampai saat ini array @tim_persib mempunyai 3 elemen, yang semuanya adalah reference ke suatu array dan tiap-tiap elemen (reference) tersebut mempunyai 2 elemen yang terdiri atas string dan reference.

 @tim_persib = Array reference $persib[0]:string (posisi)
Array reference
Array Reference $persib[1]:string
Array reference
Array Reference $persib[2]:string
Array Reference

Dan jika kita menuliskan “print $tim_persib[0], “\n”; ” maka kita akan mendapatkan “ARRAY(0x816ae4c)”, karena $tim_persib[0] adalah sebuah array reference, maka kita harus men dereferencenya terlebih dahulu, dengan @{$tim_persib[0]}.

 print @{$tim_persib[0]}, "\n";

Yang akan mencetak 2 elemen anggota dari Array Reference \@strikers_persib, yaitu string “strikers” dan Array Reference \@strikers (alamat memori). Jika kita hanya ingin mencetak string “strikers” saja, maka cukup dengan @{$tim_persib[0]}[0] Atau ${$tim_persib[0]}[0]; Dan untuk mencetak seluruh striker $tim_persib adalah

 Print @{$tim_persib[0][1]}

Menyederhanakan Notasi

Jika notasinya terlalu susah dibaca/rumit/kepanjangan maka kita bisa pakai tanda panah dan sebelumnya si array @tim_persib dijadikan array reference, maksudnya

 my $maung_bandung = \@tim_persib;
print $maung_bandung->[0][1][1], "\n"; #atau
print @{$maung_bandung->[0][1]}, "\n" ; #semua striker akan dicetak

Rereference dan dereference variabel Hash

 use strict;

my %pemain = (
nama => 'edi kurnia',
nomor => '1',
posisi => 'keeper',
tinggi => '186',
);

my $ref_hash = \%pemain; #membuat hash reference

print %{$ref_hash}->{'keys'},"\n"; #dereference atau dengan

foreach(keys %$ref_hash) {
print $_, " : ", %{$ref_hash}->{$_}, "\n";
}

.."..Blogging : Programing.."..

3 Responses to “Reference dengan Struktur Data yang Lebih Rumit Lagi”

  1. lady Says:

    aduh sayang aku gak ngerti ini maksudnya apa?????

  2. j0h4n_r4j Says:

    Ini… waktu aku belajar reference say…, Reeference itu kalo di bahasa C semcam poiter. jadi menunjuk alamat memory…

  3. Jauhari Says:

    Iki bahas opo to?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s