Problem Can't Send Lat & Lon with NeoGPS Lib with sim800l

Hello,
I get into trouble when I send Lat & Lon with SMS.
I’m Using NeoGPS lib GitHub - SlashDevin/NeoGPS: NMEA and ublox GPS parser for Arduino, configurable to use as few as 10 bytes of RAM
and sim800l lib GitHub - cristiansteib/Sim800l: Library sim800l for Arduino UNO (maybe sim900l work)
I use UNO, GPS TX and RX on pins 0 and 1.
sim800L TX and RX at pins 10 and 11.
this is my scetch :

#include <NMEAGPS.h>
#include <GPSport.h>
#include <Sim800l.h>
#include <SoftwareSerial.h>

Sim800l Sim800l;
NMEAGPS  gps;
gps_fix  fix;

String isiSMS;
String pengirim;
uint8_t index;
char latBuffer[20];
char longBuffer[20];
char fullBuffer[100];

void setup()
{
  Sim800l.begin();
  Sim800l.delAllSms();
  gpsPort.begin(9600);
}

void loop()
{
  while (gps.available( gpsPort )) {
    fix = gps.read();
    float latitudeX = fix.latitude();
    float longitudeX = fix.longitude();
    dtostrf(latitudeX, 0, 7, latBuffer);
    dtostrf(longitudeX, 0, 7, longBuffer);
    char koordinat[100];
    sprintf(koordinat, "http://maps.google.com/maps?q=%s,%s", latBuffer, longBuffer);
    index = 1;
    pengirim = Sim800l.getNumberSms(index);
    isiSMS = Sim800l.readSms(index);
    if (isiSMS.indexOf("posisi") != -1) {
      Sim800l.sendSms("6858698745", koordinat);
      Sim800l.delAllSms();
    }
    Sim800l.delAllSms();
  }
}

what scetch is wrong?

what scetch is wrong?

You only have one sketch, so it must be that one.

What, exactly, do you think is wrong?

Having the instance name of the class be the same as the class name is a bad idea. Show some creativity in choosing a meaningful instance name.

Using Strings is a bad idea. Learn to use c-style strings, instead.

    fix = gps.read();

Doesn't it matter that fix may not contain valid data?

    dtostrf(latitudeX, 0, 7, latBuffer);
    dtostrf(longitudeX, 0, 7, longBuffer);

In a field width of 0, show the digits before the decimal point, the decimal point, and 7 digits after the decimal point. Hmmm...

The "0" in the dtostrf() call is the minimum width of the output field, and while poor programming practice, works fine. It is not clear to me what the function author(s) intended with that parameter.

@beryindo: make sure you can read the GPS and get sensible values on the serial monitor, before sending them to the phone company. Start with the neoGPS provided examples AFTER reading the documentation. From your reading, you will learn, for example, that

IMPORTANT: gps.fix() IS ONLY VALID WHEN:

gps.decode() just returned DECODE_COMPLETED, or
gps.is_safe()

PaulS:
Having the instance name of the class be the same as the class name is a bad idea. Show some creativity in choosing a meaningful instance name.

Using Strings is a bad idea. Learn to use c-style strings, instead.

    fix = gps.read();

Doesn't it matter that fix may not contain valid data?

    dtostrf(latitudeX, 0, 7, latBuffer);

dtostrf(longitudeX, 0, 7, longBuffer);



In a field width of 0, show the digits before the decimal point, the decimal point, and 7 digits after the decimal point. Hmmm...

bro, I try with serial monitor not problem, but when i added sim800L the problem came up

but when i added sim800L the problem came up

You STILL have not defined what the problem is, so I can only assume that you are happy to have it.

bro, I try with serial monitor not problem,

The program you posted can't possibly work correctly. Try again.